ForcePilot/web/src/apis/viewer_filesystem.js

82 lines
2.3 KiB
JavaScript
Raw Normal View History

import { apiDelete, apiGet, apiPost } from './base'
const buildQuery = (params) => {
const query = new URLSearchParams()
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined && value !== null && value !== '') {
query.set(key, String(value))
}
})
return query.toString()
}
const buildViewerQuery = (threadId, path, agentId = null, agentConfigId = null) => {
return buildQuery({
thread_id: threadId,
path,
agent_id: agentId,
agent_config_id: agentConfigId
})
}
export const getViewerFileSystemTree = (
threadId,
path = '/',
agentId = null,
agentConfigId = null
) => {
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
return apiGet(`/api/viewer/filesystem/tree?${query}`)
}
export const getViewerFileContent = (threadId, path, agentId = null, agentConfigId = null) => {
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
return apiGet(`/api/viewer/filesystem/file?${query}`)
}
export const downloadViewerFile = (threadId, path, agentId = null, agentConfigId = null) => {
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
return apiGet(`/api/viewer/filesystem/download?${query}`, {}, true, 'blob')
}
export const deleteViewerFile = (threadId, path, agentId = null, agentConfigId = null) => {
const query = buildViewerQuery(threadId, path, agentId, agentConfigId)
return apiDelete(`/api/viewer/filesystem/file?${query}`)
}
export const createViewerDirectory = (
threadId,
parentPath,
name,
agentId = null,
agentConfigId = null
) => {
return apiPost('/api/viewer/filesystem/directory', {
thread_id: threadId,
parent_path: parentPath,
name,
agent_id: agentId,
agent_config_id: agentConfigId
})
}
export const uploadViewerFile = (
threadId,
parentPath,
file,
agentId = null,
agentConfigId = null
) => {
const formData = new FormData()
formData.set('thread_id', threadId)
formData.set('parent_path', parentPath)
if (agentId !== undefined && agentId !== null && agentId !== '') {
formData.set('agent_id', agentId)
}
if (agentConfigId !== undefined && agentConfigId !== null && agentConfigId !== '') {
formData.set('agent_config_id', agentConfigId)
}
formData.set('file', file)
return apiPost('/api/viewer/filesystem/upload', formData)
}