2024-04-08 18:51:46 +08:00
|
|
|
import type { Fetcher } from 'swr'
|
|
|
|
import { get, post } from './base'
|
|
|
|
import type { CommonResponse } from '@/models/common'
|
|
|
|
import type {
|
|
|
|
ChatRunHistoryResponse,
|
|
|
|
FetchWorkflowDraftResponse,
|
|
|
|
NodesDefaultConfigsResponse,
|
|
|
|
WorkflowRunHistoryResponse,
|
|
|
|
} from '@/types/workflow'
|
|
|
|
import type { BlockEnum } from '@/app/components/workflow/types'
|
|
|
|
|
2024-05-10 14:48:20 +08:00
|
|
|
export const fetchWorkflowDraft = (url: string) => {
|
|
|
|
return get(url, {}, { silent: true }) as Promise<FetchWorkflowDraftResponse>
|
2024-04-08 18:51:46 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
export const syncWorkflowDraft = ({ url, params }: { url: string; params: Pick<FetchWorkflowDraftResponse, 'graph' | 'features'> }) => {
|
2024-05-10 14:48:20 +08:00
|
|
|
return post<CommonResponse & { updated_at: number; hash: string }>(url, { body: params }, { silent: true })
|
2024-04-08 18:51:46 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
export const fetchNodesDefaultConfigs: Fetcher<NodesDefaultConfigsResponse, string> = (url) => {
|
|
|
|
return get<NodesDefaultConfigsResponse>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const fetchWorkflowRunHistory: Fetcher<WorkflowRunHistoryResponse, string> = (url) => {
|
|
|
|
return get<WorkflowRunHistoryResponse>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const fetcChatRunHistory: Fetcher<ChatRunHistoryResponse, string> = (url) => {
|
|
|
|
return get<ChatRunHistoryResponse>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const singleNodeRun = (appId: string, nodeId: string, params: object) => {
|
|
|
|
return post(`apps/${appId}/workflows/draft/nodes/${nodeId}/run`, { body: params })
|
|
|
|
}
|
|
|
|
|
|
|
|
export const publishWorkflow = (url: string) => {
|
|
|
|
return post<CommonResponse & { created_at: number }>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const fetchPublishedWorkflow: Fetcher<FetchWorkflowDraftResponse, string> = (url) => {
|
|
|
|
return get<FetchWorkflowDraftResponse>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const stopWorkflowRun = (url: string) => {
|
|
|
|
return post<CommonResponse>(url)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const fetchNodeDefault = (appId: string, blockType: BlockEnum, query = {}) => {
|
|
|
|
return get(`apps/${appId}/workflows/default-workflow-block-configs/${blockType}`, {
|
|
|
|
params: { q: JSON.stringify(query) },
|
|
|
|
})
|
|
|
|
}
|