import { Inject, Service } from 'typedi'; import { FeaturesSettingsDriver } from './FeaturesSettingsDriver'; import { IFeatureAllItem } from '@/interfaces'; @Service() export class FeaturesManager { @Inject() private drive: FeaturesSettingsDriver; /** * Turns-on the given feature name. * @param {number} tenantId * @param {string} feature * @returns {Promise} */ public turnOn(tenantId: number, feature: string) { return this.drive.turnOn(tenantId, feature); } /** * Turns-off the given feature name. * @param {number} tenantId * @param {string} feature * @returns {Promise} */ public turnOff(tenantId: number, feature: string) { return this.drive.turnOff(tenantId, feature); } /** * Detarmines the given feature name is accessible. * @param {number} tenantId * @param {string} feature * @returns {Promise} */ public async accessible(tenantId: number, feature: string) { return this.drive.accessible(tenantId, feature); } /** * Retrieves the all features and their accessible value and default value. * @param {number} tenantId * @returns {Promise} */ public async all(tenantId: number): Promise { return this.drive.all(tenantId); } }