class Fakeit::App::Helpers::BodyParser

Public Class Methods

parse(request) click to toggle source
# File lib/fakeit/app/helpers/body_parser.rb, line 6
def parse(request)
  case request.media_type
  when %r{^application/.*json}
    { media_type: request.media_type, data: parse_json(request.body.read) }
  when 'multipart/form-data'
    { media_type: request.media_type, data: parse_form_data(request.params) }
  else
    { media_type: request.media_type, data: request.body.read }
  end
end

Private Class Methods

parse_form_data(params) click to toggle source
# File lib/fakeit/app/helpers/body_parser.rb, line 25
def parse_form_data(params)
  params.transform_values { |v| v.instance_of?(Hash) && v[:tempfile] ? v[:tempfile].read : v }
end
parse_json(body) click to toggle source
# File lib/fakeit/app/helpers/body_parser.rb, line 19
def parse_json(body)
  body.empty? ? {} : JSON.parse(body)
rescue StandardError
  raise Fakeit::Validation::ValidationError, 'Invalid json payload'
end