wip db request with array not working

This commit is contained in:
simplonco
2023-01-08 20:21:19 +01:00
parent f4dc5cde53
commit ebbd5ff530
8 changed files with 214 additions and 120 deletions

View File

@@ -3,6 +3,7 @@ import { AuthenticateGuard, TwoFactorGuard } from 'src/auth/42/guards/42guards';
import { ChatService } from './chat.service'; import { ChatService } from './chat.service';
import { User } from 'src/users/entities/user.entity'; import { User } from 'src/users/entities/user.entity';
import { createRoomDto } from './dto/createRoom.dto'; import { createRoomDto } from './dto/createRoom.dto';
import { joinRoomDto } from './dto/joinRoom.dto';
import { setCurrentRoomDto } from './dto/setCurrentRoom.dto'; import { setCurrentRoomDto } from './dto/setCurrentRoom.dto';
@Controller('chat') @Controller('chat')
@@ -48,16 +49,18 @@ export class ChatController {
async createRoom(@Body() createRoomDto: createRoomDto, @Req() req, @Res() res): Promise<object> async createRoom(@Body() createRoomDto: createRoomDto, @Req() req, @Res() res): Promise<object>
{ {
console.log("- in createRoom controller"); console.log("- in createRoom controller");
const response = await this.chatService.addUserToRoom(req.user, createRoomDto); const response = await this.chatService.addUserToNewRoom(req.user, createRoomDto);
return res.status(HttpStatus.OK).json({ room_name: createRoomDto.room_name, message: response }); return res.status(HttpStatus.OK).json({ room_name: createRoomDto.room_name, message: response });
} }
@UseGuards(AuthenticateGuard) @UseGuards(AuthenticateGuard)
@UseGuards(TwoFactorGuard) @UseGuards(TwoFactorGuard)
@Post('join') @Post('join')
async joinRoom(@Body() body) async joinRoom(@Body() joinRoomDto: joinRoomDto, @Req() req, @Res() res): Promise<object>
{ {
console.log("- in joinRoom controller"); console.log("- in joinRoom controller");
const response = await this.chatService.addUserToRoom(req.user, joinRoomDto);
return res.status(HttpStatus.OK).json({ room_name: joinRoomDto.room_name, message: response });
} }
@UseGuards(AuthenticateGuard) @UseGuards(AuthenticateGuard)

View File

@@ -5,6 +5,7 @@ import { Chatroom } from './entities/chatroom.entity';
import { Repository } from 'typeorm'; import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { createRoomDto } from './dto/createRoom.dto'; import { createRoomDto } from './dto/createRoom.dto';
import { joinRoomDto } from './dto/joinRoom.dto';
import { messagesDto } from './dto/messages.dto'; import { messagesDto } from './dto/messages.dto';
@Injectable() @Injectable()
@@ -29,7 +30,17 @@ export class ChatService {
console.log("-- in getMyRooms service"); console.log("-- in getMyRooms service");
const rooms = await this.chatroomRepository const rooms = await this.chatroomRepository
.createQueryBuilder('chatroom') .createQueryBuilder('chatroom')
.where(':user_id IN (chatroom.users)', { user_id: user.fortyTwoId }) .where(':user_name ANY(chatroom.users)', { user_name: user.username })
.getMany();
return rooms;
}
async getAllRooms()
{
console.log("-- in getAllRooms service");
const rooms = await this.chatroomRepository
.createQueryBuilder('chatroom')
.getMany(); .getMany();
return rooms; return rooms;
@@ -38,11 +49,11 @@ export class ChatService {
async getAllNotMyRooms(user: User) async getAllNotMyRooms(user: User)
{ {
console.log("-- in getAllNotMyRooms service"); console.log("-- in getAllNotMyRooms service");
const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); const user_db = await this.findUserByName(user.username);
const rooms = await this.chatroomRepository const rooms = await this.chatroomRepository
.createQueryBuilder('chatroom') .createQueryBuilder('chatroom')
.where('chatroom.type != :type', { type: 'private' }) .where('chatroom.type != :type', { type: 'private' })
.andWhere(':user_id NOT IN (chatroom.users)', { user_id: user.fortyTwoId }) .andWhere(':user_name NOT IN (chatroom.users)', { user_name: user.username })
.getMany(); .getMany();
//const users = await this.findAllUsers(); //const users = await this.findAllUsers();
//let allRooms = [...rooms, ...users]; //let allRooms = [...rooms, ...users];
@@ -102,20 +113,17 @@ export class ChatService {
async setCurrentRoom(user: User, name: string) async setCurrentRoom(user: User, name: string)
{ {
console.log("-- in setCurrentRoom service"); console.log("-- in setCurrentRoom service");
const user_db = await this.usersService.findOneByFourtyTwoId(user.fortyTwoId); const user_db = await this.findUserByName(user.username);
user_db.currentRoom = name; user_db.currentRoom = name;
this.userRepository.save(user_db); this.userRepository.save(user_db);
return `room "${name}" is now current room`; return `room "${name}" is now current room`;
} }
async addUserToRoom(user: User, createRoomDto: createRoomDto) async addUserToNewRoom(user: User, createRoomDto: createRoomDto)
{ {
console.log("-- in addUserToRoom service"); console.log("-- in addUserToRoom service");
const room = await this.chatroomRepository const room = await this.findRoomByName(createRoomDto.room_name);
.createQueryBuilder('chatroom')
.where('chatroom.name = :name', { name: createRoomDto.room_name })
.getOne();
if (room) if (room)
throw new HttpException(`This room already exist`, HttpStatus.CONFLICT); throw new HttpException(`This room already exist`, HttpStatus.CONFLICT);
@@ -123,8 +131,8 @@ export class ChatService {
const newChatroom = new Chatroom(); const newChatroom = new Chatroom();
newChatroom.name = createRoomDto.room_name; newChatroom.name = createRoomDto.room_name;
newChatroom.type = createRoomDto.room_type; newChatroom.type = createRoomDto.room_type;
newChatroom.owner = user.fortyTwoId; newChatroom.owner = user.username;
newChatroom.users = [user.fortyTwoId]; newChatroom.users = [user.username];
newChatroom.messages = [{ name: "SERVER", message: `creation of room ${createRoomDto.room_name}` }]; newChatroom.messages = [{ name: "SERVER", message: `creation of room ${createRoomDto.room_name}` }];
this.chatroomRepository.save(newChatroom); this.chatroomRepository.save(newChatroom);
@@ -133,6 +141,27 @@ export class ChatService {
return "successfull room creation"; return "successfull room creation";
} }
async addUserToRoom(user: User, joinRoomDto: joinRoomDto)
{
console.log("-- in addUserToRoom service");
const room = await this.findRoomByName(joinRoomDto.room_name);
if (room.users.includes(user.username))
throw new HttpException(`your have already join this room`, HttpStatus.CONFLICT);
// update room with new user
room.users.push(user.username);
this.chatroomRepository.save(room);
const rooms = await this.getMyRooms(user);
console.log("rooms:", rooms);
const allRooms = await this.getAllRooms();
console.log("allRooms:", allRooms);
this.setCurrentRoom(user, joinRoomDto.room_name)
return "successfull joining room";
}
async removeUserFromRoom(user: User, room_name: string) async removeUserFromRoom(user: User, room_name: string)
{ {
console.log("-- in removeUserFromRoom service"); console.log("-- in removeUserFromRoom service");

View File

@@ -0,0 +1,10 @@
import { IsBoolean, IsEmpty, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional } from "class-validator";
import { IsNull } from "typeorm";
export class joinRoomDto
{
@IsString()
@IsNotEmpty()
room_name: string;
}

View File

@@ -27,10 +27,10 @@ export class Chatroom {
// users: User[]; // users: User[];
@Column() @Column()
owner: string; // fortytwo id owner: string; // name
@Column("simple-array") @Column("simple-array")
users: string[]; // fortytwo id users: string[]; // names
@Column("json") @Column("json")
messages: { name: string, message: string }[]; messages: { name: string, message: string }[];

View File

@@ -3896,11 +3896,9 @@ var app = (function () {
} }
let msgs = writable([]); let msgs = writable([]);
let user; let user;
let socket$1; let socket$1;
function set_user(new_user) { user = new_user; }
function set_user(new_user) { user = new_user; }
function set_socket(new_socket) { socket$1 = new_socket; } function set_socket(new_socket) { socket$1 = new_socket; }
/* src/pieces/chat/Layout_home.svelte generated by Svelte v3.53.1 */ /* src/pieces/chat/Layout_home.svelte generated by Svelte v3.53.1 */
@@ -5406,7 +5404,7 @@ var app = (function () {
return child_ctx; return child_ctx;
} }
// (30:1) <Button bind:layout new_layout={back} my_class="back icon" my_title="go back {back}"> // (67:1) <Button bind:layout new_layout={back} my_class="back icon" my_title="go back {back}">
function create_default_slot_4$2(ctx) { function create_default_slot_4$2(ctx) {
let t; let t;
@@ -5426,14 +5424,14 @@ var app = (function () {
block, block,
id: create_default_slot_4$2.name, id: create_default_slot_4$2.name,
type: "slot", type: "slot",
source: "(30:1) <Button bind:layout new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">", source: "(67:1) <Button bind:layout new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">",
ctx ctx
}); });
return block; return block;
} }
// (35:1) <Button my_class="new deactivate"> // (72:1) <Button my_class="new deactivate">
function create_default_slot_3$3(ctx) { function create_default_slot_3$3(ctx) {
let t; let t;
@@ -5453,14 +5451,14 @@ var app = (function () {
block, block,
id: create_default_slot_3$3.name, id: create_default_slot_3$3.name,
type: "slot", type: "slot",
source: "(35:1) <Button my_class=\\\"new deactivate\\\">", source: "(72:1) <Button my_class=\\\"new deactivate\\\">",
ctx ctx
}); });
return block; return block;
} }
// (40:1) <Button bind:layout new_layout="close" my_class="close icon"> // (77:1) <Button bind:layout new_layout="close" my_class="close icon">
function create_default_slot_2$7(ctx) { function create_default_slot_2$7(ctx) {
let t; let t;
@@ -5480,14 +5478,14 @@ var app = (function () {
block, block,
id: create_default_slot_2$7.name, id: create_default_slot_2$7.name,
type: "slot", type: "slot",
source: "(40:1) <Button bind:layout new_layout=\\\"close\\\" my_class=\\\"close icon\\\">", source: "(77:1) <Button bind:layout new_layout=\\\"close\\\" my_class=\\\"close icon\\\">",
ctx ctx
}); });
return block; return block;
} }
// (46:2) <Button bind:layout new_layout="create" my_class="create"> // (83:2) <Button bind:layout new_layout="create" my_class="create">
function create_default_slot_1$7(ctx) { function create_default_slot_1$7(ctx) {
let t; let t;
@@ -5507,7 +5505,7 @@ var app = (function () {
block, block,
id: create_default_slot_1$7.name, id: create_default_slot_1$7.name,
type: "slot", type: "slot",
source: "(46:2) <Button bind:layout new_layout=\\\"create\\\" my_class=\\\"create\\\">", source: "(83:2) <Button bind:layout new_layout=\\\"create\\\" my_class=\\\"create\\\">",
ctx ctx
}); });
@@ -5536,7 +5534,7 @@ var app = (function () {
return block; return block;
} }
// (57:3) {:then} // (94:3) {:then}
function create_then_block$1(ctx) { function create_then_block$1(ctx) {
let each_1_anchor; let each_1_anchor;
let current; let current;
@@ -5625,14 +5623,14 @@ var app = (function () {
block, block,
id: create_then_block$1.name, id: create_then_block$1.name,
type: "then", type: "then",
source: "(57:3) {:then}", source: "(94:3) {:then}",
ctx ctx
}); });
return block; return block;
} }
// (59:5) <Button my_class="list" on_click={join_rooms}> // (96:5) <Button my_class="list" on_click={join_rooms}>
function create_default_slot$9(ctx) { function create_default_slot$9(ctx) {
let t0_value = /*room*/ ctx[7].name + ""; let t0_value = /*room*/ ctx[7].name + "";
let t0; let t0;
@@ -5660,14 +5658,14 @@ var app = (function () {
block, block,
id: create_default_slot$9.name, id: create_default_slot$9.name,
type: "slot", type: "slot",
source: "(59:5) <Button my_class=\\\"list\\\" on_click={join_rooms}>", source: "(96:5) <Button my_class=\\\"list\\\" on_click={join_rooms}>",
ctx ctx
}); });
return block; return block;
} }
// (58:4) {#each rooms as room} // (95:4) {#each rooms as room}
function create_each_block$4(ctx) { function create_each_block$4(ctx) {
let button; let button;
let current; let current;
@@ -5717,14 +5715,14 @@ var app = (function () {
block, block,
id: create_each_block$4.name, id: create_each_block$4.name,
type: "each", type: "each",
source: "(58:4) {#each rooms as room}", source: "(95:4) {#each rooms as room}",
ctx ctx
}); });
return block; return block;
} }
// (54:21) <!-- promise is pending --> <p>rooms are loaded...</p> {:then} // (91:21) <!-- promise is pending --> <p>rooms are loaded...</p> {:then}
function create_pending_block$1(ctx) { function create_pending_block$1(ctx) {
let p; let p;
@@ -5732,7 +5730,7 @@ var app = (function () {
c: function create() { c: function create() {
p = element("p"); p = element("p");
p.textContent = "rooms are loaded..."; p.textContent = "rooms are loaded...";
add_location(p, file$m, 55, 4, 1128); add_location(p, file$m, 92, 4, 1943);
}, },
m: function mount(target, anchor) { m: function mount(target, anchor) {
insert_dev(target, p, anchor); insert_dev(target, p, anchor);
@@ -5749,7 +5747,7 @@ var app = (function () {
block, block,
id: create_pending_block$1.name, id: create_pending_block$1.name,
type: "pending", type: "pending",
source: "(54:21) <!-- promise is pending --> <p>rooms are loaded...</p> {:then}", source: "(91:21) <!-- promise is pending --> <p>rooms are loaded...</p> {:then}",
ctx ctx
}); });
@@ -5876,17 +5874,17 @@ var app = (function () {
p1.textContent = "/ there are no public rooms yet /"; p1.textContent = "/ there are no public rooms yet /";
t7 = space(); t7 = space();
info.block.c(); info.block.c();
add_location(p0, file$m, 48, 2, 912); add_location(p0, file$m, 85, 2, 1727);
attr_dev(p1, "class", "__center"); attr_dev(p1, "class", "__center");
add_location(p1, file$m, 51, 4, 1002); add_location(p1, file$m, 88, 4, 1817);
attr_dev(div0, "class", "__show_if_only_child"); attr_dev(div0, "class", "__show_if_only_child");
add_location(div0, file$m, 50, 3, 963); add_location(div0, file$m, 87, 3, 1778);
attr_dev(div1, "class", "public_rooms"); attr_dev(div1, "class", "public_rooms");
add_location(div1, file$m, 49, 2, 933); add_location(div1, file$m, 86, 2, 1748);
attr_dev(div2, "class", "panel panel_new __border_top"); attr_dev(div2, "class", "panel panel_new __border_top");
add_location(div2, file$m, 44, 1, 784); add_location(div2, file$m, 81, 1, 1599);
attr_dev(div3, "class", "grid_box svelte-1b4c0qx"); attr_dev(div3, "class", "grid_box svelte-1b4c0qx");
add_location(div3, file$m, 26, 0, 451); add_location(div3, file$m, 63, 0, 1266);
}, },
l: function claim(nodes) { l: function claim(nodes) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -6010,9 +6008,37 @@ var app = (function () {
return block; return block;
} }
function join_rooms() { function join_rooms(evt) {
console.log("inside join_rooms"); console.log("inside join_rooms");
} let room_name = { room_name: evt.target.innerText };
fetch('/api/v2/chat/join', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(room_name)
}).then(resp => resp.json()).then(data => {
console.log(data);
}); // data.messages.forEach(function(item) {
// if (item.name === user.username) {
// item.name = "me";
// }
// });
} // msgs.update(msgs => msgs.concat(data.messages));
/*
const messages = fetch('/api/v2/chat/messages')
.then(resp => resp.json())
.then(data =>
{
console.log(data.messages);
data.messages.forEach(function(item) {
if (item.name === user.username) {
item.name = "me";
}
});
msgs.update(msgs => msgs.concat(data.messages));
});
layout = "room";
*/
function instance$p($$self, $$props, $$invalidate) { function instance$p($$self, $$props, $$invalidate) {
let { $$slots: slots = {}, $$scope } = $$props; let { $$slots: slots = {}, $$scope } = $$props;
@@ -7642,7 +7668,7 @@ var app = (function () {
const { console: console_1$8 } = globals; const { console: console_1$8 } = globals;
const file$h = "src/pieces/chat/Layout_create.svelte"; const file$h = "src/pieces/chat/Layout_create.svelte";
// (42:1) <Button bind:layout new_layout={back} my_class="back icon" my_title="go back {back}"> // (41:1) <Button bind:layout new_layout={back} my_class="back icon" my_title="go back {back}">
function create_default_slot_2$3(ctx) { function create_default_slot_2$3(ctx) {
let t; let t;
@@ -7662,14 +7688,14 @@ var app = (function () {
block, block,
id: create_default_slot_2$3.name, id: create_default_slot_2$3.name,
type: "slot", type: "slot",
source: "(42:1) <Button bind:layout new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">", source: "(41:1) <Button bind:layout new_layout={back} my_class=\\\"back icon\\\" my_title=\\\"go back {back}\\\">",
ctx ctx
}); });
return block; return block;
} }
// (47:1) <Button my_class="create deactivate"> // (46:1) <Button my_class="create deactivate">
function create_default_slot_1$3(ctx) { function create_default_slot_1$3(ctx) {
let t; let t;
@@ -7689,14 +7715,14 @@ var app = (function () {
block, block,
id: create_default_slot_1$3.name, id: create_default_slot_1$3.name,
type: "slot", type: "slot",
source: "(47:1) <Button my_class=\\\"create deactivate\\\">", source: "(46:1) <Button my_class=\\\"create deactivate\\\">",
ctx ctx
}); });
return block; return block;
} }
// (52:1) <Button bind:layout new_layout="close" my_class="close icon"> // (51:1) <Button bind:layout new_layout="close" my_class="close icon">
function create_default_slot$5(ctx) { function create_default_slot$5(ctx) {
let t; let t;
@@ -7716,14 +7742,14 @@ var app = (function () {
block, block,
id: create_default_slot$5.name, id: create_default_slot$5.name,
type: "slot", type: "slot",
source: "(52:1) <Button bind:layout new_layout=\\\"close\\\" my_class=\\\"close icon\\\">", source: "(51:1) <Button bind:layout new_layout=\\\"close\\\" my_class=\\\"close icon\\\">",
ctx ctx
}); });
return block; return block;
} }
// (59:3) {#if response_status >= 300} // (58:3) {#if response_status >= 300}
function create_if_block_1$5(ctx) { function create_if_block_1$5(ctx) {
let warning; let warning;
let current; let current;
@@ -7764,14 +7790,14 @@ var app = (function () {
block, block,
id: create_if_block_1$5.name, id: create_if_block_1$5.name,
type: "if", type: "if",
source: "(59:3) {#if response_status >= 300}", source: "(58:3) {#if response_status >= 300}",
ctx ctx
}); });
return block; return block;
} }
// (81:3) {#if room_type === 'protected'} // (80:3) {#if room_type === 'protected'}
function create_if_block$b(ctx) { function create_if_block$b(ctx) {
let div; let div;
let label; let label;
@@ -7790,10 +7816,10 @@ var app = (function () {
t1 = space(); t1 = space();
input = element("input"); input = element("input");
attr_dev(p, "class", "svelte-1ulnmwp"); attr_dev(p, "class", "svelte-1ulnmwp");
add_location(p, file$h, 82, 28, 2634); add_location(p, file$h, 81, 28, 2596);
attr_dev(label, "for", "chat_pswd"); attr_dev(label, "for", "chat_pswd");
attr_dev(label, "class", "svelte-1ulnmwp"); attr_dev(label, "class", "svelte-1ulnmwp");
add_location(label, file$h, 82, 5, 2611); add_location(label, file$h, 81, 5, 2573);
attr_dev(input, "id", "chat_pswd"); attr_dev(input, "id", "chat_pswd");
attr_dev(input, "type", "password"); attr_dev(input, "type", "password");
attr_dev(input, "placeholder", "minimum 8 characters"); attr_dev(input, "placeholder", "minimum 8 characters");
@@ -7801,9 +7827,9 @@ var app = (function () {
attr_dev(input, "name", "password"); attr_dev(input, "name", "password");
input.required = true; input.required = true;
attr_dev(input, "class", "svelte-1ulnmwp"); attr_dev(input, "class", "svelte-1ulnmwp");
add_location(input, file$h, 83, 5, 2674); add_location(input, file$h, 82, 5, 2636);
attr_dev(div, "class", "svelte-1ulnmwp"); attr_dev(div, "class", "svelte-1ulnmwp");
add_location(div, file$h, 81, 4, 2600); add_location(div, file$h, 80, 4, 2562);
}, },
m: function mount(target, anchor) { m: function mount(target, anchor) {
insert_dev(target, div, anchor); insert_dev(target, div, anchor);
@@ -7834,7 +7860,7 @@ var app = (function () {
block, block,
id: create_if_block$b.name, id: create_if_block$b.name,
type: "if", type: "if",
source: "(81:3) {#if room_type === 'protected'}", source: "(80:3) {#if room_type === 'protected'}",
ctx ctx
}); });
@@ -7969,17 +7995,17 @@ var app = (function () {
t16 = space(); t16 = space();
input4 = element("input"); input4 = element("input");
attr_dev(p0, "class", "svelte-1ulnmwp"); attr_dev(p0, "class", "svelte-1ulnmwp");
add_location(p0, file$h, 62, 26, 1787); add_location(p0, file$h, 61, 26, 1749);
attr_dev(label0, "for", "chat_name"); attr_dev(label0, "for", "chat_name");
attr_dev(label0, "class", "svelte-1ulnmwp"); attr_dev(label0, "class", "svelte-1ulnmwp");
add_location(label0, file$h, 62, 3, 1764); add_location(label0, file$h, 61, 3, 1726);
attr_dev(input0, "id", "chat_name"); attr_dev(input0, "id", "chat_name");
attr_dev(input0, "name", "room_name"); attr_dev(input0, "name", "room_name");
input0.required = true; input0.required = true;
attr_dev(input0, "class", "svelte-1ulnmwp"); attr_dev(input0, "class", "svelte-1ulnmwp");
add_location(input0, file$h, 63, 3, 1821); add_location(input0, file$h, 62, 3, 1783);
attr_dev(p1, "class", "svelte-1ulnmwp"); attr_dev(p1, "class", "svelte-1ulnmwp");
add_location(p1, file$h, 66, 4, 1964); add_location(p1, file$h, 65, 4, 1926);
attr_dev(input1, "id", "chat_public"); attr_dev(input1, "id", "chat_public");
attr_dev(input1, "type", "radio"); attr_dev(input1, "type", "radio");
attr_dev(input1, "name", "room_type"); attr_dev(input1, "name", "room_type");
@@ -7988,12 +8014,12 @@ var app = (function () {
input1.required = true; input1.required = true;
attr_dev(input1, "class", "svelte-1ulnmwp"); attr_dev(input1, "class", "svelte-1ulnmwp");
/*$$binding_groups*/ ctx[12][0].push(input1); /*$$binding_groups*/ ctx[12][0].push(input1);
add_location(input1, file$h, 67, 4, 1982); add_location(input1, file$h, 66, 4, 1944);
attr_dev(label1, "for", "chat_public"); attr_dev(label1, "for", "chat_public");
attr_dev(label1, "class", "_radio svelte-1ulnmwp"); attr_dev(label1, "class", "_radio svelte-1ulnmwp");
add_location(label1, file$h, 65, 3, 1919); add_location(label1, file$h, 64, 3, 1881);
attr_dev(p2, "class", "svelte-1ulnmwp"); attr_dev(p2, "class", "svelte-1ulnmwp");
add_location(p2, file$h, 71, 4, 2175); add_location(p2, file$h, 70, 4, 2137);
attr_dev(input2, "id", "chat_private"); attr_dev(input2, "id", "chat_private");
attr_dev(input2, "type", "radio"); attr_dev(input2, "type", "radio");
attr_dev(input2, "name", "room_type"); attr_dev(input2, "name", "room_type");
@@ -8002,12 +8028,12 @@ var app = (function () {
input2.required = true; input2.required = true;
attr_dev(input2, "class", "svelte-1ulnmwp"); attr_dev(input2, "class", "svelte-1ulnmwp");
/*$$binding_groups*/ ctx[12][0].push(input2); /*$$binding_groups*/ ctx[12][0].push(input2);
add_location(input2, file$h, 72, 4, 2194); add_location(input2, file$h, 71, 4, 2156);
attr_dev(label2, "for", "chat_private"); attr_dev(label2, "for", "chat_private");
attr_dev(label2, "class", "_radio hide svelte-1ulnmwp"); attr_dev(label2, "class", "_radio hide svelte-1ulnmwp");
add_location(label2, file$h, 70, 3, 2124); add_location(label2, file$h, 69, 3, 2086);
attr_dev(p3, "class", "svelte-1ulnmwp"); attr_dev(p3, "class", "svelte-1ulnmwp");
add_location(p3, file$h, 76, 4, 2393); add_location(p3, file$h, 75, 4, 2355);
attr_dev(input3, "id", "chat_protected"); attr_dev(input3, "id", "chat_protected");
attr_dev(input3, "type", "radio"); attr_dev(input3, "type", "radio");
attr_dev(input3, "name", "room_type"); attr_dev(input3, "name", "room_type");
@@ -8016,20 +8042,20 @@ var app = (function () {
input3.required = true; input3.required = true;
attr_dev(input3, "class", "svelte-1ulnmwp"); attr_dev(input3, "class", "svelte-1ulnmwp");
/*$$binding_groups*/ ctx[12][0].push(input3); /*$$binding_groups*/ ctx[12][0].push(input3);
add_location(input3, file$h, 77, 4, 2414); add_location(input3, file$h, 76, 4, 2376);
attr_dev(label3, "for", "chat_protected"); attr_dev(label3, "for", "chat_protected");
attr_dev(label3, "class", "_radio hide svelte-1ulnmwp"); attr_dev(label3, "class", "_radio hide svelte-1ulnmwp");
add_location(label3, file$h, 75, 3, 2340); add_location(label3, file$h, 74, 3, 2302);
attr_dev(input4, "type", "submit"); attr_dev(input4, "type", "submit");
input4.value = "⮡"; input4.value = "⮡";
attr_dev(input4, "class", "svelte-1ulnmwp"); attr_dev(input4, "class", "svelte-1ulnmwp");
add_location(input4, file$h, 86, 3, 2838); add_location(input4, file$h, 85, 3, 2800);
attr_dev(form, "class", "svelte-1ulnmwp"); attr_dev(form, "class", "svelte-1ulnmwp");
add_location(form, file$h, 57, 2, 1613); add_location(form, file$h, 56, 2, 1575);
attr_dev(div0, "class", "panel panel_create __border_top svelte-1ulnmwp"); attr_dev(div0, "class", "panel panel_create __border_top svelte-1ulnmwp");
add_location(div0, file$h, 56, 1, 1565); add_location(div0, file$h, 55, 1, 1527);
attr_dev(div1, "class", "grid_box svelte-1ulnmwp"); attr_dev(div1, "class", "grid_box svelte-1ulnmwp");
add_location(div1, file$h, 38, 0, 1220); add_location(div1, file$h, 37, 0, 1182);
}, },
l: function claim(nodes) { l: function claim(nodes) {
throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option");
@@ -8232,7 +8258,7 @@ var app = (function () {
async function handleSubmit(evt) { async function handleSubmit(evt) {
let formIsValid = evt.target.checkValidity(); let formIsValid = evt.target.checkValidity();
if (!formIsValid) return; if (!formIsValid) return;
let formData = { room_name, room_type, room_password }; let formData = { room_name, room_type };
console.log("formData:", formData); console.log("formData:", formData);
// send the new room // send the new room
@@ -14954,54 +14980,44 @@ var app = (function () {
connect: lookup, connect: lookup,
}); });
function socket_events(socket) function socket_events(socket) {
{ socket.on('message', function (from, message) {
socket.on('message', function(from, message) console.log("received msg:", message, from);
{ if (from === user.username)
console.log("received msg:", message, from); from = "me";
if (from === user.username) msgs.update(msgs => [...msgs, { name: from, message: message }]);
from = "me"; });
msgs.update(msgs => [...msgs, { name: from, message: message }]);
});
} }
function connection_states(socket) function connection_states(socket) {
{ socket.on('connect', function () { console.log("socket.io connected"); });
socket.on('connect', function(){ console.log("socket.io connected"); }); socket.on('disconnect', function () { console.log("socket.io disconnected"); });
socket.on('disconnect', function(){ console.log("socket.io disconnected"); }); socket.on('connect_error', function () { console.log("socket.io connect_error"); });
socket.on('connect_error', function(){ console.log("socket.io connect_error"); }); socket.on('connect_timeout', function () { console.log("socket.io connect_timeout"); });
socket.on('connect_timeout', function(){ console.log("socket.io connect_timeout"); }); socket.on('error', function () { console.log("socket.io error"); });
socket.on('error', function(){ console.log("socket.io error"); }); socket.on('reconnect', function () { console.log("socket.io reconnect"); });
socket.on('reconnect', function(){ console.log("socket.io reconnect"); }); socket.on('reconnect_attempt', function () { console.log("socket.io reconnect_attempt"); });
socket.on('reconnect_attempt', function(){ console.log("socket.io reconnect_attempt"); }); socket.on('reconnecting', function () { console.log("socket.io reconnecting"); });
socket.on('reconnecting', function(){ console.log("socket.io reconnecting"); }); socket.on('reconnect_error', function () { console.log("socket.io reconnect_error"); });
socket.on('reconnect_error', function(){ console.log("socket.io reconnect_error"); }); socket.on('reconnect_failed', function () { console.log("socket.io reconnect_failed"); });
socket.on('reconnect_failed', function(){ console.log("socket.io reconnect_failed"); }); socket.on('ping', function () { console.log("socket.io ping"); });
socket.on('ping', function(){ console.log("socket.io ping"); }); socket.on('pong', function () { console.log("socket.io pong"); });
socket.on('pong', function(){ console.log("socket.io pong"); });
} }
const address = `http://${'transcendance'}:${'8080'}`; const address = `http://${'transcendance'}:${'8080'}`;
async function init_socket() {
async function init_socket() const response = await fetch(`${address}/api/v2/user`);
{ const response_data = await response.json();
const response = await fetch(`${address}/api/v2/user`); set_user(response_data);
const response_data = await response.json(); let socket = await lookup(address, {
path: '/chat',
set_user(response_data); query: {
username: response_data.username,
let socket = await lookup(address, },
{ });
path: '/chat', set_socket(socket);
query: connection_states(socket);
{ socket_events(socket);
username: response_data.username,
},
});
set_socket(socket);
connection_states(socket);
socket_events(socket);
} }
/* src/pieces/chat/Chat.svelte generated by Svelte v3.53.1 */ /* src/pieces/chat/Chat.svelte generated by Svelte v3.53.1 */

File diff suppressed because one or more lines are too long

View File

@@ -22,7 +22,6 @@
let formData = { let formData = {
room_name: room_name, room_name: room_name,
room_type: room_type, room_type: room_type,
room_password: room_password,
}; };
console.log("formData:", formData); console.log("formData:", formData);

View File

@@ -17,9 +17,46 @@
rooms = data.rooms; rooms = data.rooms;
}); });
function join_rooms() function join_rooms(evt)
{ {
console.log("inside join_rooms"); console.log("inside join_rooms");
let room_name = {
room_name: evt.target.innerText,
}
const messages = fetch('/api/v2/chat/join',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(room_name),
})
.then(resp => resp.json())
.then(data =>
{
console.log(data);
// data.messages.forEach(function(item) {
// if (item.name === user.username) {
// item.name = "me";
// }
// });
// msgs.update(msgs => msgs.concat(data.messages));
});
/*
const messages = fetch('/api/v2/chat/messages')
.then(resp => resp.json())
.then(data =>
{
console.log(data.messages);
data.messages.forEach(function(item) {
if (item.name === user.username) {
item.name = "me";
}
});
msgs.update(msgs => msgs.concat(data.messages));
});
layout = "room";
*/
} }
</script> </script>