lib/common/user/entity/user.subscriber.ts
A subscriber for UserEntity that handles entity events such as insert and update. It validates the login and hashes the password before these events.
EntitySubscriberInterface
Properties |
|
Methods |
|
Protected Readonly type |
Default value : UserEntity
|
Defined in lib/common/user/entity/user.subscriber.ts:35
|
Async beforeInsert | ||||||
beforeInsert(event: InsertEvent<UserEntity>)
|
||||||
Defined in lib/common/user/entity/user.subscriber.ts:41
|
||||||
Parameters :
Returns :
any
|
Async beforeUpdate | ||||||
beforeUpdate(event: UpdateEvent<UserEntity>)
|
||||||
Defined in lib/common/user/entity/user.subscriber.ts:46
|
||||||
Parameters :
Returns :
any
|
listenTo |
listenTo()
|
Defined in lib/common/user/entity/user.subscriber.ts:37
|
Returns :
any
|
import {
EntitySubscriberInterface,
EventSubscriber,
UpdateEvent,
} from "typeorm";
import { UserEntity } from "./user.entity";
import { InsertEvent } from "typeorm/subscriber/event/InsertEvent";
import { AbstractUserSubscriber } from "../abstract-user-subscriber";
/**
* A subscriber for UserEntity that handles entity events such as insert and update.
* It validates the login and hashes the password before these events.
*/
@EventSubscriber()
export class UserSubscriber
extends AbstractUserSubscriber<UserEntity>
implements EntitySubscriberInterface<UserEntity>
{
protected readonly type = UserEntity;
listenTo() {
return UserEntity;
}
async beforeInsert(event: InsertEvent<UserEntity>) {
await this.validateLogin(event.entity.login);
await this.hashPasswordIfNeeded(event);
}
async beforeUpdate(event: UpdateEvent<UserEntity>) {
if (event.entity.login) {
await this.validateLogin(event.entity.login);
}
await this.hashPasswordIfNeeded(event);
}
}