Class: RequestHandler::MultipartsParser

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

Instance Method Summary collapse

Methods included from Concerns::ConfigHelper

#deep_to_h, #lookup, #lookup!, #symbolize_key

Constructor Details

#initialize(request:, multipart_config:) ⇒ MultipartsParser

Returns a new instance of MultipartsParser.



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

def initialize(request:, multipart_config:)
  @request = request
  @params = request.params
  @multipart_config = multipart_config
  raise MissingArgumentError.new([{ multipart_config: "is missing" }]) if multipart_config.nil?
end

Instance Method Details

#runObject



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

def run
  deep_to_h(multipart_config).each_with_object({}) do |(name, config), indexed_parts|
    validate_presence!(name) if config[:required]
    next if params[name.to_s].nil?

    indexed_parts[name] = parse_part(name.to_s)
  end
end