You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
correction-tp-rails/app/controllers/combats_controller.rb

34 lines
980 B

class CombatsController < ApplicationController
COMBATS_RENDER_CONFIG = {
left_fighter: { only: CreaturesController::SHOWABLE_ATTRIBUTES },
right_fighter: { only: CreaturesController::SHOWABLE_ATTRIBUTES },
winner: { only: CreaturesController::SHOWABLE_ATTRIBUTES },
}
def index
@combats = Combat.all
render json: @combats.as_json(include: COMBATS_RENDER_CONFIG)
end
def create
left_fighter = Creature.find(params[:left_fighter_id])
right_fighter = Creature.find(params[:right_fighter_id])
@combat = Combat.new(create_params)
@combat.left_fighter = left_fighter
@combat.right_fighter = right_fighter
@combat.baston!
@combat.left_fighter.save!
@combat.right_fighter.save!
@combat.save!
render json: @combat.as_json(include: COMBATS_RENDER_CONFIG)
rescue ActiveRecord::RecordNotFound
render json: {}, status: 404
end
private
def create_params
params.require(:combat).permit(:name)
end
end