Skip to content
This repository has been archived by the owner on Dec 23, 2021. It is now read-only.

Commit

Permalink
feat: #22 update events
Browse files Browse the repository at this point in the history
  • Loading branch information
Soontao committed Aug 7, 2020
1 parent 4e67e90 commit 811da43
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
6 changes: 3 additions & 3 deletions src/typeorm/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ export class TypedService<T extends typeof BaseODataModel = any> extends ODataCo
}

// and return it by id
await this._executeHooks({ txContext: ctx, hookType: HookType.afterSave, data: instance });
await this._executeHooks({ txContext: ctx, hookType: HookType.afterCreate, data: instance });

return instance;
}
Expand All @@ -349,7 +349,7 @@ export class TypedService<T extends typeof BaseODataModel = any> extends ODataCo
const instance = repo.create(body);
await this._executeHooks({ txContext: ctx, hookType: HookType.beforeUpdate, data: instance, key });
await repo.update(key, instance);
await this._executeHooks({ txContext: ctx, hookType: HookType.afterSave, data: instance, key });
await this._executeHooks({ txContext: ctx, hookType: HookType.afterUpdate, data: instance, key });
}

// odata delete will not response any content
Expand All @@ -358,7 +358,7 @@ export class TypedService<T extends typeof BaseODataModel = any> extends ODataCo
const repo = await this._getRepository(ctx);
await this._executeHooks({ txContext: ctx, hookType: HookType.beforeDelete, key });
await repo.delete(key);
await this._executeHooks({ txContext: ctx, hookType: HookType.afterSave, key });
await this._executeHooks({ txContext: ctx, hookType: HookType.afterDelete, key });
}

}
7 changes: 4 additions & 3 deletions src/typeorm/hooks/hook_type.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@


export enum HookType {
beforeCreate = 'odata.hook:beforeCreate',
beforeUpdate = 'odata.hook:beforeUpdate',
beforeDelete = 'odata.hook:beforeDelete',
afterLoad = 'odata.hook:afterLoad',
afterSave = 'odata.event:afterSave'
afterCreate = 'odata.event:afterCreate',
afterUpdate = 'odata.event:afterUpdate',
afterDelete = 'odata.event:afterDelete',
}

/**
* events type hook
*/
export const HookEvents = [HookType.afterSave];
export const HookEvents = [HookType.afterCreate, HookType.afterUpdate, HookType.afterDelete];
9 changes: 4 additions & 5 deletions src/typeorm/hooks/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export interface HookContext<T = any> {
/**
* transaction released id
*
* 'afterSave' event not have this property
* 'afterXXX' events not have this property
*/
txContext?: TransactionContext;

Expand Down Expand Up @@ -81,10 +81,9 @@ export const beforeDelete = createHookDecorator(HookType.beforeDelete);
*/
export const afterLoad = createHookDecorator(HookType.afterLoad);

/**
* after data has been saved to database (committed)
*/
export const afterSave = createHookDecorator(HookType.afterSave);
export const afterCreate = createHookDecorator(HookType.afterCreate);
export const afterUpdate = createHookDecorator(HookType.afterUpdate);
export const afterDelete = createHookDecorator(HookType.afterDelete);


export function withHook(hook: typeof BaseHookProcessor | BaseHookProcessor) {
Expand Down

0 comments on commit 811da43

Please sign in to comment.