db cleanups and logging for od

This commit is contained in:
2026-02-20 09:58:20 -06:00
parent 597d990a69
commit 2d1f613d39
17 changed files with 2452 additions and 53 deletions

View File

@@ -4,6 +4,7 @@ import { formatInTimeZone } from "date-fns-tz";
import { sql } from "drizzle-orm";
import { db } from "../db/db.controller.js";
import { opendockApt } from "../db/schema/opendock.schema.js";
import { createLogger } from "../logger/logger.controller.js";
import { prodQuery } from "../prodSql/prodSqlQuery.controller.js";
import {
type SqlQuery,
@@ -23,8 +24,6 @@ let lastCheck = formatInTimeZone(
//const queue: unknown[] = [];
//const isProcessing: boolean = false;
let odToken: string | null = null;
type Releases = {
ReleaseNumber: number;
DeliveryState: number;
@@ -36,10 +35,30 @@ type Releases = {
LineItemArticleWeight: number;
CustomerReleaseNumber: string;
};
type ODToken = {
odToken: string | null;
tokenDate: Date | null;
};
let odToken: ODToken = {
odToken: null,
tokenDate: new Date(),
};
const TWENTY_FOUR_HOURS = 24 * 60 * 60 * 1000;
const log = createLogger({ module: "opendock", subModule: "releaseMonitor" });
const postRelease = async (release: Releases) => {
if (!odToken) {
console.info("Getting token");
// TODO: add a time stamp on the token so it gets refreshed every 24hours
if (!odToken.odToken) {
log.info("Getting Auth Token");
await getToken();
}
if (
new Date(odToken.tokenDate || Date.now()).getTime() <
Date.now() - TWENTY_FOUR_HOURS
) {
log.info("Refreshing Auth Token");
await getToken();
}
/**
@@ -145,7 +164,7 @@ const postRelease = async (release: Releases) => {
);
if (aptError) {
console.error("Error getting apt data: ", aptError);
log.error({ error: aptError }, "Error getting apt data");
// TODO: send an error email on this one as it will cause issues
return;
}
@@ -163,13 +182,13 @@ const postRelease = async (release: Releases) => {
{
headers: {
"content-type": "application/json; charset=utf-8",
Authorization: `Bearer ${odToken}`,
Authorization: `Bearer ${odToken.odToken}`,
},
},
);
if (response.status === 400) {
console.error(response.data.data.message);
log.error({}, response.data.data.message);
return;
}
@@ -188,13 +207,13 @@ const postRelease = async (release: Releases) => {
})
.returning();
console.info(`${release.ReleaseNumber} was updated`);
log.info(`${release.ReleaseNumber} was updated`);
} catch (e) {
console.error(e);
log.error(e);
}
} catch (e: any) {
//console.info(newDockApt);
console.error(e.response.data);
log.error(e.response.data);
return;
}
@@ -215,7 +234,7 @@ const postRelease = async (release: Releases) => {
// this will be utilized when we are listening for the changes to the apts. that way we can update the state to arrived. we will run our own checks on this guy during the incoming messages.
if (response.status === 400) {
console.error(response.data.data.message);
log.error(response.data.data.message);
return;
}
@@ -236,12 +255,12 @@ const postRelease = async (release: Releases) => {
})
.returning();
console.info(`${release.ReleaseNumber} was created`);
log.info(`${release.ReleaseNumber} was created`);
} catch (e) {
console.error(e);
log.error(e);
}
} catch (e: any) {
console.error(e.response.data);
log.error(e.response.data);
return;
}
@@ -293,7 +312,8 @@ export const monitorReleaseChanges = async () => {
}
}
} catch (e) {
console.error("Monitor error:", e);
console.error(e);
log.error({ error: e }, "Monitor error");
}
});
}
@@ -340,14 +360,14 @@ const getToken = async () => {
);
if (status === 400) {
console.error(data.message);
log.error(data.message);
return;
}
odToken = data.access_token;
console.info("Token added");
odToken = { odToken: data.access_token, tokenDate: new Date() };
log.info("Token added");
} catch (e) {
console.error(e);
log.error(e);
}
};