modelProcessor.ts 940 B

1234567891011121314151617181920212223242526272829303132
  1. import * as _ from 'lodash'
  2. import { AnyJson, DataProviderArgs, Processor } from '~/types/interfaces'
  3. import BaseProcessor from '~/services/data/processor/baseProcessor'
  4. import { QUERY_TYPE } from '~/types/enums'
  5. import { repositoryHelper } from '~/services/store/repository'
  6. class ModelProcessor extends BaseProcessor implements Processor {
  7. /**
  8. * Is the given argument a supported model
  9. * @param args
  10. */
  11. public static support (args: DataProviderArgs): boolean {
  12. return args.type === QUERY_TYPE.MODEL
  13. }
  14. /**
  15. * Exécute la requête et retourne la réponse désérialisée
  16. * @param data
  17. */
  18. async process (data: AnyJson): Promise<any> {
  19. if (typeof this.arguments.model === 'undefined') {
  20. throw new TypeError('model must be defined')
  21. }
  22. data.originalState = _.cloneDeep(data)
  23. await repositoryHelper.persist(this.arguments.model, data)
  24. return data
  25. }
  26. }
  27. export default ModelProcessor