import { Gitlab } from "../../types/gitlab" import netTool from "../netTool" import { GITLAB_AUTH_HEADER, GITLAB_BASE_URL, gitlabReqWarp } from "./tools" /** * 代表设置 GitLab 徽章的参数。 */ export type BadgeSetParams = Omit & { badge_id?: number } /** * 为特定项目检索 GitLab 徽章。 * @param project_id 项目的 ID。 * @returns 一个承诺,解析为 GitLab 徽章的数组。 */ const get = async (project_id: number) => { const URL = `${GITLAB_BASE_URL}/projects/${project_id}/badges` return gitlabReqWarp( () => netTool.get(URL, {}, GITLAB_AUTH_HEADER), [] ) } /** * 设置 GitLab 徽章。 * @param badge 徽章参数。 * @returns 一个承诺,解析为更新后的徽章。 */ const set = async (badge: BadgeSetParams) => { const URL = `${GITLAB_BASE_URL}/projects/${badge.id}/badges/${badge.badge_id}` return gitlabReqWarp( () => netTool.put(URL, badge, {}, GITLAB_AUTH_HEADER), null ) } /** * 添加 GitLab 徽章。 * @param badge 徽章参数。 * @returns 一个承诺,解析为添加的徽章。 */ const add = async (badge: BadgeSetParams) => { const URL = `${GITLAB_BASE_URL}/projects/${badge.id}/badges` return gitlabReqWarp( () => netTool.post(URL, badge, {}, GITLAB_AUTH_HEADER), null ) } /** * 代表一系列与徽章相关的函数。 */ const badge = { get, set, add, } export default badge