1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-19 00:15:43 +01:00

fix: add overview

This commit is contained in:
Fredrik Oseberg 2021-08-09 14:55:54 +02:00
parent 3e73a8cfd8
commit 577f7a2824
3 changed files with 146 additions and 6 deletions

View File

@ -6,7 +6,6 @@ import {
FeatureToggle,
IFeatureOverview,
IProjectHealthReport,
IProjectOverview,
} from '../types/model';
import {
MILLISECONDS_IN_DAY,
@ -55,12 +54,22 @@ export default class ProjectHealthService {
projectId: string,
): Promise<IProjectHealthReport> {
//const overview = await this.getProjectOverview(projectId, false);
const features = await this.featureToggleStore.getFeatures();
const features = await this.featureToggleStore.getFeatures({
projectId,
});
const overview = {
name: 'test',
description: '',
features: features,
members: 1,
};
return {
// ...overview,
potentiallyStaleCount: await this.potentiallyStaleCount(features),
activeCount: this.activeCount(features),
staleCount: this.staleCount(features),
...overview,
potentiallyStaleCount: await this.potentiallyStaleCount(
overview.features,
),
activeCount: this.activeCount(overview.features),
staleCount: this.staleCount(overview.features),
};
}

View File

@ -1,3 +1,134 @@
import { IFeatureStrategy } from '../db/feature-strategy-store';
export interface IConstraint {
contextName: string;
operator: string;
values: string[];
}
export interface IStrategyConfig {
id?: string;
name: string;
constraints: IConstraint[];
parameters: Object;
}
export interface FeatureToggleDTO {
name: string;
description?: string;
type?: string;
stale?: boolean;
archived?: boolean;
variants?: IVariant[];
createdAt?: Date;
}
export interface FeatureToggle extends FeatureToggleDTO {
project: string;
lastSeenAt?: Date;
createdAt?: Date;
}
export interface IFeatureToggleClient {
name: string;
description: string;
type: string;
project: string;
stale: boolean;
variants: IVariant[];
enabled: boolean;
strategies: IStrategyConfig[];
}
export interface IFeatureEnvironmentInfo {
name: string;
environment: string;
enabled: boolean;
strategies: IFeatureStrategy[];
}
export interface FeatureToggleWithEnvironment extends FeatureToggle {
environments: IEnvironmentDetail[];
}
export interface IEnvironmentDetail extends IEnvironmentOverview {
strategies: IStrategyConfig[];
}
export interface IFeatureEnvironment {
environment: string;
featureName: string;
enabled: boolean;
}
export interface IVariant {
name: string;
weight: number;
weightType: string;
payload: {
type: string;
value: string;
};
stickiness: string;
overrides: {
contextName: string;
values: string[];
}[];
}
export interface IEnvironment {
name: string;
displayName: string;
}
export interface IEnvironmentOverview {
name: string;
displayName: string;
enabled: boolean;
}
export interface IFeatureOverview {
name: string;
type: string;
stale: boolean;
createdAt: Date;
lastSeenAt: Date;
environments: IEnvironmentOverview[];
}
export interface IProjectOverview {
name: string;
description: string;
features: IFeatureOverview[];
members: number;
version: number;
health: number;
}
export interface IProjectHealthReport extends IProjectOverview {
staleCount: number;
potentiallyStaleCount: number;
activeCount: number;
}
export interface IProjectParam {
projectId: string;
}
export interface IArchivedQuery {
archived: boolean;
}
export interface ITagQuery {
tagType: string;
tagValue: string;
}
export interface IFeatureToggleQuery {
tag?: string[][];
project?: string[];
namePrefix?: string;
environment?: string;
}
export interface ITag {
value: string;
type: string;
}