node-web-mvc
Version:
node spring mvc
26 lines (25 loc) • 1.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const MultipartException_1 = __importDefault(require("../../../errors/MultipartException"));
const RequestPart_1 = __importDefault(require("../../annotations/params/RequestPart"));
const HttpHeaders_1 = __importDefault(require("../../http/HttpHeaders"));
class RequestPartArgumentResolver {
supportsParameter(parameter, servletContext) {
return parameter.hasParameterAnnotation(RequestPart_1.default);
}
async resolveArgument(parameter, servletContext) {
const request = servletContext.request;
const anno = parameter.getParameterAnnotation(RequestPart_1.default);
const contentType = request.getHeaderSingleValue(HttpHeaders_1.default.CONTENT_TYPE);
if (contentType.indexOf('multipart/') < 0) {
throw new MultipartException_1.default(`the request doesn't contain a multipart/form-data or multipart/mixed stream `);
}
const name = anno.value || parameter.paramName;
const body = await request.bodyReader.read(servletContext);
return body[name];
}
}
exports.default = RequestPartArgumentResolver;