Skip to content

Commit 75778dd

Browse files
committed
fix after rebase
1 parent 90054b0 commit 75778dd

9 files changed

+39
-20
lines changed

src/lib/features/feature-toggle/archive-feature-toggle-controller.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,23 @@ export default class ArchiveController extends Controller {
150150
true,
151151
extractUserIdFromUser(user),
152152
);
153+
153154
this.openApiService.respondWithValidation(
154155
200,
155156
res,
156157
archivedFeaturesSchema.$id,
157-
{ version: 2, features: serializeDates(features) },
158+
{
159+
version: 2,
160+
features: serializeDates(
161+
features.map((feature) => {
162+
return {
163+
...feature,
164+
stale: feature.stale || false,
165+
archivedAt: feature.archivedAt!,
166+
};
167+
}),
168+
),
169+
},
158170
);
159171
}
160172

src/lib/features/feature-toggle/converters/feature-toggle-row-converter.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export class FeatureToggleRowConverter {
147147
feature.name = row.name;
148148
feature.description = row.description;
149149
feature.project = row.project;
150-
feature.stale = row.stale;
150+
feature.stale = row.stale || false;
151151
feature.type = row.type;
152152
feature.lastSeenAt = row.last_seen_at;
153153
feature.variants = row.variants || [];
@@ -176,13 +176,13 @@ export class FeatureToggleRowConverter {
176176
const result = rows.reduce((acc, r) => {
177177
let feature: PartialDeep<IFeatureToggleListItem> = acc[r.name] ?? {
178178
strategies: [],
179+
stale: r.stale || false,
179180
};
180181

181182
feature = this.createBaseFeature(r, feature, featureQuery);
182183

183184
feature.createdAt = r.created_at;
184185
feature.favorite = r.favorite;
185-
186186
this.addLastSeenByEnvironment(feature, r);
187187

188188
acc[r.name] = feature;

src/lib/features/feature-toggle/fakes/fake-feature-strategies-store.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ export default class FakeFeatureStrategiesStore
205205
...t,
206206
enabled: true,
207207
strategies: [],
208-
description: t.description,
208+
description: t.description || undefined,
209209
type: t.type || 'Release',
210210
stale: t.stale || false,
211211
variants: [],

src/lib/features/feature-toggle/feature-toggle-controller.ts

+11-6
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ export default class ProjectFeaturesController extends Controller {
670670
201,
671671
res,
672672
featureSchema.$id,
673-
serializeDates(created),
673+
serializeDates({ ...created, stale: created.stale || false }),
674674
);
675675
}
676676

@@ -693,7 +693,7 @@ export default class ProjectFeaturesController extends Controller {
693693
201,
694694
res,
695695
featureSchema.$id,
696-
serializeDates(created),
696+
serializeDates({ ...created, stale: created.stale || false }),
697697
);
698698
}
699699

@@ -740,8 +740,13 @@ export default class ProjectFeaturesController extends Controller {
740740
environmentVariants: variantEnvironments === 'true',
741741
userId: user.id,
742742
});
743-
744-
res.status(200).json(serializeDates(this.maybeAnonymise(feature)));
743+
const maybeAnonymized = this.maybeAnonymise(feature);
744+
res.status(200).json(
745+
serializeDates({
746+
...maybeAnonymized,
747+
stale: maybeAnonymized.stale || false,
748+
}),
749+
);
745750
}
746751

747752
async updateFeature(
@@ -771,7 +776,7 @@ export default class ProjectFeaturesController extends Controller {
771776
200,
772777
res,
773778
featureSchema.$id,
774-
serializeDates(created),
779+
serializeDates({ ...created, stale: created.stale || false }),
775780
);
776781
}
777782

@@ -795,7 +800,7 @@ export default class ProjectFeaturesController extends Controller {
795800
200,
796801
res,
797802
featureSchema.$id,
798-
serializeDates(updated),
803+
serializeDates({ ...updated, stale: updated.stale || false }),
799804
);
800805
}
801806

src/lib/features/feature-toggle/feature-toggle-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1189,7 +1189,7 @@ class FeatureToggleService {
11891189
type,
11901190
enabled,
11911191
project,
1192-
stale,
1192+
stale: stale || false,
11931193
strategies,
11941194
variants,
11951195
description,

src/lib/features/feature-toggle/feature-toggle-store.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ export default class FeatureToggleStore implements IFeatureToggleStore {
309309

310310
const result = await query;
311311
return result.map((row) => ({
312-
type: row.type,
312+
type: row.type!,
313313
count: Number(row.count),
314314
}));
315315
}
@@ -449,11 +449,11 @@ export default class FeatureToggleStore implements IFeatureToggleStore {
449449
description: row.description,
450450
type: row.type,
451451
project: row.project,
452-
stale: row.stale,
452+
stale: row.stale || false,
453453
createdAt: row.created_at,
454454
lastSeenAt: row.last_seen_at,
455-
impressionData: row.impression_data,
456-
archivedAt: row.archived_at,
455+
impressionData: row.impression_data || false,
456+
archivedAt: row.archived_at || undefined,
457457
archived: row.archived_at != null,
458458
};
459459
}

src/lib/features/frontend-api/global-frontend-api-cache.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,10 @@ export class GlobalFrontendApiCache extends EventEmitter {
154154
Object.fromEntries(
155155
Object.entries(value).map(([innerKey, innerValue]) => [
156156
innerKey,
157-
mapFeatureForClient(innerValue),
157+
mapFeatureForClient({
158+
...innerValue,
159+
stale: innerValue.stale || false,
160+
}),
158161
]),
159162
),
160163
]);

src/lib/types/model.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ export interface FeatureToggleDTO {
6363
name: string;
6464
description?: string | null;
6565
type?: string;
66-
stale?: boolean | null;
66+
stale?: boolean;
6767
archived?: boolean;
68-
archivedAt?: Date | null;
68+
archivedAt?: Date;
6969
createdAt?: Date;
7070
impressionData?: boolean;
7171
variants?: IVariant[];
@@ -91,7 +91,7 @@ export interface IFeatureToggleListItem extends FeatureToggle {
9191

9292
export interface IFeatureToggleClient {
9393
name: string;
94-
description: string | undefined;
94+
description: string | undefined | null;
9595
type: string;
9696
project: string;
9797
stale: boolean;

src/test/e2e/helpers/test-helper.ts

-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ function httpApis(
145145
const url = `${base}/api/admin/projects/${project}/features/${featureName}/environments/${envName}/strategies`;
146146
return request.post(url).send(postData).expect(expectStatusCode);
147147
},
148-
// @ts-expect-error we don't care about description here
149148
createFeature: (
150149
feature: string | FeatureToggleDTO,
151150
project: string = DEFAULT_PROJECT,

0 commit comments

Comments
 (0)