Sha256: 5456186d9b6e6d475e8280666bb69bb8616fe97baed94e482bb4a555b9c92bd7

Contents?: true

Size: 926 Bytes

Versions: 10

Compression:

Stored size: 926 Bytes

Contents

require 'faraday'
require 'faraday-http-cache'

module RailsSso
  class Client
    def initialize(url, &block)
      @connection = Faraday.new(url, &block)
    end

    def token!(token)
      @token = token

      self
    end

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

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

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

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

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

    private

    attr_reader :connection, :token

    def request(verb, url, params = {})
      connection.send(verb) do |req|
        req.headers['Authorization'] = "Bearer #{token}"
        req.headers['Content-Type'] = 'application/json'

        req.url(url)
        req.body = params.to_json
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rails_sso-0.6.1 lib/rails_sso/client.rb
rails_sso-0.6.0 lib/rails_sso/client.rb
rails_sso-0.5.0 lib/rails_sso/client.rb
rails_sso-0.4.0 lib/rails_sso/client.rb
rails_sso-0.3.5 lib/rails_sso/client.rb
rails_sso-0.3.4 lib/rails_sso/client.rb
rails_sso-0.3.3 lib/rails_sso/client.rb
rails_sso-0.3.2 lib/rails_sso/client.rb
rails_sso-0.3.1 lib/rails_sso/client.rb
rails_sso-0.3.0 lib/rails_sso/client.rb