Class: Sevendigital::ArtistManager

Inherits:
Manager
  • Object
show all
Defined in:
lib/sevendigital/management/artist_manager.rb

Overview

provides access to Artist related API methods (artist/*)

Instance Method Summary collapse

Methods inherited from Manager

#initialize

Constructor Details

This class inherits a constructor from Sevendigital::Manager

Instance Method Details

#browse(letter, options = {}) ⇒ Array<Artist>

calls artist/browse API method and returns Artist array

Parameters:

  • letter (String)

    the letter(s) returned artist names should artists

  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



71
72
73
74
# File 'lib/sevendigital/management/artist_manager.rb', line 71

def browse(letter, options={})
 api_response = @api_client.make_api_request(:GET, "artist/browse", {:letter => letter}, options)
 @api_client.artist_digestor.list_from_xml_doc(api_response.item_xml("artists"))
end

#get_chart(options = {}) ⇒ Object

calls artist/chart API method and returns Artist array

Parameters:

  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc



79
80
81
82
# File 'lib/sevendigital/management/artist_manager.rb', line 79

def get_chart(options={})
 api_response = @api_client.make_api_request(:GET, "artist/chart", {}, options)
 @api_client.chart_item_digestor.list_from_xml_doc(api_response.item_xml("chart"))
end

#get_details(artist_id, options = {}) ⇒ Artist

calls artist/details API method and returns Artist with populated details

Parameters:

  • artist_id (Integer)
  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



11
12
13
14
# File 'lib/sevendigital/management/artist_manager.rb', line 11

def get_details(artist_id, options={})
  api_response = @api_client.make_api_request(:GET, "artist/details", {:artistId => artist_id}, options)
  @api_client.artist_digestor.from_xml_doc(api_response.item_xml("artist"))
end

#get_releases(artist_id, options = {}) ⇒ [Artist]

calls artist/releases API method and returns Release array

Parameters:

  • artist_id (Integer)
  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



21
22
23
24
# File 'lib/sevendigital/management/artist_manager.rb', line 21

def get_releases(artist_id, options={})
  api_response = @api_client.make_api_request(:GET, "artist/releases", {:artistId => artist_id}, options)
  @api_client.release_digestor.list_from_xml_doc(api_response.item_xml("releases"))
end

#get_similar(artist_id, options = {}) ⇒ Array<Artist>

calls artist/similar API method and returns Artist array

Parameters:

  • artist_id (Integer)
  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



41
42
43
44
# File 'lib/sevendigital/management/artist_manager.rb', line 41

def get_similar(artist_id, options={})
  api_response = @api_client.make_api_request(:GET, "artist/similar", {:artistId => artist_id}, options)
  @api_client.artist_digestor.list_from_xml_doc(api_response.item_xml("artists"))
end

#get_tags(artist_id, options = {}) ⇒ Array<Tag>

calls artist/tags API method and returns Tag array

Parameters:

  • artist_id (Integer)
  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



89
90
91
92
# File 'lib/sevendigital/management/artist_manager.rb', line 89

def get_tags(artist_id, options={})
  api_response = @api_client.make_api_request(:GET, "artist/tags", {:artistId => artist_id}, options)
  @api_client.tag_digestor.list_from_xml_doc(api_response.item_xml("tags"))
end

#get_top_by_tag(tags, options = {}) ⇒ Array<Artist>

calls artist/byTag/top API method and returns Artist array

Parameters:

  • tags (String)

    tag or comma separated list of tags

  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



51
52
53
54
# File 'lib/sevendigital/management/artist_manager.rb', line 51

def get_top_by_tag(tags, options={})
  api_response = @api_client.make_api_request(:GET, "artist/byTag/top", {:tags => tags}, options)
  @api_client.artist_digestor.nested_list_from_xml_doc(api_response.item_xml("taggedResults"), :taggedItem, :artist)
end

#get_top_tracks(artist_id, options = {}) ⇒ Array<Track>

calls artist/toptracks API method and returns Track array

Parameters:

  • artist_id (Integer)
  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



31
32
33
34
# File 'lib/sevendigital/management/artist_manager.rb', line 31

def get_top_tracks(artist_id, options={})
  api_response = @api_client.make_api_request(:GET, "artist/topTracks", {:artistId => artist_id}, options)
  @api_client.track_digestor.list_from_xml_doc(api_response.item_xml("tracks"))
end

#search(query, options = {}) ⇒ Array<Artist>

calls artist/search API method and returns Artist array

Parameters:

  • query (String)

    search query

  • options (Hash) (defaults to: {})

    optional hash of additional API parameters, e.g. page_size => 50, etc

Returns:



61
62
63
64
# File 'lib/sevendigital/management/artist_manager.rb', line 61

def search(query, options={})
 api_response = @api_client.make_api_request(:GET, "artist/search", {:q => query}, options)
 @api_client.artist_digestor.nested_list_from_xml_doc(api_response.item_xml("searchResults"), :searchResult, :artist)
end