| Server IP : 13.235.167.51 / Your IP : 216.73.217.116 Web Server : Apache System : Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64 User : root ( 0) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/control.machinox.in/src/Services/ |
Upload File : |
import axios from "axios";
import { toast } from "react-toastify";
//Development
const BASE_URL = process.env.NEXT_PUBLIC_BASE_URL;
interface PropData {
action: string;
body?: any;
isFormData?: boolean;
isShowError?: boolean;
id?: string;
_file?: File;
key?: string;
method?: string
}
const WebService = {
postAPI: function (props: PropData) {
return new Promise((resolve, reject) => {
var bodyFormData = new URLSearchParams();
for (let key in props.body) {
bodyFormData.append(key, props.body[key]);
}
const headers = {
"Content-Type": "application/json",
Authorization: "Bearer " + localStorage.getItem("access_token"),
};
axios
.post(
`${BASE_URL}${props.action}`,
props.isFormData ? bodyFormData : props.body,
{
headers: headers,
}
)
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
downloadFileAPI(props: PropData) {
return new Promise((resolve, reject) => {
const { body, isFormData, action } = props;
const headers = {
Authorization: "Bearer " + localStorage.getItem("access_token"),
};
const bodyFormData = new URLSearchParams();
if (isFormData) {
for (let key in body) {
bodyFormData.append(key, body[key]);
}
}
let acceptHeader = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
if (props.action.includes('csv')) {
acceptHeader = "text/csv";
} else if (props.action.includes('pdf')) {
acceptHeader = "application/pdf";
}
axios.get(`${BASE_URL}${action}`, {
headers: {
...headers,
Accept: acceptHeader,
},
responseType: "arraybuffer", // Expecting binary data
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error?.response?.status === 401) {
WebService.logout();
}
props.isShowError
? reject(error)
: reject(WebService.errorHandler(error));
});
});
},
BeforLoginPostAPI: function (props: PropData) {
return new Promise((resolve, reject) => {
var bodyFormData = new URLSearchParams();
for (let key in props.body) {
bodyFormData.append(key, props.body[key]);
}
const headers = {
"Content-Type": "application/json",
};
axios
.post(
`${BASE_URL}${props.action}`,
props.isFormData ? bodyFormData : props.body,
{
headers: headers,
}
)
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
uploadAPI: function (props: PropData) {
let formData = new FormData();
if (props._file && props.key) {
formData.append(props.key, props._file);
}
return new Promise((resolve, reject) => {
for (let key in props.body) {
formData.append(key, props.body[key]);
}
const headers = {
Authorization: "Bearer " + localStorage.getItem("access_token"),
appid: localStorage.getItem("app_id"),
};
axios
.post(`${BASE_URL}${props.action}`, formData, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
putAPI: function (props: PropData) {
return new Promise((resolve, reject) => {
var bodyFormData = new URLSearchParams();
for (let key in props.body) {
bodyFormData.append(key, props.body[key]);
}
const headers = {
"Content-Type": "application/json",
Authorization: "Bearer " + localStorage.getItem("access_token"),
appid: localStorage.getItem("app_id"),
xapikey: localStorage.getItem("p_user_id"),
};
axios
.put(`${BASE_URL}${props.action}`, props.body, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
putAPIBeforeLogin: function (props: PropData) {
return new Promise((resolve, reject) => {
var bodyFormData = new URLSearchParams();
for (let key in props.body) {
bodyFormData.append(key, props.body[key]);
}
const headers = {
"Content-Type": "application/json",
};
axios
.put(`${BASE_URL}${props.action}`, props.body, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
getAPI: function (props: PropData) {
return new Promise((resolve, reject) => {
const headers = {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: "Bearer " + localStorage.getItem("access_token"),
appid: localStorage.getItem("app_id"),
};
axios
.get(`${BASE_URL}${props.action}`, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
getAPIBeforeLogin: function (props: PropData) {
return new Promise((resolve, reject) => {
const headers = {
"Content-Type": "application/x-www-form-urlencoded",
};
axios
.get(`${BASE_URL}${props.action}`, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
deleteAPI: function (props: PropData) {
return new Promise((resolve, reject) => {
const headers = {
"Content-Type": "application/x-www-form-urlencoded",
Authorization: "Bearer " + localStorage.getItem("access_token"),
appid: localStorage.getItem("app_id"),
};
axios
.delete(`${BASE_URL}${props.action}`, {
headers: headers,
})
.then((response) => {
resolve(response.data);
})
.catch((error) => {
if (error && error.response && error.response.status == 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
});
});
},
CommonApi: function (props: PropData) {
return new Promise((resolve, reject) => {
let bodyFormData = new URLSearchParams();
for (let key in props.body) {
bodyFormData.append(key, props.body[key]);
}
const headers = {
Authorization: "Bearer " + localStorage.getItem("access_token"),
"Content-Type": props.isFormData ? "application/x-www-form-urlencoded" : "application/json",
};
const handleResponse = (response: any) => resolve(response.data);
const handleError = (error: any) => {
if (error && error.response && error.response.status === 401) {
this.logout();
}
props.isShowError ? reject(this.errorHandler(error)) : reject(error);
};
switch (props.method) {
case "POST":
axios.post(`${BASE_URL}${props.action}`, props.isFormData ? bodyFormData : props.body, { headers })
.then(handleResponse)
.catch(handleError);
break;
case "PUT":
axios.put(`${BASE_URL}${props.action}`, props.body, { headers })
.then(handleResponse)
.catch(handleError);
break;
case "GET":
axios.get(`${BASE_URL}${props.action}`, {
headers,
params: props.body // Send data as query parameters
})
.then(handleResponse)
.catch(handleError);
break;
case "DELETE":
axios.delete(`${BASE_URL}${props.action}`, {
headers,
data: props.body // Send data in the request body
})
.then(handleResponse)
.catch(handleError);
break;
default:
reject(new Error("Invalid method"));
}
});
},
errorHandler: function (error: any) {
if (error?.response) {
error = error.response;
}
var errorMessage;
if (!error || !error.status) {
errorMessage = "Server Not Responding";
} else if (error.status === 401) {
errorMessage = "Unauthorized";
this.logout();
} else if (error.status === 500) {
errorMessage =
(error &&
error.data &&
error.data.ErrorDetails &&
error.data.ErrorDetails.message) ||
"An unkown exception has occur. Please Contact administrator";
} else {
errorMessage = error.data.message;
}
toast.error(errorMessage);
return errorMessage;
},
addLoader(id?: any, status?: any) {
if (id) {
let button = document.getElementById(id) as HTMLButtonElement | null;
if (button) {
button.disabled = true;
let loader = document.createElement("span");
loader.innerHTML =
'<span style="margin-right:5px" class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span><span className="visually-hidden"></span>';
button.prepend(loader);
}
}
},
removeLoader(id: any) {
if (id) {
let button = document.getElementById(id) as HTMLButtonElement | null;
if (button != null) {
button.disabled = false;
button.removeChild(button.childNodes[0]);
}
}
},
logout() {
localStorage.clear();
window.location.href = "/login";
},
};
export default WebService;