46 lines
1.7 KiB
TypeScript
46 lines
1.7 KiB
TypeScript
import express from "express";
|
|
import cors from "cors";
|
|
import path from "path";
|
|
import { env } from "#config/env/index.js";
|
|
import { pgPool, postgresClient } from "#config/postgreConfig.js";
|
|
import { OrderRepository } from "packages/sim-shared/infrastructure/OrderRepository.js";
|
|
import { DashboardController } from "./aplication/Dashboard.controller.js";
|
|
import { DashboardUseCases } from "./aplication/Dashboard.usecases.js";
|
|
import { createDashboardRouter } from "#adapters/dashboardRoutes.http.js";
|
|
import { PgClient } from "packages/sim-shared/infrastructure/PgClient.js";
|
|
import { RabbitManagementClient } from "packages/sim-shared/infrastructure/RabbitManagementClient.js";
|
|
|
|
const pgClient = new PgClient({
|
|
pool: pgPool,
|
|
})
|
|
|
|
const rabbitClient = new RabbitManagementClient({
|
|
baseURL: env.RABBITMQ_HOST,
|
|
user: env.RABBITMQ_USER,
|
|
password: env.RABBITMQ_PASSWORD,
|
|
})
|
|
|
|
const orderRepo = new OrderRepository(pgClient)
|
|
const useCases = new DashboardUseCases(rabbitClient, orderRepo)
|
|
const controller = new DashboardController(useCases)
|
|
const dashboardRouter = createDashboardRouter(controller)
|
|
|
|
const app = express();
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
app.use(express.static(path.join(process.cwd(), "../sim-visualizador-tareas-front")));
|
|
app.use("/", dashboardRouter);
|
|
app.get("/health", (_req, res) => res.status(200).json({ status: "ok" }));
|
|
|
|
async function main() {
|
|
await pgClient.checkDatabaseConnection();
|
|
app.listen(Number(env.API_PORT), "0.0.0.0", () => {
|
|
console.log("[o] Visualizador iniciado en el puerto %d", env.API_PORT);
|
|
});
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error("[x] Error arrancando el visualizador:", err);
|
|
process.exit(1);
|
|
});
|