This commit is contained in:
Gaurav Kumar
2025-06-13 10:04:33 +05:30
parent 703f1256ff
commit 773b1f753b
89 changed files with 19379 additions and 9048 deletions

View File

@@ -0,0 +1,117 @@
import axios from 'axios';
import { getToken } from '../../src/utils/tokenService';
const BASE_URL = process.env.REACT_APP_API_BASE_URL;
const apiClient = axios.create({
baseURL: BASE_URL,
headers: {
'Content-Type': 'application/json',
},
});
// Add a request interceptor to include Authorization header
apiClient.interceptors.request.use(
(config) => {
const token = getToken();
if (token) {
console.log("token: ",token);
config.headers['Authorization'] = `Bearer ${token}`;
}
return config;
},
(error) => Promise.reject(error)
);
// Generic error handler function
const handleError = (error) => {
let errorMessage = 'An unknown error occurred';
console.error('Error Details:', error);
if (error.response) {
// HTTP errors
switch (error.response.status) {
case 401:
errorMessage = 'Unauthorized - Please login again.';
break;
case 403:
errorMessage = 'Forbidden - Access denied.';
break;
case 404:
errorMessage = 'Service not found.';
break;
case 408:
errorMessage = 'Request timed out.';
break;
case 500:
errorMessage = 'Internal server error.';
break;
default:
errorMessage = `Unexpected error: ${error.response.statusText || 'Server Error'}`;
}
} else if (error.request) {
// No response received
errorMessage = 'No response from server. Please check your connection.';
} else {
// Other errors
errorMessage = error.message || 'An unexpected error occurred.';
}
return Promise.reject(errorMessage); // Return error message as rejected promise
};
// Define the reusable methods
// const apiService = {
// get: (url, params) =>
// apiClient
// .get(url, { params: params || {} })
// .catch(handleError), // Attach error handler
// post: (url, body = {}) =>
// apiClient
// .post(url, body)
// .catch(handleError), // Attach error handler
// put: (url, body = {}) =>
// apiClient
// .put(url, body)
// .catch(handleError), // Attach error handler
// delete: (url) =>
// apiClient
// .delete(url)
// .catch(handleError), // Attach error handler
// };
const apiService = {
get: (url, params) =>
apiClient
.get(url, { params: params || {} })
.catch(handleError), // Attach error handler
post: (url, body = {}, options = {}) =>
apiClient
.post(url, body, options) // Pass options such as headers
.catch(handleError), // Attach error handler
put: (url, body = {}, options = {}) =>
apiClient
.put(url, body, options) // Pass options such as headers
.catch(handleError), // Attach error handler
delete: (url, options = {}) =>
apiClient
.delete(url, options) // Pass options such as headers
.catch(handleError), // Attach error handler
};
// Add at the bottom of APIService.js
export const getSubmenuItems = async (id) => {
const response = await apiService.get(`/api1/submenu1/${id}`);
return response.data;
};
export const addSubmenuItem = async (menuId, submenuData) => {
const response = await apiService.post(`/api1/menu/${menuId}/submenu`, submenuData);
return response.data;
};
export const updateMenuItem = (id, formData) => apiService.put(`/api1/submenu1/${id}`, formData);
export const deleteMenuItem = (id) => apiService.delete(`/api1/menu/${id}`);
export default apiService;