Class: OpenapiFirst::RequestBodyParsers::MultipartBodyParser
- Inherits:
-
Object
- Object
- OpenapiFirst::RequestBodyParsers::MultipartBodyParser
- Defined in:
- lib/openapi_first/request_body_parsers.rb
Overview
Parses multipart/form-data requests and currently puts the contents of a file upload at the parsed hash values. NOTE: This behavior will probably change in the next major version.
The uploaded file should not be read during request validation.
Honors the OpenAPI ‘encoding` map: when a top-level field has `contentType: application/json` (or any */json), the field’s raw value is JSON-parsed before schema validation.
Class Method Summary collapse
Instance Method Summary collapse
- #call(request) ⇒ Object
-
#initialize(encoding: {}) ⇒ MultipartBodyParser
constructor
A new instance of MultipartBodyParser.
Constructor Details
#initialize(encoding: {}) ⇒ MultipartBodyParser
Returns a new instance of MultipartBodyParser.
47 48 49 |
# File 'lib/openapi_first/request_body_parsers.rb', line 47 def initialize(encoding: {}) @encoding = encoding || {} end |
Class Method Details
.call(request) ⇒ Object
51 52 53 |
# File 'lib/openapi_first/request_body_parsers.rb', line 51 def self.call(request) new.call(request) end |
Instance Method Details
#call(request) ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/openapi_first/request_body_parsers.rb', line 55 def call(request) result = {} request.POST.each do |name, value| decoded = decode_field(name, value) return decoded if decoded.is_a?(Failure) result[name] = decoded end result end |