Sha256: 538673da8050fbb9b370d1d373cdb0098cf37f371750a4d7513495042e178acb

Contents?: true

Size: 953 Bytes

Versions: 4

Compression:

Stored size: 953 Bytes

Contents

module BambooId
  class ApiKeyFetcher
    attr_reader :error

    def initialize(code:, subdomain:)
      self.code      = code
      self.subdomain = subdomain
      self.error     = nil
    end

    def fetch
      unless access_token_request.successful?
        self.error = "Could not get access token: #{access_token_request.error}"
        return false
      end

      unless api_key_request.successful?
        self.error = "Could not get API key."
        return false
      end

      api_key_request.key
    end


    private

    attr_accessor :code, :subdomain
    attr_writer :error

    def access_token_request
      @access_token_request ||= Requests::AccessTokenRequest.new(
        temporary_code: code,
        subdomain: subdomain
      )
    end

    def api_key_request
      @api_key_request ||= Requests::ApiKeyRequest.new(
        id_token: access_token_request.id_token,
        subdomain: subdomain
      )
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bamboo-id-0.1.3 lib/bamboo_id/api_key_fetcher.rb
bamboo-id-0.1.2 lib/bamboo_id/api_key_fetcher.rb
bamboo-id-0.1.1 lib/bamboo_id/api_key_fetcher.rb
bamboo-id-0.1.0 lib/bamboo_id/api_key_fetcher.rb