Sha256: da76c2d0be54ee87d58dddd453e362b53c643201e99e82307be407fc8ba22e29

Contents?: true

Size: 1.6 KB

Versions: 6

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require 'signet/oauth_2/client'

module Spearly
  module Auth
    class Authorizer
      def initialize(params)
        @params = params
        @client = initialize_client
      end

      def method_missing(name, *args)
        @client.send(name, *args)
      rescue Signet::AuthorizationError
        raise Spearly::Auth::AuthorizationError
      end

      private

      def initialize_client
        Faraday.default_connection_options = {
          headers: {
            'Accept' => 'application/vnd.spearly.v2+json'
          }
        }

        client = ::Signet::OAuth2::Client.new
        client.client_id = @params[:client_id] || @params['client_id']
        client.client_secret = @params[:client_secret] || @params['client_secret']
        client.code = @params[:code] || @params['code']
        client.grant_type = @params[:grant_type] || @params['grant_type']
        client.authorization_uri = "#{ENV['SPEARLY_API_URL']}/oauth/authorize"
        client.token_credential_uri = "#{ENV['SPEARLY_API_URL']}/oauth/token"
        client.redirect_uri = @params[:redirect_uri] || @params['redirect_uri']

        client.access_token = @params[:access_token] || @params['access_token']
        client.refresh_token = @params[:refresh_token] || @params['refresh_token']
        client.id_token = @params[:id_token] || @params['id_token']
        client.expires_in = @params[:expires_in] || @params['expires_in']
        client.issued_at = @params[:issued_at] || @params['issued_at']
        client.expires_at = @params[:expires_at] || @params['expires_at']

        client
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spearly-sdk-ruby-0.8.0 lib/spearly/auth/authorizer.rb
spearly-sdk-ruby-0.7.0 lib/spearly/auth/authorizer.rb
spearly-sdk-ruby-0.6.0 lib/spearly/auth/authorizer.rb
spearly-sdk-ruby-0.5.0 lib/spearly/auth/authorizer.rb
spearly-sdk-ruby-0.4.0 lib/spearly/auth/authorizer.rb
spearly-sdk-ruby-0.3.2 lib/spearly/auth/authorizer.rb