mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-05-03 16:57:48 +08:00
Refa: Searches /search API to RESTFul (#13770)
### What problem does this PR solve? Searches /search API to RESTFul ### Type of change - [x] Documentation Update - [x] Refactoring Co-authored-by: Jin Hai <haijin.chn@gmail.com> Co-authored-by: Yingfeng <yingfeng.zhang@gmail.com>
This commit is contained in:
@ -4,7 +4,7 @@ import message from '@/components/ui/message';
|
||||
import { useSetModalState } from '@/hooks/common-hooks';
|
||||
import { useHandleSearchChange } from '@/hooks/logic-hooks';
|
||||
import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks';
|
||||
import searchService, { searchServiceNext } from '@/services/search-service';
|
||||
import searchService from '@/services/search-service';
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
||||
import { useDebounce } from 'ahooks';
|
||||
import { useCallback, useState } from 'react';
|
||||
@ -103,14 +103,13 @@ export const useFetchSearchList = () => {
|
||||
},
|
||||
],
|
||||
queryFn: async () => {
|
||||
const { data: response } = await searchServiceNext.getSearchList(
|
||||
const { data: response } = await searchService.getSearchList(
|
||||
{
|
||||
params: {
|
||||
keywords: debouncedSearchString,
|
||||
page_size: pagination.pageSize,
|
||||
page: pagination.current,
|
||||
},
|
||||
data: {},
|
||||
},
|
||||
true,
|
||||
);
|
||||
@ -203,24 +202,21 @@ export const useFetchSearchDetail = (tenantId?: string) => {
|
||||
const [searchParams] = useSearchParams();
|
||||
const shared_id = searchParams.get('shared_id');
|
||||
const searchId = id || shared_id;
|
||||
let param: { search_id: string | null; tenant_id?: string } = {
|
||||
search_id: searchId,
|
||||
};
|
||||
if (shared_id) {
|
||||
param = {
|
||||
search_id: searchId,
|
||||
tenant_id: tenantId,
|
||||
};
|
||||
}
|
||||
const fetchSearchDetailFunc = shared_id
|
||||
? searchService.getSearchDetailShare
|
||||
: searchService.getSearchDetail;
|
||||
|
||||
const { data, isLoading, isError } = useQuery<SearchDetailResponse, Error>({
|
||||
queryKey: ['searchDetail', searchId],
|
||||
enabled: !shared_id || !!tenantId,
|
||||
queryFn: async () => {
|
||||
const { data: response } = await fetchSearchDetailFunc(param);
|
||||
let res;
|
||||
if (shared_id) {
|
||||
res = await searchService.getSearchDetailShare(
|
||||
{ params: { search_id: searchId, tenant_id: tenantId } },
|
||||
true,
|
||||
);
|
||||
} else {
|
||||
res = await searchService.getSearchDetail({ search_id: searchId });
|
||||
}
|
||||
const response = res.data;
|
||||
if (response.code !== 0) {
|
||||
throw new Error(response.message || 'Failed to fetch search detail');
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import api from '@/utils/api';
|
||||
import registerServer, { registerNextServer } from '@/utils/register-server';
|
||||
import request from '@/utils/request';
|
||||
import { registerNextServer } from '@/utils/register-server';
|
||||
|
||||
const {
|
||||
createSearch,
|
||||
@ -13,6 +12,7 @@ const {
|
||||
getRelatedQuestionsShare,
|
||||
getSearchDetailShare,
|
||||
} = api;
|
||||
|
||||
const methods = {
|
||||
createSearch: {
|
||||
url: createSearch,
|
||||
@ -20,16 +20,16 @@ const methods = {
|
||||
},
|
||||
getSearchList: {
|
||||
url: getSearchList,
|
||||
method: 'post',
|
||||
method: 'get',
|
||||
},
|
||||
deleteSearch: { url: deleteSearch, method: 'post' },
|
||||
deleteSearch: { url: deleteSearch, method: 'delete' },
|
||||
getSearchDetail: {
|
||||
url: getSearchDetail,
|
||||
method: 'get',
|
||||
},
|
||||
updateSearchSetting: {
|
||||
url: updateSearchSetting,
|
||||
method: 'post',
|
||||
method: 'put',
|
||||
},
|
||||
askShare: {
|
||||
url: askShare,
|
||||
@ -43,14 +43,13 @@ const methods = {
|
||||
url: getRelatedQuestionsShare,
|
||||
method: 'post',
|
||||
},
|
||||
|
||||
getSearchDetailShare: {
|
||||
url: getSearchDetailShare,
|
||||
method: 'get',
|
||||
},
|
||||
} as const;
|
||||
const searchService = registerServer<keyof typeof methods>(methods, request);
|
||||
export const searchServiceNext =
|
||||
registerNextServer<keyof typeof methods>(methods);
|
||||
|
||||
const searchService = registerNextServer<keyof typeof methods>(methods);
|
||||
export const searchServiceNext = searchService;
|
||||
|
||||
export default searchService;
|
||||
|
||||
@ -237,12 +237,15 @@ export default {
|
||||
testMcpServer: `${api_host}/mcp_server/test_mcp`,
|
||||
|
||||
// next-search
|
||||
createSearch: `${api_host}/search/create`,
|
||||
getSearchList: `${api_host}/search/list`,
|
||||
deleteSearch: `${api_host}/search/rm`,
|
||||
getSearchDetail: `${api_host}/search/detail`,
|
||||
createSearch: `${ExternalApi}${api_host}/searches`,
|
||||
getSearchList: `${ExternalApi}${api_host}/searches`,
|
||||
deleteSearch: (params: { search_id: string }) =>
|
||||
`${ExternalApi}${api_host}/searches/${params.search_id}`,
|
||||
getSearchDetail: (params: { search_id: string }) =>
|
||||
`${ExternalApi}${api_host}/searches/${params.search_id}`,
|
||||
getSearchDetailShare: `${ExternalApi}${api_host}/searchbots/detail`,
|
||||
updateSearchSetting: `${api_host}/search/update`,
|
||||
updateSearchSetting: (params: { search_id: string }) =>
|
||||
`${ExternalApi}${api_host}/searches/${params.search_id}`,
|
||||
askShare: `${ExternalApi}${api_host}/searchbots/ask`,
|
||||
mindmapShare: `${ExternalApi}${api_host}/searchbots/mindmap`,
|
||||
getRelatedQuestionsShare: `${ExternalApi}${api_host}/searchbots/related_questions`,
|
||||
|
||||
@ -82,7 +82,7 @@ const API_WHITELIST = [
|
||||
'/v1/dialog/set',
|
||||
'/v1/canvas/set',
|
||||
'/v1/canvas/setting',
|
||||
'/v1/search/update',
|
||||
'/api/v1/searches/',
|
||||
'/api/v1/memories',
|
||||
'/v1/kb/create',
|
||||
'/v1/kb/update',
|
||||
|
||||
Reference in New Issue
Block a user