From ca53ee0ead074c6aef4e5e8bce832581ac307290 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 19 May 2014 23:34:56 -0400 Subject: [PATCH] update data model / fix tests --- ruby/lib/jam_ruby.rb | 2 +- ruby/lib/jam_ruby/models/rsvp_request.rb | 29 ++++++++++--------- .../jam_ruby/models/rsvp_request_rsvp_slot.rb | 14 +++++++++ ruby/lib/jam_ruby/models/rsvp_request_slot.rb | 10 ------- ruby/lib/jam_ruby/models/rsvp_slot.rb | 3 +- ruby/spec/factories.rb | 5 ++-- 6 files changed, 35 insertions(+), 28 deletions(-) create mode 100644 ruby/lib/jam_ruby/models/rsvp_request_rsvp_slot.rb delete mode 100644 ruby/lib/jam_ruby/models/rsvp_request_slot.rb diff --git a/ruby/lib/jam_ruby.rb b/ruby/lib/jam_ruby.rb index 56372cac2..b119084e6 100755 --- a/ruby/lib/jam_ruby.rb +++ b/ruby/lib/jam_ruby.rb @@ -69,7 +69,7 @@ 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/rsvp_request_slot" +require "jam_ruby/models/rsvp_request_rsvp_slot" require "jam_ruby/models/user_observer" require "jam_ruby/models/user_authorization" require "jam_ruby/models/join_request" diff --git a/ruby/lib/jam_ruby/models/rsvp_request.rb b/ruby/lib/jam_ruby/models/rsvp_request.rb index adf6dba67..5f0ec12b8 100644 --- a/ruby/lib/jam_ruby/models/rsvp_request.rb +++ b/ruby/lib/jam_ruby/models/rsvp_request.rb @@ -2,29 +2,32 @@ module JamRuby class RsvpRequest < ActiveRecord::Base belongs_to :user, :class_name => "JamRuby::User" - has_many :rsvp_request_slots, :class_name => "JamRuby::RsvpRequestSlot" + has_many :rsvp_request_rsvp_slots, :class_name => "JamRuby::RsvpRequestRsvpSlot" + has_many :rsvp_slots, :class_name => "JamRuby::RsvpSlot", :through => :rsvp_requests_rsvp_slots - validates :message, length: {maximum: 1000}, no_profanity: true - validates :chosen, :inclusion => {:in => [nil, true, false]} + # validates :message, length: {maximum: 1000}, no_profanity: true + validates :canceled, :inclusion => {:in => [nil, true, false]} - validates :rsvp_slot, presence: true - def self.create(params) - # slot_ids = - rsvp = RsvpRequest.new - # rsv - rsvp.save - end + # def self.create(params) + # # slot_ids = + # rsvp = RsvpRequest.new + # # rsv + # rsvp.save + # end def self.requests_by_session(session, user = nil) query = RsvpRequest .includes(:user) .joins( %Q{ - INNER join - rsvp_slots rs + INNER JOIN + rsvp_requests_rsvp_slots rrrs ON - rsvp_requests.rsvp_slot_id = rs.id + rrrs.rsvp_request_id = rsvp_requests.id + INNER JOIN + rsvp_slots rs + ON rs.id = rrrs.rsvp_slot_id } ) .where( diff --git a/ruby/lib/jam_ruby/models/rsvp_request_rsvp_slot.rb b/ruby/lib/jam_ruby/models/rsvp_request_rsvp_slot.rb new file mode 100644 index 000000000..7267e75fb --- /dev/null +++ b/ruby/lib/jam_ruby/models/rsvp_request_rsvp_slot.rb @@ -0,0 +1,14 @@ +module JamRuby + class RsvpRequestRsvpSlot < ActiveRecord::Base + self.table_name = "rsvp_requests_rsvp_slots" + + self.primary_key = 'id' + + belongs_to :rsvp_request + belongs_to :rsvp_slot + + validates :rsvp_request, presence: true + validates :rsvp_slot, presence: true + validates :chosen, :inclusion => {:in => [nil, true, false]} + end +end \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/rsvp_request_slot.rb b/ruby/lib/jam_ruby/models/rsvp_request_slot.rb deleted file mode 100644 index 9d20170c2..000000000 --- a/ruby/lib/jam_ruby/models/rsvp_request_slot.rb +++ /dev/null @@ -1,10 +0,0 @@ -module JamRuby - class RsvpRequestSlot < ActiveRecord::Base - self.table_name = "rsvp_requests_rsvp_slots" - - self.primary_key = 'id' - - belongs_to :rsvp_request - belongs_to :rsvp_slot - end -end \ No newline at end of file diff --git a/ruby/lib/jam_ruby/models/rsvp_slot.rb b/ruby/lib/jam_ruby/models/rsvp_slot.rb index 77b2dd638..274cf21bd 100644 --- a/ruby/lib/jam_ruby/models/rsvp_slot.rb +++ b/ruby/lib/jam_ruby/models/rsvp_slot.rb @@ -3,7 +3,8 @@ module JamRuby belongs_to :instrument, :class_name => "JamRuby::Instrument" belongs_to :music_session - has_many :rsvp_request_slots, :class_name => "JamRuby::RsvpRequestSlot" + has_many :rsvp_requests_rsvp_slots, :class_name => "JamRuby::RsvpRequestRsvpSlot" + has_many :rsvp_requests, :class_name => "JamRuby::RsvpRequest", :through => :rsvp_requests_rsvp_slots # TODO: validates :proficiency_level end diff --git a/ruby/spec/factories.rb b/ruby/spec/factories.rb index d8c5c4b5e..3e69817a6 100644 --- a/ruby/spec/factories.rb +++ b/ruby/spec/factories.rb @@ -472,9 +472,8 @@ FactoryGirl.define do 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 + # association :rsvp_slot, factory: :rsvp_slot + # chosen false canceled false end end