28 lines
840 B
Ruby
28 lines
840 B
Ruby
module JamRuby
|
|
class Connection < ActiveRecord::Base
|
|
|
|
SELECT_AT_LEAST_ONE = "Please select at least one track"
|
|
|
|
self.primary_key = 'id'
|
|
|
|
belongs_to :user, :class_name => "JamRuby::User"
|
|
belongs_to :music_session, :class_name => "JamRuby::MusicSession"
|
|
has_many :connection_tracks, :class_name => "JamRuby::ConnectionTrack", :inverse_of => :connection
|
|
|
|
after_save :require_at_least_one_track_when_in_session
|
|
|
|
# decides if a given user can access this client with p2p messaging
|
|
# the answer is yes if the user is in the same music session
|
|
def access_p2p?(user)
|
|
return self.music_session.users.exists?(user)
|
|
end
|
|
|
|
private
|
|
def require_at_least_one_track_when_in_session
|
|
if connection_tracks.count == 0
|
|
errors.add(:genres, SELECT_AT_LEAST_ONE)
|
|
end
|
|
end
|
|
|
|
end
|
|
end |