Monitorizacion de las operaciones lanzadas a objenious

This commit is contained in:
2026-02-04 17:32:54 +01:00
parent 5e99ea084a
commit c7d3423f66
14 changed files with 219 additions and 30 deletions

View File

@@ -2,6 +2,7 @@ import { ActionData, ActivationData } from "#domain/DTOs/objeniousapi.js"
import { HttpClient } from "#shared/infrastructure/HTTPClient.js"
import { AxiosError } from "axios"
import { Result } from "#shared/domain/Result"
import { ObjeniousOperation, IOperationsRepository as OperationsRepositoryPort } from "#domain/operationsRepository.port"
// TODO:
// - Pasar a un archivo de DTOs
@@ -9,38 +10,54 @@ import { Result } from "#shared/domain/Result"
export class SimUseCases {
private httpClient: HttpClient
private readonly httpClient: HttpClient
private readonly operationRepository: OperationsRepositoryPort
constructor(args: {
httpClient: HttpClient
httpClient: HttpClient,
operationRepository: OperationsRepositoryPort
}) {
this.httpClient = args.httpClient
this.operationRepository = args.operationRepository
}
private async logOperation(data: ObjeniousOperation) {
await this.operationRepository.createOperation({
...data
})
}
public activate(activationData: ActivationData): () => Promise<Result<string, boolean>> {
const OPERATION_URL = "/actions/activateLine"
return async () => {
// TODO: validacion de campos
const req = this.httpClient.client.post(OPERATION_URL, {
...activationData
})
try {
const response = await req
console.log("[!] El status de la respuesta es", response.status)
if (response.status == 200) {
console.log("Activacion con exito", response.data.response)
const operation: ObjeniousOperation = {
operation: "activate",
iccids: activationData.identifier.identifiers,
status: "noMassID"
}
this.logOperation(operation).then(e => {
console.log("Logueada operacion", operation)
}).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