return sessions.filter(s => s.loggedIn && (!clusterId || s.clusterId === clusterId));
};
-export const getFilters = (filterName: string, searchValue: string, sq: ParseSearchQuery): string => {
- const filter = new FilterBuilder();
- const isSearchQueryUuid = isResourceUuid(sq.values[0]);
- const resourceKind = getSearchQueryFirstProp(sq, 'type') as ResourceKind;
-
- let prefix = '';
- switch (resourceKind) {
- case ResourceKind.COLLECTION:
- prefix = GroupContentsResourcePrefix.COLLECTION;
- break;
- case ResourceKind.PROCESS:
- prefix = GroupContentsResourcePrefix.PROCESS;
- break;
- default:
- prefix = GroupContentsResourcePrefix.PROJECT;
- break;
- }
-
- const isTrashed = getSearchQueryPropValue(sq, 'is', 'trashed');
-
- if (!sq.hasKeywords && !isSearchQueryUuid) {
- filter
- .addILike(filterName, searchValue, GroupContentsResourcePrefix.COLLECTION)
- .addILike(filterName, searchValue, GroupContentsResourcePrefix.PROJECT)
- .addILike(filterName, searchValue, GroupContentsResourcePrefix.PROCESS)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.COLLECTION)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.PROJECT);
-
- if (isTrashed) {
- filter.addILike(filterName, searchValue, GroupContentsResourcePrefix.PROCESS);
- }
- } else if (!sq.hasKeywords && isSearchQueryUuid) {
- filter
- .addILike('uuid', searchValue, GroupContentsResourcePrefix.COLLECTION)
- .addILike('uuid', searchValue, GroupContentsResourcePrefix.PROJECT)
- .addILike('uuid', searchValue, GroupContentsResourcePrefix.PROCESS)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.COLLECTION)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.PROJECT);
- }
- else {
- if (prefix) {
- sq.values.forEach(v =>
- filter.addILike(filterName, v, prefix)
- );
- } else {
- sq.values.forEach(v => {
- filter
- .addILike(filterName, v, GroupContentsResourcePrefix.COLLECTION)
- .addILike(filterName, v, GroupContentsResourcePrefix.PROJECT)
- .addILike(filterName, v, GroupContentsResourcePrefix.PROCESS)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.COLLECTION)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.PROJECT);
-
- if (isTrashed) {
- filter.addILike(filterName, v, GroupContentsResourcePrefix.PROCESS);
- }
- });
- }
- if (prefix && !isTrashed) {
- sq.values.forEach(v =>
- filter.addILike(filterName, v, prefix)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.COLLECTION)
- .addEqual('is_trashed', false, GroupContentsResourcePrefix.PROJECT)
- );
- }
-
- if (isTrashed) {
- sq.values.forEach(v => {
- filter.addEqual('is_trashed', true, GroupContentsResourcePrefix.COLLECTION)
- .addEqual('is_trashed', true, GroupContentsResourcePrefix.PROJECT)
- .addILike(filterName, v, GroupContentsResourcePrefix.COLLECTION)
- .addILike(filterName, searchValue, GroupContentsResourcePrefix.PROCESS);
- });
- }
-
- const projectUuid = getSearchQueryFirstProp(sq, 'project');
- if (projectUuid) {
- filter.addEqual('uuid', projectUuid, prefix);
- }
-
- const dateFrom = getSearchQueryFirstProp(sq, 'from');
- if (dateFrom) {
- filter.addGte('modified_at', buildDateFilter(dateFrom));
- }
-
- const dateTo = getSearchQueryFirstProp(sq, 'to');
- if (dateTo) {
- filter.addLte('modified_at', buildDateFilter(dateTo));
- }
-
- const props = getSearchQueryProperties(sq);
- props.forEach(p => {
- if (p.value) {
- filter.addILike(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.PROJECT)
- .addILike(`properties.${p.key}`, p.value, GroupContentsResourcePrefix.COLLECTION);
- }
- filter.addExists(p.key);
- });
- }
-
- return filter
- .addIsA("uuid", buildUuidFilter(resourceKind))
- .getFilters();
-};
-
export const searchQueryToFilters = (sq: ParseSearchQuery): string => {
const filter = new FilterBuilder();
const resourceKind = getSearchQueryFirstProp(sq, 'type') as ResourceKind;