jam-cloud/ruby/lib/jam_ruby/models/rsvp_request.rb

38 lines
1.2 KiB
Ruby
Raw Normal View History

module JamRuby
class RsvpRequest < ActiveRecord::Base
belongs_to :user, :class_name => "JamRuby::User"
belongs_to :rsvp_slot, :class_name => "JamRuby::RsvpSlot"
validates :message, length: {maximum: 1000}, no_profanity: true
validates :chosen, :inclusion => {:in => [nil, true, false]}
validates :canceled, :inclusion => {:in => [nil, true, false]}
validates :rsvp_slot, presence: true
2014-05-18 04:09:21 +00:00
def self.requests_by_session(session, user = nil)
query = RsvpRequest
.includes(:user)
.joins(
%Q{
INNER join
rsvp_slots rs
ON
rsvp_requests.rsvp_slot_id = rs.id
}
)
.where(
%Q{
rsvp_slots.music_session_id = '#{session.id}''
}
)
query = query.where("rsvp_requests.user_id = '#{user.id}'") unless user.nil?
return query
end
# XXX we need to validate that only one RsvpRequest.chosen = true for a given RsvpSlot
# in other words, you can have many requests to a slot, but only 0 or 1 rsvp_request.chosen = true)
end
end