MetaPhase-Consulting/State-TalentMAP

View on GitHub
src/actions/bureauExceptions.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import { batch } from 'react-redux';
import { CancelToken } from 'axios';
import { convertQueryToString, scrollToTop } from 'utilities';
import { toastError, toastSuccess } from './toast';
import api from '../api';
import {
  BUREAU_EXCEPTIONS_ADD_ERROR,
  BUREAU_EXCEPTIONS_ADD_ERROR_TITLE,
  BUREAU_EXCEPTIONS_ADD_SUCCESS,
  BUREAU_EXCEPTIONS_ADD_SUCCESS_TITLE,
  BUREAU_EXCEPTIONS_DELETE_ERROR,
  BUREAU_EXCEPTIONS_DELETE_ERROR_TITLE,
  BUREAU_EXCEPTIONS_DELETE_SUCCESS,
  BUREAU_EXCEPTIONS_DELETE_SUCCESS_TITLE,
  BUREAU_EXCEPTIONS_UPDATE_ERROR,
  BUREAU_EXCEPTIONS_UPDATE_ERROR_TITLE,
  BUREAU_EXCEPTIONS_UPDATE_SUCCESS,
  BUREAU_EXCEPTIONS_UPDATE_SUCCESS_TITLE,
} from '../Constants/SystemMessages';

let cancelUserBureauExceptionsAndMetaData;
let cancelBureauExceptionsRefDataBureaus;
let cancelBureauExceptions;
let cancelAddUserBureauExceptions;
let cancelUpdateUserBureauExceptions;
let cancelDeleteUserBureauExceptions;

export function userBureauExceptionsAndMetaDataErrored(bool) {
  return {
    type: 'USER_BUREAU_EXCEPTIONS_AND_METADATA_HAS_ERRORED',
    hasErrored: bool,
  };
}
export function userBureauExceptionsAndMetaDataLoading(bool) {
  return {
    type: 'USER_BUREAU_EXCEPTIONS_AND_METADATA_IS_LOADING',
    isLoading: bool,
  };
}
export function userBureauExceptionsAndMetaDataSuccess(results) {
  return {
    type: 'USER_BUREAU_EXCEPTIONS_AND_METADATA_SUCCESS',
    results,
  };
}
export function userBureauExceptionsAndMetaDataFetch(query = {}) {
  return (dispatch) => {
    if (cancelUserBureauExceptionsAndMetaData) { cancelUserBureauExceptionsAndMetaData('cancel'); dispatch(userBureauExceptionsAndMetaDataLoading(true)); }
    batch(() => {
      dispatch(userBureauExceptionsAndMetaDataLoading(true));
      dispatch(userBureauExceptionsAndMetaDataErrored(false));
    });
    const q = convertQueryToString(query);
    api().get(`/fsbid/bureau_exceptions/metadata/?${q}`, {
      cancelToken: new CancelToken((c) => { cancelUserBureauExceptionsAndMetaData = c; }),
    })
      .then(({ data }) => {
        batch(() => {
          dispatch(userBureauExceptionsAndMetaDataSuccess(data));
          dispatch(userBureauExceptionsAndMetaDataErrored(false));
          dispatch(userBureauExceptionsAndMetaDataLoading(false));
        });
      })
      .catch((err) => {
        if (err?.message === 'cancel') {
          batch(() => {
            dispatch(userBureauExceptionsAndMetaDataLoading(true));
            dispatch(userBureauExceptionsAndMetaDataErrored(false));
          });
        } else {
          batch(() => {
            dispatch(userBureauExceptionsAndMetaDataSuccess({}));
            dispatch(userBureauExceptionsAndMetaDataErrored(true));
            dispatch(userBureauExceptionsAndMetaDataLoading(false));
          });
        }
      });
  };
}
export function resetUserBureauExceptionsAndMetaDataRedux() {
  return (dispatch) => {
    batch(() => {
      dispatch(userBureauExceptionsAndMetaDataSuccess({}));
      dispatch(userBureauExceptionsAndMetaDataErrored(false));
      dispatch(userBureauExceptionsAndMetaDataLoading(false));
    });
  };
}


export function bureauExceptionsRefDataBureausErrored(bool) {
  return {
    type: 'BUREAU_EXCEPTIONS_REF_DATA_BUREAUS_HAS_ERRORED',
    hasErrored: bool,
  };
}
export function bureauExceptionsRefDataBureausLoading(bool) {
  return {
    type: 'BUREAU_EXCEPTIONS_REF_DATA_BUREAUS_IS_LOADING',
    isLoading: bool,
  };
}
export function bureauExceptionsRefDataBureausSuccess(results) {
  return {
    type: 'BUREAU_EXCEPTIONS_REF_DATA_BUREAUS_SUCCESS',
    results,
  };
}
export function bureauExceptionsRefDataBureausFetchData() {
  return (dispatch) => {
    if (cancelBureauExceptionsRefDataBureaus) { cancelBureauExceptionsRefDataBureaus('cancel'); dispatch(bureauExceptionsRefDataBureausLoading(true)); }
    batch(() => {
      dispatch(bureauExceptionsRefDataBureausLoading(true));
      dispatch(bureauExceptionsRefDataBureausErrored(false));
    });
    api().get('/fsbid/bureau_exceptions/ref_data_bureaus/', {
      cancelToken: new CancelToken((c) => {
        cancelBureauExceptions = c;
      }),
    })
      .then(({ data }) => {
        batch(() => {
          dispatch(bureauExceptionsRefDataBureausSuccess(data));
          dispatch(bureauExceptionsRefDataBureausErrored(false));
          dispatch(bureauExceptionsRefDataBureausLoading(false));
        });
      })
      .catch((err) => {
        if (err?.message === 'cancel') {
          batch(() => {
            dispatch(bureauExceptionsRefDataBureausLoading(true));
            dispatch(bureauExceptionsRefDataBureausErrored(false));
          });
        } else {
          batch(() => {
            dispatch(bureauExceptionsRefDataBureausSuccess([]));
            dispatch(bureauExceptionsRefDataBureausErrored(true));
            dispatch(bureauExceptionsRefDataBureausLoading(false));
          });
        }
      });
  };
}


