diff --git a/Composer/packages/server/src/models/settings/defaultSettingManager.ts b/Composer/packages/server/src/models/settings/defaultSettingManager.ts index b9011d6cb9..cf6ca3de24 100644 --- a/Composer/packages/server/src/models/settings/defaultSettingManager.ts +++ b/Composer/packages/server/src/models/settings/defaultSettingManager.ts @@ -1,9 +1,11 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import set from 'lodash/set'; import { DialogSetting, SensitiveProperties } from '@bfc/shared'; import { UserIdentity } from '@bfc/extension'; +import has from 'lodash/has'; +import get from 'lodash/get'; +import set from 'lodash/set'; import { Path } from '../../utility/path'; import log from '../../logger'; @@ -11,6 +13,8 @@ import log from '../../logger'; import { FileSettingManager } from './fileSettingManager'; const debug = log.extend('default-settings-manager'); +const newSettingsValuePath = ['downsampling', 'luis.endpoint', 'luis.authoringEndpoint', 'skillConfiguration']; + export class DefaultSettingManager extends FileSettingManager { constructor(basePath: string, user?: UserIdentity) { super(basePath, user); @@ -90,18 +94,19 @@ export class DefaultSettingManager extends FileSettingManager { public async get(obfuscate = false): Promise { const result = await super.get(obfuscate); - //add downsampling property for old bot - if (!result.downsampling) { - result.downsampling = this.createDefaultSettings().downsampling; - } - //add luis endpoint for old bot - if (!result.luis.endpoint && result.luis.endpoint !== '') { - result.luis.endpoint = this.createDefaultSettings().luis.endpoint; - } - //add luis authoring endpoint for old bot - if (!result.luis.authoringEndpoint && result.luis.authoringEndpoint !== '') { - result.luis.authoringEndpoint = this.createDefaultSettings().luis.authoringEndpoint; + const defaultValue = this.createDefaultSettings(); + let updateFile = false; + newSettingsValuePath.forEach((jsonPath: string) => { + if (!has(result, jsonPath)) { + set(result, jsonPath, get(defaultValue, jsonPath)); + updateFile = true; + } + }); + + if (updateFile) { + this.set(result); } + return result; }