Sha256: 9518bc0fcadadfdfbbd75d844f3c806fa3e9efa4e67f3f8a9c49dac7491aa392
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module SdrClient # The connection to the server class Connection include Dry::Monads[:result] # @param [Integer] read_timeout the value in seconds to set the read timeout def initialize(url:, token: Credentials.read, read_timeout: 180) @url = url @token = token @request_options = { read_timeout: read_timeout } end def connection @connection ||= Faraday.new(url: url, request: request_options) do |conn| conn.authorization :Bearer, token conn.adapter :net_http end end # This is only available to certain blessed accounts (argo) as it gives the # token that allows you to act as any other user. Thus the caller must authenticate # the user (e.g. using Shibboleth) before calling this method with their email address. # @param [String] the email address of the person to proxy to. # @return [Result] the token for the account def proxy(to) response = connection.post("/v1/auth/proxy?to=#{to}") case response.status when 200 Success(response.body) else Failure("Status: #{response.status}\n#{response.body}") end end delegate :put, :post, :get, to: :connection private attr_reader :url, :token, :request_options end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sdr-client-0.61.0 | lib/sdr_client/connection.rb |