| 123456789101112131415161718192021222324252627 |
- import { Context } from '@nuxt/types/app'
- import * as _ from 'lodash'
- import { AnyJson, DataProviderArgs, Provider } from '~/types/interfaces'
- import BaseProvider from '~/services/dataProvider/provider/baseProvider'
- import { QUERY_TYPE } from '~/types/enums'
- import { repositoryHelper } from '~/services/store/repository'
- class ModelProvider extends BaseProvider implements Provider {
- constructor (ctx: Context, args: DataProviderArgs) {
- super(ctx, args)
- }
- async invoke (data: AnyJson): Promise<any> {
- if (typeof this.arguments.model === 'undefined') { throw new TypeError('model must be defined') }
- data.originalState = _.cloneDeep(data)
- await repositoryHelper.persist(this.arguments.model, data)
- await this.postHook()
- }
- static support (args:DataProviderArgs): boolean {
- return args.type === QUERY_TYPE.MODEL
- }
- }
- export default ModelProvider
|