80 lines
2.3 KiB
TypeScript
80 lines
2.3 KiB
TypeScript
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
|
|
// routes
|
|
import manualLabelLog from "./routes/labeling/manualPrintLog.js";
|
|
import getPrinters from "./routes/printers/getPritners.js";
|
|
import { db } from "../../../database/dbclient.js";
|
|
import { settings } from "../../../database/schema/settings.js";
|
|
import updateprinters from "./routes/printers/updatePrinters.js";
|
|
import { updatePrinters } from "./controller/printers/updatePrinters.js";
|
|
import getLots from "./routes/lots/getLots.js";
|
|
import getLabels from "./routes/labeling/getLabels.js";
|
|
import { dycoConnect } from "./controller/specialProcesses/dyco/plcConnection.js";
|
|
import dycoCon from "./routes/specialProcesses/dyco/connection.js";
|
|
import dycoClose from "./routes/specialProcesses/dyco/closeConnection.js";
|
|
import manualprint from "./routes/labeling/manualPrint.js";
|
|
import { assignedPrinters } from "./utils/checkAssignments.js";
|
|
import { printerCycle } from "./controller/printers/printerCycle.js";
|
|
import { tryCatch } from "../../globalUtils/tryCatch.js";
|
|
|
|
const app = new OpenAPIHono();
|
|
|
|
const routes = [
|
|
manualLabelLog,
|
|
//printer
|
|
getPrinters,
|
|
updateprinters,
|
|
// lots
|
|
getLots,
|
|
// labeling
|
|
getLabels,
|
|
manualprint,
|
|
//dyco
|
|
dycoCon,
|
|
dycoClose,
|
|
] as const;
|
|
const setting = await db.select().from(settings);
|
|
|
|
const appRoutes = routes.forEach((route) => {
|
|
app.route("/ocp", route);
|
|
});
|
|
|
|
app.all("/ocp/*", (c) => {
|
|
return c.json({
|
|
success: false,
|
|
message: "You have encounters a ocp route that dose not exist.",
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Get the settings so we only run items when they are truly active
|
|
*/
|
|
const dycoActive = setting.filter((n) => n.name == "dycoConnect");
|
|
const ocpActive = setting.filter((n) => n.name === "ocpActive");
|
|
// run the printer update on restart just to keep everything good
|
|
|
|
// do the intnal connection to the dyco
|
|
setTimeout(() => {
|
|
if (dycoActive[0].value === "1") {
|
|
dycoConnect();
|
|
}
|
|
}, 3 * 1000);
|
|
|
|
// check for printers being assigned
|
|
setInterval(() => {
|
|
if (ocpActive[0].value === "1") {
|
|
assignedPrinters();
|
|
}
|
|
}, 60 * 1000);
|
|
|
|
// start the printer process after everything else is up ad running
|
|
setTimeout(async () => {
|
|
if (ocpActive[0].value === "1") {
|
|
await updatePrinters();
|
|
await assignedPrinters();
|
|
printerCycle();
|
|
}
|
|
}, 10 * 1000);
|
|
|
|
export default app;
|