mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-05 09:36:37 +08:00
feat(tunnel): add delete rule resolution settings (#335)
- Add backend API for tunnel delete rule resolution (allow, deny, confirm) - Add contract tests for delete resolution endpoint - Add frontend API types and endpoints for delete resolution - Add tunnel delete resolution settings UI with resolution mode selector - Support per-tunnel and global delete resolution configuration
This commit is contained in:
@@ -6,6 +6,10 @@ import type {
|
||||
NodeReleaseApiItem,
|
||||
NodeApiItem,
|
||||
SpeedLimitApiItem,
|
||||
TunnelBatchDeletePreviewApiData,
|
||||
TunnelBatchDeleteWithForwardsApiData,
|
||||
TunnelDeletePreviewApiData,
|
||||
TunnelDeleteWithForwardsApiData,
|
||||
TunnelDiagnosisApiData,
|
||||
TunnelGroupApiItem,
|
||||
UserApiItem,
|
||||
@@ -122,6 +126,30 @@ export const updateTunnel = (data: TunnelMutationPayload) =>
|
||||
Network.post("/tunnel/update", data);
|
||||
export const deleteTunnel = (id: number) =>
|
||||
Network.post("/tunnel/delete", { id });
|
||||
export const previewTunnelDelete = (id: number) =>
|
||||
Network.post<TunnelDeletePreviewApiData>("/tunnel/delete-preview", { id });
|
||||
export const deleteTunnelWithForwards = (data: {
|
||||
id: number;
|
||||
action: "replace" | "delete_forwards";
|
||||
targetTunnelId?: number;
|
||||
}) =>
|
||||
Network.post<TunnelDeleteWithForwardsApiData | BatchOperationResult>(
|
||||
"/tunnel/delete-with-forwards",
|
||||
data,
|
||||
);
|
||||
export const previewBatchTunnelDelete = (ids: number[]) =>
|
||||
Network.post<TunnelBatchDeletePreviewApiData>("/tunnel/batch-delete-preview", {
|
||||
ids,
|
||||
});
|
||||
export const batchDeleteTunnelsWithForwards = (data: {
|
||||
ids: number[];
|
||||
action: "replace" | "delete_forwards";
|
||||
targetTunnelId?: number;
|
||||
}) =>
|
||||
Network.post<TunnelBatchDeleteWithForwardsApiData>(
|
||||
"/tunnel/batch-delete-with-forwards",
|
||||
data,
|
||||
);
|
||||
export const diagnoseTunnel = (tunnelId: number) =>
|
||||
Network.post<TunnelDiagnosisApiData>(
|
||||
"/tunnel/diagnose",
|
||||
|
||||
@@ -222,6 +222,50 @@ export interface BatchOperationFailure {
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TunnelDeletePreviewForwardApiItem {
|
||||
id: number;
|
||||
name: string;
|
||||
userId: number;
|
||||
userName: string;
|
||||
inPort: number;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TunnelDeletePreviewApiData {
|
||||
tunnelId: number;
|
||||
tunnelName: string;
|
||||
forwardCount: number;
|
||||
sampleForwards: TunnelDeletePreviewForwardApiItem[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TunnelBatchDeletePreviewApiData {
|
||||
tunnelCount: number;
|
||||
totalForwardCount: number;
|
||||
items: TunnelDeletePreviewApiData[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TunnelDeleteWithForwardsApiData {
|
||||
forwardCount: number;
|
||||
migratedCount: number;
|
||||
deletedForwardCount: number;
|
||||
portAdjustedCount: number;
|
||||
warnings?: string[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface TunnelBatchDeleteWithForwardsApiData {
|
||||
successCount: number;
|
||||
failCount: number;
|
||||
failures?: BatchOperationFailure[];
|
||||
deletedForwardCount: number;
|
||||
migratedCount: number;
|
||||
portAdjustedCount: number;
|
||||
warnings?: string[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface UserMutationPayload {
|
||||
id?: number;
|
||||
user?: string;
|
||||
|
||||
Reference in New Issue
Block a user