From c2081191aef26ac956ece832ab211e86c3dd61bf Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Tue, 21 Apr 2026 17:39:09 +0200 Subject: [PATCH] Trazabilidad de nos, arreglo de orders --- docs/sim-api/Activate.bru | 2 +- package.json | 6 +++--- .../aplication/SimNOS.controller.ts | 2 +- .../aplication/SimNOS.usecases.ts | 4 ++-- .../sim-consumidor-nos/config/postgreConfig.ts | 18 ++++++++++++++++++ packages/sim-consumidor-nos/index.ts | 17 ++++++++++++----- packages/sim-consumidor-nos/package.json | 1 + packages/sim-consumidor-nos/test.env | 5 +++++ .../PauseCancelTaskRepository.ts | 2 ++ .../infrastructure/simRoutes.http.ts | 2 +- packages/sim-objenious-cron/tsconfig.json | 1 + .../infrastructure/OrderRepository.ts | 3 ++- tsconfig.json | 7 ++++++- yarn.lock | 1 + 14 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 packages/sim-consumidor-nos/config/postgreConfig.ts create mode 100644 packages/sim-consumidor-nos/test.env diff --git a/docs/sim-api/Activate.bru b/docs/sim-api/Activate.bru index 55487be..9b392e4 100644 --- a/docs/sim-api/Activate.bru +++ b/docs/sim-api/Activate.bru @@ -11,7 +11,7 @@ post { } body:form-urlencoded { - iccid: 8933201125065160380 + iccid: 8935103196306448300 offer: SAVEFAMILY1 } diff --git a/package.json b/package.json index 7367ba9..44d6859 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ ], "scripts": { "test": "vitest watch", - "build": "yarn workspaces foreach -A --exclude sim-consumidor-nos run build && cp .env dist/ && yarn setup:runtime", + "build": "yarn workspaces foreach -A run build && cp .env dist/ && yarn setup:runtime", "setup:runtime": "mkdir -p dist/packages/node_modules && ln -sf ../sim-shared dist/packages/node_modules/sim-shared && ln -sf ../sf-consumidor-objenious dist/packages/node_modules/sim-consumidor-objenious", - "start": "yarn setup:runtime && yarn workspaces foreach -Apiv --exclude sim-consumidor-nos run start", + "start": "yarn setup:runtime && yarn workspaces foreach -Apiv run start", "typecheck": "npx tsc --noEmit", - "dev": "yarn workspaces foreach -Apiv --exclude sim-consumidor-nos run dev ", + "dev": "yarn workspaces foreach -Apiv run dev ", "lint": "eslint .", "lint:fix": "eslint --fix .", "format": "prettier --write .", diff --git a/packages/sim-consumidor-nos/aplication/SimNOS.controller.ts b/packages/sim-consumidor-nos/aplication/SimNOS.controller.ts index dafb2a2..fcce00b 100644 --- a/packages/sim-consumidor-nos/aplication/SimNOS.controller.ts +++ b/packages/sim-consumidor-nos/aplication/SimNOS.controller.ts @@ -132,7 +132,7 @@ export class SimNosController { console.log("ICCID", iccid) if (Array.isArray(iccid)) { - const usecaseRes = this.uscases.selectMany({ iccid }) + //const usecaseRes = this.uscases.selectMany({ iccid }) } else { const usecaseRes = await this.uscases.selectOne({ iccid }) console.log(usecaseRes) diff --git a/packages/sim-consumidor-nos/aplication/SimNOS.usecases.ts b/packages/sim-consumidor-nos/aplication/SimNOS.usecases.ts index 8806a2f..c54bf17 100644 --- a/packages/sim-consumidor-nos/aplication/SimNOS.usecases.ts +++ b/packages/sim-consumidor-nos/aplication/SimNOS.usecases.ts @@ -83,9 +83,9 @@ export class SimNosUsecases { } catch (e) { if (correlation_id != undefined) - this.setFailed(correlation_id, "Error general de operacion de SIM (NOS)", String(e)).then() + this.setFailed(correlation_id, "Error general de operacion de SIM (NOS) ", String(e)).then() return { - error: "Error general de operacion de SIM (NOS)" + String(e) + error: "Error general de operacion de SIM (NOS) " + String(e) } } diff --git a/packages/sim-consumidor-nos/config/postgreConfig.ts b/packages/sim-consumidor-nos/config/postgreConfig.ts new file mode 100644 index 0000000..9c67604 --- /dev/null +++ b/packages/sim-consumidor-nos/config/postgreConfig.ts @@ -0,0 +1,18 @@ +import { Pool, QueryResult } from 'pg'; +import { PgClient } from 'sim-shared/infrastructure/PgClient.js' +import { env } from './env/env.js'; + +// Configuracion de la conexion a la BDD, deberia ser la +// Misma para todos los servicios pero hasta que se unifique todo +// se hace una por servicio. +export const pgPool = new Pool({ + user: env.POSTGRES_USER, + host: env.POSTGRES_HOST, + database: env.POSTGRES_DATABASE, + password: env.POSTGRES_PASSWORD, + port: Number(env.POSTGRES_PORT) || 5433, +}); + +export const pgClient = new PgClient({ + pool: pgPool +}) diff --git a/packages/sim-consumidor-nos/index.ts b/packages/sim-consumidor-nos/index.ts index 31cbcd9..a0b21e1 100644 --- a/packages/sim-consumidor-nos/index.ts +++ b/packages/sim-consumidor-nos/index.ts @@ -1,12 +1,14 @@ import express from "express" import cors from 'cors'; import { startRMQClient } from "#config/eventBus.config.js" -import { SimNosRouter } from "aplication/SimNOS.router.js" +import { SimNosRouter } from "./aplication/SimNOS.router.js" import { SimNosController } from "./aplication/SimNOS.controller.js" -import { SimNosUsecases } from "aplication/SimNOS.usecases.js" -import { NosHttpClient } from "infrastructure/NosHttpClient.js" +import { SimNosUsecases } from "./aplication/SimNOS.usecases.js" +import { NosHttpClient } from "./infrastructure/NosHttpClient.js" import { env } from "#config/env/env.js" -import { NosRepository } from "infrastructure/NosRepository.js" +import { NosRepository } from "./infrastructure/NosRepository.js" +import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js"; +import { pgClient } from "#config/postgreConfig.js"; const RMQ_QUEUE = "sim.nos" const NOS_BASE_URL = env.NOS_BASE_URL @@ -25,9 +27,14 @@ async function startWorker() { nosHttpClient ) + const orderRepository = new OrderRepository( + pgClient + ) + const simUsecases = new SimNosUsecases( nosHttpClient, - nosRepository + nosRepository, + orderRepository ) const simController = new SimNosController( diff --git a/packages/sim-consumidor-nos/package.json b/packages/sim-consumidor-nos/package.json index 40057f5..46dff3f 100644 --- a/packages/sim-consumidor-nos/package.json +++ b/packages/sim-consumidor-nos/package.json @@ -71,6 +71,7 @@ "@types/supertest": "*", "prettier": "*", "supertest": "*", + "tsc-alias": "^1.8.16", "tsx": "*", "vitest": "*" } diff --git a/packages/sim-consumidor-nos/test.env b/packages/sim-consumidor-nos/test.env new file mode 100644 index 0000000..b45d421 --- /dev/null +++ b/packages/sim-consumidor-nos/test.env @@ -0,0 +1,5 @@ +## ENV PARA DATOS DE TEST - shared nunca se lanza en produccion + +NOTIFICATION_URL="https://sf-sim-activation.savefamilygps.net/send-activation-mail" +# NOTIFICATION_URL="localhost" +SIM_ACTIVATION_API_KEY=9e48c4ac-1ab0-4397-b3f3-6c239200dfe6 diff --git a/packages/sim-consumidor-objenious/infrastructure/PauseCancelTaskRepository.ts b/packages/sim-consumidor-objenious/infrastructure/PauseCancelTaskRepository.ts index e8bb1da..153dc04 100644 --- a/packages/sim-consumidor-objenious/infrastructure/PauseCancelTaskRepository.ts +++ b/packages/sim-consumidor-objenious/infrastructure/PauseCancelTaskRepository.ts @@ -124,3 +124,5 @@ export class PauseCancelTaskRepository { } } + +export default PauseCancelTask diff --git a/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts b/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts index 9276ea6..c2e53dd 100644 --- a/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts +++ b/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts @@ -1,4 +1,4 @@ -import { rabbitmqEventBus } from '#config/eventBusConfig.js'; +import { rabbitmqEventBus } from '../config/eventBusConfig.js'; import { SimUsecases } from '../aplication/Sim.usecases.js'; import { SimController } from '../aplication/Sim.controller.js'; import { Router } from 'express'; diff --git a/packages/sim-objenious-cron/tsconfig.json b/packages/sim-objenious-cron/tsconfig.json index 2bc2f8a..3cc82b1 100644 --- a/packages/sim-objenious-cron/tsconfig.json +++ b/packages/sim-objenious-cron/tsconfig.json @@ -9,6 +9,7 @@ ], "include": [ "**/*.ts", + "**/*.d.ts", "../../packages/sim-shared/**/*.ts", "../../packages/sim-consumidor-objenious/**/*.ts" ] diff --git a/packages/sim-shared/infrastructure/OrderRepository.ts b/packages/sim-shared/infrastructure/OrderRepository.ts index bab9436..06a4f82 100644 --- a/packages/sim-shared/infrastructure/OrderRepository.ts +++ b/packages/sim-shared/infrastructure/OrderRepository.ts @@ -380,6 +380,7 @@ export class OrderRepository { const id = currentOrderResult.data.id // Saco el id para evitar busacr por correlation_id que es mas lento const currentOrder = currentOrderResult.data! + console.log("Current Order", currentOrder) // 3. Si todo ok se actualiza el order // Si el status es dlx se asume que ha terminado y no va a reintentarse @@ -423,7 +424,7 @@ export class OrderRepository { ) RETURNING id; ` - const vOrderHistory = [args.id, currentOrder.status, args.status, args.reason] + const vOrderHistory = [currentOrder.id, currentOrder.status, args.status, args.reason] const newOrderHistoryResult = await this.getFirst( client.query<{ id: number }>(iOrderHistory, vOrderHistory) ) diff --git a/tsconfig.json b/tsconfig.json index d4fbb17..d5ae7c5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,11 @@ "resolveJsonModule": true, "module": "nodenext", "moduleResolution": "nodenext", + "paths": { + "sim-consumidor-objenious": [ + "./packages/sim-consumidor-objenious/*" + ] + } }, "include": [ "**/*.ts", @@ -20,5 +25,5 @@ ], "exclude": [ "dist" - ] + ], } diff --git a/yarn.lock b/yarn.lock index 9363e62..c1f086e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2856,6 +2856,7 @@ __metadata: express: "npm:*" prettier: "npm:*" supertest: "npm:*" + tsc-alias: "npm:^1.8.16" tsx: "npm:*" typescript: "npm:*" vitest: "npm:*"