From 536b9a39aa90168d06c1980faab45a63f48b9f02 Mon Sep 17 00:00:00 2001 From: Mike Dial Date: Tue, 25 Jul 2023 13:49:39 -0400 Subject: [PATCH] Initial setup for filtering by programType --- src/services/ui/src/api/useSearch.ts | 69 +++++++++++-------- src/services/ui/src/pages/dashboard/index.tsx | 2 + 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/src/services/ui/src/api/useSearch.ts b/src/services/ui/src/api/useSearch.ts index 8dca1c21a..2a4d07ac0 100644 --- a/src/services/ui/src/api/useSearch.ts +++ b/src/services/ui/src/api/useSearch.ts @@ -11,36 +11,45 @@ export type SearchData = { export const getSearchData = async ( selectedState: string, - searchString: string + searchString: string, + programType: string ): Promise<{ hits: SearchData[] }> => { - let query = {}; - if (searchString) { - query = { - from: 0, - size: 100, - query: { - bool: { - should: [ - { - match: { - _id: { - query: searchString, - boost: 5, - }, - }, - }, - { - match: { - "seatool.STATE_PLAN.ID_NUMBER": { - query: searchString, - fuzziness: "AUTO", - }, + const query: any = { + from: 0, + size: 100, + query: { + bool: { + must: [ + { + match: { + programType: { + query: programType, }, }, - ], + }, + ], + }, + }, + }; + if (searchString) { + query.query.bool.should = [ + { + match: { + _id: { + query: searchString, + boost: 5, + }, + }, + }, + { + match: { + "seatool.STATE_PLAN.ID_NUMBER": { + query: searchString, + fuzziness: "AUTO", + }, }, }, - }; + ]; } const searchData = await API.post("seatool", `/search/${selectedState}`, { body: query, @@ -53,12 +62,16 @@ export const useSearch = ( options?: UseMutationOptions< { hits: SearchData[] }, ReactQueryApiError, - { selectedState: string; searchString: string } + { selectedState: string; searchString: string; programType: string } > ) => { return useMutation< { hits: SearchData[] }, ReactQueryApiError, - { selectedState: string; searchString: string } - >((props) => getSearchData(props.selectedState, props.searchString), options); + { selectedState: string; searchString: string; programType: string } + >( + (props) => + getSearchData(props.selectedState, props.searchString, props.programType), + options + ); }; diff --git a/src/services/ui/src/pages/dashboard/index.tsx b/src/services/ui/src/pages/dashboard/index.tsx index c1a198dbd..582ab9c35 100644 --- a/src/services/ui/src/pages/dashboard/index.tsx +++ b/src/services/ui/src/pages/dashboard/index.tsx @@ -93,6 +93,8 @@ export const Dashboard = () => { const data = await mutateAsync({ selectedState, searchString: searchText, + // programType: "WAIVER", + programType: "CHIP OR MEDICAID", // This should be set based on the 'tab' your in }); setSearchData(data.hits);