mutants-appfx
Version:
appfx module
194 lines (183 loc) • 3.5 kB
JavaScript
import {
api
} from 'mutants-microfx';
export default class DataProviderManager {
static registry = new Map();
static registerDataProvider({
sysid,
mid,
}, dataProvider) {
const dpKey = sysid + '_' + mid;
if (!DataProviderManager.registry.has(dpKey)) {
DataProviderManager.registry.set(dpKey, dataProvider);
}
}
static getDataProvider({
sysid,
mid,
}) {
const dpKey = sysid + '_' + mid;
return DataProviderManager.registry.get(dpKey);
}
static async getModule({
sysid,
mid
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid
});
if (dataProvider && dataProvider.getModule) {
return dataProvider.getModule({
sysid,
mid
});
} else {
return api.get('module', {
params: {
sysid,
mid
}
});
}
}
static async getDataInfo({
sysid,
mid,
...other
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid
});
if (dataProvider && dataProvider.getDataInfo) {
return dataProvider.getDataInfo({
sysid,
mid,
...other
});
} else {
return api.get('dataInfo', {
params: {
sysid,
mid,
...other
}
});
}
}
static async getViewInfo({
sysid,
mid,
...other
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid
});
if (dataProvider && dataProvider.getViewInfo) {
return dataProvider.getViewInfo({
sysid,
mid,
...other
});
} else {
return api.get('viewInfo', {
params: {
sysid,
mid,
...other
}
});
}
}
static async getData({
sysid,
mid,
id,
...other
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid,
...other
});
if (dataProvider && dataProvider.getData) {
return dataProvider.getData({
sysid,
mid,
id,
...other
});
} else {
return api.get('data', {
params: {
sysid,
mid,
id,
...other
}
});
}
}
static async getDataList({
sysid,
mid,
...other
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid
});
if (dataProvider && dataProvider.getDataList) {
return dataProvider.getDataList({
sysid,
mid,
...other
});
} else {
return api.get('list', {
params: {
sysid,
mid,
...other
}
});
}
}
static async getRule({
sysid,
mid,
...other
}) {
let dataProvider = DataProviderManager.getDataProvider({
sysid,
mid
});
if (dataProvider && dataProvider.getRule) {
return dataProvider.getRule({
sysid,
mid,
...other
});
} else {
return api.get('rules', {
params: {
sysid,
mid,
...other
}
});
}
}
static async getFunction(params) {
let dataProvider = DataProviderManager.getDataProvider(params);
if (dataProvider && dataProvider.getFunction) {
return dataProvider.getFunction(params);
} else {
return (await api.get('functions', {
params
})).data.data;
}
}
}