|
import type { Fetcher } from 'swr' |
|
import { get, post } from './base' |
|
import type { CommonResponse } from '@/models/common' |
|
import type { |
|
ChatRunHistoryResponse, |
|
ConversationVariableResponse, |
|
FetchWorkflowDraftResponse, |
|
NodesDefaultConfigsResponse, |
|
WorkflowRunHistoryResponse, |
|
} from '@/types/workflow' |
|
import type { BlockEnum } from '@/app/components/workflow/types' |
|
|
|
export const fetchWorkflowDraft = (url: string) => { |
|
return get(url, {}, { silent: true }) as Promise<FetchWorkflowDraftResponse> |
|
} |
|
|
|
export const syncWorkflowDraft = ({ url, params }: { url: string; params: Pick<FetchWorkflowDraftResponse, 'graph' | 'features' | 'environment_variables' | 'conversation_variables'> }) => { |
|
return post<CommonResponse & { updated_at: number; hash: string }>(url, { body: params }, { silent: true }) |
|
} |
|
|
|
export const fetchNodesDefaultConfigs: Fetcher<NodesDefaultConfigsResponse, string> = (url) => { |
|
return get<NodesDefaultConfigsResponse>(url) |
|
} |
|
|
|
export const fetchWorkflowRunHistory: Fetcher<WorkflowRunHistoryResponse, string> = (url) => { |
|
return get<WorkflowRunHistoryResponse>(url) |
|
} |
|
|
|
export const fetchChatRunHistory: 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 getIterationSingleNodeRunUrl = (isChatFlow: boolean, appId: string, nodeId: string) => { |
|
return `apps/${appId}/${isChatFlow ? 'advanced-chat/' : ''}workflows/draft/iteration/nodes/${nodeId}/run` |
|
} |
|
|
|
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) }, |
|
}) |
|
} |
|
|
|
export const updateWorkflowDraftFromDSL = (appId: string, data: string) => { |
|
return post<FetchWorkflowDraftResponse>(`apps/${appId}/workflows/draft/import`, { body: { data } }) |
|
} |
|
|
|
export const fetchCurrentValueOfConversationVariable: Fetcher<ConversationVariableResponse, { url: string; params: { conversation_id: string } }> = ({ url, params }) => { |
|
return get<ConversationVariableResponse>(url, { params }) |
|
} |
|
|