remove pager gateway
This commit is contained in:
@@ -9,29 +9,28 @@ import {
|
|||||||
} from '@nestjs/websockets';
|
} from '@nestjs/websockets';
|
||||||
import { Server, Socket } from 'socket.io';
|
import { Server, Socket } from 'socket.io';
|
||||||
import { Logger, UseGuards, Inject, forwardRef } from '@nestjs/common';
|
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 { WsRestId } from './decorators/ws-rest-id.decorator';
|
||||||
import { PagerService } from './providers/pager.service';
|
import { NotificationService } from './services/notification.service';
|
||||||
import { WsAdminId } from './decorators/ws-admin-id.decorator';
|
import { WsAdminAuthGuard, type AuthenticatedSocket } from './guards/ws-admin-auth.guard';
|
||||||
import { PagerStatus } from './interface/pager';
|
|
||||||
|
|
||||||
|
@UseGuards(WsAdminAuthGuard)
|
||||||
@WebSocketGateway({
|
@WebSocketGateway({
|
||||||
cors: {
|
cors: {
|
||||||
origin: true,
|
origin: true,
|
||||||
credentials: true,
|
credentials: true,
|
||||||
|
connectionGuard: WsAdminAuthGuard,
|
||||||
},
|
},
|
||||||
namespace: '/pager',
|
namespace: '/notifications',
|
||||||
})
|
})
|
||||||
export class PagerGateway implements OnGatewayConnection, OnGatewayDisconnect {
|
export class NotificationGateway implements OnGatewayConnection, OnGatewayDisconnect {
|
||||||
@WebSocketServer()
|
@WebSocketServer()
|
||||||
server!: Server;
|
server!: Server;
|
||||||
|
|
||||||
private readonly logger = new Logger(PagerGateway.name);
|
private readonly logger = new Logger(NotificationGateway.name);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(forwardRef(() => PagerService))
|
@Inject(forwardRef(() => NotificationService))
|
||||||
private readonly pagerService: PagerService,
|
private readonly notificationService: NotificationService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
handleConnection(client: Socket) {
|
handleConnection(client: Socket) {
|
||||||
@@ -184,62 +183,62 @@ export class PagerGateway implements OnGatewayConnection, OnGatewayDisconnect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* Emit pager created event to restaurant room
|
// * Emit pager created event to restaurant room
|
||||||
*/
|
// */
|
||||||
emitPagerCreated(pager: Pager) {
|
// emitPagerCreated(pager: Pager) {
|
||||||
const room = `restaurant:${pager.restaurant.id}`;
|
// const room = `restaurant:${pager.restaurant.id}`;
|
||||||
this.server.to(room).emit('pager:created', {
|
// this.server.to(room).emit('pager:created', {
|
||||||
pager: {
|
// pager: {
|
||||||
id: pager.id,
|
// id: pager.id,
|
||||||
tableNumber: pager.tableNumber,
|
// tableNumber: pager.tableNumber,
|
||||||
message: pager.message,
|
// message: pager.message,
|
||||||
status: pager.status,
|
// status: pager.status,
|
||||||
createdAt: pager.createdAt,
|
// createdAt: pager.createdAt,
|
||||||
user: pager.user
|
// user: pager.user
|
||||||
? {
|
// ? {
|
||||||
id: pager.user.id,
|
// id: pager.user.id,
|
||||||
firstName: pager.user.firstName,
|
// firstName: pager.user.firstName,
|
||||||
lastName: pager.user.lastName,
|
// lastName: pager.user.lastName,
|
||||||
}
|
// }
|
||||||
: null,
|
// : null,
|
||||||
},
|
// },
|
||||||
});
|
// });
|
||||||
this.logger.log(`Emitted pager:created to room: ${room}`);
|
// this.logger.log(`Emitted pager:created to room: ${room}`);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* Emit pager status updated event to both restaurant and cookie rooms
|
// * Emit pager status updated event to both restaurant and cookie rooms
|
||||||
*/
|
// */
|
||||||
emitPagerStatusUpdated(pager: Pager) {
|
// emitPagerStatusUpdated(pager: Pager) {
|
||||||
const restaurantRoom = `restaurant:${pager.restaurant.id}`;
|
// const restaurantRoom = `restaurant:${pager.restaurant.id}`;
|
||||||
const cookieRoom = `cookie:${pager.cookieId}`;
|
// const cookieRoom = `cookie:${pager.cookieId}`;
|
||||||
|
|
||||||
const pagerData = {
|
// const pagerData = {
|
||||||
id: pager.id,
|
// id: pager.id,
|
||||||
tableNumber: pager.tableNumber,
|
// tableNumber: pager.tableNumber,
|
||||||
message: pager.message,
|
// message: pager.message,
|
||||||
status: pager.status,
|
// status: pager.status,
|
||||||
updatedAt: pager.updatedAt,
|
// updatedAt: pager.updatedAt,
|
||||||
staff: pager.staff
|
// staff: pager.staff
|
||||||
? {
|
// ? {
|
||||||
id: pager.staff.id,
|
// id: pager.staff.id,
|
||||||
firstName: pager.staff.firstName,
|
// firstName: pager.staff.firstName,
|
||||||
lastName: pager.staff.lastName,
|
// lastName: pager.staff.lastName,
|
||||||
}
|
// }
|
||||||
: null,
|
// : null,
|
||||||
};
|
// };
|
||||||
|
|
||||||
// Emit to restaurant room (admin/staff)
|
// // Emit to restaurant room (admin/staff)
|
||||||
this.server.to(restaurantRoom).emit('pager:status:updated', {
|
// this.server.to(restaurantRoom).emit('pager:status:updated', {
|
||||||
pager: pagerData,
|
// pager: pagerData,
|
||||||
});
|
// });
|
||||||
this.logger.log(`Emitted pager:status:updated to room: ${restaurantRoom}`);
|
// this.logger.log(`Emitted pager:status:updated to room: ${restaurantRoom}`);
|
||||||
|
|
||||||
// Emit to cookie room (public user)
|
// // Emit to cookie room (public user)
|
||||||
this.server.to(cookieRoom).emit('pager:status:updated', {
|
// this.server.to(cookieRoom).emit('pager:status:updated', {
|
||||||
pager: pagerData,
|
// pager: pagerData,
|
||||||
});
|
// });
|
||||||
this.logger.log(`Emitted pager:status:updated to room: ${cookieRoom}`);
|
// this.logger.log(`Emitted pager:status:updated to room: ${cookieRoom}`);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
@@ -5,12 +5,10 @@ import { MikroOrmModule } from '@mikro-orm/nestjs';
|
|||||||
import { Pager } from './entities/pager.entity';
|
import { Pager } from './entities/pager.entity';
|
||||||
import { JwtModule } from '@nestjs/jwt';
|
import { JwtModule } from '@nestjs/jwt';
|
||||||
import { RolesModule } from '../roles/roles.module';
|
import { RolesModule } from '../roles/roles.module';
|
||||||
import { PagerGateway } from './pager.gateway';
|
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [MikroOrmModule.forFeature([Pager]), JwtModule, RolesModule],
|
imports: [MikroOrmModule.forFeature([Pager]), JwtModule, RolesModule],
|
||||||
controllers: [PagerController],
|
controllers: [PagerController],
|
||||||
providers: [PagerService, PagerGateway],
|
providers: [PagerService],
|
||||||
exports: [PagerGateway],
|
|
||||||
})
|
})
|
||||||
export class PagerModule {}
|
export class PagerModule {}
|
||||||
|
|||||||
@@ -7,14 +7,13 @@ import { Pager } from '../entities/pager.entity';
|
|||||||
import { PagerStatus } from '../interface/pager';
|
import { PagerStatus } from '../interface/pager';
|
||||||
import { ulid } from 'ulid';
|
import { ulid } from 'ulid';
|
||||||
import { Admin } from '../../admin/entities/admin.entity';
|
import { Admin } from '../../admin/entities/admin.entity';
|
||||||
import { PagerGateway } from '../pager.gateway';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PagerService {
|
export class PagerService {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly em: EntityManager,
|
private readonly em: EntityManager,
|
||||||
@Inject(forwardRef(() => PagerGateway))
|
// @Inject(forwardRef(() => PagerGateway))
|
||||||
private readonly pagerGateway: PagerGateway,
|
// private readonly pagerGateway: PagerGateway,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async create(
|
async create(
|
||||||
@@ -69,7 +68,7 @@ export class PagerService {
|
|||||||
await this.em.populate(pager, ['restaurant', 'user']);
|
await this.em.populate(pager, ['restaurant', 'user']);
|
||||||
|
|
||||||
// Emit socket event for new pager
|
// Emit socket event for new pager
|
||||||
this.pagerGateway.emitPagerCreated(pager);
|
// this.pagerGateway.emitPagerCreated(pager);
|
||||||
|
|
||||||
return pager;
|
return pager;
|
||||||
}
|
}
|
||||||
@@ -107,7 +106,7 @@ export class PagerService {
|
|||||||
await this.em.populate(pager, ['restaurant', 'staff', 'user']);
|
await this.em.populate(pager, ['restaurant', 'staff', 'user']);
|
||||||
|
|
||||||
// Emit socket event for status update
|
// Emit socket event for status update
|
||||||
this.pagerGateway.emitPagerStatusUpdated(pager);
|
// this.pagerGateway.emitPagerStatusUpdated(pager);
|
||||||
|
|
||||||
return pager;
|
return pager;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user