mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +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