module Veeqo::Request::ClassMethods

Public Instance Methods

delete(path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 51
def delete(path, params = {})
  response = raw_request(:delete, path, params)
  return response.body if response.body.empty?
  build_response_object response
end
get(path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 46
def get(path, params = {})
  response = raw_request(:get, path, params)
  build_response_object response
end
post(path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 57
def post(path, params = {})
  response = raw_request(:post, path, params)
  build_response_object response
end
put(path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 62
def put(path, params = {})
  response = raw_request(:put, path, params)
  build_response_object response
end
quantity(path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 67
def quantity(path, params = {})
  response = raw_request(:get, path, params)
  response.headers['X-Total-Count'].to_i
end
raw_request(method, path, params = {}) click to toggle source
# File lib/veeqo/request.rb, line 72
def raw_request(method, path, params = {})
  client = params.delete(:connection) || Veeqo.api
  client.send(method, path.to_s, params)
end

Private Instance Methods

build_response_object(response) click to toggle source
# File lib/veeqo/request.rb, line 79
def build_response_object(response)
  json = parse response.body
  if json.is_a? Array
    json.map { |obj| new obj }
  else
    new json
  end
end
parse(json) click to toggle source
# File lib/veeqo/request.rb, line 88
def parse(json)
  return [] if json.empty?
  Oj.load(json, symbol_keys: true)
end