class Apiphobic::Responses::TransformJsonApi
Attributes
body[RW]
headers[RW]
status[RW]
Public Class Methods
new(status, headers, body)
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 10 def initialize(status, headers, body) self.status = status self.headers = headers self.body = body end
Public Instance Methods
transform()
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 16 def transform [ status, transformed_headers, body, ] end
Private Instance Methods
request_body()
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 49 def request_body @request_body ||= headers['rack.input']&.read.to_s ensure headers['rack.input']&.rewind end
request_hash()
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 45 def request_hash @request_hash ||= JSON.parse(request_body) end
transformed_headers()
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 26 def transformed_headers headers['rack.input'] = StringIO.new(transformed_json_body) headers end
transformed_json_body()
click to toggle source
# File lib/apiphobic/responses/transform_json_api.rb, line 32 def transformed_json_body return request_body if request_body == '' || request_body.nil? relationships = request_hash.dig('data', 'relationships') || {} relationships.dup.each do |relationship_name, data| relationships.delete(relationship_name) relationships[relationship_name.tr('_', '-')] = data end JSON.dump(request_hash) end