improve ge chat by search cpace request type

This commit is contained in:
thierryverse 2025-11-18 21:11:29 +02:00
parent 1a954bc184
commit 68e4d9b23e
3 changed files with 22 additions and 11 deletions

View file

@ -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! },
});
},
};
});

View file

@ -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<typeof chatSummary>;
export type ChatDetails = z.infer<typeof chatDetails> & { messages: Message[] };

View file

@ -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) => {