Class: RequestHandler::MultipartsParser

Inherits:
Object
  • Object
show all
Defined in:
lib/request_handler/multipart_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(request:, multipart_config:) ⇒ MultipartsParser

Returns a new instance of MultipartsParser.



9
10
11
12
13
14
15
16
# File 'lib/request_handler/multipart_parser.rb', line 9

def initialize(request:, multipart_config:)
  @request = request
  @params = request.params
  @multipart_config = multipart_config
  missing_arguments = []
  missing_arguments << { multipart_config: 'is missing' } if multipart_config.nil?
  raise MissingArgumentError, missing_arguments unless missing_arguments.empty?
end

Instance Method Details

#runObject



18
19
20
21
22
23
24
# File 'lib/request_handler/multipart_parser.rb', line 18

def run
  multipart_config.each_with_object({}) do |(name, config), memo|
    raise MultipartParamsError, multipart: "#{name} missing" if config[:required] && !params.key?(name.to_s)
    next if params[name.to_s].nil?
    memo[name] = parse_part(name.to_s)
  end
end