unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
31 lines • 1.85 kB
TypeScript
import type { ChangeRequestStrategy } from '../change-request-segment-usage-service/change-request-segment-usage-read-model.js';
import type { UpsertSegmentSchema } from '../../openapi/index.js';
import type { IAuditUser, IFeatureStrategy, ISegment, IUser } from '../../types/index.js';
export type StrategiesUsingSegment = {
strategies: IFeatureStrategy[];
changeRequestStrategies: ChangeRequestStrategy[];
};
export interface ISegmentService {
updateStrategySegments: (strategyId: string, segmentIds: number[]) => Promise<void>;
addToStrategy(id: number, strategyId: string): Promise<void>;
getByStrategy(strategyId: string): Promise<ISegment[]>;
get(id: number): Promise<ISegment>;
/**
* Gets all strategies for a segment
* This is NOT considering the private projects
* For most use cases, use `getVisibleStrategies`
*/
getAllStrategies(id: number): Promise<StrategiesUsingSegment>;
getVisibleStrategies(id: number, userId: number): Promise<StrategiesUsingSegment>;
validateName(name: string): Promise<void>;
getAll(): Promise<ISegment[]>;
create(data: UpsertSegmentSchema, auditUser: IAuditUser): Promise<ISegment>;
update(id: number, data: UpsertSegmentSchema, user: Partial<Pick<IUser, 'username' | 'email' | 'id'>>, auditUser: IAuditUser): Promise<void>;
unprotectedUpdate(id: number, data: UpsertSegmentSchema, auditUser: IAuditUser): Promise<void>;
delete(id: number, user: IUser, auditUser: IAuditUser): Promise<void>;
unprotectedDelete(id: number, auditUser: IAuditUser): Promise<void>;
removeFromStrategy(id: number, strategyId: string): Promise<void>;
cloneStrategySegments(sourceStrategyId: string, targetStrategyId: string): Promise<void>;
isInUse(id: number): Promise<boolean>;
}
//# sourceMappingURL=segment-service-interface.d.ts.map