unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
56 lines • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeatureSearchService = void 0;
const search_utils_1 = require("./search-utils");
class FeatureSearchService {
constructor({ featureSearchStore }, { getLogger }) {
this.convertToQueryParams = (params) => {
const queryParams = [];
if (params.state) {
const parsedState = (0, search_utils_1.parseSearchOperatorValue)('stale', params.state);
if (parsedState) {
queryParams.push(parsedState);
}
}
if (params.createdAt) {
const parsed = (0, search_utils_1.parseSearchOperatorValue)('features.created_at', params.createdAt);
if (parsed)
queryParams.push(parsed);
}
if (params.createdBy) {
const parsed = (0, search_utils_1.parseSearchOperatorValue)('users.id', params.createdBy);
if (parsed)
queryParams.push(parsed);
}
if (params.type) {
const parsed = (0, search_utils_1.parseSearchOperatorValue)('features.type', params.type);
if (parsed)
queryParams.push(parsed);
}
['tag', 'segment', 'project'].forEach((field) => {
if (params[field]) {
const parsed = (0, search_utils_1.parseSearchOperatorValue)(field, params[field]);
if (parsed)
queryParams.push(parsed);
}
});
return queryParams;
};
this.featureSearchStore = featureSearchStore;
this.logger = getLogger('services/feature-search-service.ts');
}
async search(params) {
const queryParams = this.convertToQueryParams(params);
const { features, total } = await this.featureSearchStore.searchFeatures({
...params,
limit: params.limit,
sortBy: params.sortBy || 'createdAt',
}, queryParams);
return {
features,
total,
};
}
}
exports.FeatureSearchService = FeatureSearchService;
//# sourceMappingURL=feature-search-service.js.map