]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/middlewares/validators/activitypub/signature.ts
Move middleware utils in middlewares
[github/Chocobozzz/PeerTube.git] / server / middlewares / validators / activitypub / signature.ts
index 0ce15c1f6e735a88379eabb736b17037872bc0c1..f2f7d58487882f84a287581c8ccf39342e1332c7 100644 (file)
@@ -1,25 +1,34 @@
-import { body } from 'express-validator/check'
 import * as express from 'express'
-
+import { body } from 'express-validator'
 import {
-  logger,
-  isDateValid,
-  isSignatureTypeValid,
   isSignatureCreatorValid,
+  isSignatureTypeValid,
   isSignatureValueValid
-} from '../../../helpers'
-import { checkErrors } from '../utils'
+} from '../../../helpers/custom-validators/activitypub/signature'
+import { isDateValid } from '../../../helpers/custom-validators/misc'
+import { logger } from '../../../helpers/logger'
+import { areValidationErrors } from '../shared'
 
 const signatureValidator = [
-  body('signature.type').custom(isSignatureTypeValid).withMessage('Should have a valid signature type'),
-  body('signature.created').custom(isDateValid).withMessage('Should have a valid signature created date'),
-  body('signature.creator').custom(isSignatureCreatorValid).withMessage('Should have a valid signature creator'),
-  body('signature.signatureValue').custom(isSignatureValueValid).withMessage('Should have a valid signature value'),
+  body('signature.type')
+    .optional()
+    .custom(isSignatureTypeValid).withMessage('Should have a valid signature type'),
+  body('signature.created')
+    .optional()
+    .custom(isDateValid).withMessage('Should have a signature created date that conforms to ISO 8601'),
+  body('signature.creator')
+    .optional()
+    .custom(isSignatureCreatorValid).withMessage('Should have a valid signature creator'),
+  body('signature.signatureValue')
+    .optional()
+    .custom(isSignatureValueValid).withMessage('Should have a valid signature value'),
 
   (req: express.Request, res: express.Response, next: express.NextFunction) => {
-    logger.debug('Checking activitypub signature parameter', { parameters: { signature: req.body.signature } })
+    logger.debug('Checking Linked Data Signature parameter', { parameters: { signature: req.body.signature } })
+
+    if (areValidationErrors(req, res)) return
 
-    checkErrors(req, res, next)
+    return next()
   }
 ]