Feat/dataset notion import (#392)
Co-authored-by: StyleZhang <jasonapring2015@outlook.com> Co-authored-by: JzoNg <jzongcode@gmail.com>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import type { Fetcher } from 'swr'
|
||||
import { del, get, post, put, patch } from './base'
|
||||
import qs from 'qs'
|
||||
import type { RelatedAppResponse, DataSet, HitTestingResponse, HitTestingRecordsResponse, DataSetListResponse, CreateDocumentReq, InitialDocumentDetail, DocumentDetailResponse, DocumentListResponse, IndexingEstimateResponse, FileIndexingEstimateResponse, IndexingStatusResponse, ProcessRuleResponse, SegmentsQuery, SegmentsResponse, createDocumentResponse } from '@/models/datasets'
|
||||
import type { CommonResponse } from '@/models/common'
|
||||
import { del, get, patch, post, put } from './base'
|
||||
import type { CreateDocumentReq, DataSet, DataSetListResponse, DocumentDetailResponse, DocumentListResponse, FileIndexingEstimateResponse, HitTestingRecordsResponse, HitTestingResponse, IndexingEstimateResponse, IndexingStatusBatchResponse, IndexingStatusResponse, ProcessRuleResponse, RelatedAppResponse, SegmentsQuery, SegmentsResponse, createDocumentResponse } from '@/models/datasets'
|
||||
import type { CommonResponse, DataSourceNotionWorkspace } from '@/models/common'
|
||||
|
||||
// apis for documents in a dataset
|
||||
|
||||
@@ -11,6 +11,11 @@ type CommonDocReq = {
|
||||
documentId: string
|
||||
}
|
||||
|
||||
type BatchReq = {
|
||||
datasetId: string
|
||||
batchId: string
|
||||
}
|
||||
|
||||
export type SortType = 'created_at' | 'hit_count' | '-created_at' | '-hit_count'
|
||||
|
||||
export type MetadataType = 'all' | 'only' | 'without'
|
||||
@@ -19,17 +24,17 @@ export const fetchDataDetail: Fetcher<DataSet, string> = (datasetId: string) =>
|
||||
return get(`/datasets/${datasetId}`) as Promise<DataSet>
|
||||
}
|
||||
|
||||
export const updateDatasetSetting: Fetcher<DataSet, { datasetId: string, body: Partial<Pick<DataSet, 'name' | 'description' | 'permission' | 'indexing_technique'>>}> = ({ datasetId, body }) => {
|
||||
return patch(`/datasets/${datasetId}`, { body } ) as Promise<DataSet>
|
||||
export const updateDatasetSetting: Fetcher<DataSet, { datasetId: string; body: Partial<Pick<DataSet, 'name' | 'description' | 'permission' | 'indexing_technique'>> }> = ({ datasetId, body }) => {
|
||||
return patch(`/datasets/${datasetId}`, { body }) as Promise<DataSet>
|
||||
}
|
||||
|
||||
export const fetchDatasetRelatedApps: Fetcher<RelatedAppResponse, string> = (datasetId: string) => {
|
||||
return get(`/datasets/${datasetId}/related-apps`) as Promise<RelatedAppResponse>
|
||||
}
|
||||
|
||||
export const fetchDatasets: Fetcher<DataSetListResponse, { url: string, params: { page: number, ids?: string[], limit?: number } }> = ({ url, params }) => {
|
||||
export const fetchDatasets: Fetcher<DataSetListResponse, { url: string; params: { page: number; ids?: string[]; limit?: number } }> = ({ url, params }) => {
|
||||
const urlParams = qs.stringify(params, { indices: false })
|
||||
return get(`${url}?${urlParams}`,) as Promise<DataSetListResponse>
|
||||
return get(`${url}?${urlParams}`) as Promise<DataSetListResponse>
|
||||
}
|
||||
|
||||
export const createEmptyDataset: Fetcher<DataSet, { name: string }> = ({ name }) => {
|
||||
@@ -52,21 +57,28 @@ export const fetchDocuments: Fetcher<DocumentListResponse, { datasetId: string;
|
||||
}
|
||||
|
||||
export const createFirstDocument: Fetcher<createDocumentResponse, { body: CreateDocumentReq }> = ({ body }) => {
|
||||
return post(`/datasets/init`, { body }) as Promise<createDocumentResponse>
|
||||
return post('/datasets/init', { body }) as Promise<createDocumentResponse>
|
||||
}
|
||||
|
||||
export const createDocument: Fetcher<InitialDocumentDetail, { datasetId: string; body: CreateDocumentReq }> = ({ datasetId, body }) => {
|
||||
return post(`/datasets/${datasetId}/documents`, { body }) as Promise<InitialDocumentDetail>
|
||||
export const createDocument: Fetcher<createDocumentResponse, { datasetId: string; body: CreateDocumentReq }> = ({ datasetId, body }) => {
|
||||
return post(`/datasets/${datasetId}/documents`, { body }) as Promise<createDocumentResponse>
|
||||
}
|
||||
|
||||
export const fetchIndexingEstimate: Fetcher<IndexingEstimateResponse, CommonDocReq> = ({ datasetId, documentId }) => {
|
||||
return get(`/datasets/${datasetId}/documents/${documentId}/indexing-estimate`, {}) as Promise<IndexingEstimateResponse>
|
||||
}
|
||||
export const fetchIndexingEstimateBatch: Fetcher<IndexingEstimateResponse, BatchReq> = ({ datasetId, batchId }) => {
|
||||
return get(`/datasets/${datasetId}/batch/${batchId}/indexing-estimate`, {}) as Promise<IndexingEstimateResponse>
|
||||
}
|
||||
|
||||
export const fetchIndexingStatus: Fetcher<IndexingStatusResponse, CommonDocReq> = ({ datasetId, documentId }) => {
|
||||
return get(`/datasets/${datasetId}/documents/${documentId}/indexing-status`, {}) as Promise<IndexingStatusResponse>
|
||||
}
|
||||
|
||||
export const fetchIndexingStatusBatch: Fetcher<IndexingStatusBatchResponse, BatchReq> = ({ datasetId, batchId }) => {
|
||||
return get(`/datasets/${datasetId}/batch/${batchId}/indexing-status`, {}) as Promise<IndexingStatusBatchResponse>
|
||||
}
|
||||
|
||||
export const fetchDocumentDetail: Fetcher<DocumentDetailResponse, CommonDocReq & { params: { metadata?: MetadataType } }> = ({ datasetId, documentId, params }) => {
|
||||
return get(`/datasets/${datasetId}/documents/${documentId}`, { params }) as Promise<DocumentDetailResponse>
|
||||
}
|
||||
@@ -95,10 +107,22 @@ export const disableDocument: Fetcher<CommonResponse, CommonDocReq> = ({ dataset
|
||||
return patch(`/datasets/${datasetId}/documents/${documentId}/status/disable`) as Promise<CommonResponse>
|
||||
}
|
||||
|
||||
export const syncDocument: Fetcher<CommonResponse, CommonDocReq> = ({ datasetId, documentId }) => {
|
||||
return get(`/datasets/${datasetId}/documents/${documentId}/notion/sync`) as Promise<CommonResponse>
|
||||
}
|
||||
|
||||
export const preImportNotionPages: Fetcher<{ notion_info: DataSourceNotionWorkspace[] }, { url: string; datasetId?: string }> = ({ url, datasetId }) => {
|
||||
return get(url, { params: { dataset_id: datasetId } }) as Promise<{ notion_info: DataSourceNotionWorkspace[] }>
|
||||
}
|
||||
|
||||
export const modifyDocMetadata: Fetcher<CommonResponse, CommonDocReq & { body: { doc_type: string; doc_metadata: Record<string, any> } }> = ({ datasetId, documentId, body }) => {
|
||||
return put(`/datasets/${datasetId}/documents/${documentId}/metadata`, { body }) as Promise<CommonResponse>
|
||||
}
|
||||
|
||||
export const getDatasetIndexingStatus: Fetcher<{ data: IndexingStatusResponse[] }, string> = (datasetId) => {
|
||||
return get(`/datasets/${datasetId}/indexing-status`) as Promise<{ data: IndexingStatusResponse[] }>
|
||||
}
|
||||
|
||||
// apis for segments in a document
|
||||
|
||||
export const fetchSegments: Fetcher<SegmentsResponse, CommonDocReq & { params: SegmentsQuery }> = ({ datasetId, documentId, params }) => {
|
||||
@@ -123,5 +147,9 @@ export const fetchTestingRecords: Fetcher<HitTestingRecordsResponse, { datasetId
|
||||
}
|
||||
|
||||
export const fetchFileIndexingEstimate: Fetcher<FileIndexingEstimateResponse, any> = (body: any) => {
|
||||
return post(`/datasets/file-indexing-estimate`, { body }) as Promise<FileIndexingEstimateResponse>
|
||||
return post('/datasets/indexing-estimate', { body }) as Promise<FileIndexingEstimateResponse>
|
||||
}
|
||||
|
||||
export const fetchNotionPagePreview: Fetcher<{ content: string }, { workspaceID: string; pageID: string; pageType: string }> = ({ workspaceID, pageID, pageType }) => {
|
||||
return get(`notion/workspaces/${workspaceID}/pages/${pageID}/${pageType}/preview`) as Promise<{ content: string }>
|
||||
}
|
||||
|
Reference in New Issue
Block a user