From 21837e8b914b37757a676ad96a26b97840e6c575 Mon Sep 17 00:00:00 2001 From: Maxime Lalo Date: Mon, 4 Dec 2023 15:24:58 +0100 Subject: [PATCH] :sparkles: Adding a constraint to the phone number --- dist/Notary/Contact.js | 50 ++++++++++++++---- src/Notary/Contact.ts | 116 +++++++++++++++++++++++++++-------------- 2 files changed, 118 insertions(+), 48 deletions(-) diff --git a/dist/Notary/Contact.js b/dist/Notary/Contact.js index 0bf1b86..165701f 100644 --- a/dist/Notary/Contact.js +++ b/dist/Notary/Contact.js @@ -44,30 +44,61 @@ __decorate([ __decorate([ (0, class_transformer_1.Expose)(), (0, class_validator_1.IsOptional)({ groups: ["updateCustomer"] }), - (0, class_validator_1.NotEquals)(null || '', { groups: ["updateCustomer"], message: "Prénom ne peut pas être vide" }), - (0, class_validator_1.IsNotEmpty)({ groups: ["createCustomer"], message: "Prénom ne peut pas être vide" }), + (0, class_validator_1.NotEquals)(null || "", { + groups: ["updateCustomer"], + message: "Prénom ne peut pas être vide", + }), + (0, class_validator_1.IsNotEmpty)({ + groups: ["createCustomer"], + message: "Prénom ne peut pas être vide", + }), __metadata("design:type", String) ], Contact.prototype, "first_name", void 0); __decorate([ (0, class_transformer_1.Expose)(), (0, class_validator_1.IsOptional)({ groups: ["updateCustomer"] }), - (0, class_validator_1.NotEquals)(null || '', { groups: ["updateCustomer"], message: "Nom ne peut pas être vide" }), - (0, class_validator_1.IsNotEmpty)({ groups: ["createCustomer"], message: "Nom ne peut pas être vide" }), + (0, class_validator_1.NotEquals)(null || "", { + groups: ["updateCustomer"], + message: "Nom ne peut pas être vide", + }), + (0, class_validator_1.IsNotEmpty)({ + groups: ["createCustomer"], + message: "Nom ne peut pas être vide", + }), __metadata("design:type", String) ], Contact.prototype, "last_name", void 0); __decorate([ (0, class_transformer_1.Expose)(), (0, class_validator_1.IsOptional)({ groups: ["updateCustomer"] }), - (0, class_validator_1.NotEquals)(null || '', { groups: ["updateCustomer"], message: "Email ne peut pas être vide" }), - (0, class_validator_1.IsNotEmpty)({ groups: ["createCustomer"], message: "Email ne peut pas être vide" }), - (0, class_validator_1.IsEmail)({}, { groups: ["createCustomer", "updateCustomer"], message: "Format de l'email incorrect" }), + (0, class_validator_1.NotEquals)(null || "", { + groups: ["updateCustomer"], + message: "Email ne peut pas être vide", + }), + (0, class_validator_1.IsNotEmpty)({ + groups: ["createCustomer"], + message: "Email ne peut pas être vide", + }), + (0, class_validator_1.IsEmail)({}, { + groups: ["createCustomer", "updateCustomer"], + message: "Format de l'email incorrect", + }), __metadata("design:type", String) ], Contact.prototype, "email", void 0); __decorate([ (0, class_transformer_1.Expose)(), (0, class_validator_1.IsOptional)({ groups: ["updateCustomer"] }), - (0, class_validator_1.NotEquals)(null || '', { groups: ["updateCustomer"], message: "Numéro de téléphone ne peut pas être vide" }), - (0, class_validator_1.IsNotEmpty)({ groups: ["createCustomer"], message: "Numéro de téléphone ne peut pas être vide" }), + (0, class_validator_1.NotEquals)(null || "", { + groups: ["updateCustomer"], + message: "Numéro de téléphone ne peut pas être vide", + }), + (0, class_validator_1.IsNotEmpty)({ + groups: ["createCustomer"], + message: "Numéro de téléphone ne peut pas être vide", + }), + (0, class_validator_1.Matches)(/^\+[2-9]{2,3}[0-9]{9}$/, { + groups: ["createCustomer", "updateCustomer"], + message: "Le numéro de téléphone doit être au format 06XXXXXXXX", + }), __metadata("design:type", String) ], Contact.prototype, "cell_phone_number", void 0); __decorate([ @@ -89,4 +120,3 @@ __decorate([ __metadata("design:type", Address_1.default) ], Contact.prototype, "address", void 0); exports.default = Contact; -; diff --git a/src/Notary/Contact.ts b/src/Notary/Contact.ts index 6e49deb..1201ab1 100644 --- a/src/Notary/Contact.ts +++ b/src/Notary/Contact.ts @@ -1,51 +1,91 @@ export * from "../Customer/Contact"; import { Expose, Type } from "class-transformer"; import ContactCustomer, { ECivility } from "../Customer/Contact"; -import { IsEmail, IsNotEmpty, IsOptional, NotEquals, ValidateNested } from "class-validator"; +import { + IsEmail, + IsNotEmpty, + IsOptional, + Matches, + NotEquals, + ValidateNested, +} from "class-validator"; import Address from "./Address"; export default class Contact extends ContactCustomer { - @Expose() - public override uid?: string; + @Expose() + public override uid?: string; - @Expose() - @IsOptional({ groups: ["updateCustomer"]}) - @NotEquals(null || '', { groups: ["updateCustomer"], message: "Prénom ne peut pas être vide" }) - @IsNotEmpty({ groups: ["createCustomer"], message: "Prénom ne peut pas être vide" }) - public override first_name!: string; + @Expose() + @IsOptional({ groups: ["updateCustomer"] }) + @NotEquals(null || "", { + groups: ["updateCustomer"], + message: "Prénom ne peut pas être vide", + }) + @IsNotEmpty({ + groups: ["createCustomer"], + message: "Prénom ne peut pas être vide", + }) + public override first_name!: string; - @Expose() - @IsOptional({ groups: ["updateCustomer"]}) - @NotEquals(null || '', { groups: ["updateCustomer"], message: "Nom ne peut pas être vide" }) - @IsNotEmpty({ groups: ["createCustomer"], message: "Nom ne peut pas être vide" }) - public override last_name!: string; + @Expose() + @IsOptional({ groups: ["updateCustomer"] }) + @NotEquals(null || "", { + groups: ["updateCustomer"], + message: "Nom ne peut pas être vide", + }) + @IsNotEmpty({ + groups: ["createCustomer"], + message: "Nom ne peut pas être vide", + }) + public override last_name!: string; - @Expose() - @IsOptional({ groups: ["updateCustomer"]}) - @NotEquals(null || '', { groups: ["updateCustomer"], message: "Email ne peut pas être vide" }) - @IsNotEmpty({ groups: ["createCustomer"], message: "Email ne peut pas être vide" }) - @IsEmail({}, { groups: ["createCustomer", "updateCustomer"], message: "Format de l'email incorrect" }) - public override email!: string; + @Expose() + @IsOptional({ groups: ["updateCustomer"] }) + @NotEquals(null || "", { + groups: ["updateCustomer"], + message: "Email ne peut pas être vide", + }) + @IsNotEmpty({ + groups: ["createCustomer"], + message: "Email ne peut pas être vide", + }) + @IsEmail( + {}, + { + groups: ["createCustomer", "updateCustomer"], + message: "Format de l'email incorrect", + } + ) + public override email!: string; - @Expose() - @IsOptional({ groups: ["updateCustomer"]}) - @NotEquals(null || '', { groups: ["updateCustomer"], message: "Numéro de téléphone ne peut pas être vide" }) - @IsNotEmpty({ groups: ["createCustomer"], message: "Numéro de téléphone ne peut pas être vide"}) - public override cell_phone_number!: string; + @Expose() + @IsOptional({ groups: ["updateCustomer"] }) + @NotEquals(null || "", { + groups: ["updateCustomer"], + message: "Numéro de téléphone ne peut pas être vide", + }) + @IsNotEmpty({ + groups: ["createCustomer"], + message: "Numéro de téléphone ne peut pas être vide", + }) + @Matches(/^\+[2-9]{2,3}[0-9]{9}$/, { + groups: ["createCustomer", "updateCustomer"], + message: "Le numéro de téléphone doit être au format 06XXXXXXXX", + }) + public override cell_phone_number!: string; - @Expose() - @IsOptional() - public override phone_number?: string | null = null; + @Expose() + @IsOptional() + public override phone_number?: string | null = null; - @Expose() - @IsOptional({ groups: ["updateCustomer"]}) - @IsNotEmpty({ groups: ["createCustomer"], message: "Civility is required" }) - public override civility!: ECivility | string; + @Expose() + @IsOptional({ groups: ["updateCustomer"] }) + @IsNotEmpty({ groups: ["createCustomer"], message: "Civility is required" }) + public override civility!: ECivility | string; - @Expose() - @IsOptional({ groups: ["createCustomer", "updateCustomer"]}) - @ValidateNested({ groups: ["createCustomer", "updateCustomer"] }) - @Type(() => Address) - public override address?: Address; - -}; \ No newline at end of file + @Expose() + @IsOptional({ groups: ["createCustomer", "updateCustomer"] }) + @ValidateNested({ groups: ["createCustomer", "updateCustomer"] }) + @Type(() => Address) + public override address?: Address; +}