Notificacion cuando finalice una activacion
This commit is contained in:
@@ -6,3 +6,5 @@ OBJ_CLIENT_ID=savefamily_rest_ws
|
|||||||
OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E
|
OBJ_KID=xNfbMiyL1ORXGP8lElhcv8nVaG3EJKye4Lc1YoN3I1E
|
||||||
OBJ_BASE_URL=https://api-getway.objenious.com/ws
|
OBJ_BASE_URL=https://api-getway.objenious.com/ws
|
||||||
//OBJ_BASE_URL=https://api-getway.objenious.com/ws/test
|
//OBJ_BASE_URL=https://api-getway.objenious.com/ws/test
|
||||||
|
|
||||||
|
NOTIFICATION_URL=https://api-paloma.com
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ export const env = {
|
|||||||
OBJ_CLI_ASSERTION: String(process.env.OBJ_CLI_ASSERTION),
|
OBJ_CLI_ASSERTION: String(process.env.OBJ_CLI_ASSERTION),
|
||||||
OBJ_CLIENT_ID: String(process.env.OBJ_CLIENT_ID),
|
OBJ_CLIENT_ID: String(process.env.OBJ_CLIENT_ID),
|
||||||
OBJ_KID: String(process.env.OBJ_KID),
|
OBJ_KID: String(process.env.OBJ_KID),
|
||||||
OBJ_BASE_URL: String(process.env.OBJ_BASE_URL)
|
OBJ_BASE_URL: String(process.env.OBJ_BASE_URL),
|
||||||
|
|
||||||
|
NOTIFICATION_URL: String(process.env.NOTIFICATION_URL)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { env } from "#config/env/index.js";
|
||||||
import { IOperationsRepository, Objenious, ObjeniousOperation, ObjeniousOperationChange, StatusEnum } from "sim-shared/domain/operationsRepository.port.js";
|
import { IOperationsRepository, Objenious, ObjeniousOperation, ObjeniousOperationChange, StatusEnum } from "sim-shared/domain/operationsRepository.port.js";
|
||||||
import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
|
import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
|
||||||
|
|
||||||
@@ -36,14 +37,13 @@ export class CheckObjeniousRequests {
|
|||||||
const consultarEstado = pendingOperations.data
|
const consultarEstado = pendingOperations.data
|
||||||
.filter(e => e.mass_action_id != undefined)
|
.filter(e => e.mass_action_id != undefined)
|
||||||
|
|
||||||
console.log("validas", operacionesValidas)
|
console.log("[cron] Solicitando mass id para", solicitarMassId.map(e => e.id))
|
||||||
console.log("Solicitando mass id para", solicitarMassId)
|
|
||||||
|
|
||||||
const newMassActions = await this.getMassIdFromRequest(solicitarMassId)
|
const newMassActions = await this.getMassIdFromRequest(solicitarMassId)
|
||||||
|
|
||||||
const merged = [...newMassActions || [], ...consultarEstado]
|
const merged = [...newMassActions || [], ...consultarEstado]
|
||||||
|
|
||||||
console.log("Solicitando status para", merged)
|
console.log("[cron] Solicitando status para", merged.map(e => e.id))
|
||||||
|
|
||||||
const result = await this.getMassActionsStatus(merged)
|
const result = await this.getMassActionsStatus(merged)
|
||||||
}
|
}
|
||||||
@@ -55,16 +55,9 @@ export class CheckObjeniousRequests {
|
|||||||
const PATH = "/actions/massActions/"
|
const PATH = "/actions/massActions/"
|
||||||
const updated = []
|
const updated = []
|
||||||
|
|
||||||
const iccids = operationsList
|
|
||||||
.map(e => e.iccids)
|
|
||||||
.flat()
|
|
||||||
|
|
||||||
const mass_actions = operationsList
|
const mass_actions = operationsList
|
||||||
.filter(e => e.mass_action_id != undefined)
|
.filter(e => e.mass_action_id != undefined)
|
||||||
|
|
||||||
const iccidSet = new Set<string>(iccids)
|
|
||||||
console.log("iccidSet", iccidSet)
|
|
||||||
|
|
||||||
// 1. Una peticion por cada accion a comprobar
|
// 1. Una peticion por cada accion a comprobar
|
||||||
// Las peticiones por iccid u otro filtro tardan ~50s
|
// Las peticiones por iccid u otro filtro tardan ~50s
|
||||||
for (const originalAction of mass_actions) {
|
for (const originalAction of mass_actions) {
|
||||||
@@ -79,18 +72,18 @@ export class CheckObjeniousRequests {
|
|||||||
try {
|
try {
|
||||||
res = await req
|
res = await req
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Error comprobando el estado de ", originalAction)
|
console.error("[cron] Error comprobando el estado de ", originalAction)
|
||||||
console.error("Error: ", e)
|
console.error("[cron] Error: ", e)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data } = res
|
const { data } = res
|
||||||
|
|
||||||
console.log("Estado de : ", originalAction.mass_action_id, originalAction.iccids)
|
console.log("[cron] Estado de : ", originalAction.mass_action_id, originalAction.iccids)
|
||||||
console.log(res.status, data)
|
console.log(res.status, data)
|
||||||
|
|
||||||
if (res.status != 200 || data == undefined) {
|
if (res.status != 200 || data == undefined) {
|
||||||
console.error("Error buscando los massActions")
|
console.error("[cron] Error buscando los massActions")
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,8 +91,7 @@ export class CheckObjeniousRequests {
|
|||||||
const { id, status, info } = data
|
const { id, status, info } = data
|
||||||
|
|
||||||
if (status != originalAction.objenious_status) {
|
if (status != originalAction.objenious_status) {
|
||||||
console.log(status, "!=", originalAction.objenious_status)
|
console.log("[cron] Actualizando", originalAction.id, originalAction.iccids, status)
|
||||||
console.log("Actualizando", originalAction, status)
|
|
||||||
const uorStatus = this.mapStatus(status)
|
const uorStatus = this.mapStatus(status)
|
||||||
const updateData: ObjeniousOperationChange = {
|
const updateData: ObjeniousOperationChange = {
|
||||||
operation_id: originalAction.id!,
|
operation_id: originalAction.id!,
|
||||||
@@ -109,10 +101,22 @@ export class CheckObjeniousRequests {
|
|||||||
previous_status: originalAction.status
|
previous_status: originalAction.status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
originalAction.status = uorStatus;
|
originalAction.status = uorStatus;
|
||||||
originalAction.objenious_status = status;
|
originalAction.objenious_status = status;
|
||||||
originalAction.last_change_date = new Date().toISOString()
|
originalAction.last_change_date = new Date().toISOString()
|
||||||
|
|
||||||
|
if (uorStatus == "finished") {
|
||||||
|
this.notifyFinalization(originalAction)
|
||||||
|
.then(e => {
|
||||||
|
console.log("Notificada la activacion de ", originalAction.iccids)
|
||||||
|
})
|
||||||
|
.catch(e => {
|
||||||
|
console.error("Error enviando la activacion de ", originalAction)
|
||||||
|
console.error(e)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (info != undefined) {
|
if (info != undefined) {
|
||||||
updateData.info = info
|
updateData.info = info
|
||||||
}
|
}
|
||||||
@@ -191,10 +195,22 @@ export class CheckObjeniousRequests {
|
|||||||
console.log("Error actualizando el estado de ", request)
|
console.log("Error actualizando el estado de ", request)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Se devuelve la lista de los requests con las actualizaciones
|
// 3. Se devuelve la lista de los requests con las actualizaciones
|
||||||
return operationsList
|
return operationsList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Se devuelve la respuesta de una operacion completa de objenious
|
||||||
|
* al servicio que manda los mails
|
||||||
|
*/
|
||||||
|
private async notifyFinalization(operation: ObjeniousOperation) {
|
||||||
|
const req = this.httpClient.client.post<any>(env.NOTIFICATION_URL,
|
||||||
|
{ operation: operation }
|
||||||
|
)
|
||||||
|
await req
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ export type ObjeniousOperation = {
|
|||||||
operation: string;
|
operation: string;
|
||||||
retry_count?: number;
|
retry_count?: number;
|
||||||
max_retry?: number;
|
max_retry?: number;
|
||||||
max_date_retry?: Date | null;
|
max_date_retry?: string | null;
|
||||||
iccids: string[];
|
iccids: string[];
|
||||||
request_id?: string;
|
request_id?: string;
|
||||||
mass_action_id?: string;
|
mass_action_id?: string;
|
||||||
end_date?: Date | null;
|
end_date?: string | null;
|
||||||
error?: string | null;
|
error?: string | null;
|
||||||
status: StatusEnum;
|
status: StatusEnum;
|
||||||
objenious_status?: string;
|
objenious_status?: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user