restructure frontend and add network settings
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 1m41s

This commit is contained in:
2025-12-18 20:38:27 +01:00
parent b0de61fd9d
commit 9afe49857a
15 changed files with 1479 additions and 696 deletions

View File

@@ -0,0 +1,55 @@
// src/apiClient.ts
import axios from "axios";
import {
BridgeCreateRequest,
BridgeInfo,
BridgeRemoveRequest,
FullState,
InterfaceInfo,
RouteInfo,
} from "../types/network";
const BASE = "http://mitm.lan/api";
export const api = axios.create({
baseURL: BASE,
headers: { "Content-Type": "application/json" },
timeout: 10000,
});
// Queries
export const fetchInterfaces = async (): Promise<InterfaceInfo[]> => {
const res = await api.get<InterfaceInfo[]>("/network/interfaces");
return res.data;
};
export const fetchLinks = async (): Promise<InterfaceInfo[]> => {
const res = await api.get<InterfaceInfo[]>("/network/links");
return res.data;
};
export const fetchRoutes = async (): Promise<RouteInfo[]> => {
const res = await api.get<RouteInfo[]>("/network/routes");
return res.data;
};
export const fetchBridges = async (): Promise<BridgeInfo[]> => {
const res = await api.get<BridgeInfo[]>("/network/bridges");
return res.data;
};
export const fetchFullState = async (): Promise<FullState> => {
const res = await api.get<FullState>("/network/full-state");
return res.data;
};
// Mutations
export const createBridge = async (req: BridgeCreateRequest) => {
const res = await api.post("network/bridge/create", req);
return res.data;
};
export const removeBridge = async (req: BridgeRemoveRequest) => {
const res = await api.post("network/bridge/remove", req);
return res.data;
};