Funcionan las suspensiones

This commit is contained in:
2026-04-08 17:37:47 +02:00
parent a9589f578b
commit 7ff3f13af4
9 changed files with 41 additions and 9 deletions

View File

@@ -15,7 +15,7 @@ params:query {
}
body:form-urlencoded {
iccid: 8933201125065160414
iccid: 8933201125068886692
}
settings {

View File

@@ -1,3 +1,4 @@
vars {
baseurl: http://localhost:3000
}
color: #2E8A54

View File

@@ -1,3 +1,4 @@
vars {
baseurl: https://sf-sims.savefamilygps.net
}
color: #CE4F3B

View File

@@ -164,6 +164,7 @@ export class SimController {
public suspend() {
return async (msg: ConsumeMessage) => {
let msgData;
console.log("Consumiendo susension", msg)
try {
msgData = this.validateMsg(msg) as SimEvents.pause
} catch (e) {
@@ -183,7 +184,6 @@ export class SimController {
identifiers: [iccid] // Por algún motivo solo he puesto un iccd por identifier
}
}
const useCaseRes = await this.tryUseCase(msg, this.useCases.stage_suspend(suspendData))
/*
const res = await this.tryUseCase(msg, this.useCases.suspend(actionData))

View File

@@ -255,6 +255,7 @@ export class SimUseCases {
// Si no se pueden sacar datos de la linea guardo momentaneamente el error
// pero no se cancela la operacion, el error puede ser de objenious y no nos
// puede afectar
console.log("LineData", lineData.data)
if (lineData.error != undefined) {
console.error(lineData.error)
} else {
@@ -272,6 +273,7 @@ export class SimUseCases {
*/
public stage_suspend(suspendData: ActionData): () => Promise<Result<string, boolean>> {
return async (): Promise<Result<string, boolean>> => {
console.log("Suspend action data", suspendData)
const correlation_id = suspendData.correlation_id
const iccid = suspendData.identifier.identifiers
@@ -285,8 +287,14 @@ export class SimUseCases {
}
}
const activationDate = await this.findActivationDate(suspendData)
let activationDate;
try {
activationDate = await this.findActivationDate(suspendData)
} catch (e) {
return {
error: String(e)
}
}
const newTask: CreatePauseCancelTaskDTO = {
iccid: iccid[0],
activation_date: activationDate,

View File

@@ -36,7 +36,6 @@ export class SimController {
}) {
return async (req: Request, res: Response) => {
const body = req.body
// 1. Validacion del body
if (args.validator != undefined) {
const validationResult = args.validator.validate(body)

View File

@@ -8,6 +8,9 @@ import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js"
import { TaskVolcadoLineas } from "./tasks/volcado_lineas.js"
import { ObjeniousLinesRepository } from "./infranstructure/ObjeniousLinesRepository.js"
import { postgresClientIntranet } from "./config/intranetPostgresConfig.js"
import { PauseCancelTaskRepository } from "packages/sim-consumidor-objenious/infrastructure/PauseCancelTaskRepository.js"
import { PauseTerminateTask } from "./tasks/check_pause_terminate.js"
import { SimUseCases } from "packages/sim-consumidor-objenious/aplication/Sim.usecases.js"
async function startCron() {
const commonSettings = {
@@ -44,6 +47,21 @@ async function startCron() {
objeniosRepo
)
const pauseRepo = new PauseCancelTaskRepository(pgClient)
const simUsecases = new SimUseCases({
httpClient: httpClient,
operationRepository: operationRepository,
orderRepository: orderRepository,
pauseRepository: pauseRepo
})
const pauseTask = new PauseTerminateTask(
objeniosRepo,
pauseRepo,
simUsecases,
orderRepository
)
const PERIODO_PETICIONES = 10 * 60 * 1000
const interval = setInterval(async () => {
try {
@@ -62,7 +80,12 @@ async function startCron() {
}
}, PERIODO_VOLCADO)
await volcadoLineasTask.loadLines()
//await pauseTask.run()
const PERIODO_CANCELACIONES = 24 * 60 * 60 * 1000;
const clacelacionesInterval = setInterval(async () => {
await pauseTask.run()
}, PERIODO_CANCELACIONES)
}

View File

@@ -11,7 +11,7 @@ const logger =
}
export class TaskPauseTerminate {
export class PauseTerminateTask {
constructor(
private readonly objeniousRepo: ObjeniousOperationsRepository,
private readonly pauseRepo: PauseCancelTaskRepository,

View File

@@ -36,7 +36,7 @@ export class ObjeniousOperationsRepository implements IOperationsRepository {
"identifier.identifiers": identifiers.toString()
}
const req = this.http.client.get<ObjeniousLine[]>(path, {
const req = this.http.client.get<ObjeniousLineResponse>(path, {
params: params
})
@@ -48,7 +48,7 @@ export class ObjeniousOperationsRepository implements IOperationsRepository {
}
}
const lines = res.data.data
const lines = res.data.data.content
return {
data: lines