readFormData function
Implementation
Future<FormData> readFormData(dynamic event) async {
final HttpRequest request = event.node["value"];
final contentType = request.headers.contentType;
final boundary = contentType?.parameters['boundary'];
var formData = FormData();
if (contentType == null) {
throw CreateError(message: "Content type header not set");
}
if (contentType.mimeType.isEmpty) {
logger.warning("NO formdata fields in request body");
throw CreateError(message: "No formdata fields found");
}
bool hasBoundary = boundary != null;
if (contentType.mimeType == 'multipart/form-data') {
return hasBoundary
? await _handleMultipartFormdata(request, boundary, formData)
: throw CreateError(message: "No boundary found");
}
if (contentType.mimeType == 'application/x-www-form-urlencoded') {
await _handleUrlEncodedFormData(request, formData);
return formData;
}
throw Exception('Unsupported content type: ${contentType.mimeType}');
}