diff --git a/server/globalUtils/dbCleanUp/labelCleanUp.ts b/server/globalUtils/dbCleanUp/labelCleanUp.ts new file mode 100644 index 0000000..c17d17d --- /dev/null +++ b/server/globalUtils/dbCleanUp/labelCleanUp.ts @@ -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` + ); + } +}; diff --git a/server/services/ocp/controller/labeling/createLabel.ts b/server/services/ocp/controller/labeling/createLabel.ts index 57dda03..cd73ec0 100644 --- a/server/services/ocp/controller/labeling/createLabel.ts +++ b/server/services/ocp/controller/labeling/createLabel.ts @@ -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 { printerData } from "../../../../../database/schema/printers.js"; import { tryCatch } from "../../../../globalUtils/tryCatch.js"; @@ -8,6 +8,7 @@ import { settings } from "../../../../../database/schema/settings.js"; import { lstAuth } from "../../../../index.js"; import axios from "axios"; import { prodlabels } from "../../../../../database/schema/prodLabels.js"; +import { addDays } from "date-fns"; export const createLabel = async (data: any, userPrinted: any) => { 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 -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` - ); - } -}; diff --git a/server/services/ocp/ocpService.ts b/server/services/ocp/ocpService.ts index e4bd19f..aa7b713 100644 --- a/server/services/ocp/ocpService.ts +++ b/server/services/ocp/ocpService.ts @@ -20,6 +20,7 @@ import startPrinterCycle from "./routes/printers/startCycle.js"; import { printerCycleAutoLabelers } from "./controller/printers/printerCycleAutoLabelers.js"; import AutostartPrinterCycle from "./routes/printers/autoLabelerStart.js"; import AutostopPrinterCycle from "./routes/printers/autoLabelerStop.js"; +import { deleteLabels } from "../../globalUtils/dbCleanUp/labelCleanUp.js"; const app = new OpenAPIHono(); @@ -85,4 +86,9 @@ setTimeout(async () => { } }, 10 * 1000); +// labelcleanup +deleteLabels(); +setInterval(() => { + deleteLabels(); +}, 60 * 60 * 24 * 1000); export default app;