Uname:Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64

Base Dir : /var/www/machinox.in

User : root


403WebShell
403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/control.machinox.in/src/Services/WebService.tsx
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;

Youez - 2016 - github.com/yon3zu
LinuXploit