Merge remote-tracking branch 'upstream/develop' into feat/maintenance-page
This commit is contained in:
commit
f48b769baa
6 files changed
+56
-222
No files matched your search
@@ -1,16 +1,22 @@
|
||||
import axios from "axios";
|
||||
const BASE_URL = import.meta.env.VITE_APP_API_BASE_URL;
|
||||
const FALLBACK_BASE_URL = "http://localhost:5000/api/v1";
|
||||
import { clearAuthState } from "../Features/Auth/authSlice";
|
||||
import { clearUptimeMonitorState } from "../Features/UptimeMonitors/uptimeMonitorsSlice";
|
||||
import { logger } from "./Logger";
|
||||
class NetworkService {
|
||||
constructor(store) {
|
||||
constructor(store, dispatch, navigate) {
|
||||
this.store = store;
|
||||
this.dispatch = dispatch;
|
||||
this.navigate = navigate;
|
||||
let baseURL = BASE_URL;
|
||||
this.axiosInstance = axios.create();
|
||||
this.setBaseUrl(baseURL);
|
||||
this.unsubscribe = store.subscribe(() => {
|
||||
const state = store.getState();
|
||||
if (BASE_URL === undefined && state.settings.apiBaseUrl) {
|
||||
if (BASE_URL !== undefined) {
|
||||
baseURL = BASE_URL;
|
||||
} else if (state?.settings?.apiBaseUrl ?? null) {
|
||||
baseURL = state.settings.apiBaseUrl;
|
||||
} else {
|
||||
baseURL = FALLBACK_BASE_URL;
|
||||
@@ -20,9 +26,10 @@ class NetworkService {
|
||||
this.axiosInstance.interceptors.response.use(
|
||||
(response) => response,
|
||||
(error) => {
|
||||
logger.error(error);
|
||||
if (error.response && error.response.status === 401) {
|
||||
logger.error("Invalid token received");
|
||||
dispatch(clearAuthState());
|
||||
dispatch(clearUptimeMonitorState());
|
||||
navigate("/login");
|
||||
}
|
||||
return Promise.reject(error);
|
||||
}
|
||||
@@ -750,3 +757,10 @@ class NetworkService {
|
||||
}
|
||||
|
||||
export default NetworkService;
|
||||
|
||||
let networkService;
|
||||
|
||||
export const setNetworkService = (service) => {
|
||||
networkService = service;
|
||||
};
|
||||
export { networkService };
|
||||
Reference in new issue
Block a user