259 lines
5.4 KiB
TypeScript
259 lines
5.4 KiB
TypeScript
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 })
|
||
} |