From 3d9bc9f541913d6040f92920afbf1bc00d208b9b Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Wed, 16 Mar 2016 21:11:10 +0000 Subject: [PATCH 1/3] jamtracks ios performance --- ruby/lib/jam_ruby/models/jam_track.rb | 13 +++++++++++++ web/app/controllers/api_jam_tracks_controller.rb | 8 +++++++- web/app/views/api_jam_tracks/purchased_mobile.rabl | 3 +++ web/app/views/api_jam_tracks/show_for_mobile.rabl | 3 +++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 web/app/views/api_jam_tracks/purchased_mobile.rabl create mode 100644 web/app/views/api_jam_tracks/show_for_mobile.rabl diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 5b544c991..daea5be61 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -255,6 +255,15 @@ module JamRuby {artists: artists, songs:songs} end + def purchases_metadata(user) + JamTrack. + select(['jam_tracks.id', :name, :original_artist, :year]). + joins(:jam_track_rights). + where("jam_track_rights.user_id = ?", user.id). + includes(:genres). + order([:original_artist, :name]) + end + def index(options, user) if options[:page] page = options[:page].to_i @@ -583,5 +592,9 @@ SQL self.find_by_sql(sql).first end + def genre_name + self.genres.first.try(:description) + end + end end diff --git a/web/app/controllers/api_jam_tracks_controller.rb b/web/app/controllers/api_jam_tracks_controller.rb index 8498c5dc2..8b173a8a6 100644 --- a/web/app/controllers/api_jam_tracks_controller.rb +++ b/web/app/controllers/api_jam_tracks_controller.rb @@ -142,7 +142,13 @@ class ApiJamTracksController < ApiController self._handlePurchasedHead return end - params[:show_purchased_only] = true + if params[:mobile] + @jam_tracks = JamTrack.purchases_metadata(current_user).to_a + response.headers['total-entries'] = @jam_tracks.count.to_s + render "api_jam_tracks/purchased_mobile", :layout => nil + return + end + params[:show_purchased_only] = true data = JamTrack.index(params, current_user) @jam_tracks, @next = data[0], data[1] diff --git a/web/app/views/api_jam_tracks/purchased_mobile.rabl b/web/app/views/api_jam_tracks/purchased_mobile.rabl new file mode 100644 index 000000000..c462fe1fe --- /dev/null +++ b/web/app/views/api_jam_tracks/purchased_mobile.rabl @@ -0,0 +1,3 @@ +node :jamtracks do |page| + partial "api_jam_tracks/show_for_mobile", object: @jam_tracks +end diff --git a/web/app/views/api_jam_tracks/show_for_mobile.rabl b/web/app/views/api_jam_tracks/show_for_mobile.rabl new file mode 100644 index 000000000..1deb89bb2 --- /dev/null +++ b/web/app/views/api_jam_tracks/show_for_mobile.rabl @@ -0,0 +1,3 @@ +object @jam_track + +attributes :id, :name, :original_artist, :year, :genre_name From 97f0d58f2ea655f799f041b9ab5d98609cd96830 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Wed, 16 Mar 2016 23:14:43 +0000 Subject: [PATCH 2/3] batch purchase loading --- ruby/lib/jam_ruby/models/jam_track.rb | 2 +- web/app/views/api_jam_tracks/show_for_mobile.rabl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index daea5be61..0477d631a 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -257,7 +257,7 @@ module JamRuby def purchases_metadata(user) JamTrack. - select(['jam_tracks.id', :name, :original_artist, :year]). + select(['jam_tracks.id', :name, :original_artist, :year, 'jam_track_rights.created_at AS purchased_at']). joins(:jam_track_rights). where("jam_track_rights.user_id = ?", user.id). includes(:genres). diff --git a/web/app/views/api_jam_tracks/show_for_mobile.rabl b/web/app/views/api_jam_tracks/show_for_mobile.rabl index 1deb89bb2..58a877938 100644 --- a/web/app/views/api_jam_tracks/show_for_mobile.rabl +++ b/web/app/views/api_jam_tracks/show_for_mobile.rabl @@ -1,3 +1,7 @@ object @jam_track attributes :id, :name, :original_artist, :year, :genre_name + +node :purchased_at do |jt| + Time.parse(jt.purchased_at).to_i rescue Time.now +end From bf59f4ac62da09bb932ce20dcb9575c98aeab4f5 Mon Sep 17 00:00:00 2001 From: Jonathan Kolyer Date: Thu, 17 Mar 2016 12:30:44 +0000 Subject: [PATCH 3/3] jtx ios batch purchase loading --- ruby/lib/jam_ruby/models/jam_track.rb | 2 +- web/app/controllers/api_jam_tracks_controller.rb | 2 +- web/app/views/api_jam_tracks/show_for_mobile.rabl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruby/lib/jam_ruby/models/jam_track.rb b/ruby/lib/jam_ruby/models/jam_track.rb index 0477d631a..1ad7fb09d 100644 --- a/ruby/lib/jam_ruby/models/jam_track.rb +++ b/ruby/lib/jam_ruby/models/jam_track.rb @@ -255,7 +255,7 @@ module JamRuby {artists: artists, songs:songs} end - def purchases_metadata(user) + def purchase_stubs(user) JamTrack. select(['jam_tracks.id', :name, :original_artist, :year, 'jam_track_rights.created_at AS purchased_at']). joins(:jam_track_rights). diff --git a/web/app/controllers/api_jam_tracks_controller.rb b/web/app/controllers/api_jam_tracks_controller.rb index 8b173a8a6..5bfae3f8c 100644 --- a/web/app/controllers/api_jam_tracks_controller.rb +++ b/web/app/controllers/api_jam_tracks_controller.rb @@ -143,7 +143,7 @@ class ApiJamTracksController < ApiController return end if params[:mobile] - @jam_tracks = JamTrack.purchases_metadata(current_user).to_a + @jam_tracks = JamTrack.purchase_stubs(current_user).to_a response.headers['total-entries'] = @jam_tracks.count.to_s render "api_jam_tracks/purchased_mobile", :layout => nil return diff --git a/web/app/views/api_jam_tracks/show_for_mobile.rabl b/web/app/views/api_jam_tracks/show_for_mobile.rabl index 58a877938..79b5183c7 100644 --- a/web/app/views/api_jam_tracks/show_for_mobile.rabl +++ b/web/app/views/api_jam_tracks/show_for_mobile.rabl @@ -3,5 +3,5 @@ object @jam_track attributes :id, :name, :original_artist, :year, :genre_name node :purchased_at do |jt| - Time.parse(jt.purchased_at).to_i rescue Time.now + Time.parse(jt.purchased_at).to_i rescue Time.now.to_i end