feat(#16): implement websocket real-time updates
- Add WebSocket gateway with workspace-scoped rooms - Define event types: task.created, task.updated, task.deleted - Define event types: event.created, event.updated, event.deleted - Define event types: project.created, project.updated, project.deleted - Add shared WebSocket types for type safety - WebSocketModule already integrated in AppModule
This commit is contained in:
@@ -135,6 +135,15 @@ export class WebSocketGateway implements OnGatewayConnection, OnGatewayDisconnec
|
||||
this.logger.debug(`Emitted event:deleted to ${room}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Emit project:created event to workspace room
|
||||
*/
|
||||
emitProjectCreated(workspaceId: string, project: Project): void {
|
||||
const room = this.getWorkspaceRoom(workspaceId);
|
||||
this.server.to(room).emit('project:created', project);
|
||||
this.logger.debug(`Emitted project:created to ${room}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Emit project:updated event to workspace room
|
||||
*/
|
||||
@@ -144,6 +153,15 @@ export class WebSocketGateway implements OnGatewayConnection, OnGatewayDisconnec
|
||||
this.logger.debug(`Emitted project:updated to ${room}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Emit project:deleted event to workspace room
|
||||
*/
|
||||
emitProjectDeleted(workspaceId: string, projectId: string): void {
|
||||
const room = this.getWorkspaceRoom(workspaceId);
|
||||
this.server.to(room).emit('project:deleted', { id: projectId });
|
||||
this.logger.debug(`Emitted project:deleted to ${room}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get workspace room name
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user