class RackOnLambda::Adapters::Responses::RestApiResponse
Attributes
body[R]
headers[R]
status[R]
Public Class Methods
new(status, headers, body)
click to toggle source
# File lib/rack_on_lambda/adapters/responses/rest_api_response.rb, line 7 def initialize(status, headers, body) @status = status @headers = headers @body = stringify_body(body) end
Public Instance Methods
as_json(_options = {})
click to toggle source
# File lib/rack_on_lambda/adapters/responses/rest_api_response.rb, line 13 def as_json(_options = {}) { 'statusCode' => status, 'headers' => headers, 'isBase64Encoded' => base64_encoded?, 'body' => body } end
Private Instance Methods
base64_encoded?()
click to toggle source
# File lib/rack_on_lambda/adapters/responses/rest_api_response.rb, line 26 def base64_encoded? return @base64_encoded if defined?(@base64_encoded) encoding = canonical_headers.fetch('content-transfer-encoding', '') @base64_encoded = encoding.casecmp('binary').zero? end
canonical_headers()
click to toggle source
# File lib/rack_on_lambda/adapters/responses/rest_api_response.rb, line 33 def canonical_headers @canonical_headers ||= headers.transform_keys do |key| key.to_s.downcase end end
stringify_body(body)
click to toggle source
# File lib/rack_on_lambda/adapters/responses/rest_api_response.rb, line 39 def stringify_body(body) result = '' body.each { |chunk| result += chunk.to_s } base64_encoded? ? Base64.strict_encode64(result) : result end