class AudioAddict::API

Attributes

network[RW]

Public Class Methods

new(network) click to toggle source
# File lib/audio_addict/api.rb, line 13
def initialize(network)
  @network = network
end

Public Instance Methods

basic_auth() click to toggle source
# File lib/audio_addict/api.rb, line 42
def basic_auth
  http.basic_auth "streams", "diradio"
end
delete(path, args = {}) click to toggle source
# File lib/audio_addict/api.rb, line 34
def delete(path, args = {})
  response http.delete "/#{network}/#{path}", headers: headers, body: args
end
get(path, args = {}) click to toggle source
# File lib/audio_addict/api.rb, line 26
def get(path, args = {})
  response http.get "/#{network}/#{path}", headers: headers, body: args
end
listen_key() click to toggle source
# File lib/audio_addict/api.rb, line 56
def listen_key
  Config.listen_key
end
logged_in?() click to toggle source
# File lib/audio_addict/api.rb, line 38
def logged_in?
  session_key and listen_key
end
login(username, password) click to toggle source
# File lib/audio_addict/api.rb, line 17
def login(username, password)
  session = session(username, password)
  Config.session_key = session["key"]
  Config.listen_key = session["member"]["listen_key"]
  Config.email = session["member"]["email"]
  Config.premium = session["member"]["user_type"] == "premium"
  Config.save
end
post(path, args = {}) click to toggle source
# File lib/audio_addict/api.rb, line 30
def post(path, args = {})
  response http.post "/#{network}/#{path}", headers: headers, body: args
end
session(username, password) click to toggle source
# File lib/audio_addict/api.rb, line 46
def session(username, password)
  params = { member_session: { username: username, password: password } }
  basic_auth
  response http.post "/#{network || "di"}/member_sessions", body: params
end
session_key() click to toggle source
# File lib/audio_addict/api.rb, line 52
def session_key
  Config.session_key
end

Private Instance Methods

headers() click to toggle source
# File lib/audio_addict/api.rb, line 71
def headers
  { "X-Session-Key" => session_key }
end
http() click to toggle source
# File lib/audio_addict/api.rb, line 67
def http
  @http ||= self.class
end
response(httparty_response) click to toggle source
# File lib/audio_addict/api.rb, line 62
def response(httparty_response)
  raise APIError.new httparty_response unless httparty_response.success?
  JSON.parse httparty_response.body
end