exported function fetch with catch
This commit is contained in:
@@ -229,13 +229,6 @@ export class ChatController {
|
|||||||
await this.chatService.setPasswordValidation(req.user.username, room);
|
await this.chatService.setPasswordValidation(req.user.username, room);
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.chatService.setCurrentRoom(req.user.username, room.name);
|
|
||||||
let socket: socketDto = this.chatGateway.sockets.get(req.user.username);
|
|
||||||
await this.chatService.socketChangeRoom(socket, room.name);
|
|
||||||
|
|
||||||
const ret_room = this.format_room(room);
|
|
||||||
res.status(HttpStatus.OK).json({ room: ret_room });
|
|
||||||
|
|
||||||
console.log("- out setPassword controller");
|
console.log("- out setPassword controller");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { msgs, layout, allowed_chars } from './Store_chat';
|
import { msgs, layout, allowed_chars } from './Store_chat';
|
||||||
import { change_room, create_room } from './Request_rooms';
|
import { change_room, create_room } from './Request_rooms';
|
||||||
import { onMount } from 'svelte';
|
import { onMount } from 'svelte';
|
||||||
import type { FetchResponse } from './Interface_chat';
|
import type { FetchResponse } from './Types_chat';
|
||||||
import Button from './Element_button.svelte';
|
import Button from './Element_button.svelte';
|
||||||
import Warning from './Element_warning.svelte';
|
import Warning from './Element_warning.svelte';
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import { layout, current_room_name, current_room_type } from './Store_chat';
|
import { layout, current_room_name, current_room_type } from './Store_chat';
|
||||||
import { change_room, send_password } from './Request_rooms';
|
import { change_room, send_password } from './Request_rooms';
|
||||||
import type { FetchResponse } from './Interface_chat';
|
import type { FetchResponse } from './Types_chat';
|
||||||
import Button from './Element_button.svelte';
|
import Button from './Element_button.svelte';
|
||||||
import Warning from './Element_warning.svelte';
|
import Warning from './Element_warning.svelte';
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
import { msgs, user, layout, socket, current_room_name, current_room_type } from './Store_chat';
|
import { msgs, user, layout, socket, current_room_name, current_room_type } from './Store_chat';
|
||||||
import type { Room, FetchResponse } from './Interface_chat';
|
import type { Room, FetchMethod, FetchResponse } from './Types_chat';
|
||||||
import { set_client_name_on_room, fill_fetch_response } from './Request_utils';
|
import { fetch_request, set_client_name_on_room, fill_fetch_response } from './Request_utils';
|
||||||
|
|
||||||
export async function get_room_messages()
|
export async function get_room_messages()
|
||||||
{
|
{
|
||||||
console.log("in get_room_messages");
|
console.log("in get_room_messages");
|
||||||
const response = await fetch('/api/v2/chat/messages');
|
|
||||||
const data = await response.json();
|
let response: FetchResponse = await fetch_request('messages', FetchMethod.GET);
|
||||||
const messages = data.messages;
|
|
||||||
|
const messages = response.messages;
|
||||||
|
|
||||||
if (messages === null)
|
if (messages === null)
|
||||||
return;
|
return;
|
||||||
@@ -25,29 +26,7 @@ export async function create_room(room: Room)
|
|||||||
{
|
{
|
||||||
console.log("in create_room");
|
console.log("in create_room");
|
||||||
|
|
||||||
let response: FetchResponse = { status: 0 };
|
let response: FetchResponse = await fetch_request('create', FetchMethod.POST, room);
|
||||||
|
|
||||||
// send the new room
|
|
||||||
try {
|
|
||||||
const resp = await fetch('/api/v2/chat/create', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: { 'Content-Type': 'application/json' },
|
|
||||||
body: JSON.stringify(room),
|
|
||||||
});
|
|
||||||
console.log("resp.status:");
|
|
||||||
console.log(resp.status);
|
|
||||||
response.status = resp.status;
|
|
||||||
if (!resp.ok)
|
|
||||||
throw new Error(resp.statusText);
|
|
||||||
|
|
||||||
// get response message
|
|
||||||
let data = await resp.json();
|
|
||||||
fill_fetch_response(response, data);
|
|
||||||
}
|
|
||||||
catch (error)
|
|
||||||
{
|
|
||||||
console.error('Error', error);
|
|
||||||
}
|
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
@@ -56,26 +35,16 @@ export async function join_room(room: Room)
|
|||||||
{
|
{
|
||||||
console.log("in join_room");
|
console.log("in join_room");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/join', {
|
let response: FetchResponse = await fetch_request('join', FetchMethod.POST, room);
|
||||||
method: 'POST',
|
|
||||||
headers: { 'Content-Type': 'application/json' },
|
|
||||||
body: JSON.stringify(room),
|
|
||||||
});
|
|
||||||
let data = await response.json();
|
|
||||||
|
|
||||||
return data.room;
|
return response.room;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function change_room(room: Room)
|
export async function change_room(room: Room)
|
||||||
{
|
{
|
||||||
console.log("in change_room");
|
console.log("in change_room");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/change', {
|
await fetch_request('change', FetchMethod.POST, room);
|
||||||
method: 'POST',
|
|
||||||
headers: { 'Content-Type': 'application/json' },
|
|
||||||
body: JSON.stringify(room),
|
|
||||||
});
|
|
||||||
let data = await response.json();
|
|
||||||
|
|
||||||
await get_room_messages();
|
await get_room_messages();
|
||||||
|
|
||||||
@@ -86,33 +55,12 @@ export async function change_room(room: Room)
|
|||||||
layout.set("room");
|
layout.set("room");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function send_password(room: Room)
|
export async function send_password(room: Room)
|
||||||
{
|
{
|
||||||
console.log("in create_room");
|
console.log("in send_password");
|
||||||
|
|
||||||
let response: FetchResponse = { status: 0 };
|
let response: FetchResponse = await fetch_request('password', FetchMethod.POST, room);
|
||||||
|
|
||||||
// send the new room
|
|
||||||
try {
|
|
||||||
const resp = await fetch('/api/v2/chat/create', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: { 'Content-Type': 'application/json' },
|
|
||||||
body: JSON.stringify(room),
|
|
||||||
});
|
|
||||||
console.log("resp.status:");
|
|
||||||
console.log(resp.status);
|
|
||||||
response.status = resp.status;
|
|
||||||
if (!resp.ok)
|
|
||||||
throw new Error(resp.statusText);
|
|
||||||
|
|
||||||
// get response message
|
|
||||||
let data = await resp.json();
|
|
||||||
fill_fetch_response(response, data);
|
|
||||||
}
|
|
||||||
catch (error)
|
|
||||||
{
|
|
||||||
console.error('Error', error);
|
|
||||||
}
|
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
@@ -121,12 +69,7 @@ export async function invite_user(user_name: string)
|
|||||||
{
|
{
|
||||||
console.log("in invite_user");
|
console.log("in invite_user");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/invite', {
|
let response: FetchResponse = await fetch_request('invite', FetchMethod.POST, {username: user_name});
|
||||||
method: 'POST',
|
|
||||||
headers: { 'Content-Type': 'application/json' },
|
|
||||||
body: JSON.stringify({username: user_name}),
|
|
||||||
});
|
|
||||||
let data = await response.json();
|
|
||||||
|
|
||||||
await get_room_messages();
|
await get_room_messages();
|
||||||
}
|
}
|
||||||
@@ -135,13 +78,9 @@ export async function get_my_rooms()
|
|||||||
{
|
{
|
||||||
console.log("in get_my_rooms");
|
console.log("in get_my_rooms");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/myrooms');
|
let response: FetchResponse = await fetch_request('myrooms', FetchMethod.GET);
|
||||||
console.log("response.status", response.status);
|
|
||||||
const data = await response.json();
|
|
||||||
console.log("data:", data);
|
|
||||||
|
|
||||||
let rooms = data.rooms.map(room => set_client_name_on_room(room));
|
let rooms = response.rooms.map(room => set_client_name_on_room(room));
|
||||||
console.log("rooms:", rooms);
|
|
||||||
|
|
||||||
return rooms;
|
return rooms;
|
||||||
}
|
}
|
||||||
@@ -150,41 +89,33 @@ export async function get_all_rooms()
|
|||||||
{
|
{
|
||||||
console.log("in get_all_rooms");
|
console.log("in get_all_rooms");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/allrooms');
|
let response: FetchResponse = await fetch_chat_request('allrooms', FetchMethod.GET);
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
return data.rooms;
|
return response.rooms;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function get_room_users()
|
export async function get_room_users()
|
||||||
{
|
{
|
||||||
console.log("in get_room_users");
|
console.log("in get_room_users");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/roomusers');
|
let response: FetchResponse = await fetch_chat_request('roomusers', FetchMethod.GET);
|
||||||
const data = await response.json();
|
|
||||||
console.log("users:", data.users);
|
|
||||||
|
|
||||||
return data.users;
|
return response.users;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function get_all_users()
|
export async function get_all_users()
|
||||||
{
|
{
|
||||||
console.log("in get_all_users");
|
console.log("in get_all_users");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/users');
|
let response: FetchResponse = await fetch_chat_request('users', FetchMethod.GET);
|
||||||
const data = await response.json();
|
|
||||||
console.log("users:", data.users);
|
|
||||||
|
|
||||||
return data.users;
|
return response.users;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function leave_room()
|
export async function leave_room()
|
||||||
{
|
{
|
||||||
console.log("in leave_room");
|
console.log("in leave_room");
|
||||||
|
|
||||||
const response = await fetch('/api/v2/chat/leave', {
|
let response: FetchResponse = await fetch_chat_request('leave', FetchMethod.DELETE);
|
||||||
method: 'DELETE',
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,33 @@
|
|||||||
import { user } from './Store_chat';
|
import { user } from './Store_chat';
|
||||||
import type { Room, FetchResponse } from './Interface_chat';
|
import type { Room, FetchResponse, FetchInit, FetchMethod } from './Types_chat';
|
||||||
|
|
||||||
|
export async function fetch_request(route: string, fetchMethod: FetchMethod, param?: any)
|
||||||
|
{
|
||||||
|
let response: FetchResponse = { status: 0 };
|
||||||
|
|
||||||
|
let fetch_params: FetchInit = {
|
||||||
|
method: fetchMethod,
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
}
|
||||||
|
if (param)
|
||||||
|
fetch_params.body = JSON.stringify(param);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const resp = await fetch(`/api/v2/chat/${route}`, fetch_params);
|
||||||
|
response.status = resp.status;
|
||||||
|
if (!resp.ok)
|
||||||
|
throw new Error(resp.statusText);
|
||||||
|
|
||||||
|
let data = await resp.json();
|
||||||
|
fill_fetch_response(response, data);
|
||||||
|
}
|
||||||
|
catch (error)
|
||||||
|
{
|
||||||
|
console.error('Error', error);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
export function set_client_name_on_room(room: Room)
|
export function set_client_name_on_room(room: Room)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,5 +13,20 @@ export interface FetchResponse
|
|||||||
code?: string;
|
code?: string;
|
||||||
display?: boolean;
|
display?: boolean;
|
||||||
message?: string;
|
message?: string;
|
||||||
room?: any;
|
room?: Room;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface FetchInit
|
||||||
|
{
|
||||||
|
method: string;
|
||||||
|
headers: any;
|
||||||
|
body?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum FetchMethod
|
||||||
|
{
|
||||||
|
POST = 'POST',
|
||||||
|
GET = 'GET',
|
||||||
|
LEAVE = 'LEAVE',
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user