diff --git a/package.json b/package.json index 6c83ca2..4b95e13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "brainbox-backend", - "version": "1.7.3", + "version": "1.7.5", "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 39fb21e..c724fc6 100644 --- a/src/domains/chats/chats.gateway.ts +++ b/src/domains/chats/chats.gateway.ts @@ -122,10 +122,21 @@ export class ChatsGateway implements OnGatewayConnection, OnGatewayDisconnect { @MessageBody() payload: string, @ConnectedSocket() client: Socket, ) { - const parsedPayload = JSON.parse(payload); - const { id } = parsedPayload; - const messages = await this.chatsService.getMessages(+id); - client.emit('Messages', messages); + try { + const parsedPayload = JSON.parse(payload); + const conversationId = Number(parsedPayload.id); + + if (isNaN(conversationId)) { + console.error('Invalid conversationId:', parsedPayload.id); + return client.emit('error', 'Invalid conversationId'); + } + + const messages = await this.chatsService.getMessages(conversationId); + client.emit('Messages', messages); + } catch (error) { + console.error('Error in handleGetMessages:', error); + client.emit('error', 'Failed to get messages'); + } } @SubscribeMessage('updateMessageStatus') diff --git a/src/domains/chats/chats.service.ts b/src/domains/chats/chats.service.ts index 745c401..e8b4690 100644 --- a/src/domains/chats/chats.service.ts +++ b/src/domains/chats/chats.service.ts @@ -42,7 +42,7 @@ export class ChatsService { } async getUserConversations(userId: number) { - const conversations = this.prismaService.conversation.findMany({ + const conversations = await this.prismaService.conversation.findMany({ where: { OR: [{ userAId: userId }, { userBId: userId }], }, @@ -56,6 +56,7 @@ export class ChatsService { } this.logger.log('Conversations found for user'); + this.logger.debug('conversations:', conversations); return conversations; } diff --git a/src/domains/users/users.controller.ts b/src/domains/users/users.controller.ts index 9449fbd..10e746a 100644 --- a/src/domains/users/users.controller.ts +++ b/src/domains/users/users.controller.ts @@ -19,6 +19,11 @@ import { UsersService } from '@/users/users.service'; export class UsersController { constructor(private readonly usersService: UsersService) {} + @Get() + async findAll() { + return this.usersService.findAll(); + } + @Get('/:valueId') async findOne(@Param('valueId') valueId: string) { return this.usersService.findOne(valueId); diff --git a/src/domains/users/users.service.ts b/src/domains/users/users.service.ts index 0abc829..cc4a01c 100644 --- a/src/domains/users/users.service.ts +++ b/src/domains/users/users.service.ts @@ -29,6 +29,23 @@ export class UsersService { private readonly clerkClient: ClerkClient, ) {} + async findAll() { + const users = await this.prismaService.user.findMany(); + + this.logger.debug('Users found:', users); + + const detailedUsers = await Promise.all( + users.map(async (user) => { + const clerkUser = await this.clerkClient.users.getUser(user.clerkId); + return { ...user, clerkUser }; + }), + ); + + this.logger.debug('Detailed users:', detailedUsers); + + return detailedUsers; + } + async findOne(valueId: string): Promise { try { let user;