Sha256: 33400b28f3d430a803035274b8ae048b5718debfa17e0969e5db389eb4032e13

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module PirschApi
  
  class TokenResource

    def initialize(client_id, client_secret)
      @client_id     = client_id
      @client_secret = client_secret
    end
    
    def request_url
      "token"
    end

    def request_body
      {
        "client_id" => @client_id,
        "client_secret" => @client_secret
      }.to_json
    end

    def parse_response(body)
      puts "[Pirsch API] Token received"
      Token.new JSON.parse(body)
    end

    def run
      uri = URI.parse "#{PirschApi::Client::BASE_URL}/#{request_url}"
      puts "[Pirsch API] Requesting Token..."
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE
      
      header = { 'Content-Type': 'text/json' }
      request = Net::HTTP::Post.new(uri.request_uri, header)
      request.body = request_body
      
      response = http.request(request)

      raise Error.new "Token request failed. (#{response.body})" unless response.code == "200"
      
      parse_response(response.body)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pirsch_api-0.0.5 lib/pirsch_api/resources/token.rb
pirsch_api-0.0.4 lib/pirsch_api/resources/token.rb
pirsch_api-0.0.3 lib/pirsch_api/resources/token.rb
pirsch_api-0.0.2 lib/pirsch_api/resources/token.rb