modelProcessor.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import * as _ from 'lodash'
  2. import {ApiResponse, DataProviderArgs, Processor} from '~/types/interfaces'
  3. import BaseProcessor from '~/services/data/processor/baseProcessor'
  4. import {METADATA_TYPE, 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 (payload: ApiResponse): Promise<any> {
  19. if (typeof this.arguments.model === 'undefined') {
  20. throw new TypeError('model must be defined')
  21. }
  22. if(payload.metadata.type !== METADATA_TYPE.COLLECTION){
  23. payload.data.originalState = _.cloneDeep(payload)
  24. }
  25. // console.log(payload.data)
  26. await repositoryHelper.persist(this.arguments.model, payload.data)
  27. return payload
  28. }
  29. }
  30. export default ModelProcessor