Express + cliente RMQ asociado a casoso de uso
This commit is contained in:
@@ -3,6 +3,7 @@ loadEnvFile("../../.env")
|
||||
|
||||
export const env = {
|
||||
ENVIRONMENT: process.env.ENVIORMENT,
|
||||
API_PORT: parseInt(process.env.API_PORT ?? "3000"),
|
||||
POSTGRES_USER: process.env.POSTGRES_USER,
|
||||
POSTGRES_PASSWORD: process.env.POSTGRES_PASSWORD,
|
||||
POSTGRES_PORT: process.env.POSTGRES_PORT,
|
||||
|
||||
26
packages/sim-entrada-eventos/config/eventBusConfig.ts
Normal file
26
packages/sim-entrada-eventos/config/eventBusConfig.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { RabbitMQEventBus, RMQConnectionParams } from "#shared/infrastructure/RabbitMQEventBus"
|
||||
import { env } from "./env"
|
||||
|
||||
const rmqUser = env.RABBITMQ_USER
|
||||
const rmqPass = env.RABBITMQ_PASSWORD
|
||||
const rmqHost = env.RABBITMQ_HOST
|
||||
const rmqPort = Number(env.RABBITMQ_PORT)
|
||||
const rmqSecure = false
|
||||
const rmqVhost = env.RABBITMQ_VHOST
|
||||
|
||||
export const rmqConnOptions = <RMQConnectionParams>{
|
||||
username: rmqUser,
|
||||
password: rmqPass,
|
||||
vhost: rmqVhost,
|
||||
hostname: rmqHost,
|
||||
port: rmqPort,
|
||||
secure: rmqSecure,
|
||||
}
|
||||
|
||||
export const rabbitmqEventBus = new RabbitMQEventBus({
|
||||
connectionParams: rmqConnOptions
|
||||
})
|
||||
|
||||
export async function startRMQServer() {
|
||||
await rabbitmqEventBus.connect()
|
||||
}
|
||||
@@ -1,50 +1,35 @@
|
||||
import express from "express"
|
||||
import cors from 'cors';
|
||||
import { simRoutes } from "infrastructure/simRoutes.http"
|
||||
import { rabbitmqEventBus } from '#config/eventBusConfig';
|
||||
import { env } from "#config/env"
|
||||
import { SimEvents } from "#shared/domain/SimEvents"
|
||||
import { RabbitMQEventBus, RMQConnectionParams } from "#shared/infrastructure/RabbitMQEventBus"
|
||||
|
||||
const rmqUser = env.RABBITMQ_USER
|
||||
const rmqPass = env.RABBITMQ_PASSWORD
|
||||
const rmqHost = env.RABBITMQ_HOST
|
||||
const rmqPort = Number(env.RABBITMQ_PORT)
|
||||
const rmqSecure = false
|
||||
const rmqVhost = env.RABBITMQ_VHOST
|
||||
const PORT = env.API_PORT
|
||||
const HOSTNAME = "0.0.0.0"
|
||||
const app = express()
|
||||
|
||||
|
||||
|
||||
async function test() {
|
||||
const connOptions = <RMQConnectionParams>{
|
||||
username: rmqUser,
|
||||
password: rmqPass,
|
||||
vhost: rmqVhost,
|
||||
hostname: rmqHost,
|
||||
port: rmqPort,
|
||||
secure: rmqSecure,
|
||||
}
|
||||
|
||||
const event = <SimEvents.activation>{
|
||||
key: "sim.activation",
|
||||
payload: {
|
||||
iccid: "1234"
|
||||
},
|
||||
options: {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const rmqCli = new RabbitMQEventBus({
|
||||
connectionParams: connOptions
|
||||
rabbitmqEventBus.connect()
|
||||
.then(e => {
|
||||
console.log("[o] Cliente RMQ iniciado")
|
||||
})
|
||||
.catch(e => {
|
||||
console.error("[!] El cliente RMQ no se ha podido iniciar", e)
|
||||
})
|
||||
|
||||
await rmqCli.connect()
|
||||
|
||||
console.log("publicando", event)
|
||||
rmqCli.publish([event])
|
||||
.then(e => {
|
||||
console.log("Mensaje publicado", e)
|
||||
})
|
||||
.catch(err => console.error)
|
||||
}
|
||||
// Middleware
|
||||
app.use(cors());
|
||||
|
||||
test()
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
|
||||
app.use("/sim", simRoutes)
|
||||
|
||||
app.get("/health", (req, res) => {
|
||||
res.status(200).json({ status: "ok" })
|
||||
})
|
||||
|
||||
app.listen(PORT, HOSTNAME, () => {
|
||||
console.log("[o] Servidor iniciado en el puerto %d", PORT)
|
||||
})
|
||||
export default {}
|
||||
|
||||
@@ -1,15 +1,26 @@
|
||||
import { rabbitmqEventBus } from '#config/eventBusConfig';
|
||||
import { SimUsecases } from 'aplication/Sim.usecases';
|
||||
import { SimController } from 'aplication/SimController';
|
||||
import { Router } from 'express';
|
||||
|
||||
const simRoutes = Router()
|
||||
|
||||
simRoutes.get("/status")
|
||||
const simUseCases = new SimUsecases({
|
||||
eventBus: rabbitmqEventBus
|
||||
})
|
||||
|
||||
const simController = new SimController({
|
||||
simUseCases: simUseCases
|
||||
})
|
||||
|
||||
simRoutes.get("/status", () => { })
|
||||
|
||||
simRoutes.post("/save", (req, res) => {
|
||||
|
||||
})
|
||||
simRoutes.post("/activate", (req, res) => {
|
||||
const { iccid } = req.body
|
||||
})
|
||||
|
||||
simRoutes.post("/activate", simController.activation)
|
||||
|
||||
simRoutes.post("/pause", (req, res) => {
|
||||
})
|
||||
|
||||
@@ -20,3 +31,4 @@ simRoutes.post("/cancel", (req, res) => {
|
||||
simRoutes.post("/free", (req, res) => {
|
||||
})
|
||||
|
||||
export { simRoutes }
|
||||
|
||||
Reference in New Issue
Block a user