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