model.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import BaseNormalizer from "~/services/serializer/normalizer/baseNormalizer";
  2. import {DataPersisterArgs, Normalizer} from "~/types/interfaces";
  3. import {QUERY_TYPE} from "~/types/enums";
  4. import {repositoryHelper} from "~/services/store/repository";
  5. import * as _ from "lodash"
  6. /**
  7. * @category Services/serializer/normalizer
  8. * @class Model
  9. * Classe assurant la normalization d'un Model vers un fichier JSON
  10. */
  11. class Model extends BaseNormalizer implements Normalizer{
  12. static support(type: QUERY_TYPE): boolean {
  13. return type === QUERY_TYPE.MODEL
  14. }
  15. /**
  16. * Récupération de l'Item souhaité puis transformation en JSON
  17. * @param {DataPersisterArgs} args
  18. * @return {any} réponse
  19. */
  20. normalize(args:DataPersisterArgs): any {
  21. if(!args.model)
  22. throw new Error('model must be present')
  23. const item = repositoryHelper.findItemFromModel(args.model, args.id)
  24. if(!item || typeof item === "undefined")
  25. throw new Error('Item not found')
  26. const data = item.$toJson()
  27. return _.omit(data, 'originalState')
  28. }
  29. }
  30. export default Model