changed services to add join message

This commit is contained in:
hugogogo
2023-01-09 20:02:35 +01:00
parent ea395ce1af
commit 5184097765
7 changed files with 82 additions and 276 deletions

View File

@@ -21,7 +21,7 @@ export class ChatController {
async getMyRooms(@Req() req, @Res() res): Promise<object>
{
console.log("- in getMyRooms controller");
const rooms = await this.chatService.getMyRooms(req.user);
const rooms = await this.chatService.getMyRooms(req.user.username);
console.log("- out getMyRooms controller");
return res.status(HttpStatus.OK).json({ rooms: rooms });
}
@@ -32,7 +32,7 @@ export class ChatController {
async getAllRooms(@Req() req, @Res() res): Promise<object>
{
console.log("- in getAllRooms controller");
const rooms = await this.chatService.getAllNotMyRooms(req.user);
const rooms = await this.chatService.getAllNotMyRooms(req.user.username);
console.log("- out getAllRooms controller");
return res.status(HttpStatus.OK).json({ rooms: rooms });
}
@@ -43,7 +43,7 @@ export class ChatController {
async setCurrentRoom(@Body() setCurrentRoomDto: setCurrentRoomDto, @Req() req, @Res() res): Promise<object>
{
console.log("- in setCurrentRoom controller");
const response = await this.chatService.setCurrentRoom(req.user, setCurrentRoomDto.name);
const response = await this.chatService.setCurrentRoom(req.user.username, setCurrentRoomDto.name);
console.log("- out setCurrentRoom controller");
return res.status(HttpStatus.OK).json({ message: response });
}
@@ -54,7 +54,7 @@ export class ChatController {
async createRoom(@Body() createRoomDto: createRoomDto, @Req() req, @Res() res): Promise<object>
{
console.log("- in createRoom controller");
const response = await this.chatService.addUserToNewRoom(req.user, createRoomDto);
const response = await this.chatService.addUserToNewRoom(req.user.username, createRoomDto);
console.log("- out createRoom controller");
return res.status(HttpStatus.OK).json({ room_name: createRoomDto.room_name, message: response });
}
@@ -65,7 +65,8 @@ export class ChatController {
async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res): Promise<object>
{
console.log("- in joinRoom controller");
const response = await this.chatService.addUserToRoom(req.user, joinRoomDto);
console.log("-- room_name", joinRoomDto.room_name);
const response = await this.chatService.addUserToRoom(req.user.username, joinRoomDto.room_name);
console.log("- out joinRoom controller");
return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: response });
}
@@ -76,7 +77,7 @@ export class ChatController {
async changeRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res): Promise<object>
{
console.log("- in changeRoom controller");
const response = await this.chatService.setCurrentRoom(req.user, joinRoomDto.room_name);
const response = await this.chatService.setCurrentRoom(req.user.username, joinRoomDto.room_name);
console.log("- out changeRoom controller");
return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: response });
}
@@ -96,7 +97,7 @@ export class ChatController {
async getMessages(@Req() req, @Res() res): Promise<object>
{
console.log("- in getMessages controller");
const messages = await this.chatService.getMessagesFromCurrentRoom(req.user);
const messages = await this.chatService.getMessagesFromCurrentRoom(req.user.username);
console.log("- out getMessages controller");
return res.status(HttpStatus.OK).json({ messages: messages });
}

View File

@@ -37,17 +37,32 @@ export class ChatGateway
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.chatService.addMessageToRoom(room_name, "SERVER", message);
console.log('- out joinRoom gateway');
}
@SubscribeMessage('change')
async changeRoom(@ConnectedSocket() socket, @MessageBody() room_name: string): Promise<void>
{
console.log('- in changeRoom gateway');
socket.leave(socket.room);
socket.join(room_name);
socket.room = room_name;
console.log('- out changeRoom gateway');
}
@SubscribeMessage('message')
async handleMessage(@ConnectedSocket() socket, @MessageBody() message: string): Promise<void>
{
console.log('- in handleMessage gateway');
//let room_name = await this.chatService.getCurrentRoom(socket.username);
socket.to(socket.room).emit('message', socket.username, message);
this.chatService.addMessageToCurrentRoom(socket.username, message);
let room_name = await this.chatService.getCurrentRoom(socket.username);
await this.chatService.addMessageToRoom(room_name, socket.username, message);
console.log('- out handleMessage gateway');
}

View File

