diff --git a/src/shared/uuid.validation.ts b/src/shared/uuid.validation.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8c791a4a0354fef23a3cd2dc1a501630fe8ce41 --- /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'; + } +}