class Nehm::HTTPClient
Constants
- CLIENT_ID
SoundCloud API client ID
Public Instance Methods
get(api_version, uri_string)
click to toggle source
# File lib/nehm/http_client.rb, line 19 def get(api_version, uri_string) uri = form_uri(api_version, uri_string) get_hash(uri) end
resolve(url)
click to toggle source
# File lib/nehm/http_client.rb, line 24 def resolve(url) response = get(1, "/resolve?url=#{url}") errors = response['errors'] if errors if errors[0]['error_message'] =~ /404/ raise Status404 else raise ConnectionError # HACK end end get_hash(response['location']) if response['status'] =~ /302/ end
Private Instance Methods
form_uri(api_version, uri_string)
click to toggle source
# File lib/nehm/http_client.rb, line 41 def form_uri(api_version, uri_string) uri = case api_version when 1 'https://api.soundcloud.com' when 2 'https://api-v2.soundcloud.com' end uri += uri_string uri += "&client_id=#{CLIENT_ID}" if api_version == 1 uri end
get_hash(uri)
click to toggle source
# File lib/nehm/http_client.rb, line 55 def get_hash(uri) uri = URI.parse(URI.escape(uri)) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true res = http.get(uri.request_uri) JSON.parse(res.body) end