Sha256: 6529922a5106664049d014336397210e14677dae7bb930f737530eeae0bba526
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
module PensioAPI module Mixins module RequestDefaults def self.included(base) base.send(:include, HTTParty) base.send(:attr_reader, :response) base.send(:attr_accessor, :credentials) end HEADERS = { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' } 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 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 def auth { username: @credentials.username, password: @credentials.password } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pensio_api-0.3.3 | lib/pensio_api/mixins/request_defaults.rb |
pensio_api-0.3.2 | lib/pensio_api/mixins/request_defaults.rb |