Sha256: c4db0cd8389eb17a161f306ef84f9cc2c38f7e97199f58521d6f72298914b471

Contents?: true

Size: 845 Bytes

Versions: 5

Compression:

Stored size: 845 Bytes

Contents

module Lifen
  class UserAuthenticatedClient < Client

    def initialize(token)
      @token = token
    end

    attr_reader :token

    def request(mode, url, params = {})
      response = faraday_client.send(mode) do |req|
        req.url url

        req.headers['x-auth-token']     = token
        req.headers['Content-Type']     = "application/json"

        req.body = JSON.generate(params)
      end

      raise UnauthorizedError, "Token is not valid" if response.status == 401
      raise Error, "Action is forbidden" if response.status == 403
      raise InvalidParamsError, "Invalid params" if response.status == 400

      json = JSON.parse response.body

      json
    end

    def post(url, params = {})
      request(:post, url, params)
    end

    def get(url, params = {})
      request(:get, url, params)
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lifen-0.1.4 lib/lifen/user_authenticated_client.rb
lifen-0.1.3 lib/lifen/user_authenticated_client.rb
lifen-0.1.2 lib/lifen/user_authenticated_client.rb
lifen-0.1.1 lib/lifen/user_authenticated_client.rb
lifen-0.1.0 lib/lifen/user_authenticated_client.rb