Skip to content

Commit 5e376e3

Browse files
committed
validations Upsert
1 parent 9fad405 commit 5e376e3

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/management/identities/identities-upsert.service.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,8 @@ export class IdentitiesUpsertService extends AbstractIdentitiesService {
5555
this.logger.log(`${logPrefix} Starting additionalFields transformation.`);
5656
await this._validation.transform(data.additionalFields);
5757
this.logger.log(`${logPrefix} Starting additionalFields validation.`);
58-
let validations = await this._validation.validate(data.additionalFields);
59-
//validation email and uid
60-
if (await this.checkMail(data) === false){
61-
validations['inetOrgPerson.mail']="Email déjà présent dans une autre identité"
62-
}
63-
if (await this.checkUid(data) === false){
64-
validations['inetOrgPerson.uid']="Uid déjà présent dans une autre identité"
65-
}
58+
59+
let validations = await this._validation.validate(data.additionalFields,true);
6660
this.logger.log(`${logPrefix} AdditionalFields validation successful.`);
6761
this.logger.log(`Validations : ${JSON.stringify(validations)}`);
6862
crushedUpdate['state'] = IdentityState.TO_VALIDATE;
@@ -72,6 +66,15 @@ export class IdentitiesUpsertService extends AbstractIdentitiesService {
7266
crushedUpdate['state'] = data.state;
7367
crushedUpdate['additionalFields.validations'] = data.additionalFields.validations;
7468
}
69+
//validation email and uid
70+
if (await this.checkMail(data) === false){
71+
crushedUpdate['additionalFields.validations']['inetOrgPerson']={mail:"Email déjà présent dans une autre identité"}
72+
crushedUpdate['state'] = data.state;
73+
}
74+
if (await this.checkUid(data) === false){
75+
crushedUpdate['additionalFields.validations']['inetOrgPerson']= {uid:"Uid déjà présent dans une autre identité"}
76+
crushedUpdate['state'] = data.state;
77+
}
7578

7679
const fingerprint = await this.previewFingerprint(
7780
construct({

src/management/identities/validations/identities.validation.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export class IdentitiesValidationService implements OnApplicationBootstrap {
227227
* @param data - The additional fields data to validate.
228228
* @returns A promise that resolves if validation succeeds, or rejects with validation errors.
229229
*/
230-
public async validate(data: AdditionalFieldsPart | additionalFieldsPartDto): Promise<object> {
230+
public async validate(data: AdditionalFieldsPart | additionalFieldsPartDto,callException:boolean=true): Promise<object> {
231231
if (!data.objectClasses) {
232232
data.objectClasses = [];
233233
}
@@ -294,7 +294,7 @@ export class IdentitiesValidationService implements OnApplicationBootstrap {
294294
}
295295
}
296296

297-
if (reject) {
297+
if (reject && callException) {
298298
throw new ValidationSchemaException({ validations });
299299
}
300300
return Promise.resolve({ message: 'Validation succeeded' });

0 commit comments

Comments
 (0)