import { model, Model } from '@core/core'; import { AppModel } from 'src/modules/app.model'; import { Connection } from 'src/modules/crud/crud.typings'; import { ApiFactory } from 'src/modules/crud/apiFactory'; import { PAGE_INDEX } from '@constants/constant'; const api = new ApiFactory().create(); export const MaintainFormModelXtype = 'dec.dcm.model.maintain_form'; @model(MaintainFormModelXtype) export class MaintainFormModel extends Model<{ context : { datebaseTypeSelected: AppModel['$$childContext']['datebaseTypeSelected']; datebaseTypeSelectedOne: AppModel['$$childContext']['datebaseTypeSelectedOne']; connectionSelectedOne: AppModel['$$childContext']['connectionSelectedOne']; saveEvent: AppModel['$$childContext']['saveEvent']; testEvent: AppModel['$$childContext']['testEvent']; pageIndex: AppModel['$$childContext']['pageIndex']; connections: AppModel['$$childContext']['connections']; } }> { context = ['datebaseTypeSelected', 'datebaseTypeSelectedOne', 'connectionSelectedOne', 'saveEvent', 'pageIndex', 'testEvent', 'connections']; actions = { addConnection: (data: Connection) => { api.addConnection(data).then(() => { this.model.pageIndex = PAGE_INDEX.CONNECTION; }); }, updateConnection: (name: string, data: Connection) => { data.connectionId = name; api.updateConnection(data).then(() => { this.model.pageIndex = PAGE_INDEX.CONNECTION; }); }, testConnection: (connection: Connection) => api.testConnection(connection), } }