From bb9a742d4f37c8f1798b76aebb97c0d8eff3d7f6 Mon Sep 17 00:00:00 2001 From: itz4blitz Date: Mon, 30 Mar 2026 19:42:47 -0400 Subject: [PATCH] fix: allow null issue server ids in websocket broadcasts --- .../src/modules/issues/issues.gateway.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/backend/src/modules/issues/issues.gateway.ts b/apps/backend/src/modules/issues/issues.gateway.ts index 2e1ec61..0a20e89 100644 --- a/apps/backend/src/modules/issues/issues.gateway.ts +++ b/apps/backend/src/modules/issues/issues.gateway.ts @@ -20,7 +20,7 @@ interface IssueUpdatePayload { interface IssueBroadcast { id: string; - serverId?: string; + serverId?: string | null; [key: string]: unknown; } @@ -83,6 +83,7 @@ export class IssuesGateway { * Broadcast a new issue to subscribers */ broadcastNewIssue(issue: IssueBroadcast): void { + const serverId = issue.serverId; const payload: IssueUpdatePayload = { type: 'new', issueId: issue.id, @@ -91,8 +92,8 @@ export class IssuesGateway { // Broadcast to both server-specific room and 'all' room this.server.to('issues:all').emit('issue:new', payload); - if (issue.serverId !== undefined && issue.serverId.length > 0) { - this.server.to(`issues:${issue.serverId}`).emit('issue:new', payload); + if (serverId !== undefined && serverId !== null && serverId.length > 0) { + this.server.to(`issues:${serverId}`).emit('issue:new', payload); } } @@ -100,6 +101,7 @@ export class IssuesGateway { * Broadcast an issue update to subscribers */ broadcastIssueUpdate(issue: IssueBroadcast): void { + const serverId = issue.serverId; const payload: IssueUpdatePayload = { type: 'updated', issueId: issue.id, @@ -107,8 +109,8 @@ export class IssuesGateway { }; this.server.to('issues:all').emit('issue:updated', payload); - if (issue.serverId !== undefined && issue.serverId.length > 0) { - this.server.to(`issues:${issue.serverId}`).emit('issue:updated', payload); + if (serverId !== undefined && serverId !== null && serverId.length > 0) { + this.server.to(`issues:${serverId}`).emit('issue:updated', payload); } } @@ -116,6 +118,7 @@ export class IssuesGateway { * Broadcast when an issue is resolved */ broadcastIssueResolved(issue: IssueBroadcast): void { + const serverId = issue.serverId; const payload: IssueUpdatePayload = { type: 'resolved', issueId: issue.id, @@ -123,8 +126,8 @@ export class IssuesGateway { }; this.server.to('issues:all').emit('issue:resolved', payload); - if (issue.serverId !== undefined && issue.serverId.length > 0) { - this.server.to(`issues:${issue.serverId}`).emit('issue:resolved', payload); + if (serverId !== undefined && serverId !== null && serverId.length > 0) { + this.server.to(`issues:${serverId}`).emit('issue:resolved', payload); } }