22 lines
569 B
Ruby
22 lines
569 B
Ruby
module Tournaments
|
|
class GrantBroadcastAccess
|
|
def self.call(invitation:, user:)
|
|
new(invitation: invitation, user: user).call
|
|
end
|
|
|
|
def initialize(invitation:, user:)
|
|
@invitation = invitation
|
|
@user = user
|
|
end
|
|
|
|
def call
|
|
team = Tournaments::EnsureBroadcastTeam.call(@invitation.tournament)
|
|
membership = UserTeam.find_or_initialize_by(user: @user, team: team)
|
|
membership.role = "member" if membership.new_record?
|
|
membership.staff_kind = "transmission"
|
|
membership.save!
|
|
membership
|
|
end
|
|
end
|
|
end
|