Sha256: 7f50e914bc9f5160426a23aff8075a2002fee61da5820fb19e11d13f39313a59
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 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) { basic_auth: auth, headers: (options.delete(:headers) || {}).merge(HEADERS), body: options } end def auth { username: @credentials.username, password: @credentials.password } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pensio_api-0.3.1 | lib/pensio_api/mixins/request_defaults.rb |