Cron y errata de status
El paquete node-cron por algún motivo no funciona bien con el monorepo de yarn por algun motivo, he pasado a setInterval
This commit is contained in:
@@ -11,8 +11,8 @@ post {
|
||||
}
|
||||
|
||||
body:form-urlencoded {
|
||||
iccid: 8933201125065160422
|
||||
offer: SAVEFAMILY2
|
||||
iccid: 8933201125065160380
|
||||
offer: SAVEFAMILY1
|
||||
}
|
||||
|
||||
settings {
|
||||
|
||||
@@ -15,7 +15,7 @@ params:query {
|
||||
}
|
||||
|
||||
body:form-urlencoded {
|
||||
iccid: 8933201124059176320
|
||||
iccid: 8933201125065160380
|
||||
}
|
||||
|
||||
settings {
|
||||
|
||||
42
docs/sim-objenious/Cambio oferta.bru
Normal file
42
docs/sim-objenious/Cambio oferta.bru
Normal file
@@ -0,0 +1,42 @@
|
||||
meta {
|
||||
name: Cambio oferta
|
||||
type: http
|
||||
seq: 18
|
||||
}
|
||||
|
||||
post {
|
||||
url: {{baseUrl}}actions/changeServices
|
||||
body: json
|
||||
auth: bearer
|
||||
}
|
||||
|
||||
auth:bearer {
|
||||
token: {{ws-access-token-partenaire}}
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"dueDate": "2026-02-06T15:05:15.458Z",
|
||||
"customerAccountCode": "9.49411.10",
|
||||
"offer": {
|
||||
"code": "SAVEFAMILY1",
|
||||
"services": []
|
||||
},
|
||||
"identifier": {
|
||||
"identifiers": [
|
||||
"8933201125065160380"
|
||||
],
|
||||
"identifierType": "ICCID"
|
||||
},
|
||||
"services": []
|
||||
}
|
||||
}
|
||||
|
||||
body:form-urlencoded {
|
||||
dueDate: 2026-01-28T13:51:15.458Z
|
||||
}
|
||||
|
||||
settings {
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
}
|
||||
@@ -35,7 +35,6 @@ export class SimUseCases {
|
||||
|
||||
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)
|
||||
@@ -47,9 +46,7 @@ export class SimUseCases {
|
||||
request_id: response.data.requestId
|
||||
}
|
||||
|
||||
this.logOperation(operation).then(e => {
|
||||
console.log("Logueada operacion", operation)
|
||||
}).catch(e => console.error(e))
|
||||
this.logOperation(operation).then().catch(e => console.error(e))
|
||||
|
||||
return <Result<string, boolean>>{
|
||||
error: undefined,
|
||||
@@ -74,24 +71,39 @@ export class SimUseCases {
|
||||
}
|
||||
}
|
||||
|
||||
public preActivate(pauseData: ActionData): () => Promise<Result<string, boolean>> {
|
||||
public preActivate(preActivateData: ActionData): () => Promise<Result<string, boolean>> {
|
||||
const OPERATION_URL = "/actions/preactivateLine"
|
||||
return async () => {
|
||||
const req = this.httpClient.client.post(OPERATION_URL, {
|
||||
...pauseData
|
||||
...preActivateData
|
||||
})
|
||||
|
||||
try {
|
||||
const e = await req
|
||||
console.log("Sim preactivada con exito", e.data)
|
||||
return <Result<string, boolean>>{
|
||||
error: undefined,
|
||||
data: true
|
||||
const resp = await req
|
||||
if (resp.status == 200) {
|
||||
console.log("Sim preactivada con exito", resp.data)
|
||||
const operation: ObjeniousOperation = {
|
||||
operation: "activate",
|
||||
iccids: preActivateData.identifier.identifiers,
|
||||
status: "noMassID",
|
||||
request_id: resp.data.requestId
|
||||
}
|
||||
|
||||
this.logOperation(operation).then().catch(e => console.error(e))
|
||||
return <Result<string, boolean>>{
|
||||
error: undefined,
|
||||
data: true
|
||||
}
|
||||
} else {
|
||||
return <Result<string, boolean>>{
|
||||
error: String(resp.status),
|
||||
data: true
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error preactivacion", pauseData)
|
||||
console.error("Error preactivacion", preActivateData)
|
||||
return <Result<string, boolean>>{
|
||||
error: "Error preactivando la sim" + pauseData.identifier,
|
||||
error: "Error preactivando la sim" + preActivateData.identifier,
|
||||
data: true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export type ObjeniousOperation = {
|
||||
end_date?: Date | null;
|
||||
error?: string | null;
|
||||
status: StatusEnum;
|
||||
objenioius_status: string;
|
||||
objenious_status?: string;
|
||||
last_change_date?: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ export class OperationsRepository implements IOperationsRepository {
|
||||
await client.query('BEGIN');
|
||||
// 1. Actualizar objenious_operation (la operacion base)
|
||||
const updateParams = [operation_id, new_status, error, new_request_id, new_mass_action_id, new_objenious_status]
|
||||
console.log("updateParams", updateParams)
|
||||
const updateOpQuery = `
|
||||
UPDATE objenious_operation
|
||||
SET
|
||||
@@ -50,20 +49,18 @@ export class OperationsRepository implements IOperationsRepository {
|
||||
request_id = COALESCE($4, request_id),
|
||||
mass_action_id = COALESCE($5, mass_action_id),
|
||||
last_change_date = now(),
|
||||
end_date = CASE WHEN $2::status_enum IN ('finished', 'error') THEN now() ELSE end_date END,
|
||||
end_date = CASE WHEN $2 IN ('finished') THEN now() ELSE end_date END,
|
||||
objenious_status = $6
|
||||
WHERE id = $1`;
|
||||
|
||||
const operation = await client.query<ObjeniousOperation>(
|
||||
updateOpQuery, updateParams)
|
||||
|
||||
console.log("Operacion base acualizada")
|
||||
// 2. Nuevo registro en objenious_operation_change (indica un cambio de estado)
|
||||
const insertChangeQuery = `
|
||||
INSERT INTO objenious_operation_change (operation_id, new_status, previous_status, error, new_request_id, new_mass_action_id, new_objenious_status, previous_objenious_status)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)`;
|
||||
await client.query(insertChangeQuery, [operation_id, new_status, previous_status, error, new_request_id, new_mass_action_id, new_objenious_status, previous_objenious_status]);
|
||||
console.log("Nuevo registro de actualizacion")
|
||||
await client.query('COMMIT');
|
||||
|
||||
return <Result<string, ObjeniousOperation>>{
|
||||
|
||||
@@ -22,16 +22,23 @@ async function startCron() {
|
||||
operationRepository,
|
||||
httpClient
|
||||
)
|
||||
|
||||
const interval = setInterval(async () => {
|
||||
console.log("Updating...")
|
||||
await objTask.getPendingOperations()
|
||||
console.log("Update finished")
|
||||
}, 60 * 1000)
|
||||
/*
|
||||
const task = cron.createTask("* * * * *", objTask.getPendingOperations
|
||||
, {
|
||||
...commonSettings,
|
||||
name: "Test"
|
||||
})
|
||||
*/
|
||||
await objTask.getPendingOperations()
|
||||
console.log("Lanzando task")
|
||||
//task.start()
|
||||
const task = cron.createTask("* * * * *", async () => {
|
||||
}
|
||||
, {
|
||||
...commonSettings,
|
||||
name: "Test"
|
||||
})
|
||||
*/
|
||||
|
||||
//await objTask.getPendingOperations()
|
||||
|
||||
}
|
||||
|
||||
startCron().then(e => console.log).catch(e => console.error)
|
||||
|
||||
@@ -98,19 +98,20 @@ export class CheckObjeniousRequests {
|
||||
// 2. Se comprueba si ha habido un cambio de estado
|
||||
const { id, status, info } = data
|
||||
|
||||
if (status != originalAction.objenioius_status) {
|
||||
if (status != originalAction.objenious_status) {
|
||||
console.log(status, "!=", originalAction.objenious_status)
|
||||
console.log("Actualizando", originalAction, status)
|
||||
const uorStatus = this.mapStatus(status)
|
||||
const updateData: ObjeniousOperationChange = {
|
||||
operation_id: originalAction.id!,
|
||||
new_objenious_status: status,
|
||||
previous_objenious_status: originalAction.objenioius_status,
|
||||
previous_objenious_status: originalAction.objenious_status,
|
||||
new_status: uorStatus,
|
||||
previous_status: originalAction.status
|
||||
}
|
||||
|
||||
originalAction.status = uorStatus;
|
||||
originalAction.objenioius_status = status;
|
||||
originalAction.objenious_status = status;
|
||||
originalAction.last_change_date = new Date().toISOString()
|
||||
|
||||
if (info != undefined) {
|
||||
@@ -137,7 +138,7 @@ export class CheckObjeniousRequests {
|
||||
const equivalentMap = new Map<string, StatusEnum>([
|
||||
["terminé", "finished"]
|
||||
])
|
||||
const res = equivalentMap.get(objStatus)
|
||||
const res = equivalentMap.get(sanitizedStatus)
|
||||
if (res == undefined) return "running"
|
||||
return res
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user