ForcePilot/web/src/apis/workspace_api.js

46 lines
1.2 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()
}
export const getWorkspaceTree = (path = '/') => {
const query = buildQuery({ path })
return apiGet(`/api/workspace/tree?${query}`)
}
export const getWorkspaceFileContent = (path) => {
const query = buildQuery({ path })
return apiGet(`/api/workspace/file?${query}`)
}
export const deleteWorkspacePath = (path) => {
const query = buildQuery({ path })
return apiDelete(`/api/workspace/file?${query}`)
}
export const createWorkspaceDirectory = (parentPath, name) => {
return apiPost('/api/workspace/directory', {
parent_path: parentPath,
name
})
}
export const uploadWorkspaceFile = (parentPath, file) => {
const formData = new FormData()
formData.append('parent_path', parentPath)
formData.append('file', file)
return apiPost('/api/workspace/upload', formData)
}
export const downloadWorkspaceFile = (path) => {
const query = buildQuery({ path })
return apiGet(`/api/workspace/download?${query}`, {}, true, 'blob')
}