From f57145edc2421a2c9591d0e7c492ec4db50859ac Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Fri, 12 Dec 2025 15:50:03 +0330 Subject: [PATCH] remove pager gateway --- .../{pager => notifications}/pager.gateway.ts | 127 +++++++++--------- src/modules/pager/pager.module.ts | 4 +- src/modules/pager/providers/pager.service.ts | 9 +- 3 files changed, 68 insertions(+), 72 deletions(-) rename src/modules/{pager => notifications}/pager.gateway.ts (71%) diff --git a/src/modules/pager/pager.gateway.ts b/src/modules/notifications/pager.gateway.ts similarity index 71% rename from src/modules/pager/pager.gateway.ts rename to src/modules/notifications/pager.gateway.ts index 02c3bbf..91cc04c 100644 --- a/src/modules/pager/pager.gateway.ts +++ b/src/modules/notifications/pager.gateway.ts @@ -9,29 +9,28 @@ import { } from '@nestjs/websockets'; import { Server, Socket } from 'socket.io'; import { Logger, UseGuards, Inject, forwardRef } from '@nestjs/common'; -import { Pager } from './entities/pager.entity'; -import { WsAdminAuthGuard, type AuthenticatedSocket } from './guards/ws-admin-auth.guard'; import { WsRestId } from './decorators/ws-rest-id.decorator'; -import { PagerService } from './providers/pager.service'; -import { WsAdminId } from './decorators/ws-admin-id.decorator'; -import { PagerStatus } from './interface/pager'; +import { NotificationService } from './services/notification.service'; +import { WsAdminAuthGuard, type AuthenticatedSocket } from './guards/ws-admin-auth.guard'; +@UseGuards(WsAdminAuthGuard) @WebSocketGateway({ cors: { origin: true, credentials: true, + connectionGuard: WsAdminAuthGuard, }, - namespace: '/pager', + namespace: '/notifications', }) -export class PagerGateway implements OnGatewayConnection, OnGatewayDisconnect { +export class NotificationGateway implements OnGatewayConnection, OnGatewayDisconnect { @WebSocketServer() server!: Server; - private readonly logger = new Logger(PagerGateway.name); + private readonly logger = new Logger(NotificationGateway.name); constructor( - @Inject(forwardRef(() => PagerService)) - private readonly pagerService: PagerService, + @Inject(forwardRef(() => NotificationService)) + private readonly notificationService: NotificationService, ) {} handleConnection(client: Socket) { @@ -184,62 +183,62 @@ export class PagerGateway implements OnGatewayConnection, OnGatewayDisconnect { } } - /** - * Emit pager created event to restaurant room - */ - emitPagerCreated(pager: Pager) { - const room = `restaurant:${pager.restaurant.id}`; - this.server.to(room).emit('pager:created', { - pager: { - id: pager.id, - tableNumber: pager.tableNumber, - message: pager.message, - status: pager.status, - createdAt: pager.createdAt, - user: pager.user - ? { - id: pager.user.id, - firstName: pager.user.firstName, - lastName: pager.user.lastName, - } - : null, - }, - }); - this.logger.log(`Emitted pager:created to room: ${room}`); - } + // /** + // * Emit pager created event to restaurant room + // */ + // emitPagerCreated(pager: Pager) { + // const room = `restaurant:${pager.restaurant.id}`; + // this.server.to(room).emit('pager:created', { + // pager: { + // id: pager.id, + // tableNumber: pager.tableNumber, + // message: pager.message, + // status: pager.status, + // createdAt: pager.createdAt, + // user: pager.user + // ? { + // id: pager.user.id, + // firstName: pager.user.firstName, + // lastName: pager.user.lastName, + // } + // : null, + // }, + // }); + // this.logger.log(`Emitted pager:created to room: ${room}`); + // } - /** - * Emit pager status updated event to both restaurant and cookie rooms - */ - emitPagerStatusUpdated(pager: Pager) { - const restaurantRoom = `restaurant:${pager.restaurant.id}`; - const cookieRoom = `cookie:${pager.cookieId}`; + // /** + // * Emit pager status updated event to both restaurant and cookie rooms + // */ + // emitPagerStatusUpdated(pager: Pager) { + // const restaurantRoom = `restaurant:${pager.restaurant.id}`; + // const cookieRoom = `cookie:${pager.cookieId}`; - const pagerData = { - id: pager.id, - tableNumber: pager.tableNumber, - message: pager.message, - status: pager.status, - updatedAt: pager.updatedAt, - staff: pager.staff - ? { - id: pager.staff.id, - firstName: pager.staff.firstName, - lastName: pager.staff.lastName, - } - : null, - }; + // const pagerData = { + // id: pager.id, + // tableNumber: pager.tableNumber, + // message: pager.message, + // status: pager.status, + // updatedAt: pager.updatedAt, + // staff: pager.staff + // ? { + // id: pager.staff.id, + // firstName: pager.staff.firstName, + // lastName: pager.staff.lastName, + // } + // : null, + // }; - // Emit to restaurant room (admin/staff) - this.server.to(restaurantRoom).emit('pager:status:updated', { - pager: pagerData, - }); - this.logger.log(`Emitted pager:status:updated to room: ${restaurantRoom}`); + // // Emit to restaurant room (admin/staff) + // this.server.to(restaurantRoom).emit('pager:status:updated', { + // pager: pagerData, + // }); + // this.logger.log(`Emitted pager:status:updated to room: ${restaurantRoom}`); - // Emit to cookie room (public user) - this.server.to(cookieRoom).emit('pager:status:updated', { - pager: pagerData, - }); - this.logger.log(`Emitted pager:status:updated to room: ${cookieRoom}`); - } + // // Emit to cookie room (public user) + // this.server.to(cookieRoom).emit('pager:status:updated', { + // pager: pagerData, + // }); + // this.logger.log(`Emitted pager:status:updated to room: ${cookieRoom}`); + // } } diff --git a/src/modules/pager/pager.module.ts b/src/modules/pager/pager.module.ts index 36276ed..ec74336 100644 --- a/src/modules/pager/pager.module.ts +++ b/src/modules/pager/pager.module.ts @@ -5,12 +5,10 @@ import { MikroOrmModule } from '@mikro-orm/nestjs'; import { Pager } from './entities/pager.entity'; import { JwtModule } from '@nestjs/jwt'; import { RolesModule } from '../roles/roles.module'; -import { PagerGateway } from './pager.gateway'; @Module({ imports: [MikroOrmModule.forFeature([Pager]), JwtModule, RolesModule], controllers: [PagerController], - providers: [PagerService, PagerGateway], - exports: [PagerGateway], + providers: [PagerService], }) export class PagerModule {} diff --git a/src/modules/pager/providers/pager.service.ts b/src/modules/pager/providers/pager.service.ts index 590e046..a9e18fc 100644 --- a/src/modules/pager/providers/pager.service.ts +++ b/src/modules/pager/providers/pager.service.ts @@ -7,14 +7,13 @@ import { Pager } from '../entities/pager.entity'; import { PagerStatus } from '../interface/pager'; import { ulid } from 'ulid'; import { Admin } from '../../admin/entities/admin.entity'; -import { PagerGateway } from '../pager.gateway'; @Injectable() export class PagerService { constructor( private readonly em: EntityManager, - @Inject(forwardRef(() => PagerGateway)) - private readonly pagerGateway: PagerGateway, + // @Inject(forwardRef(() => PagerGateway)) + // private readonly pagerGateway: PagerGateway, ) {} async create( @@ -69,7 +68,7 @@ export class PagerService { await this.em.populate(pager, ['restaurant', 'user']); // Emit socket event for new pager - this.pagerGateway.emitPagerCreated(pager); + // this.pagerGateway.emitPagerCreated(pager); return pager; } @@ -107,7 +106,7 @@ export class PagerService { await this.em.populate(pager, ['restaurant', 'staff', 'user']); // Emit socket event for status update - this.pagerGateway.emitPagerStatusUpdated(pager); + // this.pagerGateway.emitPagerStatusUpdated(pager); return pager; }