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.
34 lines
980 B
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 |