Sha256: 4de3b5f94003aec7db031eaa623c8e912d56fdc3bc2c865f50aedea0c5af74aa

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module Roqua
  module CoreApi
    module Sessions
      class OAuthSession
        attr_reader :access_token
        attr_reader :server_url

        def initialize(access_token, server_url = ENV["CORE_URL"])
          @access_token = access_token
          @server_url = server_url
        end

        def me
          response = get('/me')
          fail response.inspect unless response.code == 200
          response["me"]
        end

        def get(url, params = {})
          HTTParty.get(full_url_for(url), headers: headers, query: params)
        end

        def post(url, params = {})
          HTTParty.post(full_url_for(url), headers: headers, body: params)
        end

        def put(url, params = {})
          HTTParty.put(full_url_for(url), headers: headers, body: params)
        end

        private

        def full_url_for(url)
          server_url + base_url + url + ".json"
        end

        def base_url
          "/api/v1"
        end

        def headers
          {"Authorization" => "Bearer #{access_token}"}
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roqua-core-api-0.0.7 lib/roqua/core_api/sessions/oauth_session.rb
roqua-core-api-0.0.6 lib/roqua/core_api/sessions/oauth_session.rb