2023-10-25 15:18:52 +02:00
|
|
|
import { Logger } from '../../logger';
|
|
|
|
import {
|
|
|
|
IFeatureStrategiesStore,
|
|
|
|
IUnleashConfig,
|
|
|
|
IUnleashStores,
|
2023-10-31 14:10:31 +01:00
|
|
|
serializeDates,
|
2023-10-25 15:18:52 +02:00
|
|
|
} 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-11-01 09:19:42 +01:00
|
|
|
const { features, total } =
|
|
|
|
await this.featureStrategiesStore.searchFeatures({
|
|
|
|
...params,
|
2023-11-08 10:12:42 +01:00
|
|
|
limit: params.limit,
|
2023-11-01 09:19:42 +01:00
|
|
|
});
|
2023-10-25 15:18:52 +02:00
|
|
|
|
2023-10-31 14:10:31 +01:00
|
|
|
return {
|
2023-11-08 10:12:42 +01:00
|
|
|
features,
|
2023-11-01 09:19:42 +01:00
|
|
|
total,
|
2023-10-31 14:10:31 +01:00
|
|
|
};
|
2023-10-25 15:18:52 +02:00
|
|
|
}
|
|
|
|
}
|