mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-04 04:43:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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 getLoopSingleNodeRunUrl = (isChatFlow: boolean, appId: string, nodeId: string) => {
 | 
						|
  return `apps/${appId}/${isChatFlow ? 'advanced-chat/' : ''}workflows/draft/loop/nodes/${nodeId}/run`
 | 
						|
}
 | 
						|
 | 
						|
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) },
 | 
						|
  })
 | 
						|
}
 | 
						|
 | 
						|
// TODO: archived
 | 
						|
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 })
 | 
						|
}
 |