nex_docus/frontend/src/api/project.js

226 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 项目管理相关 API
*/
import request from '@/utils/request'
/**
* 获取我的项目列表
*/
export function getMyProjects() {
return request({
url: '/projects/',
method: 'get',
})
}
/**
* 获取我创建的项目列表
*/
export function getOwnedProjects() {
return request({
url: '/projects/my',
method: 'get',
})
}
/**
* 获取我参与的项目列表
*/
export function getSharedProjects() {
return request({
url: '/projects/shared',
method: 'get',
})
}
/**
* 创建项目
*/
export function createProject(data) {
return request({
url: '/projects/',
method: 'post',
data,
})
}
/**
* 获取项目详情
*/
export function getProject(projectId) {
return request({
url: `/projects/${projectId}`,
method: 'get',
})
}
/**
* 更新项目信息
*/
export function updateProject(projectId, data) {
return request({
url: `/projects/${projectId}`,
method: 'put',
data,
})
}
/**
* 删除项目
*/
export function deleteProject(projectId) {
return request({
url: `/projects/${projectId}`,
method: 'delete',
})
}
/**
* 转移项目所有权
*/
export function transferProject(projectId, newOwnerId) {
return request({
url: `/projects/${projectId}/transfer`,
method: 'post',
data: { new_owner_id: newOwnerId },
})
}
/**
* 启动项目导出任务
*/
export function startProjectExport(projectId) {
return request({
url: `/projects/${projectId}/export`,
method: 'post',
})
}
/**
* 获取项目导出任务状态
*/
export function getProjectExportStatus(projectId, taskId) {
return request({
url: `/projects/${projectId}/export/${taskId}`,
method: 'get',
})
}
/**
* 下载项目导出 ZIP
*/
export function downloadProjectExport(projectId, taskId) {
return request({
url: `/projects/${projectId}/export/${taskId}/download`,
method: 'get',
responseType: 'blob',
timeout: 0,
})
}
/**
* 获取项目成员
*/
export function getProjectMembers(projectId) {
return request({
url: `/projects/${projectId}/members`,
method: 'get',
})
}
/**
* 添加项目成员
*/
export function addProjectMember(projectId, data) {
return request({
url: `/projects/${projectId}/members`,
method: 'post',
data,
})
}
/**
* 删除项目成员
*/
export function removeProjectMember(projectId, userId) {
return request({
url: `/projects/${projectId}/members/${userId}`,
method: 'delete',
})
}
/**
* Git Pull
*/
export function gitPull(projectId, repoId = null, force = false, syncScope = null, subPath = '') {
return request({
url: `/projects/${projectId}/git/pull`,
method: 'post',
params: { repo_id: repoId, force, sync_scope: syncScope || undefined, sub_path: subPath || undefined }
})
}
/**
* Git Push
*/
export function gitPush(projectId, repoId = null, force = false, syncScope = null, subPath = '') {
return request({
url: `/projects/${projectId}/git/push`,
method: 'post',
params: { repo_id: repoId, force, sync_scope: syncScope || undefined, sub_path: subPath || undefined }
})
}
/**
* 获取Git仓库列表
*/
export function getGitRepos(projectId) {
return request({
url: `/projects/${projectId}/git-repos`,
method: 'get',
})
}
/**
* 添加Git仓库
*/
export function createGitRepo(projectId, data) {
return request({
url: `/projects/${projectId}/git-repos`,
method: 'post',
data,
})
}
/**
* 更新Git仓库
*/
export function updateGitRepo(projectId, repoId, data) {
return request({
url: `/projects/${projectId}/git-repos/${repoId}`,
method: 'put',
data,
})
}
/**
* 删除Git仓库
*/
export function deleteGitRepo(projectId, repoId) {
return request({
url: `/projects/${projectId}/git-repos/${repoId}`,
method: 'delete',
})
}
/**
* 获取Git仓库远端目录结构用于选择同步目录
*/
export function getGitRepoDirectories(projectId, repoId = null) {
return request({
url: `/projects/${projectId}/git/directories`,
method: 'post',
params: { repo_id: repoId || undefined },
})
}