UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.

79 lines (78 loc) 4.74 kB
import { Request, Response } from 'express'; import { Operation } from 'fast-json-patch'; import Controller from '../../controller'; import { IUnleashConfig } from '../../../types/option'; import { IUnleashServices } from '../../../types'; import { IAuthRequest } from '../../unleash-types'; import { CreateFeatureSchema } from '../../../openapi/spec/create-feature-schema'; import { FeatureSchema } from '../../../openapi/spec/feature-schema'; import { FeatureStrategySchema } from '../../../openapi/spec/feature-strategy-schema'; import { ParametersSchema } from '../../../openapi/spec/parameters-schema'; import { FeaturesSchema } from '../../../openapi/spec/features-schema'; import { UpdateFeatureSchema } from '../../../openapi/spec/update-feature-schema'; import { UpdateFeatureStrategySchema } from '../../../openapi/spec/update-feature-strategy-schema'; import { CreateFeatureStrategySchema } from '../../../openapi/spec/create-feature-strategy-schema'; import { FeatureEnvironmentSchema } from '../../../openapi/spec/feature-environment-schema'; import { SetStrategySortOrderSchema } from '../../../openapi/spec/set-strategy-sort-order-schema'; interface FeatureStrategyParams { projectId: string; featureName: string; environment: string; sortOrder?: number; } interface FeatureParams extends ProjectParam { featureName: string; } interface ProjectParam { projectId: string; } interface StrategyIdParams extends FeatureStrategyParams { strategyId: string; } export interface IFeatureProjectUserParams extends ProjectParam { archived?: boolean; userId?: number; } declare type ProjectFeaturesServices = Pick<IUnleashServices, 'featureToggleServiceV2' | 'projectHealthService' | 'openApiService' | 'segmentService'>; export default class ProjectFeaturesController extends Controller { private featureService; private openApiService; private segmentService; private readonly logger; constructor(config: IUnleashConfig, { featureToggleServiceV2, openApiService, segmentService, }: ProjectFeaturesServices); getFeatures(req: IAuthRequest<ProjectParam, any, any, any>, res: Response<FeaturesSchema>): Promise<void>; cloneFeature(req: IAuthRequest<FeatureParams, any, { name: string; replaceGroupId?: boolean; }>, res: Response<FeatureSchema>): Promise<void>; createFeature(req: IAuthRequest<FeatureParams, FeatureSchema, CreateFeatureSchema>, res: Response<FeatureSchema>): Promise<void>; getFeature(req: IAuthRequest<FeatureParams, any, any, any>, res: Response): Promise<void>; updateFeature(req: IAuthRequest<{ projectId: string; featureName: string; }, any, UpdateFeatureSchema>, res: Response<FeatureSchema>): Promise<void>; patchFeature(req: IAuthRequest<{ projectId: string; featureName: string; }, any, Operation[], any>, res: Response<FeatureSchema>): Promise<void>; archiveFeature(req: IAuthRequest<{ projectId: string; featureName: string; }, any, any, any>, res: Response<void>): Promise<void>; getFeatureEnvironment(req: Request<FeatureStrategyParams, any, any, any>, res: Response<FeatureEnvironmentSchema>): Promise<void>; toggleFeatureEnvironmentOn(req: IAuthRequest<FeatureStrategyParams, any, any, any>, res: Response<void>): Promise<void>; toggleFeatureEnvironmentOff(req: IAuthRequest<FeatureStrategyParams, any, any, any>, res: Response<void>): Promise<void>; addFeatureStrategy(req: IAuthRequest<FeatureStrategyParams, any, CreateFeatureStrategySchema>, res: Response<FeatureStrategySchema>): Promise<void>; getFeatureStrategies(req: Request<FeatureStrategyParams, any, any, any>, res: Response<FeatureStrategySchema[]>): Promise<void>; setStrategiesSortOrder(req: Request<FeatureStrategyParams, any, SetStrategySortOrderSchema, any>, res: Response): Promise<void>; updateFeatureStrategy(req: IAuthRequest<StrategyIdParams, any, UpdateFeatureStrategySchema>, res: Response<FeatureStrategySchema>): Promise<void>; patchFeatureStrategy(req: IAuthRequest<StrategyIdParams, any, Operation[], any>, res: Response<FeatureStrategySchema>): Promise<void>; getFeatureStrategy(req: IAuthRequest<StrategyIdParams, any, any, any>, res: Response<FeatureStrategySchema>): Promise<void>; deleteFeatureStrategy(req: IAuthRequest<StrategyIdParams, any, any, any>, res: Response<void>): Promise<void>; updateStrategyParameter(req: IAuthRequest<StrategyIdParams, any, { name: string; value: string | number; }, any>, res: Response<FeatureStrategySchema>): Promise<void>; getStrategyParameters(req: Request<StrategyIdParams, any, any, any>, res: Response<ParametersSchema>): Promise<void>; } export {};