module Qiita::Team::Services::Hooks::Concerns::HttpClient

Constants

DEFAULT_ADAPTER
DEFAULT_HEADERS
TIMEOUT

Private Instance Methods

adapter() click to toggle source
# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 65
def adapter
  DEFAULT_ADAPTER
end
faraday_parameters() click to toggle source
# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 25
def faraday_parameters
  {
    headers: DEFAULT_HEADERS,
    request: {
      open_timeout: TIMEOUT,
      timeout: TIMEOUT,
    },
  }
end
http_client() click to toggle source

@return [Faraday::Connection]

# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 18
def http_client
  @http_client ||= Faraday.new(faraday_parameters) do |faraday|
    faraday.request request_format
    faraday.adapter adapter
  end
end
http_post(request_body, headers = {}) click to toggle source

@param request_body [Hash, Array] request payload. @return [Faraday::Response] @raise [Qiita::Team::Services::DeliveryError]

# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 43
def http_post(request_body, headers = {})
  resp = http_client.post do |req|
    req.url url
    req.body = request_body
    request_headers.merge(headers).each_pair do |key, value|
      req.headers[key] = value
    end
  end
  fail DeliveryError unless resp.success?
  resp
end
request_format() click to toggle source

@return [Symbol] the request format type, ‘:json` or `:url_encoded`

# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 56
def request_format
  :json
end
request_headers() click to toggle source

@return [Hash{String => String}]

# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 61
def request_headers
  {}
end
url() click to toggle source

@return [String]

# File lib/qiita/team/services/hooks/concerns/http_client.rb, line 36
def url
  fail NotImplementedError
end