Orders en todas las etapas

This commit is contained in:
2026-02-27 11:16:45 +01:00
parent 8ca3d095e6
commit 04a6e50b7a
10 changed files with 79 additions and 92 deletions

View File

@@ -161,6 +161,7 @@ export class SimUseCases {
if (resp.status == 200) {
console.log("Sim preactivada con exito", resp.data)
const operation: ObjeniousOperation = {
correlation_id: preActivateData.correlation_id,
operation: "preActivate",
iccids: String(preActivateData.identifier.identifiers),
status: "noMassID",
@@ -220,91 +221,26 @@ export class SimUseCases {
}
}
// Metodo nuevo
public suspend(suspendData: ActionData): () => Promise<Result<string, boolean>> {
const OPERATION_URL = "/actions/suspendLine"
return this.generateUseCase({
correlation_id: suspendData.correlation_id,
operationPayload: suspendData,
url: OPERATION_URL,
iccid: suspendData.identifier.identifiers,
iccid: suspendData.identifier.identifiers[0], //
operation: "suspend"
})
return async () => {
const req = this.httpClient.client.post(OPERATION_URL, {
...suspendData
})
try {
const response = await req
if (response.status == 200) {
console.log("[o] Sim pausada/suspendida con exito", response.data)
const operation: ObjeniousOperation = {
operation: "susupend",
iccids: String(suspendData.identifier.identifiers),
status: "noMassID",
request_id: response.data.requestId
}
this.logOperation(operation).then().catch(e => console.error(e))
return <Result<string, boolean>>{
error: undefined,
data: true
}
} else {
// muy mejorable el control de errores
return {
error: String(response.status),
data: undefined
}
}
} catch (error) {
console.error("[Pausa Use case] Error pausa")
return {
error: "Error general pausando/suspendiendo la sim" + suspendData.identifier,
data: undefined
}
}
}
}
public terminate(terminationData: ActionData): () => Promise<Result<string, boolean>> {
const OPERATION_URL = "/actions/terminateLine"
return async () => {
const req = this.httpClient.client.post(OPERATION_URL, {
...terminationData
})
try {
const response = await req
if (response.status == 200) {
console.log("[o] Sim solicitud de cancelacion con exito", response.data)
const operation: ObjeniousOperation = {
operation: "terminate",
iccids: String(terminationData.identifier.identifiers),
status: "noMassID",
request_id: response.data.requestId
}
return <Result<string, boolean>>{
error: undefined,
data: true
}
} else {
return {
error: String(response.status),
data: undefined
}
}
} catch (error) {
console.error("[x ] Error en la solicitud de terminacion", error)
return <Result<string, boolean>>{
error: "Error cancelando/terminate la sim" + terminationData.identifier,
data: undefined
}
}
}
return this.generateUseCase({
correlation_id: terminationData.correlation_id,
operationPayload: terminationData,
url: OPERATION_URL,
iccid: terminationData.identifier.identifiers[0], //
operation: "suspend"
})
}

View File

@@ -4,7 +4,7 @@ export type ActionData = {
dueDate: string, // isodate
filter?: {} // no se si hace falta
identifier: {
identifiers: string
identifiers: string[]
identifierType: "IMSI" | "MSISDN" | "REFERENCE" | "ICCID" | "IMEI"
}
}

View File

@@ -7,6 +7,7 @@ import { PgClient } from "sim-shared/infrastructure/PgClient.js"
import { SimUseCases } from "./aplication/Sim.usecases.js"
import { SimController } from "./aplication/Sim.controller.js"
import { SimRouter } from "./aplication/Sim.router.js"
import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js"
async function startWorker() {
const rmqClient = await startRMQClient()
@@ -18,12 +19,14 @@ async function startWorker() {
await pgClient.checkDatabaseConnection()
const operationRepository = new ObjeniousOperationsRepository(pgClient)
const orderRepository = new OrderRepository(pgClient)
const simActivationController = new SimController(
rmqClient,
new SimUseCases({
httpClient: httpClient,
operationRepository: operationRepository
operationRepository: operationRepository,
orderRepository: orderRepository
})
)
const simRouter = new SimRouter(simActivationController, rmqClient)