Add TournamentsController
This commit is contained in:
parent
83c76c456c
commit
e81ef81150
|
|
@ -0,0 +1,53 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TournamentsController < ApplicationController
|
||||
before_action :set_tournament, only: %i[show update destroy]
|
||||
before_action :authenticate_user!, only: %i[create update destroy]
|
||||
before_action -> { require_owner! @tournament.owner }, only: %i[update destroy]
|
||||
|
||||
# GET /tournaments
|
||||
def index
|
||||
tournaments = Tournament.where(public: true).or(Tournament.where(owner: current_user)).order(:created_at)
|
||||
render json: tournaments, each_serializer: SimpleTournamentSerializer
|
||||
end
|
||||
|
||||
# GET /tournaments/1
|
||||
def show
|
||||
render json: @tournament
|
||||
end
|
||||
|
||||
# POST /tournaments
|
||||
def create
|
||||
tournament = current_user.tournaments.new tournament_params
|
||||
|
||||
if tournament.save
|
||||
render json: tournament, status: :created, location: tournament
|
||||
else
|
||||
render json: tournament.errors, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
# PATCH/PUT /tournaments/1
|
||||
def update
|
||||
if @tournament.update(tournament_params)
|
||||
render json: @tournament
|
||||
else
|
||||
render json: @tournament.errors, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /tournaments/1
|
||||
def destroy
|
||||
@tournament.destroy
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_tournament
|
||||
@tournament = Tournament.find(params[:id])
|
||||
end
|
||||
|
||||
def tournament_params
|
||||
deserialize_params only: %i[name description public teams]
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue