MediaType mediaTypeFromRequest()

in functions_framework/lib/src/json_request_utils.dart [22:50]


MediaType mediaTypeFromRequest(Request request, {String? requiredMimeType}) {
  final contentType = request.headers[contentTypeHeader];
  if (contentType == null) {
    throw BadRequestException(400, '$contentTypeHeader header is required.');
  }
  final MediaType value;
  try {
    value = MediaType.parse(contentType);
  } catch (e, stack) {
    throw BadRequestException(
      400,
      'Could not parse $contentTypeHeader header.',
      innerError: e,
      innerStack: stack,
    );
  }

  if (requiredMimeType != null) {
    if (value.mimeType != requiredMimeType) {
      // https://github.com/GoogleCloudPlatform/functions-framework#http-status-codes
      throw BadRequestException(
        400,
        'Unsupported encoding "${value.mimeType.toString()}". '
        'Only "$requiredMimeType" is supported.',
      );
    }
  }
  return value;
}