model.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import * as _ from 'lodash'
  2. import BaseNormalizer from '~/services/serializer/normalizer/baseNormalizer'
  3. import { DataPersisterArgs, Normalizer } from '~/types/interfaces'
  4. import { QUERY_TYPE } from '~/types/enums'
  5. import { repositoryHelper } from '~/services/store/repository'
  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) { throw new Error('model must be present') }
  22. const item = repositoryHelper.findItemFromModel(args.model, args.id)
  23. if (!item || typeof item === 'undefined') { throw new Error('Item not found') }
  24. const data = item.$toJson()
  25. return _.omit(data, 'originalState')
  26. }
  27. }
  28. export default Model