list of room users
This commit is contained in:
@@ -102,5 +102,18 @@ export class ChatController {
|
||||
return res.status(HttpStatus.OK).json({ messages: messages });
|
||||
}
|
||||
|
||||
@UseGuards(AuthenticateGuard)
|
||||
@UseGuards(TwoFactorGuard)
|
||||
@Get('roomusers')
|
||||
async getRoomUsers(@Req() req, @Res() res): Promise<object>
|
||||
{
|
||||
console.log("- in getRoomUsers controller");
|
||||
const current_room = await this.chatService.getCurrentRoom(req.user.username);
|
||||
const room = await this.chatService.getRoomByName(current_room);
|
||||
const users = room.users;
|
||||
console.log("- out getRoomUsers controller");
|
||||
return res.status(HttpStatus.OK).json({ users: users });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ export class ChatService {
|
||||
async getCurrentRoom(username: string)
|
||||
{
|
||||
console.log("-- in getCurrentRoom service");
|
||||
console.log('username:', username);
|
||||
const user_db = await this.getUserByName(username);
|
||||
//const user_db = await this.usersService.findOne(username);
|
||||
|
||||
|
||||
@@ -27,10 +27,10 @@ export class Chatroom {
|
||||
// users: User[];
|
||||
|
||||
@Column()
|
||||
owner: string; // name
|
||||
owner: string; // username
|
||||
|
||||
@Column("simple-array")
|
||||
users: string[]; // names
|
||||
users: string[]; // usernames
|
||||
|
||||
@Column("json")
|
||||
messages: { name: string, message: string }[];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,11 +1,11 @@
|
||||
<script>
|
||||
|
||||
import { layout, msgs, user } from './Store_chat';
|
||||
import { change_room, get_room_messages, get_all_rooms } from './Request_rooms';
|
||||
import { change_room, get_room_messages, get_my_rooms } from './Request_rooms';
|
||||
import { onMount } from 'svelte';
|
||||
import Button from './Element_button.svelte';
|
||||
|
||||
let rooms = get_all_rooms();
|
||||
let rooms = get_my_rooms();
|
||||
|
||||
// go to clicked room
|
||||
async function go_to_room(evt)
|
||||
@@ -42,8 +42,7 @@
|
||||
<p class="__center">/ you have no chat room yet /</p>
|
||||
</div>
|
||||
{#await rooms}
|
||||
<!-- promise is pending -->
|
||||
<p>rooms are loaded...</p>
|
||||
<p>rooms are loading...</p>
|
||||
{:then rooms}
|
||||
{#each rooms as room}
|
||||
<Button my_class="list" on_click={go_to_room}>
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
<script>
|
||||
|
||||
import { layout, msgs, user, socket } from './Store_chat';
|
||||
import { join_room, change_room, get_room_messages } from './Request_rooms';
|
||||
import { join_room, change_room, get_room_messages, get_all_rooms } from './Request_rooms';
|
||||
import Button from './Element_button.svelte';
|
||||
|
||||
export let back = "";
|
||||
|
||||
let rooms = [];
|
||||
|
||||
// ask api for the rooms
|
||||
const get_rooms = fetch('/api/v2/chat/allrooms')
|
||||
.then(resp => resp.json())
|
||||
.then(data =>
|
||||
{
|
||||
console.log("data.rooms:", data.rooms);
|
||||
for (let room of data.rooms)
|
||||
console.log(room.name);
|
||||
rooms = data.rooms;
|
||||
});
|
||||
let rooms = get_all_rooms();
|
||||
|
||||
// join the room
|
||||
async function join_rooms(evt)
|
||||
@@ -58,10 +47,9 @@
|
||||
<div class="__show_if_only_child">
|
||||
<p class="__center">/ there are no public rooms yet /</p>
|
||||
</div>
|
||||
{#await get_rooms}
|
||||
<!-- promise is pending -->
|
||||
<p>rooms are loaded...</p>
|
||||
{:then}
|
||||
{#await rooms}
|
||||
<p>rooms are loading...</p>
|
||||
{:then rooms}
|
||||
{#each rooms as room}
|
||||
<Button my_class="list" on_click={join_rooms}>
|
||||
{room.name}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script>
|
||||
|
||||
import { layout, socket, msgs, add_msg, room_name } from './Store_chat';
|
||||
import { layout, socket, msgs, add_msg, current_room_name } from './Store_chat';
|
||||
import Button from './Element_button.svelte';
|
||||
import Msg from './Element_msg.svelte';
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
<!-- room_name -->
|
||||
<Button new_layout="room_set" my_class="room_name transparent">
|
||||
{$room_name}
|
||||
{$current_room_name}
|
||||
</Button>
|
||||
|
||||
<!-- close -->
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
<script>
|
||||
|
||||
import { layout } from './Store_chat';
|
||||
import { layout, current_room_name } from './Store_chat';
|
||||
import { get_room_users } from './Request_rooms';
|
||||
import Button from './Element_button.svelte';
|
||||
|
||||
export let back = "";
|
||||
|
||||
let users = get_room_users($current_room_name);
|
||||
|
||||
function user_profile()
|
||||
{
|
||||
console/log("got to user profile");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div class="grid_box">
|
||||
@@ -16,7 +24,7 @@
|
||||
|
||||
<!-- room_name -->
|
||||
<Button my_class="room_name deactivate">
|
||||
<room_name>
|
||||
{$current_room_name}
|
||||
</Button>
|
||||
|
||||
<!-- close -->
|
||||
@@ -34,21 +42,15 @@
|
||||
<div class="__show_if_only_child">
|
||||
<p class="__center">/ there are no public rooms yet /</p>
|
||||
</div>
|
||||
<!-- placeholders
|
||||
<Button new_layout="user" my_class="list">
|
||||
user 1
|
||||
</Button>
|
||||
<Button new_layout="user" my_class="list blocked">
|
||||
user 2
|
||||
</Button>
|
||||
<Button new_layout="user" my_class="list">
|
||||
user 3
|
||||
</Button>
|
||||
<Button new_layout="user" my_class="list">
|
||||
user 4
|
||||
</Button>
|
||||
------------- -->
|
||||
<!-- END placeholders -->
|
||||
{#await users}
|
||||
<p>list of users is loading...</p>
|
||||
{:then users}
|
||||
{#each users as user}
|
||||
<Button new_layout="user" my_class="list" on_click={user_profile}>
|
||||
{user}
|
||||
</Button>
|
||||
{/each}
|
||||
{/await}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { msgs, user, layout, socket, room_name } from './Store_chat';
|
||||
import { msgs, user, layout, socket, current_room_name } from './Store_chat';
|
||||
|
||||
export async function get_room_messages()
|
||||
{
|
||||
@@ -64,31 +64,31 @@ export async function join_room(room_name)
|
||||
socket.emit('join', room_name);
|
||||
}
|
||||
|
||||
export async function change_room(name)
|
||||
export async function change_room(room_name)
|
||||
{
|
||||
console.log("in change_room");
|
||||
|
||||
let r_name = {
|
||||
room_name: name,
|
||||
let room_name_request = {
|
||||
room_name: room_name,
|
||||
}
|
||||
const response = await fetch('/api/v2/chat/change', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(r_name),
|
||||
body: JSON.stringify(room_name_request),
|
||||
});
|
||||
let data = await response.json();
|
||||
console.log(data.message);
|
||||
|
||||
await get_room_messages();
|
||||
socket.emit('change', name);
|
||||
socket.emit('change', room_name);
|
||||
|
||||
room_name.set(name);
|
||||
current_room_name.set(room_name);
|
||||
layout.set("room");
|
||||
}
|
||||
|
||||
export async function get_all_rooms()
|
||||
export async function get_my_rooms()
|
||||
{
|
||||
console.log("in get_all_rooms");
|
||||
console.log("in get_my_rooms");
|
||||
|
||||
// ask api for the rooms
|
||||
const response = await fetch('/api/v2/chat/myrooms');
|
||||
@@ -102,3 +102,36 @@ export async function get_all_rooms()
|
||||
return rooms;
|
||||
}
|
||||
|
||||
export async function get_all_rooms()
|
||||
{
|
||||
console.log("in get_all_rooms");
|
||||
|
||||
// ask api for the rooms
|
||||
const response = await fetch('/api/v2/chat/allrooms');
|
||||
const data = await response.json();
|
||||
|
||||
console.log("data.rooms:", data.rooms);
|
||||
for (let room of data.rooms)
|
||||
console.log(room.name);
|
||||
let rooms = data.rooms;
|
||||
|
||||
return rooms;
|
||||
}
|
||||
|
||||
export async function get_room_users()
|
||||
{
|
||||
console.log("in get_room_users");
|
||||
|
||||
// ask api for the rooms
|
||||
const response = await fetch('/api/v2/chat/roomusers');
|
||||
const data = await response.json();
|
||||
|
||||
console.log("data.users:", data.users);
|
||||
for (let user of data.users)
|
||||
console.log(user.username);
|
||||
let users = data.users;
|
||||
|
||||
return users;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { writable } from 'svelte/store';
|
||||
|
||||
export let msgs = writable([]);
|
||||
export let layout = writable("close");
|
||||
export let room_name = writable("");
|
||||
export let current_room_name = writable("");
|
||||
|
||||
export let user;
|
||||
export let socket;
|
||||
|
||||
Reference in New Issue
Block a user