export function bureauExceptionsErrored(bool) {
  return {
    type: 'BUREAU_EXCEPTIONS_HAS_ERRORED',
    hasErrored: bool,
  };
}
export function bureauExceptionsLoading(bool) {
  return {
    type: 'BUREAU_EXCEPTIONS_IS_LOADING',
    isLoading: bool,
  };
}
export function bureauExceptionsSuccess(results) {
  return {
    type: 'BUREAU_EXCEPTIONS_SUCCESS',
    results,
  };
}
export function bureauExceptionsFetchData() {
  scrollToTop({ delay: 0, duration: 0 });
  return (dispatch) => {
    if (cancelBureauExceptions) { cancelBureauExceptions('cancel'); dispatch(bureauExceptionsLoading(true)); }
    batch(() => {
      dispatch(bureauExceptionsLoading(true));
      dispatch(bureauExceptionsErrored(false));
    });
    api().get('/fsbid/bureau_exceptions/', {
      cancelToken: new CancelToken((c) => {
        cancelBureauExceptions = c;
      }),
    })
      .then(({ data }) => {
        batch(() => {
          dispatch(bureauExceptionsSuccess(data));
          dispatch(bureauExceptionsErrored(false));
          dispatch(bureauExceptionsLoading(false));
        });
      })
      .catch((err) => {
        if (err?.message === 'cancel') {
          batch(() => {
            dispatch(bureauExceptionsLoading(true));
            dispatch(bureauExceptionsErrored(false));
          });
        } else {
          batch(() => {
            dispatch(bureauExceptionsSuccess([]));
            dispatch(bureauExceptionsErrored(true));
            dispatch(bureauExceptionsLoading(false));
          });
        }
      });
  };
}


export function addUserBureauExceptions(data) {
  return (dispatch) => {
    if (cancelAddUserBureauExceptions) { cancelAddUserBureauExceptions('cancel'); }

    api().post('/fsbid/bureau_exceptions/add/', data, {
      cancelToken: new CancelToken((c) => {
        cancelAddUserBureauExceptions = c;
      }),
    })
      .then(() => {
        batch(() => {
          dispatch(toastSuccess(BUREAU_EXCEPTIONS_ADD_SUCCESS,
            BUREAU_EXCEPTIONS_ADD_SUCCESS_TITLE));
          dispatch(bureauExceptionsFetchData());
        });
      }).catch((err) => {
        if (err?.message !== 'cancel') {
          dispatch(toastError(BUREAU_EXCEPTIONS_ADD_ERROR,
            BUREAU_EXCEPTIONS_ADD_ERROR_TITLE));
        }
      });
  };
}

export function updateUserBureauExceptions(data) {
  return (dispatch) => {
    if (cancelUpdateUserBureauExceptions) { cancelUpdateUserBureauExceptions('cancel'); }
    api().post('/fsbid/bureau_exceptions/update/', data, {
      cancelToken: new CancelToken((c) => {
        cancelUpdateUserBureauExceptions = c;
      }),
    })
      .then(() => {
        batch(() => {
          dispatch(toastSuccess(BUREAU_EXCEPTIONS_UPDATE_SUCCESS,
            BUREAU_EXCEPTIONS_UPDATE_SUCCESS_TITLE));
          dispatch(bureauExceptionsFetchData());
        });
      }).catch((err) => {
        if (err?.message !== 'cancel') {
          dispatch(toastError(BUREAU_EXCEPTIONS_UPDATE_ERROR,
            BUREAU_EXCEPTIONS_UPDATE_ERROR_TITLE));
        }
      });
  };
}

export function deleteUserBureauExceptions(data) {
  return (dispatch) => {
    if (cancelDeleteUserBureauExceptions) { cancelDeleteUserBureauExceptions('cancel'); }
    api().post('/fsbid/bureau_exceptions/delete/', data, {
      cancelToken: new CancelToken((c) => {
        cancelDeleteUserBureauExceptions = c;
      }),
    })
      .then(() => {
        batch(() => {
          dispatch(toastSuccess(BUREAU_EXCEPTIONS_DELETE_SUCCESS,
            BUREAU_EXCEPTIONS_DELETE_SUCCESS_TITLE));
          dispatch(bureauExceptionsFetchData());
        });
      })
      .catch((err) => {
        if (err?.message !== 'cancel') {
          dispatch(toastError(BUREAU_EXCEPTIONS_DELETE_ERROR,
            BUREAU_EXCEPTIONS_DELETE_ERROR_TITLE));
        }
      });
  };
}