creation of directs messages

+ can choose myrooms fields
+ trying to make type validation without success
This commit is contained in:
simplonco
2023-01-12 00:36:38 +01:00
parent aa86299e73
commit b851613f0f
15 changed files with 235 additions and 183 deletions

View File

@@ -0,0 +1,6 @@
export interface Room
{
name: string;
type: "public" | "protected" | "private" | "direct" | "user";
users?: string[];
}

View File

@@ -33,12 +33,16 @@
if (!formIsValid)
return;
let room = {
name: room_name,
type: room_type,
};
// send the new room
response = await create_room(room_name, room_type);
response = await create_room(room);
// go to room
if (response.status === 200)
await change_room(room_name);
await change_room(response.room);
}
</script>

View File

@@ -8,10 +8,12 @@
let rooms = get_my_rooms();
// go to clicked room
async function go_to_room(evt)
async function go_to_room(room)
{
console.log("inside go_to_room");
await change_room(evt.target.innerText);
console.log("room:", room);
await change_room(room);
await get_room_messages();
}
@@ -45,7 +47,7 @@
<p>rooms are loading...</p>
{:then rooms}
{#each rooms as room}
<Button my_class="list" on_click={go_to_room}>
<Button my_class="list" on_click={function() {go_to_room(room)}}>
{room.name}
</Button>
{/each}

View File

@@ -9,10 +9,9 @@
let rooms = get_all_rooms();
// join the room
async function join_rooms(room: object)
async function join_rooms(room)
{
console.log("inside join_room");
console.log("room:", room);
console.log("room:", room);
const updated_room = await join_room(room);

View File

@@ -1,4 +1,5 @@
import { msgs, user, layout, socket, current_room_name } from './Store_chat';
import type { Room } from './Interface_chat';
export async function get_room_messages()
{
@@ -19,36 +20,30 @@ export async function get_room_messages()
msgs.set(messages);
}
export async function create_room(room_name, room_type)
export async function create_room(room: Room)
{
console.log("in create_room");
let form_data = {
room_name: room_name,
room_type: room_type,
};
// send the new room
const response = await fetch('/api/v2/chat/create', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(form_data),
body: JSON.stringify(room),
});
// get response status and message
let response_status = response.status;
let data = await response.json();
let response_message = "";
if (data.message)
response_message = data.message;
return {
status: response_status,
message: response_message
message: data.message,
room: data.room,
};
}
export async function join_room(room)
export async function join_room(room: Room)
{
console.log("in join_room");
@@ -62,10 +57,11 @@ export async function join_room(room)
return data.room;
}
export async function change_room(room)
export async function change_room(room: Room)
{
console.log("in change_room");
console.log("room:", room);
const response = await fetch('/api/v2/chat/change', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
@@ -92,6 +88,7 @@ export async function get_my_rooms()
const response = await fetch('/api/v2/chat/myrooms');
const data = await response.json();
console.log("data.rooms:", data.rooms);
return data.rooms;
}