Sha256: 6bd2598f1ea2d403910a3a877c39148ef7c0e2e17bf13b1a6639f6482ad331b9

Contents?: true

Size: 1.25 KB

Versions: 30

Compression:

Stored size: 1.25 KB

Contents

require "json"

module Brightbox
  class Token
    def self.show(config, options)
      new(config, options)
    end

    attr_accessor :config, :options

    def initialize(config, options = {})
      @config = config
      @options = options
    end

    def access_token
      config.access_token
    end

    def format(output = :text)
      output = output.to_sym

      case output
      when :curl
        curl_output
      when :json
        json_output
      when :token
        token_output
      else
        text_output
      end
    end

    def refresh_token
      config.refresh_token
    end

    private

    def api_url
      base_url = URI(config.to_fog[:brightbox_api_url]).to_s
      URI.join(base_url, "/1.0/").to_s
    end

    def curl_output
      "curl -H 'Authorization: Bearer #{access_token}' #{api_url} "
    end

    def json_output
      JSON.dump(token_data)
    end

    def text_output
      token_data.map do |key, value|
        "#{key.to_s.rjust(16)}: #{value}"
      end.join("\n")
    end

    def token_data
      data = {
        access_token: access_token,
        token_type: "Bearer"
      }
      data[:refresh_token] = refresh_token if refresh_token
      data.sort.to_h
    end

    def token_output
      access_token
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
brightbox-cli-5.0.0 lib/brightbox-cli/token.rb
brightbox-cli-5.0.0.rc2 lib/brightbox-cli/token.rb
brightbox-cli-5.0.0.rc1 lib/brightbox-cli/token.rb
brightbox-cli-5.0.0.alpha lib/brightbox-cli/token.rb
brightbox-cli-4.8.0 lib/brightbox-cli/token.rb
brightbox-cli-4.7.0 lib/brightbox-cli/token.rb
brightbox-cli-4.6.0 lib/brightbox-cli/token.rb
brightbox-cli-4.5.0 lib/brightbox-cli/token.rb
brightbox-cli-4.5.0.rc1 lib/brightbox-cli/token.rb
brightbox-cli-4.4.0 lib/brightbox-cli/token.rb
brightbox-cli-4.3.2 lib/brightbox-cli/token.rb
brightbox-cli-4.3.1 lib/brightbox-cli/token.rb
brightbox-cli-4.3.0 lib/brightbox-cli/token.rb
brightbox-cli-4.2.1 lib/brightbox-cli/token.rb
brightbox-cli-4.2.0 lib/brightbox-cli/token.rb
brightbox-cli-4.1.0 lib/brightbox-cli/token.rb
brightbox-cli-4.0.0 lib/brightbox-cli/token.rb
brightbox-cli-4.0.0.rc2 lib/brightbox-cli/token.rb
brightbox-cli-3.3.0 lib/brightbox-cli/token.rb
brightbox-cli-3.2.0 lib/brightbox-cli/token.rb