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