Sha256: 5b75849109d254a58b6b9bc7dd96e530bf77413d52d0093c1042c95cbb5269dc

Contents?: true

Size: 1.29 KB

Versions: 17

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Bs2Api
  module Request
    class Auth
      class << self
        def token
          Bs2Api.configuration.valid?

          response = create_session

          raise Bs2Api::Errors::Unauthorized, response["error_description"] if response.unauthorized?
          raise Bs2Api::Errors::BadRequest, response["error_description"] if response.bad_request?
          raise Bs2Api::Errors::ServerError, response.body if !response.success?

          response["access_token"]
        end

        private
          def create_session
            HTTParty.post(
              auth_url,
              headers: headers,
              body: body,
              basic_auth: {
                username: Bs2Api.configuration.client_id,
                password: Bs2Api.configuration.client_secret
              }
            )
          end

          def headers
            {
              "Content-Type": "application/x-www-form-urlencoded",
              "Accept": "application/json"
            }
          end

          def body
            {
              grant_type: "client_credentials",
              scope: "pix.write pix.read"
            }.to_query
          end

          def auth_url
            "#{Bs2Api.endpoint}/auth/oauth/v2/token"
          end
     end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
bs2_api-1.2.2 lib/bs2_api/request/auth.rb
bs2_api-1.2.1 lib/bs2_api/request/auth.rb
bs2_api-1.2.0 lib/bs2_api/request/auth.rb
bs2_api-1.1.7 lib/bs2_api/request/auth.rb
bs2_api-1.1.6 lib/bs2_api/request/auth.rb
bs2_api-1.1.5 lib/bs2_api/request/auth.rb
bs2_api-1.1.4 lib/bs2_api/request/auth.rb
bs2_api-1.1.3 lib/bs2_api/request/auth.rb
bs2_api-1.1.2 lib/bs2_api/request/auth.rb
bs2_api-1.1.1 lib/bs2_api/request/auth.rb
bs2_api-1.1.0 lib/bs2_api/request/auth.rb
bs2_api-1.0.3 lib/bs2_api/request/auth.rb
bs2_api-1.0.2 lib/bs2_api/request/auth.rb
bs2_api-1.0.1 lib/bs2_api/request/auth.rb
bs2_api-1.0.0 lib/bs2_api/request/auth.rb
bs2_api-0.4.0 lib/bs2_api/request/auth.rb
bs2_api-0.3.4 lib/bs2_api/request/auth.rb