class Prodigi::Resource

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/prodigi/resource.rb, line 5
def initialize(client) 
  @client = client
end

Public Instance Methods

default_headers() click to toggle source
# File lib/prodigi/resource.rb, line 29
def default_headers
  { "X-API-Key": client.api_key }
end
delete_request(url, params: {}, headers: {}) click to toggle source
# File lib/prodigi/resource.rb, line 25
def delete_request(url, params: {}, headers: {})
  handle_response client.connection.delete(url, params, default_headers.merge(headers))
end
get_request(url, params: {}, headers: {}) click to toggle source
# File lib/prodigi/resource.rb, line 9
def get_request(url, params: {}, headers: {})
  handle_response client.connection.get(url, params, default_headers.merge(headers))
end
handle_response(response) click to toggle source
# File lib/prodigi/resource.rb, line 33
def handle_response(response)
  message = response.body["statusText"]
  case response.status
  when 400
    raise Error, "Bad request: the request is malformed in some manner. #{message}"
  when 401
    raise Error, "Unauthorised: your credentials are missing or incorrect. #{message}"
  when 403
    raise Error, message
  when 404
    raise Error, "Not found: the resource does not exist (or does not exist in your account). #{message}"
  when 429
    raise Error, message
  when 500
    raise Error, "Internal server error: Please contact support@prodigi.com. #{message}"
  end

  response
end
patch_request(url, body:, headers: {}) click to toggle source
# File lib/prodigi/resource.rb, line 17
def patch_request(url, body:, headers: {})
  handle_response client.connection.patch(url, body, default_headers.merge(headers))
end
post_request(url, body:, headers: {}) click to toggle source
# File lib/prodigi/resource.rb, line 13
def post_request(url, body:, headers: {})
  handle_response client.connection.post(url, body, default_headers.merge(headers))
end
put_request(url, body:, headers: {}) click to toggle source
# File lib/prodigi/resource.rb, line 21
def put_request(url, body:, headers: {})
  handle_response client.connection.put(url, body, default_headers.merge(headers))
end