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