Files
sf-sim/packages/sim-consumidor-nos/index.ts

83 lines
2.1 KiB
TypeScript
Raw Normal View History

2026-04-21 10:11:21 +02:00
import express from "express"
import cors from 'cors';
2026-04-16 12:44:31 +02:00
import { startRMQClient } from "#config/eventBus.config.js"
2026-04-21 17:39:09 +02:00
import { SimNosRouter } from "./aplication/SimNOS.router.js"
import { SimNosController } from "./aplication/SimNOS.controller.js"
2026-04-21 17:39:09 +02:00
import { SimNosUsecases } from "./aplication/SimNOS.usecases.js"
import { NosHttpClient } from "./infrastructure/NosHttpClient.js"
2026-04-16 17:46:32 +02:00
import { env } from "#config/env/env.js"
2026-04-21 17:39:09 +02:00
import { NosRepository } from "./infrastructure/NosRepository.js"
import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js";
import { pgClient } from "#config/postgreConfig.js";
2026-04-16 17:46:32 +02:00
const RMQ_QUEUE = "sim.nos"
const NOS_BASE_URL = env.NOS_BASE_URL
2026-04-21 10:11:21 +02:00
const PORT = env.APP_PORT
const HOSTNAME = env.APP_HOST
async function startWorker() {
2026-04-16 17:46:32 +02:00
// Instancia de dependencias
const rmqClient = await startRMQClient()
2026-04-16 17:46:32 +02:00
const nosHttpClient = new NosHttpClient(
NOS_BASE_URL
)
2026-04-21 10:11:21 +02:00
const nosRepository = new NosRepository(
2026-04-16 17:46:32 +02:00
nosHttpClient
)
2026-04-21 17:39:09 +02:00
const orderRepository = new OrderRepository(
pgClient
)
2026-04-21 10:11:21 +02:00
const simUsecases = new SimNosUsecases(
nosHttpClient,
2026-04-21 17:39:09 +02:00
nosRepository,
orderRepository
2026-04-21 10:11:21 +02:00
)
const simController = new SimNosController(
2026-04-21 10:11:21 +02:00
simUsecases,
rmqClient
2026-04-16 17:46:32 +02:00
)
const simRouter = new SimNosRouter(
simController,
rmqClient
)
2026-04-21 10:11:21 +02:00
// RMQ
2026-04-16 17:46:32 +02:00
rmqClient.consume(RMQ_QUEUE, simRouter.route)
2026-04-21 10:11:21 +02:00
.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 }));
app.get("/select", simController.selectREST())
app.get("/selectPage", simController.selectPageREST())
app.listen(PORT, HOSTNAME, (e) => {
if (e == undefined) {
console.log("[o] Servidor iniciado en el puerto %d", PORT)
} else {
console.error("Error express ", e)
}
})
}
startWorker()
.then(e => {
console.log("[o] Worker de SIM de NOS iniciado")
})
.catch(e => {
console.log("[x] Error iniciando worker de SIM de NOS")
})
export default {}