refactor(api): 拆分 bgm/projects/tags 为目录结构(API层全面目录化收尾) (#954)

This commit is contained in:
2026-07-27 16:31:06 +08:00
parent cc4939827b
commit 95e1b2f63a
12 changed files with 155 additions and 103 deletions
+38
View File
@@ -0,0 +1,38 @@
/**
* 项目相关 API 函数
* 素材库需要 project_id,前端自动管理默认项目
*/
import apiClient from "../client"
import type { BackendListProjectsResponse, BackendProjectResponse, ProjectItem } from "./types"
import { toProjectItem } from "./utils"
/** 获取当前用户的项目列表 */
export const getProjects = async (): Promise<ProjectItem[]> => {
const response = await apiClient.get<BackendListProjectsResponse>("/projects")
return (response.data.items || []).map(toProjectItem)
}
/** 创建项目 */
export const createProject = async (data: {
name: string
description?: string
}): Promise<ProjectItem> => {
const response = await apiClient.post<BackendProjectResponse>("/projects", {
name: data.name,
description: data.description || "",
})
return toProjectItem(response.data)
}
/** 获取或创建默认项目(素材库需要 project_id */
export const getOrCreateDefaultProject = async (): Promise<ProjectItem> => {
const projects = await getProjects()
if (projects.length > 0) {
return projects[0]
}
// 没有项目时自动创建默认项目
return createProject({
name: "默认项目",
description: "系统自动创建的默认项目",
})
}