diff --git a/src/lib/db/feature-toggle-legacy-admin-store.ts b/src/lib/db/feature-toggle-admin-store.ts similarity index 92% rename from src/lib/db/feature-toggle-legacy-admin-store.ts rename to src/lib/db/feature-toggle-admin-store.ts index fe15e274a3..68d74ac656 100644 --- a/src/lib/db/feature-toggle-legacy-admin-store.ts +++ b/src/lib/db/feature-toggle-admin-store.ts @@ -3,6 +3,7 @@ import metricsHelper from '../util/metrics-helper'; import { DB_TIME } from '../metric-events'; import { Logger, LogProvider } from '../logger'; import { + FeatureToggle, IFeatureToggleClient, IFeatureToggleQuery, IStrategyConfig, @@ -31,7 +32,7 @@ export interface IGetAdminFeatures { // This is extracted from the feature-toggle-client-store that was mixing // client and admin concerns -export default class FeatureToggleLegacyAdminStore { +export default class FeatureToggleAdminStore { private db: Db; private logger: Logger; @@ -40,7 +41,7 @@ export default class FeatureToggleLegacyAdminStore { constructor(db: Db, eventBus: EventEmitter, getLogger: LogProvider) { this.db = db; - this.logger = getLogger('feature-toggle-legacy-admin-store.ts'); + this.logger = getLogger('feature-toggle-admin-store.ts'); this.timer = (action) => metricsHelper.wrapTimer(eventBus, DB_TIME, { store: 'admin-feature-toggle', @@ -52,7 +53,7 @@ export default class FeatureToggleLegacyAdminStore { featureQuery, archived, userId, - }: IGetAllFeatures): Promise { + }: IGetAllFeatures): Promise { const environment = featureQuery?.environment || DEFAULT_ENV; const stopTimer = this.timer('getFeatureAdmin'); @@ -159,14 +160,9 @@ export default class FeatureToggleLegacyAdminStore { stopTimer(); const featureToggles = rows.reduce((acc, r) => { - let feature: PartialDeep = acc[r.name] ?? { + let feature: PartialDeep = acc[r.name] ?? { strategies: [], }; - if (this.isUnseenStrategyRow(feature, r)) { - feature.strategies.push( - FeatureToggleLegacyAdminStore.rowToStrategy(r), - ); - } if (this.isNewTag(feature, r)) { this.addTag(feature, r); } @@ -179,7 +175,6 @@ export default class FeatureToggleLegacyAdminStore { this.addSegmentIdsToStrategy(feature, r); } feature.impressionData = r.impression_data; - feature.enabled = !!r.enabled; feature.name = r.name; feature.description = r.description; feature.project = r.project; @@ -194,7 +189,7 @@ export default class FeatureToggleLegacyAdminStore { return acc; }, {}); - const features: IFeatureToggleClient[] = Object.values(featureToggles); + const features: FeatureToggle[] = Object.values(featureToggles); return features; } @@ -230,7 +225,7 @@ export default class FeatureToggleLegacyAdminStore { row: Record, ): void { const tags = feature.tags || []; - const newTag = FeatureToggleLegacyAdminStore.rowToTag(row); + const newTag = FeatureToggleAdminStore.rowToTag(row); feature.tags = [...tags, newTag]; } diff --git a/src/lib/db/index.ts b/src/lib/db/index.ts index f2fcfa5531..441f92779c 100644 --- a/src/lib/db/index.ts +++ b/src/lib/db/index.ts @@ -37,7 +37,7 @@ import { AccountStore } from './account-store'; import ProjectStatsStore from './project-stats-store'; import { Db } from './db'; import { ImportTogglesStore } from '../features/export-import-toggles/import-toggles-store'; -import FeatureToggleLegacyAdminStore from './feature-toggle-legacy-admin-store'; +import FeatureToggleAdminStore from './feature-toggle-admin-store'; export const createStores = ( config: IUnleashConfig, @@ -87,7 +87,7 @@ export const createStores = ( eventBus, getLogger, ), - featureToggleLegacyAdminStore: new FeatureToggleLegacyAdminStore( + featureToggleLegacyAdminStore: new FeatureToggleAdminStore( db, eventBus, getLogger, diff --git a/src/lib/features/feature-toggle/createFeatureToggleService.ts b/src/lib/features/feature-toggle/createFeatureToggleService.ts index 9c165b2ef8..e92c719d85 100644 --- a/src/lib/features/feature-toggle/createFeatureToggleService.ts +++ b/src/lib/features/feature-toggle/createFeatureToggleService.ts @@ -34,7 +34,7 @@ import FakeAccessStore from '../../../test/fixtures/fake-access-store'; import FakeRoleStore from '../../../test/fixtures/fake-role-store'; import FakeEnvironmentStore from '../../../test/fixtures/fake-environment-store'; import EventStore from '../../db/event-store'; -import FeatureToggleLegacyAdminStore from '../../db/feature-toggle-legacy-admin-store'; +import FeatureToggleAdminStore from '../../db/feature-toggle-admin-store'; export const createFeatureToggleService = ( db: Db, @@ -53,7 +53,7 @@ export const createFeatureToggleService = ( eventBus, getLogger, ); - const featureToggleLegacyAdminStore = new FeatureToggleLegacyAdminStore( + const featureToggleLegacyAdminStore = new FeatureToggleAdminStore( db, eventBus, getLogger, diff --git a/src/lib/services/feature-toggle-service.ts b/src/lib/services/feature-toggle-service.ts index 562b9b2b8e..69eb435735 100644 --- a/src/lib/services/feature-toggle-service.ts +++ b/src/lib/services/feature-toggle-service.ts @@ -82,7 +82,7 @@ import { } from '../types/permissions'; import NoAccessError from '../error/no-access-error'; import { IFeatureProjectUserParams } from '../routes/admin-api/project/project-features'; -import { IFeatureToggleLegacyAdminStore } from '../types/stores/feature-toggle-legacy-admin-store'; +import { IFeatureToggleAdminStore } from '../types/stores/feature-toggle-admin-store'; interface IFeatureContext { featureName: string; @@ -114,7 +114,7 @@ class FeatureToggleService { private featureToggleClientStore: IFeatureToggleClientStore; - private featureToggleLegacyAdminStore: IFeatureToggleLegacyAdminStore; + private featureToggleLegacyAdminStore: IFeatureToggleAdminStore; private tagStore: IFeatureTagStore; diff --git a/src/lib/types/model.ts b/src/lib/types/model.ts index 4c7575b135..451db5707c 100644 --- a/src/lib/types/model.ts +++ b/src/lib/types/model.ts @@ -57,6 +57,7 @@ export interface FeatureToggle extends FeatureToggleDTO { project: string; lastSeenAt?: Date; createdAt?: Date; + favorite?: boolean; } export interface IFeatureToggleClient { @@ -72,7 +73,6 @@ export interface IFeatureToggleClient { lastSeenAt?: Date; createdAt?: Date; tags?: ITag[]; - favorite?: boolean; } export interface IFeatureEnvironmentInfo { diff --git a/src/lib/types/stores.ts b/src/lib/types/stores.ts index 1d71076e1d..de9fbe991e 100644 --- a/src/lib/types/stores.ts +++ b/src/lib/types/stores.ts @@ -33,7 +33,7 @@ import { IFavoriteProjectsStore } from './stores/favorite-projects'; import { IAccountStore } from './stores/account-store'; import { IProjectStatsStore } from './stores/project-stats-store-type'; import { IImportTogglesStore } from '../features/export-import-toggles/import-toggles-store-type'; -import { IFeatureToggleLegacyAdminStore } from './stores/feature-toggle-legacy-admin-store'; +import { IFeatureToggleAdminStore } from './stores/feature-toggle-admin-store'; export interface IUnleashStores { accessStore: IAccessStore; @@ -51,7 +51,7 @@ export interface IUnleashStores { featureTagStore: IFeatureTagStore; featureToggleStore: IFeatureToggleStore; featureToggleClientStore: IFeatureToggleClientStore; - featureToggleLegacyAdminStore: IFeatureToggleLegacyAdminStore; + featureToggleLegacyAdminStore: IFeatureToggleAdminStore; featureTypeStore: IFeatureTypeStore; groupStore: IGroupStore; projectStore: IProjectStore; diff --git a/src/lib/types/stores/feature-toggle-admin-store.ts b/src/lib/types/stores/feature-toggle-admin-store.ts new file mode 100644 index 0000000000..2106ea6cde --- /dev/null +++ b/src/lib/types/stores/feature-toggle-admin-store.ts @@ -0,0 +1,6 @@ +import { FeatureToggle } from '../model'; +import { IGetAdminFeatures } from '../../db/feature-toggle-client-store'; + +export interface IFeatureToggleAdminStore { + getAdmin(params: IGetAdminFeatures): Promise; +} diff --git a/src/lib/types/stores/feature-toggle-legacy-admin-store.ts b/src/lib/types/stores/feature-toggle-legacy-admin-store.ts deleted file mode 100644 index 4127da81b5..0000000000 --- a/src/lib/types/stores/feature-toggle-legacy-admin-store.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IFeatureToggleClient } from '../model'; -import { IGetAdminFeatures } from '../../db/feature-toggle-client-store'; - -export interface IFeatureToggleLegacyAdminStore { - // @Deprecated - getAdmin(params: IGetAdminFeatures): Promise; -} diff --git a/src/test/fixtures/fake-feature-toggle-client-store.ts b/src/test/fixtures/fake-feature-toggle-client-store.ts index a21ae314c0..88a00aac6a 100644 --- a/src/test/fixtures/fake-feature-toggle-client-store.ts +++ b/src/test/fixtures/fake-feature-toggle-client-store.ts @@ -5,10 +5,10 @@ import { } from '../../lib/types/model'; import { IFeatureToggleClientStore } from '../../lib/types/stores/feature-toggle-client-store'; import { IGetAdminFeatures } from '../../lib/db/feature-toggle-client-store'; -import { IFeatureToggleLegacyAdminStore } from '../../lib/types/stores/feature-toggle-legacy-admin-store'; +import { IFeatureToggleAdminStore } from '../../lib/types/stores/feature-toggle-admin-store'; export default class FakeFeatureToggleClientStore - implements IFeatureToggleClientStore, IFeatureToggleLegacyAdminStore + implements IFeatureToggleClientStore, IFeatureToggleAdminStore { featureToggles: FeatureToggle[] = []; @@ -57,7 +57,7 @@ export default class FakeFeatureToggleClientStore async getAdmin({ featureQuery: query, archived, - }: IGetAdminFeatures): Promise { + }: IGetAdminFeatures): Promise { return this.getFeatures(query, archived); }