class DiasporaFederation::HttpClient

A wrapper for {github.com/lostisland/faraday Faraday}

@see Discovery::Discovery @see Federation::Fetcher

Public Class Methods

connection() click to toggle source

Gets the Faraday connection

@return [Faraday::Connection] the response

# File lib/diaspora_federation/http_client.rb, line 23
def self.connection
  create_default_connection unless @connection
  @connection.dup
end
get(uri) click to toggle source

Perform a GET request

@param [String] uri the URI @return [Faraday::Response] the response

# File lib/diaspora_federation/http_client.rb, line 16
def self.get(uri)
  connection.get(uri)
end

Private Class Methods

create_default_connection() click to toggle source
# File lib/diaspora_federation/http_client.rb, line 28
                     def self.create_default_connection
  options = {
    request: {timeout: DiasporaFederation.http_timeout},
    ssl:     {ca_file: DiasporaFederation.certificate_authorities}
  }

  @connection = Faraday::Connection.new(options) do |builder|
    builder.use Faraday::FollowRedirects::Middleware, limit: DiasporaFederation.http_redirect_limit

    builder.adapter Faraday.default_adapter
  end

  @connection.headers["User-Agent"] = DiasporaFederation.http_user_agent
end