Sha256: 5a5706bb8b150179a73083bcba17169754a520113615f1e7f85aa3e76eddf857

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 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

2 entries across 2 versions & 1 rubygems

Version Path
pirsch_api-0.1.1 lib/pirsch_api/resources/token.rb
pirsch_api-0.1.0 lib/pirsch_api/resources/token.rb