diff --git a/src/api/user.api.ts b/src/api/user.api.ts index 129bd57..004d9b2 100644 --- a/src/api/user.api.ts +++ b/src/api/user.api.ts @@ -47,7 +47,7 @@ export class UserAPI { return axiosInstance.put(`/password`, dto); } - static deleteById(id: number): Promise> { - return axiosInstance.delete(`/${id}`); + static delete(): Promise> { + return axiosInstance.delete(`/`); } } \ No newline at end of file diff --git a/src/components/room/RoomActiveRequestEditor.vue b/src/components/room/RoomActiveRequestEditor.vue index 3e2d8b9..6829ca5 100644 --- a/src/components/room/RoomActiveRequestEditor.vue +++ b/src/components/room/RoomActiveRequestEditor.vue @@ -35,7 +35,11 @@ const acceptRequest = (reservationRequestId: number) => { loadRequests(); }) .catch((err: AxiosError) => { - requestsError.value = err.message; + if (err.response?.status === 404) { + requestsError.value = "Reservation request not found or deleted."; + } else { + requestsError.value = (err.response?.data as { error: string })?.error ?? "An unknown error occurred."; + } }) .finally(() => { loading.value = false; @@ -52,7 +56,11 @@ const rejectRequest = (reservationRequestId: number) => { loadRequests(); }) .catch((err: AxiosError) => { - requestsError.value = err.message; + if (err.response?.status === 404) { + requestsError.value = "Reservation request not found or deleted."; + } else { + requestsError.value = (err.response?.data as { error: string })?.error ?? "An unknown error occurred."; + } }) .finally(() => { loading.value = false; diff --git a/src/views/room/RoomDetails.vue b/src/views/room/RoomDetails.vue index a8b8f96..f94b120 100644 --- a/src/views/room/RoomDetails.vue +++ b/src/views/room/RoomDetails.vue @@ -17,6 +17,7 @@ const room = ref(null); const roomAvailability = ref(null); const auth = useAuthStore(); const loading = ref(false); +const error = ref(''); onMounted(() => { auth.checkLocalStorage(); }); onMounted(() => loadRoom()); @@ -29,6 +30,11 @@ const loadRoom = () => { RoomAPI.findById(roomId).then((res: AxiosResponse) => { room.value = res.data; }).catch((err: AxiosError) => { + if (err.response?.status === 404) { + error.value = "Room not found or deleted."; + } else { + error.value = (err.response?.data as { error: string })?.error ?? "An unknown error occurred."; + } console.error(err); }).finally(() => { loading.value = false; @@ -58,6 +64,9 @@ const gotoReservation = () => {
+ + {{ error }} +

{{ room.name }}

{{ room.description }}

diff --git a/src/views/user/UserLogin.vue b/src/views/user/UserLogin.vue index 3d9b9bd..8a550c1 100644 --- a/src/views/user/UserLogin.vue +++ b/src/views/user/UserLogin.vue @@ -35,6 +35,8 @@ const doLogin = () => { }).catch((err: AxiosError) => { if (err.response?.status == 400) { error.value = "Unknown user or password"; + } else if (err.response?.status == 401) { + error.value = "Account is deleted"; } else { console.error(err); error.value = "Unknown error. Check the console"; diff --git a/src/views/user/UserSettings.vue b/src/views/user/UserSettings.vue index 3db175f..9b82eca 100644 --- a/src/views/user/UserSettings.vue +++ b/src/views/user/UserSettings.vue @@ -154,11 +154,11 @@ const doDeleteUser = () => { formDeleteLoading.value = true; - UserAPI.deleteById(auth.id).then(() => { + UserAPI.delete().then(() => { auth.logout(); router.push("/"); }).catch((err: AxiosError) => { - errorDelete.value = err.response.data as string; + errorDelete.value = (err.response?.data as { error: string })?.error ?? "An unknown error occurred."; console.error(err); }).finally(() => { formDeleteLoading.value = false;