2023-10-25 15:18:52 +02:00
|
|
|
import { Logger } from '../../logger';
|
|
|
|
import {
|
|
|
|
IFeatureStrategiesStore,
|
|
|
|
IUnleashConfig,
|
|
|
|
IUnleashStores,
|
|
|
|
} from '../../types';
|
2023-10-25 16:12:21 +02:00
|
|
|
import { FeatureSearchQueryParameters } from '../../openapi/spec/feature-search-query-parameters';
|
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-25 16:12:21 +02:00
|
|
|
async search(params: FeatureSearchQueryParameters) {
|
2023-10-26 12:50:02 +02:00
|
|
|
const features = await this.featureStrategiesStore.searchFeatures({
|
2023-10-25 16:12:21 +02:00
|
|
|
projectId: params.projectId,
|
2023-10-26 12:50:02 +02:00
|
|
|
queryString: params.query,
|
2023-10-25 15:18:52 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
return features;
|
|
|
|
}
|
|
|
|
}
|