From 239b16bfa86fa6330aa86da516b4f576b2fdc577 Mon Sep 17 00:00:00 2001 From: simplonco Date: Tue, 10 Jan 2023 15:36:41 +0100 Subject: [PATCH] moving gateway logic in service --- .../nestjs/api_back/src/chat/chat.gateway.ts | 8 +-- .../nestjs/api_back/src/chat/chat.service.ts | 54 +++++++++++++------ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts index 0c5ac006..aa36f641 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.gateway.ts @@ -45,9 +45,7 @@ export class ChatGateway async changeRoom(@ConnectedSocket() socket: socketDto, @MessageBody() room_name: string): Promise { console.log('- in changeRoom gateway'); - socket.leave(socket.room); - socket.join(room_name); - socket.room = room_name; + await this.chatService.socketChangeRoom(socket, room_name); console.log('- out changeRoom gateway'); } @@ -56,9 +54,7 @@ export class ChatGateway async handleMessage(@ConnectedSocket() socket: socketDto, @MessageBody() message: string): Promise { console.log('- in handleMessage gateway'); - socket.to(socket.room).emit('message', socket.username, message); - let room_name = await this.chatService.getCurrentRoomName(socket.username); - await this.chatService.addMessageToRoom(room_name, socket.username, message); + await this.chatService.socketIncommingMessage(socket, message); console.log('- out handleMessage gateway'); } diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index e311b43d..4e7bde68 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -7,6 +7,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { createRoomDto } from './dto/createRoom.dto'; import { joinRoomDto } from './dto/joinRoom.dto'; import { messagesDto } from './dto/messages.dto'; +import { socketDto } from './dto/socket.dto'; @Injectable() export class ChatService { @@ -230,24 +231,43 @@ export class ChatService { /* GATEWAY EVENTS ***************************************** - - async handleMessage() - { - console.log("-- in getUserByName service"); - - // socket.to(socket.room).emit('message', socket.username, message); - // let room_name = await this.chatService.getCurrentRoomName(socket.username); - // await this.chatService.addMessageToRoom(room_name, socket.username, message); - - const user = await this.userRepository - .createQueryBuilder('user') - .where('user.username = :name', { name: username }) - .getOne(); - - console.log("-- out getUserByName service"); - return user; - } */ + async socketIncommingMessage(socket: socketDto, message: string): Promise + { + console.log("-- in handleSocketIncommingMessage service"); + + socket.to(socket.room).emit('message', socket.username, message); + let room_name = await this.getCurrentRoomName(socket.username); + await this.addMessageToRoom(room_name, socket.username, message); + + console.log("-- out handleSocketIncommingMessage service"); + } + + async socketChangeRoom(socket: socketDto, room_name: string): Promise + { + console.log('-- in socketChangeRoom service'); + + socket.leave(socket.room); + socket.join(room_name); + socket.room = room_name; + + console.log('-- out socketChangeRoom service'); + } + + async socketJoinRoom(socket: socketDto, room_name: string): Promise + { + console.log('- in socketJoinRoom service'); + + socket.leave(socket.room); + socket.join(room_name); + socket.room = room_name; + let message = `${socket.username} has join the room`; + await socket.to(socket.room).emit('message', "SERVER", message); + await this.addMessageToRoom(room_name, "SERVER", message); + + console.log('- out socketJoinRoom service'); + } + }