import express from "express" import cors from 'cors'; import { env } from "#config/env/env.js" import { startRMQClient } from "#config/eventBus.config.js"; import { SimAlaiRouter } from "#aplication/SimAlai.router.js"; import { SimAlaiController } from "#aplication/SimAlai.controller.js"; import { SimAlaiUsecases } from "#aplication/SimAlai.usecases.js"; import { alaiHttp } from "#config/httpClient.config.js"; import { AlaiRepository } from "#infrastructure/AlaiRepository.js"; import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js"; import { pgClient } from "#config/postgreConfig.js"; const RMQ_QUEUE = "sim.alai" const PORT = env.ALAI_PORT const HOSTNAME = env.ALAI_HOST async function startWorker() { // Instancia de dependencias const rmqClient = await startRMQClient() const orderRepository = new OrderRepository(pgClient) const alaiRepository = new AlaiRepository(alaiHttp) const alaiUsecases = new SimAlaiUsecases( alaiHttp, alaiRepository, orderRepository ) const alaiController = new SimAlaiController( alaiUsecases, rmqClient ) const simRouter = new SimAlaiRouter( alaiController, rmqClient ) // RMQ rmqClient.consume(RMQ_QUEUE, simRouter.route) .then(() => console.log("Cliente rmq creado con exito")) .catch(e => console.error("Error conectando con RABBITMQ", e)) // Express const app = express() app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); // WIP app.get("/select", alaiController.selectREST()) app.get("/health", (req, res) => res.json({ ok: "alai" })) //app.get("/selectPage", alaiController.selectPageREST()) app.listen(PORT, HOSTNAME, (e) => { if (e == undefined) { console.log("[o] Servidor (Alai) iniciado en el puerto %d", PORT) } else { console.error("Error express ", e) } }) } startWorker() .then(e => { console.log("[o] Worker de SIM de Alai iniciado") }) .catch(e => { console.log("[x] Error iniciando worker de SIM de Alai", e) }) export default {}