add auth and base functions and fixed bug

This commit is contained in:
Amirhossein Mahmoodi
2024-07-09 11:28:59 +03:30
parent 6288ac926c
commit 863bdaca95
23 changed files with 592 additions and 69 deletions

View File

@@ -0,0 +1,42 @@
import { errorResponse } from "@/core/utils/errorResponse";
import { successRequest } from "@/core/utils/successRequest";
import axios from "axios";
const defaultOptions = {
data: {},
requestOptions: {
headers: {}
},
notification: {
show: true,
success: false,
failed: true
},
}
const useRequest = (initOptions) => {
const _options = Object.assign({}, defaultOptions, initOptions);
return async (url = '', method = 'get', options) => {
const mergedOptions = Object.assign({}, _options, options);
try {
const response = await axios({
url,
method,
data: method === 'get' ? null : mergedOptions.data,
withCredentials: true,
...mergedOptions.requestOptions
});
successRequest(mergedOptions.notification.show && mergedOptions.notification.success, 'request_data');
return response;
} catch (error) {
if (error.response) {
errorResponse(error.response, mergedOptions.notification.show && mergedOptions.notification.failed, 'request_data');
}
throw error;
}
}
}
export default useRequest