feat(db cleanup): added a cleanup for labels this checks daily

This commit is contained in:
2025-04-14 12:53:05 -05:00
parent d4edeb15d9
commit 450e5acd34
3 changed files with 31 additions and 20 deletions

View File

@@ -0,0 +1,23 @@
import { lt } from "drizzle-orm";
import { db } from "../../../database/dbclient.js";
import { prodlabels } from "../../../database/schema/prodLabels.js";
import { addDays } from "date-fns";
import { createLog } from "../../services/logger/logger.js";
export const deleteLabels = async () => {
/**
* Deletes labels older than 90 days from lst... all label data can be found in alpla prod.
*/
try {
await db
.delete(prodlabels)
.where(lt(prodlabels.upd_date, addDays(new Date(Date.now()), -90)));
} catch (error) {
createLog(
"error",
"labeling",
"ocp",
`Error deleting labels older than 90 days`
);
}
};

View File

@@ -1,4 +1,4 @@
import { eq, gte, sql } from "drizzle-orm"; import { eq, gte, lt, sql } from "drizzle-orm";
import { db } from "../../../../../database/dbclient.js"; import { db } from "../../../../../database/dbclient.js";
import { printerData } from "../../../../../database/schema/printers.js"; import { printerData } from "../../../../../database/schema/printers.js";
import { tryCatch } from "../../../../globalUtils/tryCatch.js"; import { tryCatch } from "../../../../globalUtils/tryCatch.js";
@@ -8,6 +8,7 @@ import { settings } from "../../../../../database/schema/settings.js";
import { lstAuth } from "../../../../index.js"; import { lstAuth } from "../../../../index.js";
import axios from "axios"; import axios from "axios";
import { prodlabels } from "../../../../../database/schema/prodLabels.js"; import { prodlabels } from "../../../../../database/schema/prodLabels.js";
import { addDays } from "date-fns";
export const createLabel = async (data: any, userPrinted: any) => { export const createLabel = async (data: any, userPrinted: any) => {
createLog("info", "labeling", "ocp", `Label being created`); createLog("info", "labeling", "ocp", `Label being created`);
@@ -147,22 +148,3 @@ export const createLabel = async (data: any, userPrinted: any) => {
}; };
// run the label delete process we want to delate them older than 90 days right now // run the label delete process we want to delate them older than 90 days right now
const deleteLabels = async () => {
/**
* Deletes labels older than 90 days from lst... all label data can be found in alpla prod.
*/
try {
await db
.delete(prodlabels)
.where(
gte(prodlabels.upd_date, sql.raw(`NOW() - INTERVAL '90 days'`))
);
} catch (error) {
createLog(
"error",
"labeling",
"ocp",
`Error deleting labels older than 90 days`
);
}
};

View File

@@ -20,6 +20,7 @@ import startPrinterCycle from "./routes/printers/startCycle.js";
import { printerCycleAutoLabelers } from "./controller/printers/printerCycleAutoLabelers.js"; import { printerCycleAutoLabelers } from "./controller/printers/printerCycleAutoLabelers.js";
import AutostartPrinterCycle from "./routes/printers/autoLabelerStart.js"; import AutostartPrinterCycle from "./routes/printers/autoLabelerStart.js";
import AutostopPrinterCycle from "./routes/printers/autoLabelerStop.js"; import AutostopPrinterCycle from "./routes/printers/autoLabelerStop.js";
import { deleteLabels } from "../../globalUtils/dbCleanUp/labelCleanUp.js";
const app = new OpenAPIHono(); const app = new OpenAPIHono();
@@ -85,4 +86,9 @@ setTimeout(async () => {
} }
}, 10 * 1000); }, 10 * 1000);
// labelcleanup
deleteLabels();
setInterval(() => {
deleteLabels();
}, 60 * 60 * 24 * 1000);
export default app; export default app;