From fbf30112e95a69cfa811aa6fc2a7a8b3990b87cf Mon Sep 17 00:00:00 2001 From: fauno Date: Sat, 3 Aug 2019 19:45:04 -0300 Subject: [PATCH] notificar en posiciones nuevas --- app/controllers/posiciones_controller.rb | 30 +++++++++++++++++++++++- config/locales/en.yml | 12 ++++++++++ config/locales/es.yml | 12 ++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/app/controllers/posiciones_controller.rb b/app/controllers/posiciones_controller.rb index 05fb0eb..9907717 100644 --- a/app/controllers/posiciones_controller.rb +++ b/app/controllers/posiciones_controller.rb @@ -20,11 +20,13 @@ class PosicionesController < ApplicationController # @return [Hash] { id: @int, estado: @string, comentario: @string, # pirata: @pirata } def create - @consenso = @barca.consensos.find(params[:consenso_id]) + find_consenso! + @posicion = @consenso.try(:posiciones).try(:build, posicion_params) @posicion.try(:pirata=, current_pirata) if @posicion.try(:save) + notify subject: :create render status: :created else render json: @posicion.try(:errors).try(:messages), @@ -41,4 +43,30 @@ class PosicionesController < ApplicationController def find_barca! @barca = Barca.find(params[:barca_id]) end + + def find_consenso! + @consenso = @barca.consensos.find(params[:consenso_id]) + end + + def get_subject(view) + I18n.t("posiciones.#{view}.subject", + barca: @barca.nombre, + consenso: @consenso.titulo) + end + + def get_posicion(estado) + I18n.t("pirata.posiciones.tercera_persona.#{estado}") + end + + def get_message(view) + I18n.t("posiciones.#{view}.message", + consenso: @consenso.texto[0..140], + posicion: get_posicion(@posicion.estado), + comentario: @posicion.comentario, + nick: current_pirata.nick) + end + + def get_endpoint(_) + barca_consenso_path(@barca, @consenso) + end end diff --git a/config/locales/en.yml b/config/locales/en.yml index a5421a3..e6db6b9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -18,3 +18,15 @@ en: destroy: subject: '%{barca} - %{consenso}' message: '%{nick} deleted: %{consenso}' + posiciones: + create: + subject: '%{barca} - %{consenso}' + message: '%{nick} %{posicion}: %{comentario}' + pirata: + posiciones: + tercera_persona: + compromiso: 'commits' + a_favor: 'is in favor' + en_contra: 'is against' + bloqueo: 'blocks' + indiferente: 'is indifferent' diff --git a/config/locales/es.yml b/config/locales/es.yml index 2f31b5e..48f87e8 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -20,3 +20,15 @@ es: destroy: subject: '%{barca} - %{consenso}' message: '%{nick} borró: %{consenso}' + posiciones: + create: + subject: '%{barca} - %{consenso}' + message: '%{nick} %{posicion}: %{comentario}' + pirata: + posiciones: + tercera_persona: + compromiso: 'se compromete' + a_favor: 'está a favor' + en_contra: 'está en contra' + bloqueo: 'bloquea' + indiferente: 'le es indiferente'