class PandaDoc::ApiClient
Attributes
connection[R]
url_prefix[R]
Public Class Methods
new(multipart: false)
click to toggle source
# File lib/panda_doc/api_client.rb, line 21 def initialize(multipart: false) @url_prefix = "/public/v1" @connection = Faraday.new(PandaDoc.configuration.endpoint) do |conn| if PandaDoc.configuration.api_key conn.request :authorization, "API-Key", PandaDoc.configuration.api_key else conn.request :authorization, :Bearer, PandaDoc.configuration.access_token end if multipart conn.request :multipart conn.request :url_encoded else conn.request :json end if PandaDoc.configuration.logger conn.response :logger, PandaDoc.configuration.logger, bodies: true end conn.response :json, content_type: /\bjson$/ conn.adapter Faraday.default_adapter end end
request(verb, path, data = {})
click to toggle source
# File lib/panda_doc/api_client.rb, line 7 def request(verb, path, data = {}) if file = data.delete(:file) data = { file: file, data: JSON.generate(data) } end new(multipart: !!file).public_send(verb, path, **data) end
Public Instance Methods
get(path, data = {})
click to toggle source
# File lib/panda_doc/api_client.rb, line 50 def get(path, data = {}) connection.get(normalized_path(path), **data) end
post(path, data = {})
click to toggle source
# File lib/panda_doc/api_client.rb, line 46 def post(path, data = {}) connection.post(normalized_path(path), **data) end
Private Instance Methods
normalize_path(path)
click to toggle source
# File lib/panda_doc/api_client.rb, line 60 def normalize_path(path) Faraday::Utils.normalize_path(path) end
normalized_path(path)
click to toggle source
# File lib/panda_doc/api_client.rb, line 56 def normalized_path(path) url_prefix + normalize_path(path) end