modelProvider.ts 879 B

12345678910111213141516171819202122232425262728
  1. import {AnyJson, DataProviderArgs, Provider} from "~/types/interfaces";
  2. import BaseProvider from "~/services/dataProvider/provider/baseProvider";
  3. import {QUERY_TYPE} from "~/types/enums";
  4. import {Context} from "@nuxt/types/app";
  5. import * as _ from "lodash";
  6. import {repositoryHelper} from "~/services/store/repository";
  7. class ModelProvider extends BaseProvider implements Provider{
  8. constructor(ctx: Context, args: DataProviderArgs) {
  9. super(ctx, args);
  10. }
  11. async invoke(data: AnyJson): Promise<any>{
  12. if(typeof this.arguments.model === 'undefined')
  13. throw new Error('model must be defined');
  14. data['originalState'] = _.cloneDeep(data)
  15. await repositoryHelper.persist(this.arguments.model, data)
  16. await this.postHook()
  17. }
  18. static support(args:DataProviderArgs): boolean{
  19. return args.type === QUERY_TYPE.MODEL
  20. }
  21. }
  22. export default ModelProvider