Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop

This commit is contained in:
Seth Call 2013-09-27 21:42:27 +00:00
commit d7ada2d7d3
6 changed files with 31 additions and 39 deletions

View File

@ -5,18 +5,6 @@ module JamRuby
self.primary_key = 'id'
def music_session_user_histories
# NOTE: for some reason the association is not working, i suspect has to do with the foreign key (jkolyer)
# has_many(:music_session_user_histories,
# :class_name => "JamRuby::MusicSessionUserHistory",
# :foreign_key => :music_session_id,
# :order => 'created_at DESC',
# :inverse_of => :music_session_history)
@msuh ||= JamRuby::MusicSessionUserHistory
.where(:music_session_id => self.music_session_id)
.order('created_at DESC')
end
belongs_to(:user,
:class_name => 'JamRuby::User',
:foreign_key => :user_id,
@ -93,5 +81,12 @@ module JamRuby
end_time = self.session_removed_at || Time.now
(end_time - self.created_at) / 60.0
end
def music_session_user_histories
@msuh ||= JamRuby::MusicSessionUserHistory
.where(:music_session_id => self.music_session_id)
.order('created_at DESC')
end
end
end

View File

@ -7,14 +7,13 @@ module JamRuby
attr_accessible :uri
belongs_to(:music_session_user_history,
belongs_to(:music_session_history,
:class_name => "JamRuby::MusicSessionHistory",
:foreign_key => :client_id,
:inverse_of => :perf_data)
:foreign_key => :music_session_id)
# mount_uploader :uri, PerfDataUploader
validates :music_session, :presence => true
validates :music_session_history, :presence => true
validates :client_id, :presence => true
validates :uri, :presence => true
@ -25,4 +24,8 @@ module JamRuby
end
end
def music_session_user_history
@msuh ||= JamRuby::MusicSessionUserHistory.find_by_client_id(self.client_id)
end
end

View File

@ -10,21 +10,12 @@ module JamRuby
:foreign_key => "user_id",
:inverse_of => :music_session_user_histories)
has_one(:perf_data,
:class_name => "JamRuby::MusicSessionPerfData",
:foreign_key => "client_id",
:inverse_of => :music_session_user_history)
def music_session_history
# NOTE: for some reason the association is not working, i suspect has to do with the foreign key (jkolyer)
# belongs_to(:music_session_history,
# :class_name => "JamRuby::MusicSessionHistory",
# :foreign_key => :music_session_id,
# :inverse_of => :music_session_user_histories)
@msh ||= JamRuby::MusicSessionHistory
.where(:music_session_id => self.music_session_id)
.limit(1)
.first
@msh ||= JamRuby::MusicSessionHistory.find_by_music_session_id(self.music_session_id)
end
def perf_data
@perfdata ||= JamRuby::MusicSessionPerfData.find_by_client_id(self.client_id)
end
def self.save(music_session_id, user_id, client_id)

View File

@ -167,11 +167,12 @@ class ApiMusicSessionsController < ApiController
# example of using curl to access this API:
# curl -L -T some_file -X PUT http://localhost:3000/api/sessions/[SESSION_ID]/perf.json?client_id=[CLIENT_ID]
music_session = MusicSessionHistory.find_by_music_session_id(params[:id])
music_session_history = MusicSessionHistory.find_by_music_session_id(params[:id])
msuh = MusicSessionUserHistory.find_by_client_id(params[:client_id])
@perfdata = MusicSessionPerfData.new()
@perfdata.music_session = music_session
@perfdata = MusicSessionPerfData.new
@perfdata.client_id = params[:client_id]
@perfdata.music_session_history = music_session_history
unless @perfdata.save
# we have to do this because api_session_detail_url will fail with a bad @music_session
response.status = :unprocessable_entity

View File

@ -63,6 +63,9 @@ FactoryGirl.define do
}
end
factory :music_session_user_history, :class => JamRuby::MusicSessionUserHistory do
end
factory :connection, :class => JamRuby::Connection do
ip_address "1.1.1.1"

View File

@ -571,13 +571,12 @@ describe "Music Session API ", :type => :api do
sessions.first["description"].should == "My Session"
end
it "prepare for upload" do
pending
it "prepare for perf data upload" do
user = FactoryGirl.create(:user)
music_session = FactoryGirl.create(:music_session, :creator => user, :description => "My Session")
client = FactoryGirl.create(:connection, :user => user)
music_session = FactoryGirl.create(:music_session, :creator => user, :description => "My Session")
msuh = FactoryGirl.create(:music_session_user_history, :music_session_id => music_session.id, :client_id => client.client_id, :user_id => user.id)
put "/api/sessions/#{music_session.id}/perf.json?client_id=#{client.client_id}", "CONTENT_TYPE" => "application/json"
last_response.status.should == 302
@ -590,7 +589,7 @@ describe "Music Session API ", :type => :api do
music_session_perf_data = MusicSessionPerfData.find(perf_data_id)
music_session_perf_data.should_not be_nil
music_session_perf_data.music_session.should == MusicSessionHistory.find_by_music_session_id(music_session.id)
music_session_perf_data.music_session_user_history.should == MusicSessionUserHistory.find_by_client_id(client.client_id)
end
end