class Esignatur::Api

all raw http requests are made using Api instance

Constants

DEFAULT_BASE_URL

Attributes

api_key[R]
base_url[R]

Public Class Methods

new(api_key:, base_url: DEFAULT_BASE_URL) click to toggle source
# File lib/esignatur/api.rb, line 13
def initialize(api_key:, base_url: DEFAULT_BASE_URL)
  @api_key = api_key.to_s
  @base_url = base_url
end

Public Instance Methods

get(relative_url, headers: {}) click to toggle source
# File lib/esignatur/api.rb, line 22
def get(relative_url, headers: {})
  make_request(:get, relative_url, extra_headers: headers)
end
post(relative_url, data:, headers: {}) click to toggle source
# File lib/esignatur/api.rb, line 18
def post(relative_url, data:, headers: {})
  make_request(:post, relative_url, data: data, extra_headers: headers)
end

Private Instance Methods

default_headers() click to toggle source
# File lib/esignatur/api.rb, line 39
def default_headers
  {
    'X-eSignatur-Id' => api_key,
    'Accept' => 'application/json',
    'Content-Type' => 'application/json'
  }
end
make_request(http_method, relative_url, extra_headers: {}, data: nil) click to toggle source
# File lib/esignatur/api.rb, line 30
def make_request(http_method, relative_url, extra_headers: {}, data: nil)
  url = URI.join(base_url, relative_url).to_s

  headers = default_headers.merge(extra_headers)
  raw_response = Faraday.public_send(http_method, url, data&.to_json, headers)
  request = RequestInfo.new(http_method, url, headers)
  Esignatur::Api::Response.new(raw_response, request: request)
end