workflow.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import type { Fetcher } from 'swr'
  2. import { get, post } from './base'
  3. import type { CommonResponse } from '@/models/common'
  4. import type {
  5. ChatRunHistoryResponse,
  6. FetchWorkflowDraftResponse,
  7. NodesDefaultConfigsResponse,
  8. WorkflowRunHistoryResponse,
  9. } from '@/types/workflow'
  10. import type { BlockEnum } from '@/app/components/workflow/types'
  11. export const fetchWorkflowDraft: Fetcher<FetchWorkflowDraftResponse, string> = (url) => {
  12. return get<FetchWorkflowDraftResponse>(url, {}, { silent: true })
  13. }
  14. export const syncWorkflowDraft = ({ url, params }: { url: string; params: Pick<FetchWorkflowDraftResponse, 'graph' | 'features'> }) => {
  15. return post<CommonResponse & { updated_at: number }>(url, { body: params })
  16. }
  17. export const fetchNodesDefaultConfigs: Fetcher<NodesDefaultConfigsResponse, string> = (url) => {
  18. return get<NodesDefaultConfigsResponse>(url)
  19. }
  20. export const fetchWorkflowRunHistory: Fetcher<WorkflowRunHistoryResponse, string> = (url) => {
  21. return get<WorkflowRunHistoryResponse>(url)
  22. }
  23. export const fetcChatRunHistory: Fetcher<ChatRunHistoryResponse, string> = (url) => {
  24. return get<ChatRunHistoryResponse>(url)
  25. }
  26. export const singleNodeRun = (appId: string, nodeId: string, params: object) => {
  27. return post(`apps/${appId}/workflows/draft/nodes/${nodeId}/run`, { body: params })
  28. }
  29. export const publishWorkflow = (url: string) => {
  30. return post<CommonResponse & { created_at: number }>(url)
  31. }
  32. export const fetchPublishedWorkflow: Fetcher<FetchWorkflowDraftResponse, string> = (url) => {
  33. return get<FetchWorkflowDraftResponse>(url)
  34. }
  35. export const stopWorkflowRun = (url: string) => {
  36. return post<CommonResponse>(url)
  37. }
  38. export const fetchNodeDefault = (appId: string, blockType: BlockEnum, query = {}) => {
  39. return get(`apps/${appId}/workflows/default-workflow-block-configs/${blockType}`, {
  40. params: { q: JSON.stringify(query) },
  41. })
  42. }