Files
tiantian-system/app/api/developer/index.ts
2026-04-08 17:10:58 +08:00

259 lines
5.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/utils/request'
// ========== 权限申请接口 ==========
/**
* 获取权限申请列表
*/
export function getPermissionRequests(params?: {
page?: number
size?: number
status?: 'pending' | 'approved' | 'rejected'
}) {
return request.get<{
code: number
message: string
data: {
records: Array<{
id: string | number
repo: string
repoName: string
reason: string
status: 'pending' | 'approved' | 'rejected'
gitUsername: string
createdAt: string
reviewedAt?: string
reviewerName?: string
rejectReason?: string
}>
total: number
}
}>('/api/app/developer/permission-requests', { params })
}
/**
* 提交权限申请
*/
export function createPermissionRequest(data: {
repo: string
reason: string
gitUsername?: string
}) {
return request.post<{
code: number
message: string
data: {
id: string | number
repo: string
repoName: string
reason: string
status: 'pending'
createdAt: string
}
}>('/api/app/developer/permission-requests', data)
}
/**
* 获取权限申请统计
*/
export function getPermissionRequestStats() {
return request.get<{
code: number
message: string
data: {
pending: number
approved: number
rejected: number
total: number
}
}>('/api/app/developer/permission-requests/stats')
}
/**
* 获取可申请的仓库列表
*/
export function getAvailableRepositories() {
return request.get<{
code: number
message: string
data: Array<{
value: string
label: string
description: string
accessLevel?: 'read' | 'write' | 'admin'
isAccessible: boolean
}>
}>('/api/app/developer/permission-requests/available-repos')
}
// ========== Git账号绑定接口 ==========
/**
* 保存Git账号绑定信息
*/
export function saveGitAccount(data: {
username: string
email?: string
remark?: string
}) {
return request.post<{
code: number
message: string
data: {
userId: number
gitUsername: string
email?: string
remark?: string
savedAt: string
status: 'pending' | 'verified' | 'rejected'
}
}>('/api/app/developer/git-account', data)
}
/**
* 获取Git账号绑定状态
*/
export function getGitAccountStatus() {
return request.get<{
code: number
message: string
data: {
username?: string
email?: string
remark?: string
status: 'pending' | 'verified' | 'rejected' | 'not_bound'
lastUpdatedAt?: string
verificationNote?: string
}
}>('/api/app/developer/git-account/status')
}
/**
* 获取Gitea服务器信息
*/
export function getGiteaServerInfo() {
return request.get<{
code: number
message: string
data: {
url: string
version: string
registrationEnabled: boolean
requireEmailConfirmation: boolean
maxRepoCreation: number
}
}>('/api/app/developer/gitea-info')
}
// ========== 管理端 - Git账号审核接口 ==========
export interface GitAccountItem {
id: number
userId: number
username: string
email?: string
remark?: string
status: 'pending' | 'verified' | 'rejected'
verificationNote?: string
createTime: string
updateTime: string
tenantId: number
}
/**
* 分页查询Git账号绑定列表管理端
*/
export function pageGitAccounts(params?: {
page?: number
size?: number
status?: string
keyword?: string
}) {
return request.get<{
code: number
message: string
data: {
records: GitAccountItem[]
total: number
current: number
size: number
}
}>('/api/app/developer/git-account/list', { params })
}
/**
* 审核Git账号绑定 - 通过
*/
export function approveGitAccount(id: number, note?: string) {
return request.put<{
code: number
message: string
}>(`/api/app/developer/git-account/${id}/approve`, { note })
}
/**
* 审核Git账号绑定 - 拒绝
*/
export function rejectGitAccount(id: number, reason: string) {
return request.put<{
code: number
message: string
}>(`/api/app/developer/git-account/${id}/reject`, { reason })
}
// ========== 管理端 - 权限申请审核接口 ==========
export interface PermissionRequestItem {
id: number
userId: number
gitUsername: string
repo: string
repoName: string
reason: string
status: 'pending' | 'approved' | 'rejected'
createdAt: string
reviewedAt?: string
reviewerName?: string
rejectReason?: string
}
/**
* 分页查询权限申请列表(管理端)
*/
export function pagePermissionRequestsAdmin(params?: {
page?: number
size?: number
status?: string
keyword?: string
}) {
return request.get<{
code: number
message: string
data: {
records: PermissionRequestItem[]
total: number
current: number
size: number
}
}>('/api/app/developer/permission-requests/page', { params })
}
/**
* 审核权限申请 - 通过
*/
export function approvePermissionRequest(id: number, note?: string) {
return request.put<{
code: number
message: string
}>(`/api/app/developer/permission-requests/${id}/approve`, { note })
}
/**
* 审核权限申请 - 拒绝
*/
export function rejectPermissionRequest(id: number, reason: string) {
return request.put<{
code: number
message: string
}>(`/api/app/developer/permission-requests/${id}/reject`, { reason })
}