33 lines
1.1 KiB
Ruby
33 lines
1.1 KiB
Ruby
module Public
|
|
class TournamentResultsController < WebBaseController
|
|
before_action :require_login!
|
|
before_action :set_tournament
|
|
|
|
def create
|
|
Tournaments::Entitlements.new(@club).assert_writable!
|
|
match = @tournament.matches.find(params[:match_id])
|
|
Tournaments::RecordResult.call(
|
|
match: match,
|
|
home_score: params[:home_score],
|
|
away_score: params[:away_score],
|
|
source: "manual",
|
|
walkover: params[:walkover].presence
|
|
)
|
|
redirect_to public_tournament_path(@tournament, tab: params[:tab].presence || "calendario"),
|
|
notice: t("flash.tournaments.result_saved")
|
|
rescue Tournaments::EntitlementError => e
|
|
redirect_to public_club_billing_path(@club), alert: e.message
|
|
rescue ActiveRecord::RecordInvalid => e
|
|
redirect_to public_tournament_path(@tournament, tab: "calendario"), alert: e.record.errors.full_messages.join(", ")
|
|
end
|
|
|
|
private
|
|
|
|
def set_tournament
|
|
@tournament = Tournament.find(params[:id])
|
|
@club = @tournament.club
|
|
require_club_owner!(@club)
|
|
end
|
|
end
|
|
end
|