MetaPhase-Consulting/State-TalentMAP

View on GitHub
src/actions/managePostAccess.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import { batch } from 'react-redux';
import {
  MANAGE_POST_ACCESS_ADD_ERROR,
  MANAGE_POST_ACCESS_ADD_ERROR_TITLE,
  MANAGE_POST_ACCESS_ADD_SUCCESS,
  MANAGE_POST_ACCESS_ADD_SUCCESS_TITLE,
} from 'Constants/SystemMessages';
import api from '../api';
import { toastError, toastSuccess } from './toast';


export function managePostEditSuccess(bool) {
  return {
    type: 'MANAGE_POST_EDIT_SUCCESS',
    success: bool,
  };
}

export function managePostEdit(accessors) {
  return (dispatch) => {
    dispatch(managePostEditSuccess(false));
    api()
      .post('fsbid/post_access/permissions/', { data: accessors })
      .then(() => {
        batch(() => {
          dispatch(managePostEditSuccess(true));
          dispatch(
            toastSuccess(
              MANAGE_POST_ACCESS_ADD_SUCCESS, MANAGE_POST_ACCESS_ADD_SUCCESS_TITLE,
            ));
        });
      })
      .catch(() => {
        dispatch(managePostEditSuccess(false));
        dispatch(toastError(
          MANAGE_POST_ACCESS_ADD_ERROR, MANAGE_POST_ACCESS_ADD_ERROR_TITLE,
        ));
      });
  };
}


export function managePostFetchFiltersErrored(bool) {
  return {
    type: 'MANAGE_POST_FETCH_FILTERS_HAS_ERRORED',
    hasErrored: bool,
  };
}

export function managePostFetchFiltersLoading(bool) {
  return {
    type: 'MANAGE_POST_FETCH_FILTERS_IS_LOADING',
    isLoading: bool,
  };
}

export function managePostFetchFiltersSuccess(results) {
  return {
    type: 'MANAGE_POST_FETCH_FILTERS_SUCCESS',
    results,
  };
}

export function managePostFetchFilters() {
  return (dispatch) => {
    batch(() => {
      dispatch(managePostFetchFiltersLoading(true));
      dispatch(managePostFetchFiltersErrored(false));
    });
    const endpoint = 'fsbid/post_access/filters/';
    dispatch(managePostFetchFiltersLoading(true));
    api().get(endpoint)
      .then(({ data }) => {
        batch(() => {
          dispatch(managePostFetchFiltersSuccess(data));
          dispatch(managePostFetchFiltersErrored(false));
          dispatch(managePostFetchFiltersLoading(false));
        });
      })
      .catch((err) => {
        if (err?.message === 'cancel') {
          batch(() => {
            dispatch(managePostFetchFiltersLoading(true));
            dispatch(managePostFetchFiltersErrored(false));
          });
        } else {
          batch(() => {
            dispatch(managePostFetchFiltersSuccess([]));
            dispatch(managePostFetchFiltersErrored(true));
            dispatch(managePostFetchFiltersLoading(false));
          });
        }
      });
  };
}