class PandaDoc::ApiClient
This class is responsible for making HTTP requests to the PandaDoc
API.
Attributes
Public Class Methods
Source
# File lib/panda_doc/api_client.rb, line 20 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
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
Source
# File lib/panda_doc/api_client.rb, line 49 def get(path, data = {}) connection.get(normalized_path(path), **data) end
Source
# File lib/panda_doc/api_client.rb, line 53 def patch(path, data = {}) connection.patch(normalized_path(path), **data) end
Source
# File lib/panda_doc/api_client.rb, line 45 def post(path, data = {}) connection.post(normalized_path(path), **data) end
Private Instance Methods
Source
# File lib/panda_doc/api_client.rb, line 63 def normalize_path(path) Faraday::Utils.normalize_path(path) end
Source
# File lib/panda_doc/api_client.rb, line 59 def normalized_path(path) url_prefix + normalize_path(path) end