From 09b4ed09a4e5a04ad78b1c46c9cee635cab8246c Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sun, 15 Feb 2015 08:23:26 -0500 Subject: [PATCH] VRFS-2696 edit musician profile API enhancements --- ruby/lib/jam_ruby/models/online_presence.rb | 12 +++++++++--- ruby/lib/jam_ruby/models/performance_sample.rb | 5 +++-- ruby/lib/jam_ruby/models/user.rb | 17 ++++++++++++++++- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ruby/lib/jam_ruby/models/online_presence.rb b/ruby/lib/jam_ruby/models/online_presence.rb index 774ee0b94..8061ac571 100644 --- a/ruby/lib/jam_ruby/models/online_presence.rb +++ b/ruby/lib/jam_ruby/models/online_presence.rb @@ -21,12 +21,18 @@ module JamRuby OnlinePresence.where("user_id = ?", options[:id]) end - def self.create(current_user, options = {}) + def self.create(current_user, options = {}, save = true) auth_user(current_user, options) raise StateError, "Missing required information" if options[:service_type].blank? || options[:username].blank? - up = OnlinePresence.new({:user_id => current_user.id, :service_type => options[:service_type], :username => options[:username]}) - up.save! + up = OnlinePresence.new({ + :user_id => current_user.id, + :service_type => options[:service_type], + :username => options[:username] + }) + + up.save! if save + up end def self.update(current_user, options = {}) diff --git a/ruby/lib/jam_ruby/models/performance_sample.rb b/ruby/lib/jam_ruby/models/performance_sample.rb index df405275d..db02b26c1 100644 --- a/ruby/lib/jam_ruby/models/performance_sample.rb +++ b/ruby/lib/jam_ruby/models/performance_sample.rb @@ -41,7 +41,7 @@ module JamRuby PerformanceSample.where("user_id = ?", options[:id]) end - def self.create(current_user, options = {}) + def self.create(current_user, options = {}, save = true) auth_user(current_user, options) raise StateError, "Missing required information" if options[:service_type].blank? @@ -53,7 +53,8 @@ module JamRuby :url => options[:url] }) - ps.save! + ps.save! if save + ps end def self.delete(current_user, options = {}) diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 32a5a1a2d..d7c5dd90c 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -638,7 +638,6 @@ module JamRuby end gids.each do |gid| - genre_player = GenrePlayer.new genre_player.player_id = self.id genre_player.player_type = self.class.name @@ -649,9 +648,25 @@ module JamRuby end def update_online_presences(online_presences) + unless self.new_record? + OnlinePresence.delete_all(["user_id = ?", self.id]) + end + + online_presences.each do |op| + op = OnlinePresence.create(self.id, online_presences, false) + self.online_presences << op + end end def update_performance_samples(performance_samples) + unless self.new_record? + PerformanceSample.delete_all(["user_id = ?", self.id]) + end + + performance_samples.each do |ps| + ps = PerformanceSample.create(self.id, performance_samples, false) + self.performance_samples << ps + end end # given an array of instruments, update a user's instruments