class Etwin::Client::HttpEtwinClient

HTTP Etwin client interface

Public Class Methods

new(base_uri) click to toggle source
# File lib/etwin/client/http_etwin_client.rb, line 16
def initialize(base_uri)
  # @type [URI::HTTP]
  @base_uri = T.let(base_uri.freeze, URI::HTTP)
  # @type [Faraday::Connection]
  @client = T.let(Faraday::Connection.new.freeze, Faraday::Connection)
  freeze
end

Public Instance Methods

get_user(auth, user_id) click to toggle source
# File lib/etwin/client/http_etwin_client.rb, line 25
def get_user(auth, user_id)
  uri = resolve(['users', user_id.to_s])
  # @type [Faraday::Request] req
  # @type [Faraday::Response] res
  res = @client.get uri do |req|
    req.headers['Authorization'] = auth.authorization_header
  end
  Etwin::User::User.from_json res.body
end

Private Instance Methods

resolve(segments) click to toggle source
# File lib/etwin/client/http_etwin_client.rb, line 38
def resolve(segments)
  T.cast(@base_uri.merge("api/v1/#{ segments * '/'}"), URI::HTTP)
end