fix: sendNotification publishes directly to exchange instead of NestJS RMQ client sendToQueue

This commit is contained in:
Kyryll O. 2026-06-18 16:32:01 +03:00
parent 67f58d6f74
commit 8209f4ac82
2 changed files with 25 additions and 9 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/plugin-sdk", "name": "@erp/plugin-sdk",
"version": "1.11.0", "version": "1.11.1",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
"bin": { "bin": {

View File

@ -406,14 +406,30 @@ export class CoreService {
} }
async sendNotification(payload: { userId: number | null; title: string; message: string; icon?: string; image?: string; details?: any }): Promise<void> { async sendNotification(payload: { userId: number | null; title: string; message: string; icon?: string; image?: string; details?: any }): Promise<void> {
await this.emit('system.notification.send', { try {
const conn = await amqp.connect(this.getRMQUrl());
const ch = await conn.createChannel();
await ch.assertExchange('system_events', 'topic', { durable: true });
const eventData = {
eventId: uuidv4(),
pattern: 'system.notification.send',
payload: {
userId: payload.userId, userId: payload.userId,
title: payload.title, title: payload.title,
message: payload.message, message: payload.message,
icon: payload.icon, icon: payload.icon,
image: payload.image, image: payload.image,
details: payload.details, details: payload.details,
}); },
source: this.serviceName,
timestamp: Date.now(),
};
ch.publish('system_events', 'system.notification.send', Buffer.from(JSON.stringify(eventData)));
await ch.close();
await conn.close();
} catch (err: any) {
this.logger.error(`[sendNotification] Failed: ${err.message}`);
}
} }
getDbName(): string { getDbName(): string {