import { BaseCustomManager } from 'src/core/modules/domain/usecase/managers/base-custom.manager'; import { EventTopics } from 'src/core/strings/constants/interface.constants'; import { UserModel } from 'src/modules/user-related/user/data/models/user.model'; import { UserEntity } from 'src/modules/user-related/user/domain/entities/user.entity'; import { UserLogoutEvent } from '../entities/logout.event'; export class LogoutManager extends BaseCustomManager { async validateProcess(): Promise { return; } async beforeProcess(): Promise { return; } async process(): Promise { await this.dataService.update( this.queryRunner, this.entityTarget, { id: this.user.id }, { refresh_token: null, }, ); return; } async afterProcess(): Promise { return; } getResult() { return `Success Logout user`; } get entityTarget(): any { return UserModel; } get eventTopics(): EventTopics[] { return [ { topic: UserLogoutEvent, data: { id: this.user.id, type: 'logout', timestamp: new Date().getTime(), }, }, ]; } }