Module: ModelsLab::HTTP

Included in:
Client
Defined in:
lib/modelslab/http.rb

Instance Method Summary collapse

Instance Method Details

#connectionObject



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/modelslab/http.rb', line 15

def connection
  @connection ||= Faraday.new(url: uri_base) do |f|
    f.request :json
    f.response :raise_error
    f.use ModelsLab::MiddlewareErrors
    f.options.timeout = request_timeout
    extra_headers.each do |key, value|
      f.headers[key] = value
    end
    faraday_middleware&.call(f)
    f.adapter Faraday.default_adapter
  end
end

#json_post(path:, parameters:) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/modelslab/http.rb', line 5

def json_post(path:, parameters:)
  response = connection.post(path) do |req|
    req.headers["Content-Type"] = "application/json"
    req.body = parameters.to_json
  end
  JSON.parse(response.body)
rescue JSON::ParserError
  response.body
end