Merge branch 'develop' of bitbucket.org:jamkazam/jam-cloud into develop
This commit is contained in:
commit
d7ada2d7d3
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue