diff --git a/package.json b/package.json index a538946..6c83ca2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "brainbox-backend", - "version": "1.7.2", + "version": "1.7.3", "description": "Backend for BrainBox", "author": "lzaycoe (Lazy Code)", "private": true, diff --git a/src/domains/chats/chats.gateway.ts b/src/domains/chats/chats.gateway.ts index 12058a3..39fb21e 100644 --- a/src/domains/chats/chats.gateway.ts +++ b/src/domains/chats/chats.gateway.ts @@ -71,6 +71,37 @@ export class ChatsGateway implements OnGatewayConnection, OnGatewayDisconnect { } } + @SubscribeMessage('getConversations') + async handleGetConversations( + @MessageBody() payload: string, + @ConnectedSocket() client: Socket, + ) { + try { + const parsedPayload = JSON.parse(payload); + const { userId } = parsedPayload; + + if (!userId) { + client.emit('Error', { message: 'User ID is required' }); + return; + } + + const conversations = + await this.chatsService.getUserConversations(userId); + + if (!conversations || conversations.length === 0) { + this.logger.log(`No conversations found for user ${userId}`); + client.emit('Get Conversations', []); + return; + } + + this.logger.log(`✅ Conversations found for user ${userId}`); + client.emit('Get Conversations', conversations); + } catch (error) { + this.logger.error('❌ Error fetching conversations:', error); + client.emit('Error', { message: 'Failed to fetch conversations' }); + } + } + @SubscribeMessage('sendMessage') async handleSendMessage(@MessageBody() payload: string) { const parsedPayload = JSON.parse(payload);