From 20cd9e5dd0c1371ff169887bd08785e478e7076d Mon Sep 17 00:00:00 2001 From: Scott Comer Date: Wed, 5 Mar 2014 22:26:17 -0600 Subject: [PATCH 1/2] added stuff to support getting the max_score attribute to client via json --- ruby/lib/jam_ruby/models/music_session.rb | 11 ++++++++++- web/app/views/api_music_sessions/show.rabl | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index 77c8b00b2..24dfb0638 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -2,7 +2,7 @@ module JamRuby class MusicSession < ActiveRecord::Base self.primary_key = 'id' - attr_accessor :legal_terms, :skip_genre_validation + attr_accessor :legal_terms, :skip_genre_validation, :max_score attr_accessible :creator, :description, :musician_access, :approval_required, :fan_chat, :fan_access, :genres belongs_to :creator, :inverse_of => :music_sessions, :class_name => "JamRuby::User", :foreign_key => "user_id" @@ -43,6 +43,15 @@ module JamRuby #default_scope :select => "*, 0 as score" + def attributes + super.merge('max_score' => self.max_score) + end + + def max_score + nil unless has_attribute?(:max_score) + read_attribute(:max_score).to_i + end + before_create :create_uuid def create_uuid #self.id = SecureRandom.uuid diff --git a/web/app/views/api_music_sessions/show.rabl b/web/app/views/api_music_sessions/show.rabl index 2eec273b6..c42d940b6 100644 --- a/web/app/views/api_music_sessions/show.rabl +++ b/web/app/views/api_music_sessions/show.rabl @@ -13,7 +13,7 @@ if !current_user } else - attributes :id, :description, :musician_access, :approval_required, :fan_access, :fan_chat, :band_id, :user_id, :claimed_recording_initiator_id, :track_changes_counter + attributes :id, :description, :musician_access, :approval_required, :fan_access, :fan_chat, :band_id, :user_id, :claimed_recording_initiator_id, :track_changes_counter, :max_score node :genres do |item| item.genres.map(&:description) From 2effc50f175447abe31874fd6a9640d3d4766f39 Mon Sep 17 00:00:00 2001 From: Scott Comer Date: Wed, 5 Mar 2014 23:00:57 -0600 Subject: [PATCH 2/2] oops, use current_scores not scores --- ruby/lib/jam_ruby/models/music_session.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index 24dfb0638..70eb50e7f 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -206,7 +206,7 @@ module JamRuby locidispid = connection.locidispid query = MusicSession - .select("music_sessions.*, max(coalesce(scores.score, 99)) as max_score") + .select("music_sessions.*, max(coalesce(current_scores.score, 99)) as max_score") .joins( %Q{ INNER JOIN @@ -218,11 +218,11 @@ module JamRuby .joins( %Q{ LEFT OUTER JOIN - scores + current_scores ON - scores.alocidispid = connections.locidispid + current_scores.alocidispid = connections.locidispid AND - scores.blocidispid = #{locidispid} + current_scores.blocidispid = #{locidispid} } ) .joins(