VRFS-82 band invitation complete

This commit is contained in:
Brian Smith 2012-11-25 22:35:48 -05:00
parent 74a949849f
commit 4c1b0bc5c6
1 changed files with 13 additions and 26 deletions

View File

@ -11,35 +11,22 @@ module JamRuby
def self.save(id, band_id, user_id, creator_id, accepted)
# ensure recipient is a Musician
user = User.find(user_id)
unless user.musician?
raise JamRuby::JamArgumentError, "A Band invitation can only be sent to a Musician."
end
# ensure certain fields are only updated on creation
if id.nil?
# ensure recipient is a Musician
user = User.find(user_id)
unless user.musician?
raise JamRuby::JamArgumentError, "A Band invitation can only be sent to a Musician."
end
band_invitation = BandInvitation.new()
band_invitation.band_id = band_id
band_invitation.user_id = user_id
band_invitation.creator_id = creator_id
# only the accepted flag can be updated after initial creation
else
band_invitation = BandInvitation.find(id)
end
# band ID
unless band_id.nil?
band_invitation.band_id = band_id
end
# user ID
unless user_id.nil?
band_invitation.user_id = user_id
end
# creator ID
unless creator_id.nil?
band_invitation.creator_id = creator_id
end
# accepted flag
unless accepted.nil?
band_invitation.accepted = accepted
end
@ -49,7 +36,7 @@ module JamRuby
# TODO: wrap this and previous block in transaction
# accepting an invitation adds the musician to the band
if accepted
BandMusician.create(:band_id => band_id, :user_id => user_id, :admin => false)
BandMusician.create(:band_id => band_invitation.band.id, :user_id => band_invitation.receiver.id, :admin => false)
end
return band_invitation