Module: RestAPIBuilder::Request::RequestOptions

Extended by:
Helpers::UrlHelper
Defined in:
lib/rest_api_builder/request/request_options.rb

Class Method Summary collapse

Methods included from Helpers::UrlHelper

full_url

Class Method Details

.compose_json_request_options(**options) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/rest_api_builder/request/request_options.rb', line 25

def compose_json_request_options(**options)
  result = compose_request_options(**options)
  headers = result[:headers]
  payload = result[:payload]

  result.merge(
    headers: headers.merge(content_type: :json),
    payload: payload && JSON.generate(payload)
  )
end

.compose_request_options(base_url:, method:, path: nil, body: nil, headers: {}, query: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rest_api_builder/request/request_options.rb', line 10

def compose_request_options(base_url:, method:, path: nil, body: nil, headers: {}, query: nil)
  if method == :get && body
    raise ArgumentError, 'GET requests do not support body'
  end

  headers = headers.merge(params: query) if query

  {
    method: method,
    url: full_url(base_url, path),
    payload: body,
    headers: headers
  }
end