Class: Voluntary::Api::V1::Music::YearInReviewsController
- Inherits:
-
BaseController
- Object
- BaseController
- Voluntary::Api::V1::Music::YearInReviewsController
- Defined in:
- app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb
Instance Method Summary collapse
Instance Method Details
#index ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb', line 10 def index years_in_review = @user.years_in_review_music.published params[:page] = nil if params[:page] == '' params[:per_page] = nil if params[:per_page] == '' years_in_review = years_in_review.order('year DESC').paginate(per_page: params[:per_page] || 10, page: params[:page] || 1) respond_to do |f| f.json { render json: { current_page: years_in_review.current_page, per_page: years_in_review.per_page, total_entries: years_in_review.total_entries, total_pages: years_in_review.total_pages, entries: years_in_review.map{|r| { year: r.year } }, }.to_json } end end |
#show ⇒ Object
27 28 29 |
# File 'app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb', line 27 def show respond_to {|f| f.json { render json: { year: year_in_review.year }.to_json } } end |
#top_releases ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb', line 31 def top_releases releases = year_in_review.releases.order('position ASC') tracks = year_in_review.tracks.order('position ASC').group_by(&:release_id) tracks_count = tracks.values.flatten.length respond_to do |f| f.json { render json: releases.map {|year_in_review_release| { position: year_in_review_release.position, artist_name: year_in_review_release.artist_name, artist_id: year_in_review_release.artist_id, release_id: year_in_review_release.release_id, release_name: year_in_review_release.release_name, top_track_positions_sum: ( (tracks[year_in_review_release.release_id] || []).sum{|t| tracks_count - t.position + 1 } ), top_tracks: (tracks[year_in_review_release.release_id] || []).map do |t| { position: t.position, track_name: t.track_name, track_id: t.track_id } end } }.to_json } end end |
#top_tracks ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb', line 57 def top_tracks tracks = year_in_review.tracks.order('position ASC') respond_to do |f| f.json { render json: tracks.map {|year_in_review_track| { position: year_in_review_track.position, artist_name: year_in_review_track.artist_name, artist_id: year_in_review_track.artist_id, release_id: year_in_review_track.release_id, release_name: year_in_review_track.release_name, track_id: year_in_review_track.track_id, track_name: year_in_review_track.track_name } }.to_json } end end |