From 29305d7545637b4cce3f8e4f3f9da0417ee8319c Mon Sep 17 00:00:00 2001
From: L4168 <L4168@student.jamk.fi>
Date: Thu, 27 Jun 2019 11:43:51 +0300
Subject: [PATCH] custom validation for uuid and null

---
 src/shared/uuid.validation.ts | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 src/shared/uuid.validation.ts

diff --git a/src/shared/uuid.validation.ts b/src/shared/uuid.validation.ts
new file mode 100644
index 0000000..c8c791a
--- /dev/null
+++ b/src/shared/uuid.validation.ts
@@ -0,0 +1,19 @@
+import {
+  ValidatorConstraint,
+  ValidatorConstraintInterface,
+  ValidationArguments,
+  Validator,
+} from 'class-validator';
+
+// check if input is null or valid uuid
+@ValidatorConstraint({ name: 'uuid', async: true })
+export class Uuid implements ValidatorConstraintInterface {
+  validate(uuid: string, args: ValidationArguments) {
+    const validator = new Validator();
+    return validator.isUUID(uuid, '4') || uuid == null; // for async validations you must return a Promise<boolean> here
+  }
+
+  defaultMessage(args: ValidationArguments) {
+    return 'Not valid uuid';
+  }
+}
-- 
GitLab