module Esignatur::ApiResource

add methods that are shared for all api resources

Public Instance Methods

errors() click to toggle source
# File lib/esignatur/api_resource.rb, line 6
def errors
  @errors || []
end
last_response() click to toggle source
# File lib/esignatur/api_resource.rb, line 10
def last_response
  @last_response
end

Protected Instance Methods

api_get(relative_url, **options) click to toggle source
# File lib/esignatur/api_resource.rb, line 20
def api_get(relative_url, **options)
  make_api_request(:get, relative_url, **options)
end
api_post(relative_url, data, **options) click to toggle source
# File lib/esignatur/api_resource.rb, line 16
def api_post(relative_url, data, **options)
  make_api_request(:post, relative_url, data: data, **options)
end

Private Instance Methods

make_api_request(http_method, relative_url, **options) click to toggle source
# File lib/esignatur/api_resource.rb, line 26
def make_api_request(http_method, relative_url, **options)
  @last_response = api.public_send(http_method, relative_url, **options).tap do |response|
    @errors = []
    @errors << response.headers['x-esignatur-error']
    @errors << "Request failed with HTTP status: #{response.status_code}" if response.failed?
    @errors = @errors.reject(&:nil?)
  end
end