From 7882d65dc7b7c3cbff64990a39eef608606fa4a7 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Tue, 25 Feb 2014 21:25:59 +0000 Subject: [PATCH] * VRFS-1165 resolved for real this time --- web/app/assets/javascripts/sessionModel.js | 2 ++ web/lib/music_session_manager.rb | 36 +++++++++++----------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/web/app/assets/javascripts/sessionModel.js b/web/app/assets/javascripts/sessionModel.js index d80436f8a..2306dcee4 100644 --- a/web/app/assets/javascripts/sessionModel.js +++ b/web/app/assets/javascripts/sessionModel.js @@ -108,7 +108,9 @@ // time, for that entire duration you'll still be sending voice data to the other users. // this may be bad if someone decides to badmouth others in the left-session during this time logger.debug("calling jamClient.LeaveSession for clientId=" + clientId); + console.time('jamClient.LeaveSession'); client.LeaveSession({ sessionID: currentSessionId }); + console.timeEnd('jamClient.LeaveSession'); leaveSessionRest(currentSessionId) .done(function() { sessionChanged(); diff --git a/web/lib/music_session_manager.rb b/web/lib/music_session_manager.rb index 3efc2cb90..4d0f1061d 100644 --- a/web/lib/music_session_manager.rb +++ b/web/lib/music_session_manager.rb @@ -100,29 +100,13 @@ MusicSessionManager < BaseManager def participant_create(user, music_session_id, client_id, as_musician, tracks) connection = nil + music_session = nil ActiveRecord::Base.transaction do music_session = MusicSession.find(music_session_id) connection = ConnectionManager.new.join_music_session(user, client_id, music_session, as_musician, tracks) - unless connection.errors.any? - user.update_progression_field(:first_music_session_at) - MusicSessionUserHistory.save(music_session_id, user.id, client_id, tracks) - - if as_musician && music_session.musician_access - - # send to session participants - Notification.send_session_join(music_session, connection, user) - - # send "musician joined session" notification only if it's not a band session since there will be a "band joined session" notification - if music_session.band.nil? - Notification.send_musician_session_join(music_session, connection, user) - end - end - end - - if connection.errors.any? # rollback the transaction to make sure nothing is disturbed in the database raise ActiveRecord::Rollback @@ -132,7 +116,23 @@ MusicSessionManager < BaseManager end end - return connection + unless connection.errors.any? + user.update_progression_field(:first_music_session_at) + MusicSessionUserHistory.save(music_session_id, user.id, client_id, tracks) + + if as_musician && music_session.musician_access + + # send to session participants + Notification.send_session_join(music_session, connection, user) + + # send "musician joined session" notification only if it's not a band session since there will be a "band joined session" notification + if music_session.band.nil? + Notification.send_musician_session_join(music_session, connection, user) + end + end + end + + connection end def participant_delete(user, connection, music_session)