filters.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import api from '../api';
  2. import { openModal } from './modal';
  3. export const FILTERS_FETCH_REQUEST = 'FILTERS_FETCH_REQUEST';
  4. export const FILTERS_FETCH_SUCCESS = 'FILTERS_FETCH_SUCCESS';
  5. export const FILTERS_FETCH_FAIL = 'FILTERS_FETCH_FAIL';
  6. export const FILTERS_STATUS_CREATE_REQUEST = 'FILTERS_STATUS_CREATE_REQUEST';
  7. export const FILTERS_STATUS_CREATE_SUCCESS = 'FILTERS_STATUS_CREATE_SUCCESS';
  8. export const FILTERS_STATUS_CREATE_FAIL = 'FILTERS_STATUS_CREATE_FAIL';
  9. export const FILTERS_CREATE_REQUEST = 'FILTERS_CREATE_REQUEST';
  10. export const FILTERS_CREATE_SUCCESS = 'FILTERS_CREATE_SUCCESS';
  11. export const FILTERS_CREATE_FAIL = 'FILTERS_CREATE_FAIL';
  12. export const initAddFilter = (status, { contextType }) => dispatch =>
  13. dispatch(openModal('FILTER', {
  14. statusId: status?.get('id'),
  15. contextType: contextType,
  16. }));
  17. export const fetchFilters = () => (dispatch, getState) => {
  18. dispatch({
  19. type: FILTERS_FETCH_REQUEST,
  20. skipLoading: true,
  21. });
  22. api(getState)
  23. .get('/api/v2/filters')
  24. .then(({ data }) => dispatch({
  25. type: FILTERS_FETCH_SUCCESS,
  26. filters: data,
  27. skipLoading: true,
  28. }))
  29. .catch(err => dispatch({
  30. type: FILTERS_FETCH_FAIL,
  31. err,
  32. skipLoading: true,
  33. skipAlert: true,
  34. }));
  35. };
  36. export const createFilterStatus = (params, onSuccess, onFail) => (dispatch, getState) => {
  37. dispatch(createFilterStatusRequest());
  38. api(getState).post(`/api/v1/filters/${params.filter_id}/statuses`, params).then(response => {
  39. dispatch(createFilterStatusSuccess(response.data));
  40. if (onSuccess) onSuccess();
  41. }).catch(error => {
  42. dispatch(createFilterStatusFail(error));
  43. if (onFail) onFail();
  44. });
  45. };
  46. export const createFilterStatusRequest = () => ({
  47. type: FILTERS_STATUS_CREATE_REQUEST,
  48. });
  49. export const createFilterStatusSuccess = filter_status => ({
  50. type: FILTERS_STATUS_CREATE_SUCCESS,
  51. filter_status,
  52. });
  53. export const createFilterStatusFail = error => ({
  54. type: FILTERS_STATUS_CREATE_FAIL,
  55. error,
  56. });
  57. export const createFilter = (params, onSuccess, onFail) => (dispatch, getState) => {
  58. dispatch(createFilterRequest());
  59. api(getState).post('/api/v2/filters', params).then(response => {
  60. dispatch(createFilterSuccess(response.data));
  61. if (onSuccess) onSuccess(response.data);
  62. }).catch(error => {
  63. dispatch(createFilterFail(error));
  64. if (onFail) onFail();
  65. });
  66. };
  67. export const createFilterRequest = () => ({
  68. type: FILTERS_CREATE_REQUEST,
  69. });
  70. export const createFilterSuccess = filter => ({
  71. type: FILTERS_CREATE_SUCCESS,
  72. filter,
  73. });
  74. export const createFilterFail = error => ({
  75. type: FILTERS_CREATE_FAIL,
  76. error,
  77. });