From 9d5b23dc3f53ef854f803772c9e02f81cb25e429 Mon Sep 17 00:00:00 2001 From: yassinedorbozgithub Date: Mon, 7 Oct 2024 18:37:17 +0100 Subject: [PATCH] fix(api): baseRepository event emitter logic order --- api/src/utils/generics/base-repository.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/api/src/utils/generics/base-repository.ts b/api/src/utils/generics/base-repository.ts index 72c24779..7fc61d3d 100644 --- a/api/src/utils/generics/base-repository.ts +++ b/api/src/utils/generics/base-repository.ts @@ -75,51 +75,51 @@ export abstract class BaseRepository< hooks?.validate.pre.execute(async function () { const doc = this as HydratedDocument; - repository.emitter.emit(repository.getEventName(EHook.preValidate), doc); await repository.preValidate(doc); + repository.emitter.emit(repository.getEventName(EHook.preValidate), doc); }); hooks?.validate.post.execute(async function (created: HydratedDocument) { + await repository.postValidate(created); repository.emitter.emit( repository.getEventName(EHook.postValidate), created, ); - await repository.postValidate(created); }); hooks?.save.pre.execute(async function () { const doc = this as HydratedDocument; - repository.emitter.emit(repository.getEventName(EHook.preCreate), doc); await repository.preCreate(doc); + repository.emitter.emit(repository.getEventName(EHook.preCreate), doc); }); hooks?.save.post.execute(async function (created: HydratedDocument) { + await repository.postCreate(created); repository.emitter.emit( repository.getEventName(EHook.postCreate), created, ); - await repository.postCreate(created); }); hooks?.deleteOne.pre.execute(async function () { const query = this as Query; const criteria = query.getQuery(); + await repository.preDelete(query, criteria); repository.emitter.emit( repository.getEventName(EHook.preDelete), query, criteria, ); - await repository.preDelete(query, criteria); }); hooks?.deleteOne.post.execute(async function (result: DeleteResult) { const query = this as Query; + await repository.postDelete(query, result); repository.emitter.emit( repository.getEventName(EHook.postDelete), query, result, ); - await repository.postDelete(query, result); }); hooks?.deleteMany.pre.execute(async function () { @@ -142,27 +142,27 @@ export abstract class BaseRepository< const criteria = query.getFilter(); const updates = query.getUpdate(); + await repository.preUpdate(query, criteria, updates); repository.emitter.emit( repository.getEventName(EHook.preUpdate), criteria, updates?.['$set'], ); - await repository.preUpdate(query, criteria, updates); }); hooks?.findOneAndUpdate.post.execute(async function ( updated: HydratedDocument, ) { if (updated) { - repository.emitter.emit( - repository.getEventName(EHook.postUpdate), - updated, - ); const query = this as Query; await repository.postUpdate( query, plainToClass(repository.cls, updated, repository.transformOpts), ); + repository.emitter.emit( + repository.getEventName(EHook.postUpdate), + updated, + ); } }); }