diff --git a/surfsense_web/atoms/chats/chat-querie.atoms.ts b/surfsense_web/atoms/chats/chat-querie.atoms.ts index cec2802d5..98b3be55d 100644 --- a/surfsense_web/atoms/chats/chat-querie.atoms.ts +++ b/surfsense_web/atoms/chats/chat-querie.atoms.ts @@ -38,7 +38,9 @@ export const activeSearchSpaceChatsAtom = atomWithQuery((get) => { queryKey: cacheKeys.activeSearchSpace.chats(searchSpaceId ?? ""), enabled: !!searchSpaceId && !!authToken, queryFn: async () => { - return chatsApiService.getChatsBySearchSpace({ search_space_id: Number(searchSpaceId) }); + return chatsApiService.getChatsBySearchSpace({ + queryParams: { search_space_id: searchSpaceId! }, + }); }, }; }); diff --git a/surfsense_web/contracts/types/chat.types.ts b/surfsense_web/contracts/types/chat.types.ts index cff4a0ae2..37aed28d0 100644 --- a/surfsense_web/contracts/types/chat.types.ts +++ b/surfsense_web/contracts/types/chat.types.ts @@ -20,11 +20,16 @@ export const chatDetails = chatSummary.extend({ export const getChatDetailsRequest = chatSummary.pick({ id: true }); -export const getChatsBySearchSpaceRequest = chatSummary - .pick({ - search_space_id: true, - }) - .merge(paginationQueryParams); +export const getChatsBySearchSpaceRequest = z.object({ + queryParams: paginationQueryParams + .extend({ + search_space_id: z.number().or(z.string()), + }) + .transform((entries) => + Object.fromEntries(Object.entries(entries).map(([k, v]) => [k, v.toString()])) + ) + .nullish(), +}); export const deleteChatResponse = z.object({ message: z.literal("Chat deleted successfully"), @@ -38,7 +43,10 @@ export const createChatRequest = chatDetails.omit({ state_version: true, }); -export const updateChatRequest = chatDetails.omit({ created_at: true, state_version: true }); +export const updateChatRequest = chatDetails.omit({ + created_at: true, + state_version: true, +}); export type ChatSummary = z.infer; export type ChatDetails = z.infer & { messages: Message[] }; diff --git a/surfsense_web/lib/apis/chats-api.service.ts b/surfsense_web/lib/apis/chats-api.service.ts index 498c99ef1..2c2c35d18 100644 --- a/surfsense_web/lib/apis/chats-api.service.ts +++ b/surfsense_web/lib/apis/chats-api.service.ts @@ -45,10 +45,11 @@ class ChatApiService { throw new ValidationError(`Invalid request: ${errorMessage}`); } - return baseApiService.get( - `/api/v1/chats?search_space_id=${request.search_space_id}`, - z.array(chatSummary) - ); + const queryParams = parsedRequest.data.queryParams + ? new URLSearchParams(parsedRequest.data.queryParams).toString() + : undefined; + + return baseApiService.get(`/api/v1/chats?${queryParams}`, z.array(chatSummary)); }; deleteChat = async (request: DeleteChatRequest) => {