class Wispro::Client

Constants

PAGINATED_MODELS

Public Class Methods

new(token) click to toggle source
# File lib/wispro/client.rb, line 16
def initialize(token)
  @options = { headers: { 'Authorization' => token } }
end

Public Instance Methods

update_client(id, data) click to toggle source
# File lib/wispro/client.rb, line 33
def update_client(id, data)
  req = update_data("/clients/#{id}", body: data)
  return false unless req['status'] == 200

  req['data']
end
update_contract(id, data) click to toggle source
# File lib/wispro/client.rb, line 40
def update_contract(id, data)
  req = update_data("/contracts/#{id}", body: data)
  return false unless req['status'] == 200

  req['data']
end
update_plan(id, data) click to toggle source
# File lib/wispro/client.rb, line 47
def update_plan(id, data)
  req = update_data("/plans/#{id}", body: data)
  return false unless req['status'] == 200

  req['data']
end

Private Instance Methods

fetch_data(path, parameters = {}) click to toggle source
# File lib/wispro/client.rb, line 56
def fetch_data(path, parameters = {})
  Wispro.logger.debug "GET - #{path} - #{parameters}"
  parameters.merge!(@options)
  self.class.get(path, parameters).parsed_response
end
fetch_paginated_data(path) { |req| ... } click to toggle source
# File lib/wispro/client.rb, line 62
def fetch_paginated_data(path)
  page = 1
  results = []

  loop do
    req = fetch_data(path, query: { page: page })
    break unless req['status'] == 200

    yield req['data'] if block_given?

    results.concat(req['data'])

    break if page == req['meta']['pagination']['total_pages']

    page += 1
  end

  results
end
update_data(path, parameters = {}) click to toggle source
# File lib/wispro/client.rb, line 82
def update_data(path, parameters = {})
  Wispro.logger.debug "PUT - #{path} - #{parameters}"
  parameters.merge!(@options)
  self.class.put(path, parameters).parsed_response
end