module PensioAPI::Mixins::RequestDefaults

Constants

HEADERS

Public Class Methods

included(base) click to toggle source
# File lib/pensio_api/mixins/request_defaults.rb, line 4
def self.included(base)
  base.send(:include, HTTParty)
  base.send(:attr_reader, :response)
  base.send(:attr_accessor, :credentials)
end
new(path, options={}) click to toggle source
# File lib/pensio_api/mixins/request_defaults.rb, line 15
def initialize(path, options={})
  @credentials = options.delete(:credentials)
  @credentials = PensioAPI::Credentials.for(@credentials.to_sym) unless @credentials.nil? || @credentials.is_a?(PensioAPI::Credentials)
  @credentials ||= PensioAPI::Credentials.default_credentials if PensioAPI::Credentials.credentials_mode == :default || PensioAPI::Credentials.allow_defaults
  raise Errors::NoCredentials unless @credentials && @credentials.supplied?

  self.class.base_uri @credentials.base_uri unless self.class.base_uri

  @response = self.class.post(path, request_options(options))
end

Private Instance Methods

auth() click to toggle source
# File lib/pensio_api/mixins/request_defaults.rb, line 39
def auth
  {
    username: @credentials.username,
    password: @credentials.password
  }
end
request_options(options) click to toggle source
# File lib/pensio_api/mixins/request_defaults.rb, line 28
def request_options(options)
  timeout = options.delete(:timeout)
  {
    basic_auth: auth,
    headers: (options.delete(:headers) || {}).merge(HEADERS),
    body: options
  }.tap do |request_options|
    request_options[:timeout] = timeout if timeout
  end
end