Orders en los consumidores y gestion de los demas casos de uso

This commit is contained in:
2026-02-26 17:30:32 +01:00
parent 18422fbe38
commit ca1144b55c
9 changed files with 204 additions and 52 deletions

View File

@@ -1,4 +1,5 @@
import { env } from "#config/env/index.js";
import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js";
import axios from "axios";
import { IOperationsRepository, Objenious, ObjeniousOperation, ObjeniousOperationChange, StatusEnum } from "sim-shared/domain/operationsRepository.port.js";
import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
@@ -6,6 +7,7 @@ import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
export class CheckObjeniousRequests {
constructor(
private readonly operationsRepository: IOperationsRepository,
private readonly orderRepository: OrderRepository,
private readonly httpClient: HttpClient
) {
}
@@ -91,8 +93,10 @@ export class CheckObjeniousRequests {
// 2. Se comprueba si ha habido un cambio de estado
const { id, status, info } = data
if (status != originalAction.objenious_status) {
const hasStatusChanged = status != originalAction.objenious_status
if (hasStatusChanged) {
console.log("[cron] Actualizando", originalAction.id, originalAction.iccids, status)
/** Status convertido al que se usa en la aplicacion */
const uorStatus = this.mapStatus(status)
const updateData: ObjeniousOperationChange = {
operation_id: originalAction.id!,
@@ -102,27 +106,33 @@ export class CheckObjeniousRequests {
previous_status: originalAction.status
}
originalAction.status = uorStatus;
originalAction.objenious_status = status;
originalAction.last_change_date = new Date().toISOString()
originalAction.end_date = originalAction.last_change_date
console.log(" ----> Status", uorStatus)
const updatedAction = structuredClone(originalAction)
updatedAction.status = uorStatus;
updatedAction.objenious_status = status;
updatedAction.last_change_date = new Date().toISOString()
updatedAction.end_date = originalAction.last_change_date
if (uorStatus /*== "finished"*/) {
console.log(" ****> Status", uorStatus)
if (uorStatus != "finished") {
console.error("!!! Notificando estado no finished")
}
const targetIccids = originalAction.iccids
const lineData = await this.getLineData(targetIccids)
console.log("lineData", lineData.content[0])
console.log("[i] lineData", lineData.content[0])
const msisdn = lineData.content[0].identifier.msisdn
this.notifyFinalization({
...originalAction,
msisdn
})
// TODO la accion no siempre es activacion!
.then(e => {
console.log("Notificada la activacion de ", originalAction.iccids)
console.log("[o] Notificada la activacion de ", originalAction.iccids)
})
.catch(e => {
console.error("Error enviando la activacion de ", originalAction)
console.error("[x] Error enviando la activacion de ", originalAction)
console.error(e)
})
}
@@ -132,12 +142,12 @@ export class CheckObjeniousRequests {
}
try {
console.log("Subiendo un update")
console.log("[i] Subiendo un update")
console.log(updateData)
await this.operationsRepository.updateOperation(updateData)
updated.push(originalAction)
} catch (e) {
console.error("Error actualizando el estado de ", originalAction, e)
console.error("[x] Error actualizando el estado de ", originalAction, e)
return;
}
}