class Kraftwerk::ResponseFormatter

Public Instance Methods

call(response:, params:) click to toggle source
# File lib/kraftwerk/response_formatter.rb, line 5
def call(response:, params:)
  case response
  when Kraftwerk::Response
    body = response.body_raw ? response.body : to_json(response.body)
    code = code_or_default(response.code, params)
    headers = response.headers
    [code, headers, [body]]
  else
    body = JSON.dump(response)
    [code_or_default(nil, params), {}, [body]]
  end
end

Private Instance Methods

code_or_default(code, params) click to toggle source
# File lib/kraftwerk/response_formatter.rb, line 24
def code_or_default(code, params)
  return code unless code.nil?

  method = params.env['REQUEST_METHOD']
  case method
  when 'GET' then 200
  when 'POST' then 201
  when 'PUT', 'PATCH' then 204
  when 'DELETE' then 204
  else 200
  end
end
to_json(response) click to toggle source
# File lib/kraftwerk/response_formatter.rb, line 20
def to_json(response)
  JSON.dump(response)
end