From 5a2f2dc4bafe8b932a4689e4231b3af0a7778b44 Mon Sep 17 00:00:00 2001
From: L4168 <L4168@student.jamk.fi>
Date: Thu, 27 Jun 2019 11:56:01 +0300
Subject: [PATCH] customvalidation in one file, added rolevalidator

---
 src/shared/array-validation.ts                  | 17 -----------------
 ...{uuid.validation.ts => custom-validation.ts} | 13 +++++++++++++
 src/task/task.dto.ts                            |  4 ++--
 3 files changed, 15 insertions(+), 19 deletions(-)
 delete mode 100644 src/shared/array-validation.ts
 rename src/shared/{uuid.validation.ts => custom-validation.ts} (59%)

diff --git a/src/shared/array-validation.ts b/src/shared/array-validation.ts
deleted file mode 100644
index 494ab42..0000000
--- a/src/shared/array-validation.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import {ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments} from "class-validator";
-import { Logger } from "@nestjs/common";
-
-// validates array length
-@ValidatorConstraint({ name: "arrayLength", async: true })
-export class ArrayLength implements ValidatorConstraintInterface {
-
-    validate(array: string[], args: ValidationArguments) {
-        Logger.log(array.length)
-        return array.length > args.constraints[0] && array.length < args.constraints[1]; // for async validations you must return a Promise<boolean> here
-    }
-
-    defaultMessage(args: ValidationArguments) { // here you can provide default error message if validation failed
-        return "Please input all passwords";
-    }
-
-}
\ No newline at end of file
diff --git a/src/shared/uuid.validation.ts b/src/shared/custom-validation.ts
similarity index 59%
rename from src/shared/uuid.validation.ts
rename to src/shared/custom-validation.ts
index c8c791a..a920e71 100644
--- a/src/shared/uuid.validation.ts
+++ b/src/shared/custom-validation.ts
@@ -17,3 +17,16 @@ export class Uuid implements ValidatorConstraintInterface {
     return 'Not valid uuid';
   }
 }
+
+// checks if role is valid
+@ValidatorConstraint({ name: 'roleValidation', async: true })
+export class RoleValidation implements ValidatorConstraintInterface {
+  validate(role: string, args: ValidationArguments) {
+    const validRoles = ['admin', 'soldier', 'factionleader'];
+    return validRoles.includes(role);
+  }
+
+  defaultMessage(args: ValidationArguments) {
+    return 'Not valid uuid';
+  }
+}
diff --git a/src/task/task.dto.ts b/src/task/task.dto.ts
index 723ddd7..3a363b5 100644
--- a/src/task/task.dto.ts
+++ b/src/task/task.dto.ts
@@ -7,8 +7,8 @@ import {
   Equals,
 } from 'class-validator';
 import { FactionEntity } from '../game/faction.entity';
-import { Uuid } from '../shared/uuid.validation';
-import { GameEntity } from 'src/game/game.entity';
+import { GameEntity } from '../game/game.entity';
+import { Uuid } from '../shared/custom-validation';
 
 export class CreateTaskDTO {
   @IsString()
-- 
GitLab