Trazabilidad de nos, arreglo de orders

This commit is contained in:
2026-04-21 17:39:09 +02:00
parent f0f3827fd0
commit c2081191ae
14 changed files with 56 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ post {
} }
body:form-urlencoded { body:form-urlencoded {
iccid: 8933201125065160380 iccid: 8935103196306448300
offer: SAVEFAMILY1 offer: SAVEFAMILY1
} }

View File

@@ -7,11 +7,11 @@
], ],
"scripts": { "scripts": {
"test": "vitest watch", "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", "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", "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": "eslint .",
"lint:fix": "eslint --fix .", "lint:fix": "eslint --fix .",
"format": "prettier --write .", "format": "prettier --write .",

View File

@@ -132,7 +132,7 @@ export class SimNosController {
console.log("ICCID", iccid) console.log("ICCID", iccid)
if (Array.isArray(iccid)) { if (Array.isArray(iccid)) {
const usecaseRes = this.uscases.selectMany({ iccid }) //const usecaseRes = this.uscases.selectMany({ iccid })
} else { } else {
const usecaseRes = await this.uscases.selectOne({ iccid }) const usecaseRes = await this.uscases.selectOne({ iccid })
console.log(usecaseRes) console.log(usecaseRes)

View File

@@ -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
})

View File

@@ -1,12 +1,14 @@
import express from "express" import express from "express"
import cors from 'cors'; import cors from 'cors';
import { startRMQClient } from "#config/eventBus.config.js" 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 { SimNosController } from "./aplication/SimNOS.controller.js"
import { SimNosUsecases } from "aplication/SimNOS.usecases.js" import { SimNosUsecases } from "./aplication/SimNOS.usecases.js"
import { NosHttpClient } from "infrastructure/NosHttpClient.js" import { NosHttpClient } from "./infrastructure/NosHttpClient.js"
import { env } from "#config/env/env.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 RMQ_QUEUE = "sim.nos"
const NOS_BASE_URL = env.NOS_BASE_URL const NOS_BASE_URL = env.NOS_BASE_URL
@@ -25,9 +27,14 @@ async function startWorker() {
nosHttpClient nosHttpClient
) )
const orderRepository = new OrderRepository(
pgClient
)
const simUsecases = new SimNosUsecases( const simUsecases = new SimNosUsecases(
nosHttpClient, nosHttpClient,
nosRepository nosRepository,
orderRepository
) )
const simController = new SimNosController( const simController = new SimNosController(

View File

@@ -71,6 +71,7 @@
"@types/supertest": "*", "@types/supertest": "*",
"prettier": "*", "prettier": "*",
"supertest": "*", "supertest": "*",
"tsc-alias": "^1.8.16",
"tsx": "*", "tsx": "*",
"vitest": "*" "vitest": "*"
} }

View File

@@ -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

View File

@@ -124,3 +124,5 @@ export class PauseCancelTaskRepository {
} }
} }
export default PauseCancelTask

View File

@@ -1,4 +1,4 @@
import { rabbitmqEventBus } from '#config/eventBusConfig.js'; import { rabbitmqEventBus } from '../config/eventBusConfig.js';
import { SimUsecases } from '../aplication/Sim.usecases.js'; import { SimUsecases } from '../aplication/Sim.usecases.js';
import { SimController } from '../aplication/Sim.controller.js'; import { SimController } from '../aplication/Sim.controller.js';
import { Router } from 'express'; import { Router } from 'express';

View File

@@ -9,6 +9,7 @@
], ],
"include": [ "include": [
"**/*.ts", "**/*.ts",
"**/*.d.ts",
"../../packages/sim-shared/**/*.ts", "../../packages/sim-shared/**/*.ts",
"../../packages/sim-consumidor-objenious/**/*.ts" "../../packages/sim-consumidor-objenious/**/*.ts"
] ]

View File

@@ -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 id = currentOrderResult.data.id // Saco el id para evitar busacr por correlation_id que es mas lento
const currentOrder = currentOrderResult.data! const currentOrder = currentOrderResult.data!
console.log("Current Order", currentOrder)
// 3. Si todo ok se actualiza el order // 3. Si todo ok se actualiza el order
// Si el status es dlx se asume que ha terminado y no va a reintentarse // Si el status es dlx se asume que ha terminado y no va a reintentarse
@@ -423,7 +424,7 @@ export class OrderRepository {
) )
RETURNING id; 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( const newOrderHistoryResult = await this.getFirst(
client.query<{ id: number }>(iOrderHistory, vOrderHistory) client.query<{ id: number }>(iOrderHistory, vOrderHistory)
) )

View File

@@ -12,6 +12,11 @@
"resolveJsonModule": true, "resolveJsonModule": true,
"module": "nodenext", "module": "nodenext",
"moduleResolution": "nodenext", "moduleResolution": "nodenext",
"paths": {
"sim-consumidor-objenious": [
"./packages/sim-consumidor-objenious/*"
]
}
}, },
"include": [ "include": [
"**/*.ts", "**/*.ts",
@@ -20,5 +25,5 @@
], ],
"exclude": [ "exclude": [
"dist" "dist"
] ],
} }

View File

@@ -2856,6 +2856,7 @@ __metadata:
express: "npm:*" express: "npm:*"
prettier: "npm:*" prettier: "npm:*"
supertest: "npm:*" supertest: "npm:*"
tsc-alias: "npm:^1.8.16"
tsx: "npm:*" tsx: "npm:*"
typescript: "npm:*" typescript: "npm:*"
vitest: "npm:*" vitest: "npm:*"