APIs

Domain Setting

File locate: ./app/configs/settings.js

Setting domain APIs

Suffix API

This file has defined all API suffix for all functions of this project

File locate: ./app/api/index.js

Setting endpoint APIs

Network Connection

File locate: ./app/api/http.js

setupInterceptors() {
    const api = axios.create({
      timeout: 30000,
    });
    api.interceptors.request.use(
      config => {
        const token = getToken();
        const device = getDevice();
        if (!config.baseURL) {
          config.baseURL = `${getDomain()}/index.php/wp-json`;
        }
        console.log('Before Request >>>', config);
        // Add more config before request
        if (token) {
          config.headers.Authorization = `Bearer ${token}`;
        }
        if (device) {
          config.headers.appVersion = device.appVersion;
          config.headers.brand = device.brand;
          config.headers.buildNumber = device.buildNumber;
          config.headers.bundleId = device.bundleId;
          config.headers.deviceId = device.deviceId;
          config.headers.deviceType = device.deviceType;
          config.headers.model = device.model;
          config.headers.systemName = device.systemName;
          config.headers.systemVersion = device.systemVersion;
          config.headers.token = device.token;
          config.headers.model = device.model;
        }
        return config;
      },
      error => {
        console.log('Error Request >>>', error);
        // Do something with response error
        return new Promise.reject(error);
      },
    );

    api.interceptors.response.use(
      response => {
        console.log('After Request >>>', response);
        // process more after response
        return response;
      },
      error => {
        console.log('Error Response >>>', error);
        // process more when exception
        const code = error.response?.data?.code;
        if (this.exceptionCode.includes(code)) {
          Navigator.popToTop();
          store.dispatch(authActions.onExpire());
        }
        return new Promise.reject(error);
      },
    );
    return api;
  }

The application is using axios for control network connection. You can refer this npm package for understand more in detail how dose it work https://www.npmjs.com/package/axios