50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
import { apiDelete, apiGet, apiPost, apiPut } 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 = '/', recursive = false, filesOnly = false) => {
|
|
const query = buildQuery({ path, recursive, files_only: filesOnly })
|
|
return apiGet(`/api/workspace/tree?${query}`)
|
|
}
|
|
|
|
export const getWorkspaceFileContent = (path) => {
|
|
const query = buildQuery({ path })
|
|
return apiGet(`/api/workspace/file?${query}`)
|
|
}
|
|
|
|
export const saveWorkspaceFileContent = (path, content) => {
|
|
return apiPut('/api/workspace/file', { path, content })
|
|
}
|
|
|
|
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')
|
|
}
|