All files / hooks/useMutateRefdataValue useMutateRefdataValue.js

100% Statements 12/12
100% Branches 4/4
100% Functions 10/10
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85          28x                   7x   7x     1x   1x       1x   1x       1x   1x             1x                           1x                     1x                                    
import noop from 'lodash/noop';
 
import useInvalidateRefdata from '../useInvalidateRefdata';
import useMutateGeneric from '../useMutateGeneric';
 
const useMutateRefdataValue = ({
   afterQueryCalls: {
     delete: afterQueryDelete = noop,
     post: afterQueryPost = noop,
     put: afterQueryPut = noop,
   } = {},
  endpoint,
  id,
  ...mutateGenericProps
}) => {
  const invalidateRefdata = useInvalidateRefdata();
 
  return useMutateGeneric({
    afterQueryCalls: {
      delete: (res) => {
        invalidateRefdata()
          .then(() => {
            afterQueryDelete(res);
          });
      },
        post: (res) => {
        invalidateRefdata()
          .then(() => {
            afterQueryPost(res);
          });
      },
      put: (res) => {
        invalidateRefdata()
          .then(() => {
            afterQueryPut(res);
          });
      },
    },
    endpoint,
    id,
    promiseReturns: {
      delete: (delId, ky) => ky.put(
        `${endpoint}/${id}`,
        {
          json: {
            id,
            values: [
              {
                id: delId,
                _delete: true
              }
            ]
          }
        }
      ).json(),
      post: (data, ky) => ky.put(
        `${endpoint}/${id}`,
        {
          json: {
            id,
            values: [
              data
            ]
          }
        }
      ).json(),
      put: (data, ky) => ky.put(
        `${endpoint}/${id}`,
        {
          json: {
            id,
            values: [
              data
            ]
          }
        }
      ).json()
    },
    queryKey: ['stripes-kint-components', 'useMutateRefdataValue', id],
    ...mutateGenericProps
  });
};
 
export default useMutateRefdataValue;