# frozen_string_literal: true # API para posiciones # # Las posiciones solo se pueden agregar a su consenso # # @see PiratasController#create class PosicionesController < ApplicationController # Necesitamos autenticarnos before_action :authenticate! # POST /consensos/:consenso_id/posiciones # # Crea una posiciĆ³n dentro de un consenso # # @param :consenso_id [Integer] El ID del consenso # @param :posicion [Hash] { posicion: { estado: @string, comentario: @string } } # @return [Hash] { id: @int, estado: @string, comentario: @string, # pirata: @pirata } def create @consenso = Consenso.find(params[:consenso_id]) @posicion = @consenso.try(:posiciones).try(:build, posicion_params) @posicion.try(:pirata=, current_pirata) if @posicion.try(:save) render status: :created else render json: @posicion.try(:errors).try(:messages), status: :unprocessable_entity end end private def posicion_params params.require(:posicion).permit(:estado, :comentario) end end