leistungsbilanz-ts/src/server/routes/project.routes.ts

137 lines
5.9 KiB
TypeScript

import { Router } from "express";
import {
createProject,
getProject,
listProjects,
updateProjectSettings,
} from "../controllers/project.controller.js";
import {
copyDistributionBoard,
createDistributionBoard,
deleteDistributionBoard,
listDistributionBoardsByProject,
updateDistributionBoard,
} from "../controllers/distribution-board.controller.js";
import { listCircuitListsByProject } from "../controllers/circuit-list.controller.js";
import {
createBuilding,
deleteBuilding,
listBuildingsByProject,
updateBuilding,
} from "../controllers/building.controller.js";
import { createFloor, deleteFloor, listFloorsByProject, updateFloor } from "../controllers/floor.controller.js";
import { createRoom, deleteRoom, listRoomsByProject, updateRoom } from "../controllers/room.controller.js";
import {
createEstimateBalance,
deleteEstimateBalance,
getEstimateBalance,
getEstimateComparison,
listEstimateBalances,
updateEstimateBalance,
} from "../controllers/estimate-balance.controller.js";
import {
getCircuitTree,
getProjectCircuitTrees,
} from "../controllers/circuit-tree.controller.js";
import { getNextCircuitIdentifier } from "../controllers/circuit.controller.js";
import {
getProjectHistory,
listProjectRevisions,
} from "../controllers/project-history.controller.js";
import {
executeProjectCommand,
redoProjectCommand,
undoProjectCommand,
} from "../controllers/project-command.controller.js";
import {
createNamedProjectSnapshot,
listProjectSnapshots,
restoreProjectSnapshot,
} from "../controllers/project-snapshot.controller.js";
import {
exportProjectTransfer,
importProjectTransfer,
importProjectTransferAsNewProject,
} from "../controllers/project-transfer.controller.js";
import {
getExternalModelConfiguration,
detectExternalModelWorkbook,
updateExternalModelConfiguration,
} from "../controllers/external-model-configuration.controller.js";
import {
applyExternalInitialImport,
getExternalInitialImportStatus,
planExternalInitialImport,
} from "../controllers/external-initial-import.controller.js";
import { listExternalObjects, updateExternalObjects } from "../controllers/external-objects.controller.js";
export const projectRouter = Router();
projectRouter.get("/", listProjects);
projectRouter.post("/", createProject);
projectRouter.post("/import", importProjectTransferAsNewProject);
projectRouter.get("/:projectId", getProject);
projectRouter.get("/:projectId/export", exportProjectTransfer);
projectRouter.post("/:projectId/import", importProjectTransfer);
projectRouter.get("/:projectId/history", getProjectHistory);
projectRouter.get("/:projectId/history/revisions", listProjectRevisions);
projectRouter.post("/:projectId/commands", executeProjectCommand);
projectRouter.post("/:projectId/history/undo", undoProjectCommand);
projectRouter.post("/:projectId/history/redo", redoProjectCommand);
projectRouter.get("/:projectId/snapshots", listProjectSnapshots);
projectRouter.post("/:projectId/snapshots", createNamedProjectSnapshot);
projectRouter.post(
"/:projectId/snapshots/:snapshotId/restore",
restoreProjectSnapshot
);
projectRouter.put("/:projectId", updateProjectSettings);
projectRouter.get("/:projectId/external-model/configuration", getExternalModelConfiguration);
projectRouter.put("/:projectId/external-model/configuration", updateExternalModelConfiguration);
projectRouter.post("/:projectId/external-model/configuration/detect", detectExternalModelWorkbook);
projectRouter.get("/:projectId/external-model/import-status", getExternalInitialImportStatus);
projectRouter.post("/:projectId/external-model/initial-import/plan", planExternalInitialImport);
projectRouter.post("/:projectId/external-model/initial-import/apply", applyExternalInitialImport);
projectRouter.get("/:projectId/external-model/objects", listExternalObjects);
projectRouter.put("/:projectId/external-model/objects", updateExternalObjects);
projectRouter.get("/:projectId/distribution-boards", listDistributionBoardsByProject);
projectRouter.post("/:projectId/distribution-boards", createDistributionBoard);
projectRouter.post(
"/:projectId/distribution-boards/:distributionBoardId/copy",
copyDistributionBoard
);
projectRouter.put(
"/:projectId/distribution-boards/:distributionBoardId",
updateDistributionBoard
);
projectRouter.delete(
"/:projectId/distribution-boards/:distributionBoardId",
deleteDistributionBoard
);
projectRouter.get("/:projectId/circuit-lists", listCircuitListsByProject);
projectRouter.get("/:projectId/circuit-trees", getProjectCircuitTrees);
projectRouter.get("/:projectId/circuit-lists/:circuitListId/tree", getCircuitTree);
projectRouter.get(
"/:projectId/circuit-sections/:sectionId/next-identifier",
getNextCircuitIdentifier
);
projectRouter.get("/:projectId/buildings", listBuildingsByProject);
projectRouter.post("/:projectId/buildings", createBuilding);
projectRouter.put("/:projectId/buildings/:buildingId", updateBuilding);
projectRouter.delete("/:projectId/buildings/:buildingId", deleteBuilding);
projectRouter.get("/:projectId/floors", listFloorsByProject);
projectRouter.post("/:projectId/floors", createFloor);
projectRouter.put("/:projectId/floors/:floorId", updateFloor);
projectRouter.delete("/:projectId/floors/:floorId", deleteFloor);
projectRouter.get("/:projectId/rooms", listRoomsByProject);
projectRouter.post("/:projectId/rooms", createRoom);
projectRouter.put("/:projectId/rooms/:roomId", updateRoom);
projectRouter.delete("/:projectId/rooms/:roomId", deleteRoom);
projectRouter.get("/:projectId/estimate-balances", listEstimateBalances);
projectRouter.post("/:projectId/estimate-balances", createEstimateBalance);
projectRouter.get("/:projectId/estimate-balances/:balanceId", getEstimateBalance);
projectRouter.put("/:projectId/estimate-balances/:balanceId", updateEstimateBalance);
projectRouter.delete("/:projectId/estimate-balances/:balanceId", deleteEstimateBalance);
projectRouter.get(
"/:projectId/estimate-balances/:balanceId/comparison",
getEstimateComparison
);