diff --git a/src/lib/db/feature-strategy-store.ts b/src/lib/db/feature-strategy-store.ts index a4149b6b5d..4d5cebab34 100644 --- a/src/lib/db/feature-strategy-store.ts +++ b/src/lib/db/feature-strategy-store.ts @@ -272,6 +272,7 @@ class FeatureStrategiesStore implements IFeatureStrategiesStore { acc.description = r.description; acc.stale = r.stale; acc.variants = r.variants; + acc.createdAt = r.created_at; acc.lastSeenAt = r.last_seen_at; acc.type = r.type; if (!acc.environments[r.environment]) { diff --git a/src/lib/routes/admin-api/feature.ts b/src/lib/routes/admin-api/feature.ts index b493f732c4..d919306c86 100644 --- a/src/lib/routes/admin-api/feature.ts +++ b/src/lib/routes/admin-api/feature.ts @@ -103,14 +103,20 @@ class FeatureController extends Controller { res: Response, ): Promise { const name = req.params.featureName; + const feature = await this.getLegacyFeatureToggle(name); + res.json(feature).end(); + } + + private async getLegacyFeatureToggle(name: string): Promise { const feature = await this.featureService2.getFeatureToggle(name); - const strategies = - feature.environments.find((e) => e.name === GLOBAL_ENV) - ?.strategies || []; - res.json({ - ...feature, - strategies, - }).end(); + const globalEnv = feature.environments.find( + (e) => e.name === GLOBAL_ENV, + ); + const strategies = globalEnv?.strategies || []; + const enabled = globalEnv?.enabled || false; + delete feature.environments; + + return { ...feature, enabled, strategies }; } async listTags(req: Request, res: Response): Promise { @@ -280,22 +286,16 @@ class FeatureController extends Controller { async staleOn(req: Request, res: Response): Promise { const { featureName } = req.params; const userName = extractUser(req); - const feature = await this.featureService2.updateStale( - featureName, - true, - userName, - ); + await this.featureService2.updateStale(featureName, true, userName); + const feature = await this.getLegacyFeatureToggle(featureName); res.json(feature).end(); } async staleOff(req: Request, res: Response): Promise { const { featureName } = req.params; const userName = extractUser(req); - const feature = await this.featureService2.updateStale( - featureName, - false, - userName, - ); + await this.featureService2.updateStale(featureName, false, userName); + const feature = await this.getLegacyFeatureToggle(featureName); res.json(feature).end(); }