Files
kintone-plugin-filelookup/src/common/config.ts

43 lines
1.3 KiB
TypeScript

export interface PluginConfigLookupItem {
lookupFieldCode: string;
srcAttachmentFieldCode: string;
destAttachmentFieldCode: string;
}
export type PluginConfigLookup = PluginConfigLookupItem[];
export interface PluginConfig {
lookup: PluginConfigLookup;
}
const encodeConfigLookup = (rows: PluginConfigLookup): string => {
return JSON.stringify(rows);
};
const decodeConfigLookup = (lookup: string): PluginConfigLookup | null => {
try {
return JSON.parse(lookup) as PluginConfigLookup;
} catch (e) {
return null;
}
};
export const loadPluginConfigLookup = (pluginId: string): PluginConfigLookup | null => {
const config = kintone.plugin.app.getConfig(pluginId);
return decodeConfigLookup(config.lookup);
};
export const loadPluginConfig = (pluginId: string): PluginConfig | null => {
const config = kintone.plugin.app.getConfig(pluginId);
const lookup = decodeConfigLookup(config.lookup);
return lookup ? { lookup } : null;
};
export const savePluginConfigLookup = (lookup: PluginConfigLookup, callback: () => void) => {
kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(lookup) }, callback);
};
export const savePluginConfig = (config: PluginConfig, callback: () => void) => {
kintone.plugin.app.setConfig({ lookup: encodeConfigLookup(config.lookup) }, callback);
};