class Amply::Client

Constants

DEFAULT_HEADERS

Public Class Methods

auth_header() click to toggle source
# File lib/amply/client.rb, line 50
def auth_header
  { Authorization: "Bearer #{@@access_token}" }
end
parse_response(resp) click to toggle source
# File lib/amply/client.rb, line 32
def parse_response(resp)
  code = resp.code.to_i

  if [301, 302].include?(code)
    return resp['location']
  elsif [401, 403].include?(code)
    raise Exceptions::APIException, resp
  elsif code == 404
    raise Exceptions::ResourcNotFoundException, resp
  elsif code == 422
    raise Exceptions::ValidationException, resp
  elsif code < 200 || code >= 300
    raise Exceptions::APIException, resp
  end

  JSON.parse(resp.body, symbolize_names: true)
end
post(path, body, options = {}) click to toggle source
# File lib/amply/client.rb, line 19
def post(path, body, options = {})
  uri = URI("#{@@url}#{path}")
  headers = [
    DEFAULT_HEADERS,
    options[:headers] || {},
    auth_header
  ].inject(&:merge)


  resp = Net::HTTP.post(uri, body.to_json, headers)
  parse_response(resp)
end
set_access_token(token) click to toggle source
# File lib/amply/client.rb, line 15
def set_access_token(token)
  @@access_token = token
end