[优化] 添加 WAF IP 组功能,包括 CRUD 接口和前端页面支持

This commit is contained in:
ryan
2026-06-01 08:46:24 +08:00
parent d5f46138d5
commit 95d7045b4a
32 changed files with 2214 additions and 44 deletions
@@ -3,6 +3,9 @@ import { apiRequest } from '@/lib/api/client';
import type {
WAFRuleGroup,
WAFRuleGroupPayload,
WAFIPGroup,
WAFIPGroupPayload,
WAFIPGroupSyncResult,
WAFSiteRuleGroups,
} from '@/features/waf/types';
@@ -47,3 +50,37 @@ export function replaceWAFSiteRuleGroups(routeId: number, ids: number[]) {
body: JSON.stringify({ ids }),
});
}
export function getWAFIPGroups() {
return apiRequest<WAFIPGroup[]>('/waf/ip-groups');
}
export function getWAFIPGroup(id: number) {
return apiRequest<WAFIPGroup>(`/waf/ip-groups/${id}`);
}
export function createWAFIPGroup(payload: WAFIPGroupPayload) {
return apiRequest<WAFIPGroup>('/waf/ip-groups', {
method: 'POST',
body: JSON.stringify(payload),
});
}
export function updateWAFIPGroup(id: number, payload: WAFIPGroupPayload) {
return apiRequest<WAFIPGroup>(`/waf/ip-groups/${id}/update`, {
method: 'POST',
body: JSON.stringify(payload),
});
}
export function deleteWAFIPGroup(id: number) {
return apiRequest<void>(`/waf/ip-groups/${id}/delete`, {
method: 'POST',
});
}
export function syncWAFIPGroup(id: number) {
return apiRequest<WAFIPGroupSyncResult>(`/waf/ip-groups/${id}/sync`, {
method: 'POST',
});
}