Source: actions/collectionsActions.js

  1. /**
  2. * @module react-cmf/lib/actions/collectionsActions
  3. */
  4. import curry from 'lodash/curry';
  5. import CONSTANTS from '../constant';
  6. // keep backward compatibility
  7. export const { COLLECTION_ADD_OR_REPLACE, COLLECTION_REMOVE, COLLECTION_MUTATE } = CONSTANTS;
  8. /**
  9. * Add or replace collection data in store
  10. * curried function
  11. * @param {string | Array<string>} collectionId - path to collection
  12. * @param {any} data element that represent business data
  13. */
  14. export const addOrReplace = curry((collectionId, data) => ({
  15. type: CONSTANTS.COLLECTION_ADD_OR_REPLACE,
  16. collectionId,
  17. data,
  18. }));
  19. /**
  20. * Remove collection data in store to free space
  21. * @param {string | Array<string>} collectionId - path to collection
  22. *
  23. * @throws if you try to remove non existent collection
  24. */
  25. export function remove(collectionId) {
  26. return {
  27. type: CONSTANTS.COLLECTION_REMOVE,
  28. collectionId,
  29. };
  30. }
  31. /**
  32. * mutateCollection let's you apply operations on a given collection
  33. * curried function
  34. * @param {string | Array<string>} collectionId - path to collection
  35. * @param {object} operations operations to be applied on the collection
  36. * {
  37. * add: [],
  38. * update: {},
  39. * delete: []
  40. * }
  41. */
  42. export const mutate = curry((id, operations) => ({
  43. type: CONSTANTS.COLLECTION_MUTATE,
  44. id,
  45. operations,
  46. }));
  47. // backward compatibility
  48. export const addOrReplaceCollection = addOrReplace;
  49. export const mutateCollection = mutate;
  50. export const removeCollection = remove;