2023-10-25 15:18:52 +02:00
|
|
|
import { Logger } from '../../logger';
|
|
|
|
import {
|
|
|
|
IFeatureStrategiesStore,
|
|
|
|
IUnleashConfig,
|
|
|
|
IUnleashStores,
|
|
|
|
} from '../../types';
|
2023-10-26 15:29:30 +02:00
|
|
|
import { IFeatureSearchParams } from '../feature-toggle/types/feature-toggle-strategies-store-type';
|
2023-10-25 15:18:52 +02:00
|
|
|
|
|
|
|
export class FeatureSearchService {
|
|
|
|
private featureStrategiesStore: IFeatureStrategiesStore;
|
|
|
|
private logger: Logger;
|
|
|
|
constructor(
|
|
|
|
{
|
|
|
|
featureStrategiesStore,
|
|
|
|
}: Pick<IUnleashStores, 'featureStrategiesStore'>,
|
|
|
|
{ getLogger }: Pick<IUnleashConfig, 'getLogger'>,
|
|
|
|
) {
|
|
|
|
this.featureStrategiesStore = featureStrategiesStore;
|
|
|
|
this.logger = getLogger('services/feature-search-service.ts');
|
|
|
|
}
|
|
|
|
|
2023-10-26 15:29:30 +02:00
|
|
|
async search(params: IFeatureSearchParams) {
|
2023-10-27 08:54:03 +02:00
|
|
|
const features = await this.featureStrategiesStore.searchFeatures(
|
|
|
|
params,
|
|
|
|
);
|
2023-10-25 15:18:52 +02:00
|
|
|
|
|
|
|
return features;
|
|
|
|
}
|
|
|
|
}
|