File

lib/common/user/entity/user.subscriber.ts

Description

A subscriber for UserEntity that handles entity events such as insert and update. It validates the login and hashes the password before these events.

Implements

EntitySubscriberInterface

Index

Properties
  • Protected Readonly type
Methods

Properties

Protected Readonly type
Default value : UserEntity

Methods

Async beforeInsert
beforeInsert(event: InsertEvent<UserEntity>)
Parameters :
Name Type Optional
event InsertEvent<UserEntity> No
Returns : any
Async beforeUpdate
beforeUpdate(event: UpdateEvent<UserEntity>)
Parameters :
Name Type Optional
event UpdateEvent<UserEntity> No
Returns : any
listenTo
listenTo()
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);
  }
}

results matching ""

    No results matching ""