notificar en posiciones nuevas

This commit is contained in:
fauno 2019-08-03 19:45:04 -03:00
parent 75310fc255
commit fbf30112e9
No known key found for this signature in database
GPG key ID: 456032D717A4CD9C
3 changed files with 53 additions and 1 deletions

View file

@ -20,11 +20,13 @@ class PosicionesController < ApplicationController
# @return [Hash] { id: @int, estado: @string, comentario: @string, # @return [Hash] { id: @int, estado: @string, comentario: @string,
# pirata: @pirata } # pirata: @pirata }
def create def create
@consenso = @barca.consensos.find(params[:consenso_id]) find_consenso!
@posicion = @consenso.try(:posiciones).try(:build, posicion_params) @posicion = @consenso.try(:posiciones).try(:build, posicion_params)
@posicion.try(:pirata=, current_pirata) @posicion.try(:pirata=, current_pirata)
if @posicion.try(:save) if @posicion.try(:save)
notify subject: :create
render status: :created render status: :created
else else
render json: @posicion.try(:errors).try(:messages), render json: @posicion.try(:errors).try(:messages),
@ -41,4 +43,30 @@ class PosicionesController < ApplicationController
def find_barca! def find_barca!
@barca = Barca.find(params[:barca_id]) @barca = Barca.find(params[:barca_id])
end 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 end

View file

@ -18,3 +18,15 @@ en:
destroy: destroy:
subject: '%{barca} - %{consenso}' subject: '%{barca} - %{consenso}'
message: '%{nick} deleted: %{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'

View file

@ -20,3 +20,15 @@ es:
destroy: destroy:
subject: '%{barca} - %{consenso}' subject: '%{barca} - %{consenso}'
message: '%{nick} borró: %{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'