Inject application database contexts

This commit is contained in:
2026-07-26 12:30:42 +02:00
parent 859fa4a42a
commit d7b98de56a
26 changed files with 201 additions and 63 deletions
@@ -1,7 +1,5 @@
import type { Request, Response } from "express";
import { CircuitListRepository } from "../../db/repositories/circuit-list.repository.js";
const circuitListRepository = new CircuitListRepository();
import { circuitListRepository } from "../composition/application-repositories.js";
export async function listCircuitListsByProject(req: Request, res: Response) {
const { projectId } = req.params;
@@ -1,20 +1,16 @@
import type { Request, Response } from "express";
import { CircuitRepository } from "../../db/repositories/circuit.repository.js";
import { CircuitDeviceRowRepository } from "../../db/repositories/circuit-device-row.repository.js";
import { CircuitListRepository } from "../../db/repositories/circuit-list.repository.js";
import { CircuitSectionRepository } from "../../db/repositories/circuit-section.repository.js";
import { ProjectRepository } from "../../db/repositories/project.repository.js";
import {
calculateCircuitTotalPower,
calculateRowTotalPower,
} from "../../domain/calculations/circuit-power-calculation.js";
import type { CircuitTreeResponse } from "../../domain/models/circuit-tree.model.js";
const circuitListRepository = new CircuitListRepository();
const circuitSectionRepository = new CircuitSectionRepository();
const circuitRepository = new CircuitRepository();
const circuitDeviceRowRepository = new CircuitDeviceRowRepository();
const projectRepository = new ProjectRepository();
import {
circuitDeviceRowRepository,
circuitListRepository,
circuitRepository,
circuitSectionRepository,
projectRepository,
} from "../composition/application-repositories.js";
export function isMissingCircuitTreeSchemaError(error: unknown): boolean {
if (!(error instanceof Error)) {
@@ -1,16 +1,13 @@
import type { Request, Response } from "express";
import { db } from "../../db/client.js";
import { DistributionBoardRepository } from "../../db/repositories/distribution-board.repository.js";
import {
createDistributionBoardInsertProjectCommand,
createDistributionBoardStructureSnapshot,
} from "../../domain/models/distribution-board-structure-project-command.model.js";
import { createDistributionBoardSchema } from "../../shared/validation/project-structure.schemas.js";
import { projectCommandService } from "../composition/project-command-stores.js";
import { distributionBoardRepository } from "../composition/application-repositories.js";
import { respondWithProjectCommandError } from "./project-command.controller.js";
const distributionBoardRepository = new DistributionBoardRepository(db);
export async function listDistributionBoardsByProject(req: Request, res: Response) {
const { projectId } = req.params;
if (typeof projectId !== "string") {
+1 -3
View File
@@ -1,15 +1,13 @@
import type { Request, Response } from "express";
import { FloorRepository } from "../../db/repositories/floor.repository.js";
import {
createProjectFloorInsertProjectCommand,
createProjectFloorSnapshot,
} from "../../domain/models/project-location-structure-project-command.model.js";
import { createFloorSchema } from "../../shared/validation/project-structure.schemas.js";
import { projectCommandService } from "../composition/project-command-stores.js";
import { floorRepository } from "../composition/application-repositories.js";
import { respondWithProjectCommandError } from "./project-command.controller.js";
const floorRepository = new FloorRepository();
export async function listFloorsByProject(req: Request, res: Response) {
const { projectId } = req.params;
if (typeof projectId !== "string") {
@@ -1,13 +1,12 @@
import type { Request, Response } from "express";
import { GlobalDeviceRepository } from "../../db/repositories/global-device.repository.js";
import { ProjectDeviceRepository } from "../../db/repositories/project-device.repository.js";
import {
createGlobalDeviceSchema,
updateGlobalDeviceSchema,
} from "../../shared/validation/global-device.schemas.js";
const globalDeviceRepository = new GlobalDeviceRepository();
const projectDeviceRepository = new ProjectDeviceRepository();
import {
globalDeviceRepository,
projectDeviceRepository,
} from "../composition/application-repositories.js";
export async function listGlobalDevices(_req: Request, res: Response) {
const rows = await globalDeviceRepository.list();
@@ -1,7 +1,5 @@
import { randomUUID } from "node:crypto";
import type { Request, Response } from "express";
import { GlobalDeviceRepository } from "../../db/repositories/global-device.repository.js";
import { ProjectDeviceRepository } from "../../db/repositories/project-device.repository.js";
import { createProjectDeviceUpdateProjectCommand } from "../../domain/models/project-device-project-command.model.js";
import {
createProjectDeviceDeleteProjectCommand,
@@ -10,6 +8,10 @@ import {
} from "../../domain/models/project-device-structure-project-command.model.js";
import { projectDeviceSyncService } from "../composition/project-device-sync-service.js";
import { projectCommandService } from "../composition/project-command-stores.js";
import {
globalDeviceRepository,
projectDeviceRepository,
} from "../composition/application-repositories.js";
import {
createProjectDeviceCommandSchema,
disconnectProjectDeviceRowsSchema,
@@ -20,8 +22,6 @@ import {
import type { CreateProjectDeviceInput } from "../../shared/validation/project-device.schemas.js";
import { respondWithProjectCommandError } from "./project-command.controller.js";
const globalDeviceRepository = new GlobalDeviceRepository();
const projectDeviceRepository = new ProjectDeviceRepository();
export async function listProjectDevicesByProject(req: Request, res: Response) {
const { projectId } = req.params;
if (typeof projectId !== "string") {
+1 -3
View File
@@ -1,15 +1,13 @@
import type { Request, Response } from "express";
import { ProjectRepository } from "../../db/repositories/project.repository.js";
import {
createProjectSchema,
updateProjectSettingsSchema,
} from "../../shared/validation/project-structure.schemas.js";
import { createProjectSettingsUpdateProjectCommand } from "../../domain/models/project-settings-project-command.model.js";
import { projectCommandService } from "../composition/project-command-stores.js";
import { projectRepository } from "../composition/application-repositories.js";
import { respondWithProjectCommandError } from "./project-command.controller.js";
const projectRepository = new ProjectRepository();
export async function listProjects(_req: Request, res: Response) {
const result = await projectRepository.list();
res.json(result);
+1 -3
View File
@@ -1,15 +1,13 @@
import type { Request, Response } from "express";
import { RoomRepository } from "../../db/repositories/room.repository.js";
import {
createProjectRoomInsertProjectCommand,
createProjectRoomSnapshot,
} from "../../domain/models/project-location-structure-project-command.model.js";
import { createRoomSchema } from "../../shared/validation/project-structure.schemas.js";
import { projectCommandService } from "../composition/project-command-stores.js";
import { roomRepository } from "../composition/application-repositories.js";
import { respondWithProjectCommandError } from "./project-command.controller.js";
const roomRepository = new RoomRepository();
export async function listRoomsByProject(req: Request, res: Response) {
const { projectId } = req.params;
if (typeof projectId !== "string") {