@@ -29,12 +29,12 @@ export class ChatService {
/* GETTERS ************************************************
*/
async getMyRooms(user: User)
async getMyRooms(username: string)
{
console.log("-- in getMyRooms service");
const rooms = await this.chatroomRepository
.createQueryBuilder('chatroom')
.where('chatroom.users LIKE :user_name', { user_name: `%${user.username}%` })
.where('chatroom.users LIKE :user_name', { user_name: `%${username}%` })
.getMany();
console.log("-- out getMyRooms service");
@@ -52,15 +52,15 @@ export class ChatService {
return rooms;
}
async getAllNotMyRooms(user: User)
async getAllNotMyRooms(username: string)
{
console.log("-- in getAllNotMyRooms service");
const user_db = await this.getUserByName(user.username);
//const user_db = await this.usersService.findOne(user.username);
const user_db = await this.getUserByName(username);
//const user_db = await this.usersService.findOne(username);
const rooms = await this.chatroomRepository
.createQueryBuilder('chatroom')
.where('chatroom.type != :type', { type: 'private' })
.andWhere('chatroom.users NOT LIKE :user_name', { user_name: `%${user.username}%` })
.andWhere('chatroom.users NOT LIKE :user_name', { user_name: `%${username}%` })
.getMany();
//const users = await this.getAllUsers();
//let allRooms = [...rooms, ...users];
@@ -69,11 +69,11 @@ export class ChatService {
return rooms;
}
async getMessagesFromCurrentRoom(user: User)
async getMessagesFromCurrentRoom(username: string)
{
console.log("-- in getMessagesFromCurrentRoom service");
const user_db = await this.getUserByName(user.username);
//const user_db = await this.usersService.findOne(user.username);
const user_db = await this.getUserByName(username);
//const user_db = await this.usersService.findOne(username);
const currentRoom = await this.getRoomByName(user_db.currentRoom);
console.log("-- out getMessagesFromCurrentRoom service");
@@ -90,12 +90,12 @@ export class ChatService {
return user_db.currentRoom;
}
async getRoomByName(name: string)
async getRoomByName(room_name: string)
{
console.log("-- in getRoomByName service");
const room = await this.chatroomRepository
.createQueryBuilder('chatroom')
.where('chatroom.name = :name', { name: name })
.where('chatroom.name = :name', { name: room_name })
.getOne();
console.log("-- out getRoomByName service");
@@ -118,25 +118,25 @@ export class ChatService {
/* SETTERS ************************************************
*/
async setCurrentRoom(user: User, name: string)
async setCurrentRoom(username: string, room_name: string)
{
console.log("-- in setCurrentRoom service");
const user_db = await this.getUserByName(user.username);
//const user_db = await this.usersService.findOne(user.username);
user_db.currentRoom = name;
const user_db = await this.getUserByName(username);
//const user_db = await this.usersService.findOne(username);
user_db.currentRoom = room_name;
this.userRepository.save(user_db);
console.log("-- out setCurrentRoom service");
return `room "${name}" is now current room`;
return `room "${room_name}" is now current room`;
}
/* ADDERS *************************************************
*/
async addUserToNewRoom(user: User, createRoomDto: createRoomDto)
async addUserToNewRoom(username: string, createRoomDto: createRoomDto)
{
console.log("-- in addUserToRoom service");
console.log("-- in addUserToNewRoom service");
const room = await this.getRoomByName(createRoomDto.room_name);
if (room)
throw new HttpException(`This room already exist`, HttpStatus.CONFLICT);
@@ -145,39 +145,39 @@ export class ChatService {
const newChatroom = new Chatroom();
newChatroom.name = createRoomDto.room_name;
newChatroom.type = createRoomDto.room_type;
newChatroom.owner = user.username;
newChatroom.users = [user.username];
newChatroom.owner = username;
newChatroom.users = [username];
newChatroom.messages = [{ name: "SERVER", message: `creation of room ${createRoomDto.room_name}` }];
this.chatroomRepository.save(newChatroom);
console.log("-- out addUserToRoom service");
console.log("-- out addUserToNewRoom service");
return "successfull room creation";
}
async addUserToRoom(user: User, joinRoomDto: joinRoomDto)
async addUserToRoom(username: string, room_name: string)
{
console.log("-- in addUserToRoom service");
const room = await this.getRoomByName(joinRoomDto.room_name);
if (room.users.includes(user.username))
const room = await this.getRoomByName(room_name);
if (room.users.includes(username))
throw new HttpException(`your have already join this room`, HttpStatus.CONFLICT);
// update room with new user
room.users.push(user.username);
room.users.push(username);
this.chatroomRepository.save(room);
const rooms = await this.getMyRooms(user);
const allRooms = await this.getAllRooms();
await this.setCurrentRoom(username, room_name);
console.log("-- out addUserToRoom service");
return "successfull joining room";
}
async addMessageToCurrentRoom(username: string, message: string)
async addMessageToRoom(room_name: string, username: string, message: string)
{
console.log("-- in addMessageToCurrentRoom service");
const user_db = await this.getUserByName(username);
console.log("-- in addMessageToRoom service");
//const user_db = await this.getUserByName(username);
//const user_db = await this.usersService.findOne(username);
const currentRoom = await this.getRoomByName(user_db.currentRoom);
//console.log("user_db:", user_db);
const currentRoom = await this.getRoomByName(room_name);
let chat_message = {
name: username,
message: message,
@@ -185,14 +185,14 @@ export class ChatService {
currentRoom.messages.push(chat_message);
this.chatroomRepository.save(currentRoom);
console.log("-- out addMessageToCurrentRoom service");
console.log("-- out addMessageToRoom service");
}
/* REMOVERS ***********************************************
*/
async removeUserFromRoom(user: User, room_name: string)
async removeUserFromRoom(username: string, room_name: string)
{
console.log("-- in removeUserFromRoom service");
// get room
@@ -203,12 +203,12 @@ export class ChatService {
/* SEARCH IN USER *****************************************
*/
async getUserByName(name: string)
async getUserByName(username: string)
{
console.log("-- in getUserByName service");
const user = await this.userRepository
.createQueryBuilder('user')
.where('user.username = :name', { name: name })
.where('user.username = :name', { name: username })
.getOne();
console.log("-- out getUserByName service");

View File

@@ -3890,6 +3890,7 @@ var app = (function () {
}
async function join_room(room_name) {
console.log("in join_room");
console.log(room_name);
let name = {
room_name: room_name,
};
@@ -3915,7 +3916,7 @@ var app = (function () {
let data = await response.json();
console.log(data.message);
await get_room_messages();
socket$1.emit('join', name);
socket$1.emit('change', name);
room_name.set(name);
layout.set("room");
}
@@ -4665,7 +4666,7 @@ var app = (function () {
}
// (39:1) <Button new_layout={back} my_class="back icon" my_title="go back {back}">
function create_default_slot_4$4(ctx) {
function create_default_slot_4$3(ctx) {
let t;
const block = {
@@ -4682,7 +4683,7 @@ var app = (function () {
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_4$4.name,
id: create_default_slot_4$3.name,
type: "slot",
source: "(39:1) <Button new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">",
ctx
@@ -4892,7 +4893,7 @@ var app = (function () {
new_layout: /*back*/ ctx[0],
my_class: "back icon",
my_title: "go back " + /*back*/ ctx[0],
$$slots: { default: [create_default_slot_4$4] },
$$slots: { default: [create_default_slot_4$3] },
$$scope: { ctx }
},
$$inline: true
@@ -5258,7 +5259,7 @@ var app = (function () {
}
// (37:1) <Button new_layout={back} my_class="back icon" my_title="go back {back}">
function create_default_slot_4$3(ctx) {
function create_default_slot_4$2(ctx) {
let t;
const block = {
@@ -5275,7 +5276,7 @@ var app = (function () {
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_4$3.name,
id: create_default_slot_4$2.name,
type: "slot",
source: "(37:1) <Button new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">",
ctx
@@ -5631,7 +5632,7 @@ var app = (function () {
new_layout: /*back*/ ctx[0],
my_class: "back icon",
my_title: "go back " + /*back*/ ctx[0],
$$slots: { default: [create_default_slot_4$3] },
$$slots: { default: [create_default_slot_4$2] },
$$scope: { ctx }
},
$$inline: true
@@ -6184,7 +6185,7 @@ var app = (function () {
const file$l = "src/pieces/chat/Layout_room_set.svelte";
// (13:1) <Button new_layout={back} my_class="back icon" my_title="go back {back}">
function create_default_slot_7$2(ctx) {
function create_default_slot_3$3(ctx) {
let t;
const block = {
@@ -6201,7 +6202,7 @@ var app = (function () {
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_7$2.name,
id: create_default_slot_3$3.name,
type: "slot",
source: "(13:1) <Button new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">",
ctx
@@ -6211,7 +6212,7 @@ var app = (function () {
}
// (18:1) <Button my_class="room_name deactivate">
function create_default_slot_6$2(ctx) {
function create_default_slot_2$6(ctx) {
let t;
const block = {
@@ -6228,7 +6229,7 @@ var app = (function () {
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_6$2.name,
id: create_default_slot_2$6.name,
type: "slot",
source: "(18:1) <Button my_class=\\\"room_name deactivate\\\">",
ctx
@@ -6238,7 +6239,7 @@ var app = (function () {
}
// (23:1) <Button new_layout="close" my_class="close icon">
function create_default_slot_5$2(ctx) {
function create_default_slot_1$6(ctx) {
let t;
const block = {
@@ -6255,7 +6256,7 @@ var app = (function () {
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_5$2.name,
id: create_default_slot_1$6.name,
type: "slot",
source: "(23:1) <Button new_layout=\\\"close\\\" my_class=\\\"close icon\\\">",
ctx
@@ -6265,7 +6266,7 @@ var app = (function () {
}
// (29:2) <Button new_layout="create" my_class="create">
function create_default_slot_4$2(ctx) {
function create_default_slot$7(ctx) {
let t;
const block = {
@@ -6280,119 +6281,11 @@ var app = (function () {
}
};
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_4$2.name,
type: "slot",
source: "(29:2) <Button new_layout=\\\"create\\\" my_class=\\\"create\\\">",
ctx
});
return block;
}
// (39:3) <Button new_layout="user" my_class="list">
function create_default_slot_3$3(ctx) {
let t;
const block = {
c: function create() {
t = text("user 1");
},
m: function mount(target, anchor) {
insert_dev(target, t, anchor);
},
d: function destroy(detaching) {
if (detaching) detach_dev(t);
}
};
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_3$3.name,
type: "slot",
source: "(39:3) <Button new_layout=\\\"user\\\" my_class=\\\"list\\\">",
ctx
});
return block;
}
// (42:3) <Button new_layout="user" my_class="list blocked">
function create_default_slot_2$6(ctx) {
let t;
const block = {
c: function create() {
t = text("user 2");
},
m: function mount(target, anchor) {
insert_dev(target, t, anchor);
},
d: function destroy(detaching) {
if (detaching) detach_dev(t);
}
};
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_2$6.name,
type: "slot",
source: "(42:3) <Button new_layout=\\\"user\\\" my_class=\\\"list blocked\\\">",
ctx
});
return block;
}
// (45:3) <Button new_layout="user" my_class="list">
function create_default_slot_1$6(ctx) {
let t;
const block = {
c: function create() {
t = text("user 3");
},
m: function mount(target, anchor) {
insert_dev(target, t, anchor);
},
d: function destroy(detaching) {
if (detaching) detach_dev(t);
}
};
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot_1$6.name,
type: "slot",
source: "(45:3) <Button new_layout=\\\"user\\\" my_class=\\\"list\\\">",
ctx
});
return block;
}
// (48:3) <Button new_layout="user" my_class="list">
function create_default_slot$7(ctx) {
let t;
const block = {
c: function create() {
t = text("user 4");
},
m: function mount(target, anchor) {
insert_dev(target, t, anchor);
},
d: function destroy(detaching) {
if (detaching) detach_dev(t);
}
};
dispatch_dev("SvelteRegisterBlock", {
block,
id: create_default_slot$7.name,
type: "slot",
source: "(48:3) <Button new_layout=\\\"user\\\" my_class=\\\"list\\\">",
source: "(29:2) <Button new_layout=\\\"create\\\" my_class=\\\"create\\\">",
ctx
});
@@ -6415,14 +6308,6 @@ var app = (function () {
let div1;
let div0;
let p1;
let t7;
let button4;
let t8;
let button5;
let t9;
let button6;
let t10;
let button7;
let current;
button0 = new Element_button({
@@ -6430,7 +6315,7 @@ var app = (function () {
new_layout: /*back*/ ctx[0],
my_class: "back icon",
my_title: "go back " + /*back*/ ctx[0],
$$slots: { default: [create_default_slot_7$2] },
$$slots: { default: [create_default_slot_3$3] },
$$scope: { ctx }
},
$$inline: true
@@ -6439,7 +6324,7 @@ var app = (function () {
button1 = new Element_button({
props: {
my_class: "room_name deactivate",
$$slots: { default: [create_default_slot_6$2] },
$$slots: { default: [create_default_slot_2$6] },
$$scope: { ctx }
},
$$inline: true
@@ -6449,7 +6334,7 @@ var app = (function () {
props: {
new_layout: "close",
my_class: "close icon",
$$slots: { default: [create_default_slot_5$2] },
$$slots: { default: [create_default_slot_1$6] },
$$scope: { ctx }
},
$$inline: true
@@ -6459,46 +6344,6 @@ var app = (function () {
props: {
new_layout: "create",
my_class: "create",
$$slots: { default: [create_default_slot_4$2] },
$$scope: { ctx }
},
$$inline: true
});
button4 = new Element_button({
props: {
new_layout: "user",
my_class: "list",
$$slots: { default: [create_default_slot_3$3] },
$$scope: { ctx }
},
$$inline: true
});
button5 = new Element_button({
props: {
new_layout: "user",
my_class: "list blocked",
$$slots: { default: [create_default_slot_2$6] },
$$scope: { ctx }
},
$$inline: true
});
button6 = new Element_button({
props: {
new_layout: "user",
my_class: "list",
$$slots: { default: [create_default_slot_1$6] },
$$scope: { ctx }
},
$$inline: true
});
button7 = new Element_button({
props: {
new_layout: "user",
my_class: "list",
$$slots: { default: [create_default_slot$7] },
$$scope: { ctx }
},
@@ -6524,14 +6369,6 @@ var app = (function () {
div0 = element("div");
p1 = element("p");
p1.textContent = "/ there are no public rooms yet /";
t7 = space();
create_component(button4.$$.fragment);
t8 = space();
create_component(button5.$$.fragment);
t9 = space();
create_component(button6.$$.fragment);
t10 = space();
create_component(button7.$$.fragment);
add_location(p0, file$l, 31, 2, 593);
attr_dev(p1, "class", "__center");
add_location(p1, file$l, 34, 4, 682);
@@ -6563,14 +6400,6 @@ var app = (function () {
append_dev(div2, div1);
append_dev(div1, div0);
append_dev(div0, p1);
append_dev(div1, t7);
mount_component(button4, div1, null);
append_dev(div1, t8);
mount_component(button5, div1, null);
append_dev(div1, t9);
mount_component(button6, div1, null);
append_dev(div1, t10);
mount_component(button7, div1, null);
current = true;
},
p: function update(ctx, [dirty]) {
@@ -6604,34 +6433,6 @@ var app = (function () {
}
button3.$set(button3_changes);
const button4_changes = {};
if (dirty & /*$$scope*/ 2) {
button4_changes.$$scope = { dirty, ctx };
}
button4.$set(button4_changes);
const button5_changes = {};
if (dirty & /*$$scope*/ 2) {
button5_changes.$$scope = { dirty, ctx };
}
button5.$set(button5_changes);
const button6_changes = {};
if (dirty & /*$$scope*/ 2) {
button6_changes.$$scope = { dirty, ctx };
}
button6.$set(button6_changes);
const button7_changes = {};
if (dirty & /*$$scope*/ 2) {
button7_changes.$$scope = { dirty, ctx };
}
button7.$set(button7_changes);
},
i: function intro(local) {
if (current) return;
@@ -6639,10 +6440,6 @@ var app = (function () {
transition_in(button1.$$.fragment, local);
transition_in(button2.$$.fragment, local);
transition_in(button3.$$.fragment, local);
transition_in(button4.$$.fragment, local);
transition_in(button5.$$.fragment, local);
transition_in(button6.$$.fragment, local);
transition_in(button7.$$.fragment, local);
current = true;
},
o: function outro(local) {
@@ -6650,10 +6447,6 @@ var app = (function () {
transition_out(button1.$$.fragment, local);
transition_out(button2.$$.fragment, local);
transition_out(button3.$$.fragment, local);
transition_out(button4.$$.fragment, local);
transition_out(button5.$$.fragment, local);
transition_out(button6.$$.fragment, local);
transition_out(button7.$$.fragment, local);
current = false;
},
d: function destroy(detaching) {
@@ -6662,10 +6455,6 @@ var app = (function () {
destroy_component(button1);
destroy_component(button2);
destroy_component(button3);
destroy_component(button4);
destroy_component(button5);
destroy_component(button6);
destroy_component(button7);
}
};

File diff suppressed because one or more lines are too long

View File

@@ -35,7 +35,6 @@
<p class="__center">/ there are no public rooms yet /</p>
</div>
<!-- placeholders
------------- -->
<Button new_layout="user" my_class="list">
user 1
</Button>
@@ -48,6 +47,7 @@
<Button new_layout="user" my_class="list">
user 4
</Button>
------------- -->
<!-- END placeholders -->
</div>
</div>

View File

@@ -48,6 +48,7 @@ export async function create_room(room_name, room_type)
export async function join_room(room_name)
{
console.log("in join_room");
console.log(room_name);
let name = {
room_name: room_name,
@@ -79,7 +80,7 @@ export async function change_room(name)
console.log(data.message);
await get_room_messages();
socket.emit('join', name);
socket.emit('change', name);
room_name.set(name);
layout.set("room");