tgd-backend/src/featureflag/featureflag.service.ts

33 lines
973 B
TypeScript

import {Injectable, Logger} from '@nestjs/common';
import {SharedService} from "../shared/shared.service";
export interface IFeatureFlagStatus {
name: string;
state: boolean;
}
@Injectable()
export class FeatureflagService {
private logger = new Logger(FeatureflagService.name);
constructor(private sharedService: SharedService ) {
}
async getFeatureFlag(id: string): Promise<IFeatureFlagStatus> {
this.logger.verbose(`Getting feature flag status for ${id}`);
const state = await this.sharedService.getConfig(`featureflag/${id}`);
return {
name: id,
state: state.value !== 'false',
}
}
async setFeatureFlag(id: string, status: boolean) : Promise<IFeatureFlagStatus> {
this.logger.verbose(`Setting feature flag status for ${id} to ${status} `);
const result = await this.sharedService.setConfig(`featureflag/${id}`, status.toString());
return {
name: id,
state: result.value !== 'false',
}
}
}