import { computed, ref } from "vue";\r
import { RouterView, useRoute } from "vue-router";\r
\r
-import { getConfig } from "./api.js";\r
+import { getConfig, apiErrorHandler } from "./api.js";\r
import PrimeToast from "./components/PrimeToast.vue";\r
import { useGlobalStore } from "./globalStore.js";\r
-import { getUnknownServerErrorToastOptions, loadTheme } from "./helpers.js";\r
+import { loadTheme } from "./helpers.js";\r
import NavBar from "./partials/NavBar.vue";\r
import SearchModal from "./partials/SearchModal.vue";\r
import { loadStoredToken } from "./tokenStorage.js";\r
.then((data) => {\r
globalStore.authType = data.authType;\r
})\r
- .catch(() => {\r
- toast.add(getUnknownServerErrorToastOptions());\r
+ .catch((error) => {\r
+ apiErrorHandler(error, toast);\r
});\r
+\r
loadStoredToken();\r
\r
const showNavBar = computed(() => {\r
import axios from "axios";
import { getStoredToken } from "./tokenStorage.js";
+import { getToastOptions } from "./helpers.js";
import router from "./router.js";
const api = axios.create();
},
);
-api.interceptors.response.use(
- function (response) {
- return response;
- },
- function (error) {
- // If the response is a 401 Unauthorized, redirect to the login page.
- if (
- error.response?.status === 401 &&
- router.currentRoute.value.name !== "login"
- ) {
- const redirectPath = router.currentRoute.value.fullPath;
- router.push({
- name: "login",
- query: { [constants.params.redirect]: redirectPath },
- });
- }
- return Promise.reject(error);
- },
-);
+// api.interceptors.response.use(
+// function (response) {
+// return response;
+// },
+// function (error) {
+// // If the response is a 401 Unauthorized, redirect to the login page.
+// if (
+// error.response?.status === 401 &&
+// router.currentRoute.value.name !== "login"
+// ) {
+// const redirectPath = router.currentRoute.value.fullPath;
+// router.push({
+// name: "login",
+// query: { [constants.params.redirect]: redirectPath },
+// });
+// }
+// return Promise.reject(error);
+// },
+// );
+
+export function apiErrorHandler(error, toast) {
+ if (error.response?.status === 401) {
+ const redirectPath = router.currentRoute.value.fullPath;
+ router.push({
+ name: "login",
+ query: { [constants.params.redirect]: redirectPath },
+ });
+ } else {
+ toast.add(
+ getToastOptions(
+ "Unknown Error",
+ "Unknown error communicating with the server. Please try again.",
+ true,
+ ),
+ );
+ }
+}
export async function getConfig() {
try {
};
}
-export function getUnknownServerErrorToastOptions() {
- return getToastOptions(
- "Unknown Error",
- "Unknown error communicating with the server. Please try again.",
- true,
- );
-}
-
export function setDarkThemeOn(save = true) {
document.body.classList.add("dark");
if (save) localStorage.setItem("darkTheme", "true");
import { ref } from "vue";
import { RouterLink } from "vue-router";
-import { getNotes } from "../api.js";
+import { getNotes, apiErrorHandler } from "../api.js";
import CustomButton from "../components/CustomButton.vue";
import Logo from "../components/Logo.vue";
-import { getUnknownServerErrorToastOptions } from "../helpers.js";
import SearchInput from "../partials/SearchInput.vue";
const notes = ref([]);
notes.value = data;
})
.catch((error) => {
- toast.add(getUnknownServerErrorToastOptions(error));
+ apiErrorHandler(error, toast);
});
</script>
import { useRouter, useRoute } from "vue-router";
import { useToast } from "primevue/usetoast";
-import { getToken } from "../api.js";
+import { getToken, apiErrorHandler } from "../api.js";
import CustomButton from "../components/CustomButton.vue";
import Logo from "../components/Logo.vue";
import TextInput from "../components/TextInput.vue";
import { authTypes } from "../constants.js";
import { useGlobalStore } from "../globalStore.js";
import { storeToken } from "../tokenStorage.js";
-import {
- getToastOptions,
- getUnknownServerErrorToastOptions,
-} from "../helpers.js";
+import { getToastOptions } from "../helpers.js";
const props = defineProps({ redirect: String });
router.push({ name: "home" });
}
})
- .catch((response) => {
+ .catch((error) => {
username.value = "";
password.value = "";
totp.value = "";
- if (response.response?.status === 401) {
+ if (error.response?.status === 401) {
toast.add(
getToastOptions(
"Login Failed",
),
);
} else {
- toast.add(getUnknownServerErrorToastOptions());
+ apiErrorHandler(error, toast);
}
});
}
import { computed, onMounted, ref, watch } from "vue";
import { useRouter } from "vue-router";
-import { createNote, deleteNote, getNote, updateNote } from "../api.js";
+import {
+ createNote,
+ deleteNote,
+ getNote,
+ updateNote,
+ apiErrorHandler,
+} from "../api.js";
import { Note } from "../classes.js";
import ConfirmModal from "../components/ConfirmModal.vue";
import CustomButton from "../components/CustomButton.vue";
import LoadingIndicator from "../components/LoadingIndicator.vue";
import ToastEditor from "../components/toastui/ToastEditor.vue";
import ToastViewer from "../components/toastui/ToastViewer.vue";
-import {
- getToastOptions,
- getUnknownServerErrorToastOptions,
-} from "../helpers.js";
+import { getToastOptions } from "../helpers.js";
const props = defineProps({
title: String,
loadingIndicator.value.setLoaded();
})
.catch((error) => {
- if (error.response.status === 404) {
+ if (error.response?.status === 404) {
loadingIndicator.value.setFailed("Note not found", mdiNoteOffOutline);
} else {
loadingIndicator.value.setFailed();
- toast.add(getUnknownServerErrorToastOptions());
+ apiErrorHandler(error, toast);
}
});
} else {
.then(() => {
router.push({ name: "home" });
})
- .catch(() => {
- toast.add(getUnknownServerErrorToastOptions());
+ .catch((error) => {
+ apiErrorHandler(error, toast);
});
}
),
);
} else {
- toast.add(getUnknownServerErrorToastOptions());
+ apiErrorHandler(error, toast);
}
}
import { getNotes } from "../api.js";
import LoadingIndicator from "../components/LoadingIndicator.vue";
import Tag from "../components/Tag.vue";
-import { getUnknownServerErrorToastOptions } from "../helpers.js";
import SearchInput from "../partials/SearchInput.vue";
const props = defineProps({ searchTerm: String });
loadingIndicator.value.setFailed("No Results", mdiMagnify);
}
})
- .catch(() => {
+ .catch((error) => {
loadingIndicator.value.setFailed();
- toast.add(getUnknownServerErrorToastOptions());
+ apiErrorHandler(error, toast);
});
}