15781: Uses 'contains' or 'ilike' on prop searches depending on API revision.
[arvados-workbench2.git] / src / store / search-results-panel / search-results-middleware-service.ts
index 84e68ab0d07d7a4ed2efacd39e287772f375a279..f054a4e4e83637949ad60665ca17647fbbc7f7c4 100644 (file)
@@ -42,8 +42,6 @@ export class SearchResultsMiddlewareService extends DataExplorerMiddlewareServic
             return;
         }
 
-        const params = getParams(dataExplorer, searchValue);
-
         const initial = {
             itemsAvailable: 0,
             items: [] as GroupContentsResource[],
@@ -56,24 +54,26 @@ export class SearchResultsMiddlewareService extends DataExplorerMiddlewareServic
             api.dispatch(setItems(initial));
         }
 
-        sessions.map(session =>
+        sessions.map(session => {
+            const params = getParams(dataExplorer, searchValue, session.apiRevision);
             this.services.groupsService.contents('', params, session)
                 .then((response) => {
                     api.dispatch(updateResources(response.items));
                     api.dispatch(appendItems(response));
                 }).catch(() => {
                     api.dispatch(couldNotFetchSearchResults(session.clusterId));
-                })
+                });
+            }
         );
     }
 }
 
 const typeFilters = (columns: DataColumns<string>) => serializeResourceTypeFilters(getDataExplorerColumnFilters(columns, ProjectPanelColumnNames.TYPE));
 
-export const getParams = (dataExplorer: DataExplorer, query: string) => ({
+const getParams = (dataExplorer: DataExplorer, query: string, apiRevision: number) => ({
     ...dataExplorerToListParams(dataExplorer),
     filters: joinFilters(
-        queryToFilters(query),
+        queryToFilters(query, apiRevision),
         typeFilters(dataExplorer.columns)
     ),
     order: getOrder(dataExplorer),