wip invite users
This commit is contained in:
@@ -78,7 +78,7 @@
|
|||||||
- [/] see all joignable rooms
|
- [/] see all joignable rooms
|
||||||
- [/] see all my rooms
|
- [/] see all my rooms
|
||||||
- [/] leave room
|
- [/] leave room
|
||||||
- [ ] leave direct impossible
|
- [/] leave direct impossible
|
||||||
- [ ] invite someone in room
|
- [ ] invite someone in room
|
||||||
- [ ] make admin
|
- [ ] make admin
|
||||||
- [ ] ban
|
- [ ] ban
|
||||||
|
|||||||
@@ -189,5 +189,19 @@ export class ChatController {
|
|||||||
console.log("- out getRoomUsers controller");
|
console.log("- out getRoomUsers controller");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UseGuards(AuthenticateGuard)
|
||||||
|
@UseGuards(TwoFactorGuard)
|
||||||
|
@Get('users')
|
||||||
|
async getAllUsers(@Req() req, @Res() res): Promise<void>
|
||||||
|
{
|
||||||
|
console.log("- in getAllUsers controller");
|
||||||
|
|
||||||
|
const room_name = await this.chatService.getCurrentRoomName(req.user.username);
|
||||||
|
const users = await this.chatService.getAllUsersNotInRoom(room_name);
|
||||||
|
res.status(HttpStatus.OK).json({ users: users });
|
||||||
|
|
||||||
|
console.log("- out getAllUsers controller");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -309,6 +309,24 @@ export class ChatService {
|
|||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getAllUsersNotInRoom(current_room_name: string): Promise<User[]>
|
||||||
|
{
|
||||||
|
console.log("-- in getAllUsersNotInRoom service");
|
||||||
|
|
||||||
|
// get all users in current room
|
||||||
|
const current_room = await this.getRoomByName(current_room_name);
|
||||||
|
const usernames = current_room.users;
|
||||||
|
|
||||||
|
const users = await this.userRepository
|
||||||
|
.createQueryBuilder('user')
|
||||||
|
.where('user.username NOT IN (:...usernames)', { usernames: usernames })
|
||||||
|
.getMany();
|
||||||
|
console.log("--- users:", users);
|
||||||
|
|
||||||
|
console.log("-- out getAllUsersNotInRoom service");
|
||||||
|
return users;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* GATEWAY EVENTS *****************************************
|
/* GATEWAY EVENTS *****************************************
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
import CreateLayout from './Layout_create.svelte';
|
import CreateLayout from './Layout_create.svelte';
|
||||||
import MuteLayout from './Layout_mute.svelte';
|
import MuteLayout from './Layout_mute.svelte';
|
||||||
import UserLayout from './Layout_user.svelte';
|
import UserLayout from './Layout_user.svelte';
|
||||||
|
import InviteLayout from './Layout_invite.svelte';
|
||||||
|
|
||||||
import Button from './Element_button.svelte';
|
import Button from './Element_button.svelte';
|
||||||
|
|
||||||
@@ -79,6 +80,9 @@
|
|||||||
{:else if $layout === "user"}
|
{:else if $layout === "user"}
|
||||||
<UserLayout back={layouts[1]} />
|
<UserLayout back={layouts[1]} />
|
||||||
|
|
||||||
|
{:else if $layout === "invite"}
|
||||||
|
<InviteLayout back={layouts[1]} />
|
||||||
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
</ChatBox>
|
</ChatBox>
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
|
||||||
|
import { layout, user, current_room_name } from './Store_chat';
|
||||||
|
import { get_all_users } from './Request_rooms';
|
||||||
|
import Button from './Element_button.svelte';
|
||||||
|
|
||||||
|
export let back = "";
|
||||||
|
|
||||||
|
let users = get_all_users();
|
||||||
|
|
||||||
|
// invite user in this room
|
||||||
|
async function invite_user()
|
||||||
|
{
|
||||||
|
console.log("inside invite_user");
|
||||||
|
|
||||||
|
// console.log("room:", room);
|
||||||
|
// const updated_room = await join_room(room);
|
||||||
|
// console.log("updated room:", updated_room);
|
||||||
|
// await change_room(updated_room);
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="grid_box">
|
||||||
|
|
||||||
|
<!-- back -->
|
||||||
|
<Button new_layout={back} my_class="back icon" my_title="go back {back}">
|
||||||
|
back
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- new -->
|
||||||
|
<Button my_class="invite deactivate">
|
||||||
|
invite
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- close -->
|
||||||
|
<Button new_layout="close" my_class="close icon">
|
||||||
|
close
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- room_name -->
|
||||||
|
<Button my_class="room_name deactivate __border_top">
|
||||||
|
{$current_room_name}
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
<!-- panel_new -->
|
||||||
|
<div class="panel panel_invite __border_top">
|
||||||
|
<p>invite someone in this room :</p>
|
||||||
|
<div>
|
||||||
|
<div class="__show_if_only_child">
|
||||||
|
<p class="__center">/ there is no one to invite yet /</p>
|
||||||
|
</div>
|
||||||
|
{#await users}
|
||||||
|
<p>users are loading...</p>
|
||||||
|
{:then users}
|
||||||
|
{#each users as user}
|
||||||
|
<Button my_class="list" on_click={invite_user}>
|
||||||
|
{user.username}
|
||||||
|
</Button>
|
||||||
|
{/each}
|
||||||
|
{/await}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
/* grid layout "new"
|
||||||
|
*/
|
||||||
|
.grid_box :global(.back ) {grid-area: back;}
|
||||||
|
.grid_box :global(.invite ) {grid-area: invite;}
|
||||||
|
.grid_box :global(.close ) {grid-area: close;}
|
||||||
|
.grid_box :global(.room_name ) {grid-area: room_name;}
|
||||||
|
.grid_box :global(.panel_invite) {grid-area: panel_invite;}
|
||||||
|
.grid_box {
|
||||||
|
grid:
|
||||||
|
' back invite close ' auto
|
||||||
|
' room_name room_name room_name ' auto
|
||||||
|
' panel_invite panel_invite panel_invite ' 1fr
|
||||||
|
/ auto 1fr auto ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
@@ -45,6 +45,9 @@
|
|||||||
<Button on_click={user_leave_room}>
|
<Button on_click={user_leave_room}>
|
||||||
leave
|
leave
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button new_layout="invite">
|
||||||
|
invite someone
|
||||||
|
</Button>
|
||||||
{/if}
|
{/if}
|
||||||
<p>room users :</p>
|
<p>room users :</p>
|
||||||
<div class="room_users">
|
<div class="room_users">
|
||||||
|
|||||||
@@ -134,4 +134,15 @@ export async function leave_room()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function get_all_users()
|
||||||
|
{
|
||||||
|
console.log("in get_all_users");
|
||||||
|
|
||||||
|
const response = await fetch('/api/v2/chat/users');
|
||||||
|
const data = await response.json();
|
||||||
|
console.log("users:", data.users);
|
||||||
|
|
||||||
|
return data.users;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user