modelProcessor.ts 1.0 KB

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