mirror of
https://github.com/Unleash/unleash.git
synced 2025-02-09 00:18:00 +01:00
fix: return if empty array (#9254)
Fixes an issue where segment-updated event would be added to cache even though there were no correlated events. Tests needs to be added in Enterprise.
This commit is contained in:
parent
aa5c70f70e
commit
af516537bd
@ -171,6 +171,7 @@ export class ClientFeatureToggleDelta extends EventEmitter {
|
|||||||
if (!hasDelta) {
|
if (!hasDelta) {
|
||||||
await this.initEnvironmentDelta(environment);
|
await this.initEnvironmentDelta(environment);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requiredRevisionId >= this.currentRevisionId) {
|
if (requiredRevisionId >= this.currentRevisionId) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
@ -272,7 +273,7 @@ export class ClientFeatureToggleDelta extends EventEmitter {
|
|||||||
.map((event) => event.preData.id);
|
.map((event) => event.preData.id);
|
||||||
|
|
||||||
const segments =
|
const segments =
|
||||||
await this.segmentReadModel.getAllForClient(segmentsUpdated);
|
await this.segmentReadModel.getAllForClientIds(segmentsUpdated);
|
||||||
|
|
||||||
const segmentsUpdatedEvents: DeltaEvent[] = segments.map((segment) => ({
|
const segmentsUpdatedEvents: DeltaEvent[] = segments.map((segment) => ({
|
||||||
eventId: latestRevision,
|
eventId: latestRevision,
|
||||||
@ -328,7 +329,7 @@ export class ClientFeatureToggleDelta extends EventEmitter {
|
|||||||
const baseFeatures = await this.getClientFeatures({
|
const baseFeatures = await this.getClientFeatures({
|
||||||
environment,
|
environment,
|
||||||
});
|
});
|
||||||
const baseSegments = await this.segmentReadModel.getAllForClient();
|
const baseSegments = await this.segmentReadModel.getAllForClientIds();
|
||||||
|
|
||||||
this.currentRevisionId =
|
this.currentRevisionId =
|
||||||
await this.configurationRevisionService.getMaxRevisionId();
|
await this.configurationRevisionService.getMaxRevisionId();
|
||||||
|
@ -23,7 +23,7 @@ export class FakeSegmentReadModel implements ISegmentReadModel {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAllForClient(ids?: number[]): Promise<IClientSegment[]> {
|
async getAllForClientIds(ids?: number[]): Promise<IClientSegment[]> {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,5 +9,5 @@ export interface ISegmentReadModel {
|
|||||||
getAllFeatureStrategySegments(): Promise<IFeatureStrategySegment[]>;
|
getAllFeatureStrategySegments(): Promise<IFeatureStrategySegment[]>;
|
||||||
getActive(): Promise<ISegment[]>;
|
getActive(): Promise<ISegment[]>;
|
||||||
getActiveForClient(): Promise<IClientSegment[]>;
|
getActiveForClient(): Promise<IClientSegment[]>;
|
||||||
getAllForClient(ids?: number[]): Promise<IClientSegment[]>;
|
getAllForClientIds(ids?: number[]): Promise<IClientSegment[]>;
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,11 @@ export class SegmentReadModel implements ISegmentReadModel {
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAllForClient(ids?: number[]): Promise<IClientSegment[]> {
|
async getAllForClientIds(ids?: number[]): Promise<IClientSegment[]> {
|
||||||
|
if (!ids || ids.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
const fullSegments = await this.getAll(ids);
|
const fullSegments = await this.getAll(ids);
|
||||||
|
|
||||||
return fullSegments.map((segments) => ({
|
return fullSegments.map((segments) => ({
|
||||||
|
Loading…
Reference in New Issue
Block a user