37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { logger } from '@server/helpers/logger.js'
|
|
import express from 'express'
|
|
import { body, header } from 'express-validator'
|
|
import { areValidationErrors } from './shared/utils.js'
|
|
import { cleanUpReqFiles } from '@server/helpers/express-utils.js'
|
|
|
|
export const resumableInitValidator = [
|
|
body('filename')
|
|
.exists(),
|
|
|
|
header('x-upload-content-length')
|
|
.isNumeric()
|
|
.exists()
|
|
.withMessage('Should specify the file length'),
|
|
header('x-upload-content-type')
|
|
.isString()
|
|
.exists()
|
|
.withMessage('Should specify the file mimetype'),
|
|
|
|
(req: express.Request, res: express.Response, next: express.NextFunction) => {
|
|
logger.debug('Checking resumableInitValidator parameters and headers', {
|
|
parameters: req.body,
|
|
headers: req.headers
|
|
})
|
|
|
|
if (areValidationErrors(req, res, { omitLog: true })) return cleanUpReqFiles(req)
|
|
|
|
res.locals.uploadVideoFileResumableMetadata = {
|
|
mimetype: req.headers['x-upload-content-type'] as string,
|
|
size: +req.headers['x-upload-content-length'],
|
|
originalname: req.body.filename
|
|
}
|
|
|
|
return next()
|
|
}
|
|
]
|