48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import * as plugins from '../plugins.js';
|
|
import type { CloudlyPlatformManager } from './classes.platformmanager.js';
|
|
|
|
@plugins.smartdata.managed()
|
|
export class PlatformProviderConfig extends plugins.smartdata.SmartDataDbDoc<
|
|
PlatformProviderConfig,
|
|
plugins.servezoneInterfaces.platform.IPlatformProviderConfig,
|
|
CloudlyPlatformManager
|
|
> {
|
|
public static async upsertProviderConfig(
|
|
providerConfigArg: plugins.servezoneInterfaces.platform.IPlatformProviderConfig,
|
|
) {
|
|
const providerConfig =
|
|
(providerConfigArg.id &&
|
|
(await this.getInstance({
|
|
id: providerConfigArg.id,
|
|
}))) || new PlatformProviderConfig();
|
|
|
|
Object.assign(providerConfig, {
|
|
...providerConfigArg,
|
|
id: providerConfigArg.id || (await this.getNewId()),
|
|
});
|
|
await providerConfig.save();
|
|
return providerConfig;
|
|
}
|
|
|
|
@plugins.smartdata.unI()
|
|
public id!: string;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public capability!: plugins.servezoneInterfaces.platform.TPlatformCapability;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public providerType!: string;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public name!: string;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public enabled!: boolean;
|
|
|
|
@plugins.smartdata.svDb()
|
|
public config?: { [key: string]: plugins.servezoneInterfaces.platform.TPlatformConfigValue };
|
|
|
|
@plugins.smartdata.svDb()
|
|
public secretBundleId?: string;
|
|
}
|