Compare commits

..

10 Commits

20 changed files with 263 additions and 117 deletions

View File

@@ -26,7 +26,7 @@ export default function DmPage() {
<ul className="list-disc mr-2"> <ul className="list-disc mr-2">
<li> <li>
Download the standard template if you have not yet done Download the standard template if you have not yet done
so, top right click standard, then template. so, Above click Standard Order Template.
</li> </li>
<li> <li>
Add in the orders like you see in the example below. Add in the orders like you see in the example below.
@@ -37,8 +37,8 @@ export default function DmPage() {
customerReleaseNumber. Quatity and dates can change. customerReleaseNumber. Quatity and dates can change.
</li> </li>
<li> <li>
Once you have all the orders enters click the upload Once you have all the orders entered, click Standard
button on the top right Order Import
</li> </li>
</ul> </ul>

View File

@@ -36,7 +36,7 @@
} }
}, },
"admConfig": { "admConfig": {
"build": 532, "build": 537,
"oldBuild": "backend-0.1.3.zip" "oldBuild": "backend-0.1.3.zip"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -1,16 +1,19 @@
import { eq } from "drizzle-orm";
import { db } from "../../database/dbclient.js";
import { settings } from "../../database/schema/settings.js";
import { query } from "../services/sqlServer/prodSqlServer.js"; import { query } from "../services/sqlServer/prodSqlServer.js";
import { plantInfo } from "../services/sqlServer/querys/dataMart/plantInfo.js"; import { plantInfo } from "../services/sqlServer/querys/dataMart/plantInfo.js";
import { createLog } from "../services/logger/logger.js"; import { createLog } from "../services/logger/logger.js";
import { getSettings } from "../services/server/controller/settings/getSettings.js";
export const createSSCC = async (runningNumber: number) => { export const createSSCC = async (runningNumber: number) => {
// get the token // get the token
const plantToken = await db
.select() let serverSettings = (await getSettings()) as any;
.from(settings) const plantToken = serverSettings?.filter(
.where(eq(settings.name, "plantToken")); (n: any) => n.name === "plantToken"
);
// const plantToken = await db
// .select()
// .from(settings)
// .where(eq(settings.name, "plantToken"));
let global: any = []; // get from plant address in basis enter the entire string here. let global: any = []; // get from plant address in basis enter the entire string here.
try { try {

View File

@@ -1,6 +1,7 @@
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import { db } from "../../database/dbclient.js"; import { db } from "../../database/dbclient.js";
import { settings } from "../../database/schema/settings.js";
import { getSettings } from "../services/server/controller/settings/getSettings.js";
// create the test server stuff // create the test server stuff
const testServers = [ const testServers = [
@@ -12,19 +13,22 @@ const testServers = [
export const prodEndpointCreation = async (endpoint: string) => { export const prodEndpointCreation = async (endpoint: string) => {
let url = ""; let url = "";
//get the plant token //get the plant token
const plantToken = await db let serverSettings = await getSettings();
.select() const plantToken = serverSettings?.filter((n) => n.name === "plantToken");
.from(settings) // await db
.where(eq(settings.name, "plantToken")); // .select()
// .from(settings)
// .where(eq(settings.name, "plantToken"));
// check if we are a test server // check if we are a test server
const testServer = testServers.some( const testServer = testServers.some(
(server) => server.token === plantToken[0]?.value (server) => server.token === plantToken[0]?.value
); );
const server = await db const server = serverSettings?.filter((n) => n.name === "dbServer");
.select() // await db
.from(settings) // .select()
.where(eq(settings.name, "dbServer")); // .from(settings)
// .where(eq(settings.name, "dbServer"));
if (testServer) { if (testServer) {
//filter out what testserver we are //filter out what testserver we are

View File

@@ -29,6 +29,11 @@ import eom from "./services/eom/eomService.js";
import dataMart from "./services/dataMart/dataMartService.js"; import dataMart from "./services/dataMart/dataMartService.js";
import qualityRequest from "./services/quality/qualityService.js"; import qualityRequest from "./services/quality/qualityService.js";
import produser from "./services/prodUser/prodUser.js"; import produser from "./services/prodUser/prodUser.js";
import {
getSettings,
serverSettings,
} from "./services/server/controller/settings/getSettings.js";
import type { Settings } from "./types/settings.js";
// create the main prodlogin here // create the main prodlogin here
const username = "lst_user"; const username = "lst_user";
@@ -36,15 +41,16 @@ const password = "Alpla$$Prod";
export const lstAuth = btoa(`${username}:${password}`); export const lstAuth = btoa(`${username}:${password}`);
// checking to make sure we have the settings intialized // checking to make sure we have the settings intialized
const { data: settingsData, error: settingError } = await tryCatch( // const { data: settingsData, error: settingError } = await tryCatch(
db.select().from(settings) // db.select().from(settings)
); // );
if (settingError) { // if (settingError) {
throw Error("Error getting settings from the db. critical error."); // throw Error("Error getting settings from the db. critical error.");
} // }
const serverIntialized: any = await getSettings();
const serverIntialized: any = settingsData;
export const installed = export const installed =
serverIntialized.length === 0 && process.env.NODE_ENV !== "development" serverIntialized.length === 0 && process.env.NODE_ENV !== "development"
? false ? false
@@ -211,7 +217,8 @@ serve(
/** /**
* Only for ocme until we get them switched over to the single port setup. * Only for ocme until we get them switched over to the single port setup.
*/ */
const setting = await db.select().from(settings); // const setting = await db.select().from(settings);
const setting = serverSettings;
const isActive = setting.filter((n) => n.name === "ocmeService"); const isActive = setting.filter((n) => n.name === "ocmeService");
if (ocmeport && isActive[0]?.value === "1") { if (ocmeport && isActive[0]?.value === "1") {
serve( serve(

View File

@@ -4,6 +4,7 @@ import { db } from "../../database/dbclient.js";
import { serverData } from "../../database/schema/serverData.js"; import { serverData } from "../../database/schema/serverData.js";
import { eq, sql } from "drizzle-orm"; import { eq, sql } from "drizzle-orm";
import { createLog } from "../services/logger/logger.js"; import { createLog } from "../services/logger/logger.js";
import { serverSettings } from "../services/server/controller/settings/getSettings.js";
type UpdateServerResponse = { type UpdateServerResponse = {
success: boolean; success: boolean;
@@ -48,6 +49,7 @@ export const updateServer = async (
}; };
} }
console.log(serverInfo);
const scriptPath = `${process.env.DEVFOLDER}\\server\\scripts\\update.ps1 `; const scriptPath = `${process.env.DEVFOLDER}\\server\\scripts\\update.ps1 `;
const args = [ const args = [
"-NoProfile", "-NoProfile",

View File

@@ -7,6 +7,7 @@ import { createPassword } from "../../utils/createPassword.js";
import { createLog } from "../../../logger/logger.js"; import { createLog } from "../../../logger/logger.js";
import { sendEmail } from "../../../notifications/controller/sendMail.js"; import { sendEmail } from "../../../notifications/controller/sendMail.js";
import { settings } from "../../../../../database/schema/settings.js"; import { settings } from "../../../../../database/schema/settings.js";
import { getSettings } from "../../../server/controller/settings/getSettings.js";
export const updateUserADM = async (userData: User) => { export const updateUserADM = async (userData: User) => {
/** /**
@@ -40,8 +41,8 @@ export const updateUserADM = async (userData: User) => {
}; };
} }
const { data: s, error: se } = await tryCatch(db.select().from(settings)); //const { data: s, error: se } = await tryCatch(db.select().from(settings));
const { data: s, error: se } = await tryCatch(getSettings());
if (se) { if (se) {
return { return {
success: false, success: false,

View File

@@ -7,16 +7,16 @@ import { deliveryByDateRange } from "../../sqlServer/querys/dataMart/deleveryByD
import { addDays, format } from "date-fns"; import { addDays, format } from "date-fns";
export const getDeliveryByDateRange = async (data: any | null) => { export const getDeliveryByDateRange = async (data: any | null) => {
const { data: plantToken, error: plantError } = await tryCatch( // const { data: plantToken, error: plantError } = await tryCatch(
db.select().from(settings).where(eq(settings.name, "plantToken")) // db.select().from(settings).where(eq(settings.name, "plantToken"))
); // );
if (plantError) { // if (plantError) {
return { // return {
success: false, // success: false,
message: "Error getting Settings", // message: "Error getting Settings",
data: plantError, // data: plantError,
}; // };
} // }
let deliverys: any = []; let deliverys: any = [];
let updatedQuery = deliveryByDateRange; let updatedQuery = deliveryByDateRange;

View File

@@ -4,18 +4,21 @@ import { settings } from "../../../../database/schema/settings.js";
import { tryCatch } from "../../../globalUtils/tryCatch.js"; import { tryCatch } from "../../../globalUtils/tryCatch.js";
import { query } from "../../sqlServer/prodSqlServer.js"; import { query } from "../../sqlServer/prodSqlServer.js";
import { openOrders } from "../../sqlServer/querys/dataMart/openOrders.js"; import { openOrders } from "../../sqlServer/querys/dataMart/openOrders.js";
import { serverSettings } from "../../server/controller/settings/getSettings.js";
export const getOpenOrders = async (data: any | null) => { export const getOpenOrders = async (data: any | null) => {
const { data: plantToken, error: plantError } = await tryCatch( // const { data: plantToken, error: plantError } = await tryCatch(
db.select().from(settings).where(eq(settings.name, "plantToken")) // db.select().from(settings).where(eq(settings.name, "plantToken"))
); // );
if (plantError) { // if (plantError) {
return { // return {
success: false, // success: false,
message: "Error getting Settings", // message: "Error getting Settings",
data: plantError, // data: plantError,
}; // };
} // }
const plantToken = serverSettings.filter((n) => n.name === "plantToken");
let orders: any = []; let orders: any = [];
let updatedQuery = openOrders; let updatedQuery = openOrders;

View File

@@ -3,9 +3,11 @@ import {apiReference} from "@scalar/hono-api-reference";
import { settings } from "../../../../database/schema/settings.js"; import { settings } from "../../../../database/schema/settings.js";
import { db } from "../../../../database/dbclient.js"; import { db } from "../../../../database/dbclient.js";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import { getSettings } from "../../server/controller/settings/getSettings.js";
const app = new OpenAPIHono(); const app = new OpenAPIHono();
const plantToken = await db.select().from(settings).where(eq(settings.name, "plantToken")); const serverSettings = await getSettings();
const plantToken = serverSettings.filter((n) => n.name === "plantToken") as any; //await db.select().from(settings).where(eq(settings.name, "plantToken"));
let pToken = plantToken[0]?.value; let pToken = plantToken[0]?.value;
const testServers = ["test1", "test2", "test3"]; const testServers = ["test1", "test2", "test3"];

View File

@@ -0,0 +1,35 @@
// goTransport.js
import { pino } from "pino";
import build from "pino-abstract-transport";
const pinoLogLevels: any = {
10: "trace",
20: "debug",
30: "info",
40: "warn",
50: "error",
60: "fatal",
};
export default async function buildGoTransport() {
try {
return build(async function (source) {
for await (let obj of source) {
// Insert log entry into the PostgreSQL database using Drizzle ORM
// convert to the name to make it more easy to find later :P
const levelName = pinoLogLevels[obj.level] || "unknown";
// await db.insert(logs).values({
// level: levelName,
// username: obj?.username.toLowerCase(),
// service: obj?.service.toLowerCase(),
// message: obj.msg,
// });
console.log(`Go log level: ${levelName}`);
}
});
} catch (err) {
console.error("Error inserting log into database:", err);
}
}

View File

@@ -18,6 +18,14 @@ const transport = pino.transport({
{ {
target: "./dbTransport.js", target: "./dbTransport.js",
}, },
// Only log to Go if LST_USE_GO=true
...(process.env.LST_USE_GO === "true"
? [
{
target: "./goTransport.js", // New transport for Go
},
]
: []),
], ],
}); });

View File

@@ -12,14 +12,17 @@ import stream from "./routes/streamLogs.js";
const app = new OpenAPIHono(); const app = new OpenAPIHono();
const routes = [clearLog, createNewLog, getLogs, stream] as const; const routes = [clearLog, createNewLog, getLogs, stream] as const;
const setting = await db.select().from(settings); //const setting = await db.select().from(settings);
const appRoutes = routes.forEach((route) => { const appRoutes = routes.forEach((route) => {
app.route("/logger", route); app.route("/logger", route);
}); });
app.all("/logger/*", (c) => { app.all("/logger/*", (c) => {
return c.json({success: false, message: "You have encounters a log route that dose not exist."}); return c.json({
success: false,
message: "You have encounters a log route that dose not exist.",
});
}); });
// run the clean up job ones on server restart/crash/update and then once a date // run the clean up job ones on server restart/crash/update and then once a date

View File

@@ -19,7 +19,7 @@ export const isMainMatStaged = async (lot: any) => {
(m: any) => m.HumanReadableId === lot.machineID (m: any) => m.HumanReadableId === lot.machineID
); );
// we have a check on ksc side to ignore the tetra machine for now as its not updating in 2.0 // we have a check on ksc side to ignore the tetra machine for now as its not updating in 2.0
if (machine.StagingMainMaterialMandatory === 0) { if (!machine[0].StagingMainMaterialMandatory) {
createLog( createLog(
"info", "info",
"mainMaterial", "mainMaterial",

View File

@@ -1,6 +1,7 @@
import { createLog } from "../../../../../logger/logger.js"; import { createLog } from "../../../../../logger/logger.js";
import { pickedup } from "../../../../../ocme/controller/pickedup.js"; import { pickedup } from "../../../../../ocme/controller/pickedup.js";
import { triggerScanner } from "../../../../../ocme/controller/triggerCamera.js"; import { triggerScanner } from "../../../../../ocme/controller/triggerCamera.js";
import { serverSettings } from "../../../../../server/controller/settings/getSettings.js";
let lastProcessedTimestamp = 0; let lastProcessedTimestamp = 0;
@@ -10,13 +11,16 @@ export const palletSendTag = async (tagData: any) => {
* We will only trigger the camera and removal of pending tags * We will only trigger the camera and removal of pending tags
*/ */
const ocmeActive = serverSettings.filter((n) => n.name === "ocmeService");
const tagTime = new Date(tagData.state.timestamp).getTime(); const tagTime = new Date(tagData.state.timestamp).getTime();
// Only process if this is a new timestamp within the last 5 seconds // Only process if this is a new timestamp within the last 5 seconds
if ( if (
tagTime !== lastProcessedTimestamp && tagTime !== lastProcessedTimestamp &&
Date.now() - tagTime <= 5000 && Date.now() - tagTime <= 5000 &&
tagData.value tagData.value &&
ocmeActive[0].value === "1"
) { ) {
lastProcessedTimestamp = tagTime; lastProcessedTimestamp = tagTime;
//console.log(tagData.state.timestamp); //console.log(tagData.state.timestamp);
@@ -47,7 +51,8 @@ export const palletSendTag = async (tagData: any) => {
if ( if (
tagTime !== lastProcessedTimestamp && tagTime !== lastProcessedTimestamp &&
Date.now() - tagTime <= 5000 && Date.now() - tagTime <= 5000 &&
!tagData.value !tagData.value &&
ocmeActive[0].value === "1"
) { ) {
await pickedup({ runningNr: 1234, all: true, areaFrom: "wrapper_1" }); await pickedup({ runningNr: 1234, all: true, areaFrom: "wrapper_1" });
} }

View File

@@ -1,17 +1,56 @@
import axios from "axios";
import { db } from "../../../../../database/dbclient.js"; import { db } from "../../../../../database/dbclient.js";
import { settings } from "../../../../../database/schema/settings.js"; import { settings } from "../../../../../database/schema/settings.js";
import { tryCatch } from "../../../../globalUtils/tryCatch.js";
import { createLog } from "../../../logger/logger.js"; import { createLog } from "../../../logger/logger.js";
import type { Settings } from "../../../../types/settings.js";
export let serverSettings: Settings[];
export const getSettings = async () => { export const getSettings = async () => {
createLog("info", "lst", "server", "Settings are being grabbed"); const settingsType = process.env.LST_USE_GO;
let serverSettings; createLog(
"info",
"lst",
"server",
`Settings are being grabbed from: ${
settingsType === "true" ? "Go backend" : "Localbackend"
}`
);
try { const baseUrl = process.env.LST_BASE_URL;
serverSettings = await db.select().from(settings);
//.where(sql`${userRole} = ANY(roles)`); if (settingsType === "true") {
} catch (error) { const { data, error } = (await tryCatch(
createLog("error", "lst", "server", "There was an error getting the settings"); axios.get(`${baseUrl}/api/v1/settings`)
)) as any;
if (error) {
createLog(
"error",
"lst",
"server",
"There was an error getting the settings"
);
throw new Error("There was an error getting the settings"); throw new Error("There was an error getting the settings");
} }
serverSettings = data.data.data;
}
if (settingsType !== "true") {
try {
serverSettings = (await db.select().from(settings)) as any;
//.where(sql`${userRole} = ANY(roles)`);
} catch (error) {
createLog(
"error",
"lst",
"server",
"There was an error getting the settings"
);
throw new Error("There was an error getting the settings");
}
}
return serverSettings; return serverSettings;
}; };

View File

@@ -6,6 +6,7 @@ import { settings } from "../../../database/schema/settings.js";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import { installed } from "../../index.js"; import { installed } from "../../index.js";
import { checkHostnamePort } from "../../globalUtils/pingServer.js"; import { checkHostnamePort } from "../../globalUtils/pingServer.js";
import { serverSettings } from "../server/controller/settings/getSettings.js";
let pool: any; let pool: any;
let connected: boolean = false; let connected: boolean = false;
@@ -23,10 +24,16 @@ export const initializeProdPool = async () => {
return { success: false, message: "The server is not installed." }; return { success: false, message: "The server is not installed." };
} }
const dbServer = await db // const dbServer = await db
.select() // .select()
.from(settings) // .from(settings)
.where(eq(settings.name, "dbServer")); // .where(eq(settings.name, "dbServer"));
// the move to the go version for settings
const dbServer = serverSettings.filter(
(n: any) => n.name === "dbServer"
) as any;
const serverUp = await checkHostnamePort(`${dbServer[0].value}:1433`); const serverUp = await checkHostnamePort(`${dbServer[0].value}:1433`);
if (!serverUp) { if (!serverUp) {
@@ -44,10 +51,14 @@ export const initializeProdPool = async () => {
} }
// make sure the server is not set to localhost this will prevent some weird issues later but can be localhost on the dev // make sure the server is not set to localhost this will prevent some weird issues later but can be localhost on the dev
const serverLoc = await db // const serverLoc = await db
.select() // .select()
.from(settings) // .from(settings)
.where(eq(settings.name, "dbServer")); // .where(eq(settings.name, "dbServer"));
const serverLoc = serverSettings.filter(
(n: any) => n.name === "dbServer"
) as any;
if ( if (
serverLoc[0].value === "localhost" && serverLoc[0].value === "localhost" &&
process.env.NODE_ENV !== "development" process.env.NODE_ENV !== "development"
@@ -134,10 +145,14 @@ export async function query(queryToRun: string, name: string) {
/** /**
* Just an extra catch incase someone tried to run a query while we were not connected to the server or sql server * Just an extra catch incase someone tried to run a query while we were not connected to the server or sql server
*/ */
const dbServer = await db // const dbServer = await db
.select() // .select()
.from(settings) // .from(settings)
.where(eq(settings.name, "dbServer")); // .where(eq(settings.name, "dbServer"));
const dbServer = serverSettings.filter(
(n: any) => n.name === "dbServer"
) as any;
const serverUp = await checkHostnamePort(`${dbServer[0].value}:1433`); const serverUp = await checkHostnamePort(`${dbServer[0].value}:1433`);
if (!serverUp) { if (!serverUp) {
@@ -170,10 +185,13 @@ export async function query(queryToRun: string, name: string) {
/** /**
* We no longer need to send over the plant token change as we do it inside the query function. * We no longer need to send over the plant token change as we do it inside the query function.
*/ */
const plantToken = await db // const plantToken = await db
.select() // .select()
.from(settings) // .from(settings)
.where(eq(settings.name, "plantToken")); // .where(eq(settings.name, "plantToken"));
const plantToken = serverSettings.filter(
(n: any) => n.name === "plantToken"
) as any;
const query = queryToRun.replaceAll("test1", plantToken[0].value); const query = queryToRun.replaceAll("test1", plantToken[0].value);
try { try {

View File

@@ -38,6 +38,11 @@ V_Artikel.ArtikelvariantenTypBez = 'Glue' or
V_Artikel.ArtikelvariantenTypBez = 'Top Frame' or V_Artikel.ArtikelvariantenTypBez = 'Top Frame' or
V_Artikel.ArtikelvariantenTypBez = 'IML Label' or V_Artikel.ArtikelvariantenTypBez = 'IML Label' or
V_Artikel.ArtikelvariantenTypBez = 'Purch EBM Bottle' or V_Artikel.ArtikelvariantenTypBez = 'Purch EBM Bottle' or
V_Artikel.ArtikelvariantenTypBez = 'Purchased Spout' or
V_Artikel.ArtikelvariantenTypBez = 'Gaylord' or
V_Artikel.ArtikelvariantenTypBez = 'Misc. Packaging' or
V_Artikel.ArtikelvariantenTypBez = 'Sleeve' or
V_Artikel.ArtikelvariantenTypBez = 'Plastic Bag' or
V_Artikel.ArtikelvariantenTypBez = 'Purch Spout' V_Artikel.ArtikelvariantenTypBez = 'Purch Spout'
THEN 'PKG' THEN 'PKG'
WHEN V_Artikel.ArtikelvariantenTypBez='HD-PE' or WHEN V_Artikel.ArtikelvariantenTypBez='HD-PE' or

View File

@@ -1,16 +1,22 @@
import { db } from "../../../../database/dbclient.js"; import { db } from "../../../../database/dbclient.js";
import { settings } from "../../../../database/schema/settings.js"; import { settings } from "../../../../database/schema/settings.js";
import { createLog } from "../../logger/logger.js"; import { createLog } from "../../logger/logger.js";
import { serverSettings } from "../../server/controller/settings/getSettings.js";
export const prodSqlConfig = async () => { export const prodSqlConfig = async () => {
try { try {
const serverSetting = await db.select().from(settings); //const serverSetting = await db.select().from(settings);
const serverSetting = serverSettings as any;
// create dummy type data // create dummy type data
const server = serverSetting.filter((s) => s.name === "dbServer"); const server = serverSetting.filter((s: any) => s.name === "dbServer");
const plantToken = serverSetting.filter((s) => s.name === "plantToken"); const plantToken = serverSetting.filter(
const dbUser = serverSetting.filter((s) => s.name === "dbUser"); (s: any) => s.name === "plantToken"
);
const dbUser = serverSetting.filter((s: any) => s.name === "dbUser");
// if erroring out double check the password was actually encoded before saving // if erroring out double check the password was actually encoded before saving
const dbPassword = serverSetting.filter((s) => s.name === "dbPass"); const dbPassword = serverSetting.filter(
(s: any) => s.name === "dbPass"
);
const sqlConfig = { const sqlConfig = {
server: server[0].value, server: server[0].value,
@@ -37,7 +43,9 @@ export const prodSqlConfig = async () => {
"info", "info",
"lst", "lst",
"sqlProd", "sqlProd",
`${JSON.stringify(error)} "There was an error getting/setting up the config for the prod sql server."` `${JSON.stringify(
error
)} "There was an error getting/setting up the config for the prod sql server."`
); );
} }
}; };

View File

@@ -10,6 +10,7 @@ import { settings } from "../../../database/schema/settings.js";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import { postLabelData } from "../ocme/controller/postRunningNr.js"; import { postLabelData } from "../ocme/controller/postRunningNr.js";
import { tryCatch } from "../../globalUtils/tryCatch.js"; import { tryCatch } from "../../globalUtils/tryCatch.js";
import { serverSettings } from "../server/controller/settings/getSettings.js";
let tcpServer: net.Server; let tcpServer: net.Server;
let tcpSockets: Set<net.Socket> = new Set(); let tcpSockets: Set<net.Socket> = new Set();
@@ -18,31 +19,33 @@ let isServerRunning = false;
/** /**
* add in proper logging * add in proper logging
*/ */
const tcpPort = await db // const tcpPort = await db
.select() // .select()
.from(settings) // .from(settings)
.where(eq(settings.name, "tcpPort")); // .where(eq(settings.name, "tcpPort"));
const app = new OpenAPIHono(); const app = new OpenAPIHono();
export const startTCPServer = () => { export const startTCPServer = () => {
const tcpPort = serverSettings.filter((n) => n.name === "tcpPort");
if (isServerRunning) if (isServerRunning)
return { success: false, message: "Server is already running" }; return { success: false, message: "Server is already running" };
tcpServer = net.createServer(async (socket) => { tcpServer = net.createServer(async (socket) => {
createLog("debug", "tcp", "tcp", "Client connected"); createLog("debug", "tcp", "tcp", "Client connected");
const { data: setting, error: settingError } = await tryCatch( // const { data: setting, error: settingError } = await tryCatch(
db.select().from(settings) // db.select().from(settings)
); // );
if (settingError) { // if (settingError) {
return { // return {
success: false, // success: false,
message: "Error getting settings", // message: "Error getting settings",
data: [], // data: [],
}; // };
} // }
const settingCheck = setting.filter( const settingCheck = serverSettings.filter(
(newData) => newData.name === "ocmeService" (newData) => newData.name === "ocmeService"
); );