]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/express-utils.ts
Better 413 error handling in cli script
[github/Chocobozzz/PeerTube.git] / server / helpers / express-utils.ts
index 010c6961a063573409c5e0829373ee8b9ea867ad..780fd6345e850df4735f70d066c3f65616e8d926 100644 (file)
@@ -1,9 +1,9 @@
-import * as express from 'express'
-import * as multer from 'multer'
-import { extname } from 'path'
-import { HttpStatusCode } from '../../shared/core-utils/miscs/http-error-codes'
+import express, { RequestHandler } from 'express'
+import multer, { diskStorage } from 'multer'
+import { HttpStatusCode } from '../../shared/models/http/http-error-codes'
 import { CONFIG } from '../initializers/config'
 import { REMOTE_SCHEME } from '../initializers/constants'
+import { getLowercaseExtension } from '@shared/core-utils'
 import { isArray } from './custom-validators/misc'
 import { logger } from './logger'
 import { deleteFileAndCatch, generateRandomString } from './utils'
@@ -30,9 +30,7 @@ function buildNSFWFilter (res?: express.Response, paramNSFW?: string) {
   return null
 }
 
-function cleanUpReqFiles (
-  req: { files: { [fieldname: string]: Express.Multer.File[] } | Express.Multer.File[] }
-) {
+function cleanUpReqFiles (req: express.Request) {
   const filesObject = req.files
   if (!filesObject) return
 
@@ -61,7 +59,7 @@ function getHostWithPort (host: string) {
   return host
 }
 
-function badRequest (req: express.Request, res: express.Response) {
+function badRequest (_req: express.Request, res: express.Response) {
   return res.type('json')
             .status(HttpStatusCode.BAD_REQUEST_400)
             .end()
@@ -71,15 +69,15 @@ function createReqFiles (
   fieldNames: string[],
   mimeTypes: { [id: string]: string | string[] },
   destinations: { [fieldName: string]: string }
-) {
-  const storage = multer.diskStorage({
+): RequestHandler {
+  const storage = diskStorage({
     destination: (req, file, cb) => {
       cb(null, destinations[file.fieldname])
     },
 
     filename: async (req, file, cb) => {
       let extension: string
-      const fileExtension = extname(file.originalname)
+      const fileExtension = getLowercaseExtension(file.originalname)
       const extensionFromMimetype = getExtFromMimetype(mimeTypes, file.mimetype)
 
       // Take the file extension if we don't understand the mime type