* adding RsvpRequest and RsvpSlot models

This commit is contained in:
Seth Call 2014-05-14 15:48:42 -05:00
parent 9ee27a5127
commit a19d6dcc07
6 changed files with 59 additions and 0 deletions

View File

@ -66,6 +66,8 @@ require "jam_ruby/models/max_mind_isp"
require "jam_ruby/models/band_genre"
require "jam_ruby/models/genre"
require "jam_ruby/models/user"
require "jam_ruby/models/rsvp_request"
require "jam_ruby/models/rsvp_slot"
require "jam_ruby/models/user_observer"
require "jam_ruby/models/user_authorization"
require "jam_ruby/models/join_request"

View File

@ -0,0 +1,17 @@
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
# 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

View File

@ -0,0 +1,10 @@
module JamRuby
class RsvpSlot < ActiveRecord::Base
belongs_to :instrument, :class_name => "JamRuby::Instrument"
belongs_to :music_session
has_many :rsvp_requests, :class_name => "JamRuby::RsvpRequest"
# TODO: validates :proficiency_level
end
end

View File

@ -458,4 +458,18 @@ FactoryGirl.define do
creator JamRuby::Diagnostic::CLIENT
data Faker::Lorem.sentence
end
factory :rsvp_slot, class: JamRuby::RsvpSlot do
association :instrument, factory: :instrument
association :music_session, factory: :music_session
proficiency_level 'beginner'
end
factory :rsvp_request, class: JamRuby::RsvpRequest do
association :user, factory: :user
association :rsvp_slot, factory: :rsvp_slot
sequence(:message) { |n| "I want to join!#{n}" }
chosen false
canceled false
end
end

View File

@ -0,0 +1,8 @@
require 'spec_helper'
describe RsvpRequest do
it "success" do
FactoryGirl.create(:rsvp_request)
end
end

View File

@ -0,0 +1,8 @@
require 'spec_helper'
describe RsvpSlot do
it "success" do
FactoryGirl.create(:rsvp_slot)
end
end