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.
29 lines
921 B
29 lines
921 B
class Competitions::PrizeLeaderAccountsController < Competitions::BaseController
|
|
before_action :require_prize_team_leader!
|
|
|
|
def update
|
|
Competitions::SavePrizeTeamAccountService.call(current_competition, current_prize_user, update_params)
|
|
render_ok
|
|
rescue ApplicationService::Error => ex
|
|
render_error(ex.message)
|
|
end
|
|
|
|
private
|
|
|
|
def require_prize_team_leader!
|
|
prize_user = current_competition.competition_prize_users.joins(:competition_prize)
|
|
.where(competition_prizes: { category: :bonus })
|
|
.find_by(leader: true, user_id: current_prize_user.id)
|
|
return if prize_user.present? && (current_user.admin_or_business? || current_user.id == current_prize_user.id)
|
|
|
|
render_forbidden
|
|
end
|
|
|
|
def update_params
|
|
params.permit(:bank, :second_bank, :card_no)
|
|
end
|
|
|
|
def current_prize_user
|
|
@_current_prize_user ||= User.find(params[:user_id])
|
|
end
|
|
end |