class Napster::Models::Favorite
Favorite
model
Constants
- ATTRIBUTES
Attributes
client[RW]
Public Class Methods
collection(arg)
click to toggle source
# File lib/napster/models/favorite.rb, line 33 def self.collection(arg) arg[:data].map do |favorite| Favorite.new(data: favorite, client: @client) end end
new(arg)
click to toggle source
# File lib/napster/models/favorite.rb, line 24 def initialize(arg) @client = arg[:client] if arg[:client] return unless arg[:data] ATTRIBUTES.each do |attribute| send("#{attribute}=", arg[:data][attribute.to_s.camel_case_lower]) end end
Public Instance Methods
add(ids)
click to toggle source
# File lib/napster/models/favorite.rb, line 89 def add(ids) post_options = { headers: { Authorization: 'Bearer ' + @client.access_token, 'Content-Type' => 'application/json', 'Accept-Version' => '2.0.0' } } body = prepare_add_favorites_body(ids) @client.post('/me/favorites', Oj.dump(body), post_options) status(ids) end
get(params)
click to toggle source
/me
# File lib/napster/models/favorite.rb, line 61 def get(params) get_options = { params: params, headers: { Authorization: 'Bearer ' + @client.access_token, 'Content-Type' => 'application/json', 'Accept-Version' => '2.0.0' } } response = @client.get('/me/favorites', get_options) Favorite.collection(data: response['favorites'], client: @client) end
member_favorites_for(id)
click to toggle source
# File lib/napster/models/favorite.rb, line 55 def member_favorites_for(id) request_member_favorites(id) end
members_who_favorited_albums(id)
click to toggle source
Top level methods
# File lib/napster/models/favorite.rb, line 41 def members_who_favorited_albums(id) e = 'Invalid playlist id' raise ArgumentError, e unless Napster::Moniker.check(id, :album) response = @client.get("/albums/#{id}/favorited/members") Member.collection(data: response['members'], client: @client) end
members_who_favorited_artists(id)
click to toggle source
# File lib/napster/models/favorite.rb, line 48 def members_who_favorited_artists(id) e = 'Invalid playlist id' raise ArgumentError, e unless Napster::Moniker.check(id, :artist) response = @client.get("/artists/#{id}/favorited/members") Member.collection(data: response['members'], client: @client) end
remove(id)
click to toggle source
# File lib/napster/models/favorite.rb, line 102 def remove(id) delete_options = { headers: { Authorization: 'Bearer ' + @client.access_token, 'Content-Type' => 'application/json', 'Accept-Version' => '2.0.0' } } @client.delete("/me/favorites/#{id}", delete_options) status([id]) end
status(ids)
click to toggle source
# File lib/napster/models/favorite.rb, line 74 def status(ids) get_options = { params: { ids: ids }, headers: { Authorization: 'Bearer ' + @client.access_token, 'Content-Type' => 'application/json', 'Accept-Version' => '2.0.0' } } response = @client.get('/me/favorites/status', get_options) FavoriteStatus.collection(data: response['status'], client: @client) end
Private Instance Methods
prepare_add_favorites_body(ids)
click to toggle source
# File lib/napster/models/favorite.rb, line 121 def prepare_add_favorites_body(ids) favorites_body = [] ids.each do |id| favorites_body << { id: id } end { 'favorites' => favorites_body } end
request_member_favorites(id)
click to toggle source
# File lib/napster/models/favorite.rb, line 116 def request_member_favorites(id) response = @client.get("/favorites/#{id}/members") Member.collection(data: response['members'], client: @client) end