fixed issue with non exist entity being sent in remove events

This commit is contained in:
Umed Khudoiberdiev 2016-12-01 19:27:30 +05:00
parent 50b74c3c7a
commit bce38e5a97
4 changed files with 15 additions and 7 deletions

View File

@ -18,7 +18,7 @@ export class EverythingSubscriber implements EntitySubscriberInterface<any> {
* Called before entity insertion.
*/
beforeUpdate(event: UpdateEvent<any>) {
console.log(`BEFORE ENTITY UPDATED: `, event.persistEntity);
console.log(`BEFORE ENTITY UPDATED: `, event.entity);
}
/**
@ -39,7 +39,7 @@ export class EverythingSubscriber implements EntitySubscriberInterface<any> {
* Called after entity insertion.
*/
afterUpdate(event: UpdateEvent<any>) {
console.log(`AFTER ENTITY UPDATED: `, event.persistEntity);
console.log(`AFTER ENTITY UPDATED: `, event.entity);
}
/**

View File

@ -79,7 +79,7 @@ export class Broadcaster {
const subscribers = this.subscriberMetadatas
.filter(subscriber => this.isAllowedSubscriber(subscriber, subject.entityTarget) && subscriber.beforeUpdate)
.map(subscriber => subscriber.beforeUpdate!({
persistEntity: subject.entity,
entity: subject.entity,
databaseEntity: subject.databaseEntity,
updatedColumns: subject.diffColumns,
updatedRelations: subject.diffRelations,
@ -104,6 +104,7 @@ export class Broadcaster {
.filter(subscriber => this.isAllowedSubscriber(subscriber, subject.entityTarget) && subscriber.beforeRemove)
.map(subscriber => subscriber.beforeRemove!({
entity: subject.entity,
databaseEntity: subject.databaseEntity,
entityId: subject.metadata.getEntityIdMixedMap(subject.databaseEntity)
}));
@ -146,7 +147,7 @@ export class Broadcaster {
const subscribers = this.subscriberMetadatas
.filter(subscriber => this.isAllowedSubscriber(subscriber, subject.entityTarget) && subscriber.afterUpdate)
.map(subscriber => subscriber.afterUpdate!({
persistEntity: subject.entity,
entity: subject.entity,
databaseEntity: subject.databaseEntity,
updatedColumns: subject.diffColumns,
updatedRelations: subject.diffRelations,
@ -170,7 +171,8 @@ export class Broadcaster {
const subscribers = this.subscriberMetadatas
.filter(subscriber => this.isAllowedSubscriber(subscriber, subject.entityTarget) && subscriber.afterRemove)
.map(subscriber => subscriber.afterRemove!({
entity: subject.entity,
entity: subject.hasEntity ? subject.entity : undefined,
databaseEntity: subject.databaseEntity,
entityId: subject.metadata.getEntityIdMixedMap(subject.databaseEntity)
}));

View File

@ -5,8 +5,14 @@ export interface RemoveEvent<Entity> {
/**
* Entity that is being removed.
* This may absent if entity is removed without being loaded (for examples by cascades).
*/
entity: Entity;
entity?: Entity;
/**
* Database representation of entity that is being removed.
*/
databaseEntity: Entity;
/**
* Id or ids of the entity that is being removed.

View File

@ -9,7 +9,7 @@ export interface UpdateEvent<Entity> {
/**
* Updating entity.
*/
persistEntity: Entity;
entity: Entity;
/**
* Updating entity in the database.