class Memphis::Client

Constants

FOREIGN_PROVIDERS

Public Class Methods

new() click to toggle source
# File lib/memphis/client.rb, line 26
def initialize
  raise DirectClientUserError, "You cannot instantiate Client class directly" if self.class == Memphis::Client

  if Memphis.api_key.nil?
    raise EmptyAPIKeyError, "If you don't already have an an account, register here: https://developer.echonest.com/account/register"
  end
end

Public Instance Methods

Private Instance Methods

get_foreign_id_hash(search_base_uri) click to toggle source
# File lib/memphis/client.rb, line 49
def get_foreign_id_hash search_base_uri
  uri = search_base_uri
  uri += "api_key=#{Memphis.api_key}"
  uri += "&id=#{@id}"
  uri += provider_params

  parse_response HTTParty.get(uri)
end
parse_response(http_response) click to toggle source
# File lib/memphis/client.rb, line 62
def parse_response http_response
  foreign_ids = {}


  # Also put the echonest artist name in there, even though
  # it's not technically a "foreign" id
  foreign_ids["echonest"] = http_response["response"]["artist"]["name"]

  http_response['response']['artist']['foreign_ids'].each do |hash|

    id_parts = hash["foreign_id"].split(':')

    provider = FOREIGN_PROVIDERS[id_parts[0]]

    foreign_id = id_parts[2]

    foreign_ids[provider] = foreign_id
  end

  foreign_ids
end
provider_params() click to toggle source
# File lib/memphis/client.rb, line 58
def provider_params
  "&bucket=id:" + FOREIGN_PROVIDERS.keys.join('&bucket=id:')
end