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