487 lines
9.9 KiB
TypeScript
487 lines
9.9 KiB
TypeScript
import { reqCatchV2, type catchRt } from '@/utils/catch';
|
||
import request from '@/utils/request';
|
||
import * as types from '@/api/repo/types';
|
||
import axios from 'axios';
|
||
|
||
// 详情-获取版本信息
|
||
export function releaseInfo(params: { softwareId: string }): Promise<any> {
|
||
const { softwareId } = params;
|
||
return request({
|
||
url: `/api/v1/repo/release/info?softwareId=${softwareId}`,
|
||
method: 'get'
|
||
});
|
||
}
|
||
|
||
// 详情-搜索结果列表
|
||
export function releasePage(data): Promise<any> {
|
||
return request({
|
||
url: `/api/v1/repo/release/page`,
|
||
method: 'post',
|
||
data
|
||
});
|
||
}
|
||
|
||
// 获取邀请列表
|
||
export function getInviteListData(): catchRt<any> {
|
||
return reqCatchV2(() =>
|
||
request(
|
||
{
|
||
url: '/api/v1/group/member/invite/list',
|
||
method: 'get'
|
||
},
|
||
{
|
||
customError: true
|
||
}
|
||
)
|
||
);
|
||
}
|
||
|
||
// 处理邀请
|
||
export function acceptInvite(params): catchRt<any> {
|
||
return reqCatchV2(() =>
|
||
request(
|
||
{
|
||
url: '/api/v1/group/member/invite/accept',
|
||
method: 'post',
|
||
data: params
|
||
},
|
||
{
|
||
customError: true
|
||
}
|
||
)
|
||
);
|
||
}
|
||
|
||
// 发送订阅
|
||
export function subscribeSoftware(params): catchRt<any> {
|
||
return reqCatchV2(() =>
|
||
request(
|
||
{
|
||
url: '/api/v1/alert/subscribe',
|
||
method: 'post',
|
||
data: params
|
||
},
|
||
{
|
||
customError: true
|
||
}
|
||
)
|
||
);
|
||
}
|
||
|
||
// 获取高级筛选语言列表
|
||
export function searchLanguageList() {
|
||
return request({
|
||
url: `/api/v1/repo/lan/list`,
|
||
method: 'get'
|
||
});
|
||
}
|
||
|
||
// 获取首页公告列表
|
||
export function getHomeNoticeList() {
|
||
return request({
|
||
url: '/api/v1/home/notice/list',
|
||
method: 'get',
|
||
params: {}
|
||
});
|
||
}
|
||
|
||
// 获取依赖关系列表
|
||
export function getDepencyList(softwareId: string) {
|
||
return request({
|
||
url: '/api/v1/repo/dependency/info',
|
||
method: 'POST',
|
||
data: {
|
||
softwareId: 47,
|
||
current: 1,
|
||
size: 20
|
||
}
|
||
});
|
||
}
|
||
|
||
// 获取AI修复建议
|
||
export function getRepairInfo(data) {
|
||
return request({
|
||
url: '/api/v1/repo/repair/info',
|
||
method: 'POST',
|
||
data
|
||
});
|
||
}
|
||
// 可信软件详情-AI 修复建议接口
|
||
export const remediationSearchRemediations = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: '/api/v1/repo/repair/info',
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 获取许可证列表
|
||
export function getLicenseList(data) {
|
||
return request({
|
||
url: '/api/v1/repo/license/info',
|
||
method: 'POST',
|
||
data
|
||
});
|
||
}
|
||
|
||
// 获取详情漏洞列表
|
||
export function getVulnerabilityList() {
|
||
return request({
|
||
url: '/api/v1/repo/vulnerability/page',
|
||
method: 'GET',
|
||
params: {
|
||
current: 1,
|
||
size: 10,
|
||
softwareId: 47
|
||
}
|
||
});
|
||
}
|
||
|
||
// 获取漏洞数据
|
||
export const getVulnList = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/vulnerability/page`,
|
||
method: 'post',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 获取SBOM依赖树
|
||
export const dependencyTree = (data: any): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/dependency/tree`,
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
// 获取开发者社区信息
|
||
export const communityInfo = (softwareId: any): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/community/info`,
|
||
method: 'POST',
|
||
data: {
|
||
softwareId
|
||
}
|
||
})
|
||
);
|
||
};
|
||
|
||
// 编辑用户信息(包含订阅默认预警方式)
|
||
export const userEdit = (data: any): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/user/edit`,
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 获取漏洞数据
|
||
export const getVulnDetail = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/vulnerability/info`,
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 迁移批量导入
|
||
export function repoImport(data: types.commonRepoReqType) {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/home/software/valid`,
|
||
method: 'post',
|
||
data,
|
||
headers: {
|
||
'Content-Type': 'multipart/form-data' // 设置请求头
|
||
}
|
||
})
|
||
);
|
||
}
|
||
|
||
// 个人中心-获取预警列表
|
||
export const getNoticeList = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/alert/notice/list`,
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 个人中心-获取组织级预警列表
|
||
export const getgroupNoticeList = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/alert/group/notice/list`,
|
||
method: 'POST',
|
||
data
|
||
})
|
||
);
|
||
};
|
||
|
||
// 个人中心-获取订阅列表
|
||
export const getSubscribeList = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/alert/subscribe/list`,
|
||
method: 'POST',
|
||
data,
|
||
})
|
||
);
|
||
}
|
||
|
||
// 个人中心-获取组织级订阅列表
|
||
export const getGroupSubscribeList = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/alert/group/subscribe/list`,
|
||
method: 'POST',
|
||
data,
|
||
})
|
||
);
|
||
}
|
||
|
||
// 搜索结果导出接口
|
||
export const getReleaseExport = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/release/export`,
|
||
method: 'POST',
|
||
data,
|
||
responseType: 'blob' // 关键:告诉axios这是二进制数据
|
||
})
|
||
);
|
||
}
|
||
|
||
|
||
// 获取AI修复建议
|
||
export function getVulSuggestion(data) {
|
||
return axios.request({
|
||
url: '/gateway/detect' + `/ai/vul_suggestion`,
|
||
method: 'POST',
|
||
data,
|
||
headers: {
|
||
Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||
},
|
||
});
|
||
}
|
||
// 许可证信息详情
|
||
export const getLicenseDetail = ({ id }): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/repo/license/detail/${id}`,
|
||
method: 'get',
|
||
})
|
||
);
|
||
};
|
||
// 是否订阅
|
||
export const alertIsSubscribe = (data): Promise<any> => {
|
||
return reqCatchV2(() =>
|
||
request({
|
||
url: `/api/v1/alert/isSubscribe`,
|
||
method: 'POST',
|
||
data,
|
||
})
|
||
);
|
||
};
|
||
|
||
// 获取邀请历史
|
||
export function getInviteHistoryData(): catchRt<any> {
|
||
return reqCatchV2(() =>
|
||
request(
|
||
{
|
||
url: `/api/v1/group/member/invite/history`,
|
||
method: 'get'
|
||
},
|
||
{
|
||
customError: true
|
||
}
|
||
)
|
||
);
|
||
}
|
||
// 删除个人邀请历史记录
|
||
export function acceptHistoryDelete(params): catchRt<any> {
|
||
return reqCatchV2(() =>
|
||
request(
|
||
{
|
||
url: '/api/v1/group/member/invite/history/delete',
|
||
method: 'post',
|
||
data: params
|
||
},
|
||
{
|
||
customError: true
|
||
}
|
||
)
|
||
);
|
||
}
|
||
|
||
export function addEnterprise(params) {
|
||
return request({
|
||
url: `enterprise/add`,
|
||
method: 'post',
|
||
data: params,
|
||
});
|
||
}
|
||
|
||
export function uploadImage(file: File) {
|
||
const formData = new FormData();
|
||
formData.append('file', file);
|
||
|
||
return request({
|
||
url: `enterprise/uploadPackage`,
|
||
method: 'post',
|
||
data: formData,
|
||
headers: {
|
||
'Content-Type': 'multipart/form-data',
|
||
Authorization: 'Bearer ' + localStorage.getItem('access_token')
|
||
}
|
||
});
|
||
|
||
// return axios.request({
|
||
// url: '/gateway/detect' + `/enterprise/uploadPackage`,
|
||
// method: 'POST',
|
||
// data: formData,
|
||
// headers: {
|
||
// 'Content-Type': 'multipart/form-data',
|
||
// Authorization: 'Bearer ' + localStorage.getItem('access_token')
|
||
// }
|
||
// });
|
||
}
|
||
|
||
// 获取字典
|
||
export function basicDict(data) {
|
||
|
||
return request({
|
||
url: `dict/children/list`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
|
||
/*AI大模型接口*/
|
||
// 1. 创建对话
|
||
export function fetchCreateConversation(data) {
|
||
return request({
|
||
url: `/agentHelper/api/createConversation`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 2. 对话
|
||
export function fetchChatUseSql(data) {
|
||
return request({
|
||
url: `/agentHelper/api/v0/chat_use_sql`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 3. 查询会话列表
|
||
export function fetchConversationList(data) {
|
||
return request({
|
||
url: `/agentHelper/api/conversationList`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 4. 查询会话详情
|
||
export function fetchConversationDetail(params) {
|
||
return request({
|
||
url: `/agentHelper/api/conversationDetail`,
|
||
method: 'get',
|
||
params: params,
|
||
});
|
||
}
|
||
|
||
// 5. 获取推荐问题
|
||
export function FetchFollowupQuestions(data) {
|
||
return request({
|
||
url: `/agentHelper/api/v0/provide_followup_questions`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 6. 修改会话标题
|
||
export function fetchChangeConversationTitle(data) {
|
||
return request({
|
||
url: `/agentHelper/api/changeConversationTitle`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 7. 修改会话的收藏状态
|
||
export function fetchToggleConversationCollect(data) {
|
||
return request({
|
||
url: `/agentHelper/api/toggleConversationCollect`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 8. 删除对话
|
||
export function fetchDeleteConversation(data) {
|
||
return request({
|
||
url: `/agentHelper/api/deleteConversation`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
// 9. 首页推荐问题
|
||
export function fetchUpdateRecommendQuestions(data) {
|
||
return request({
|
||
url: `/agentHelper/api/v0/update_recommend_questions`,
|
||
method: 'post',
|
||
data: data,
|
||
});
|
||
}
|
||
export function qualityTaskOverview(data) {
|
||
const {softwareId} = data;
|
||
return axios.request({
|
||
url: `/gateway/quality/task-overview/software` + `/${softwareId}`,
|
||
method: 'GET',
|
||
// headers: {
|
||
// Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||
// }
|
||
});
|
||
}
|
||
|
||
export function qualityDefectPage(data) {
|
||
const {pageNum,pageSize,softwareId} = data;
|
||
return axios.request({
|
||
url: `/gateway/quality/defect/page` + `?pageNum=${pageNum}&pageSize=${pageSize}&softwareId=${softwareId}`,
|
||
method: 'GET',
|
||
// headers: {
|
||
// Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||
// }
|
||
});
|
||
}
|
||
|
||
export function loginAccess() {
|
||
return axios.request({
|
||
url: `/gateway/u-auth/login-access`,
|
||
method: 'POST',
|
||
data: {},
|
||
headers: {
|
||
Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||
}
|
||
});
|
||
}
|