class Napster::Models::Member

Member model

Constants

ATTRIBUTES

Attributes

client[RW]

Public Class Methods

collection(arg) click to toggle source
# File lib/napster/models/member.rb, line 45
def self.collection(arg)
  arg[:data].map do |member|
    Member.new(data: member, client: @client)
  end
end
new(arg) click to toggle source
# File lib/napster/models/member.rb, line 36
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

chart(params) click to toggle source
# File lib/napster/models/member.rb, line 89
def chart(params)
  request_chart(@id, params)
end
chart_for(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 93
def chart_for(guid, params)
  request_chart(guid, params)
end
favorite_playlists(params) click to toggle source
# File lib/napster/models/member.rb, line 81
def favorite_playlists(params)
  request_favorite_playlists(@id, params)
end
favorite_playlists_for(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 85
def favorite_playlists_for(guid, params)
  request_favorite_playlists(guid, params)
end
favorites(params) click to toggle source
# File lib/napster/models/member.rb, line 73
def favorites(params)
  request_favorites(@id, params)
end
favorites_for(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 77
def favorites_for(guid, params)
  request_favorites(guid, params)
end
find(arg) click to toggle source

Top level methods

# File lib/napster/models/member.rb, line 53
def find(arg)
  response = @client.get("/members/#{arg}")
  Member.new(data: response['members'].first, client: @client)
end
playlists(params) click to toggle source

TODO: .avatar

# File lib/napster/models/member.rb, line 65
def playlists(params)
  request_playlists(@id, params)
end
playlists_for(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 69
def playlists_for(guid, params)
  request_playlists(guid, params)
end
screenname_available?(screenname) click to toggle source
# File lib/napster/models/member.rb, line 58
def screenname_available?(screenname)
  response = @client.get("/screenname/#{screenname}")
  response['screenName'].nil?
end

Private Instance Methods

request_chart(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 117
def request_chart(guid, params)
  options = { params: params }
  response = @client.get("/members/#{guid}/charts", options)
  Chart.collection(data: response['charts'], client: @client)
end
request_favorite_playlists(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 111
def request_favorite_playlists(guid, params)
  options = { params: params }
  response = @client.get("/members/#{guid}/favorites/playlists", options)
  Playlist.collection(data: response['playlists'], client: @client)
end
request_favorites(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 105
def request_favorites(guid, params)
  options = { params: params }
  response = @client.get("/members/#{guid}/favorites", options)
  Favorite.collection(data: response['favorites'], client: @client)
end
request_playlists(guid, params) click to toggle source
# File lib/napster/models/member.rb, line 99
def request_playlists(guid, params)
  options = { params: params }
  response = @client.get("/members/#{guid}/library/playlists", options)
  Playlist.collection(data: response['playlists'], client: @client)
end