54 lines
2.0 KiB
TypeScript
54 lines
2.0 KiB
TypeScript
// This will help maintain the server db so when we run an update it will show up here all the time.
|
|
// kinda bad too but this will help us keep the db identical.
|
|
|
|
import {db} from "../../../../database/dbclient.js";
|
|
import {serverData} from "../../../../database/schema/serverData.js";
|
|
import {createLog} from "../../logger/logger.js";
|
|
import fs from "fs";
|
|
|
|
export const serversCheckPoint = async () => {
|
|
let servers: any[] = [];
|
|
let filePath: string;
|
|
if (process.env.NODE_ENV === "development") {
|
|
filePath = "./server/services/server/utils/serverData.json";
|
|
} else {
|
|
filePath = "./dist/server/services/server/utils/serverData.json";
|
|
}
|
|
|
|
try {
|
|
const data = fs.readFileSync(filePath, "utf8");
|
|
const serverData = JSON.parse(data);
|
|
servers = serverData.servers;
|
|
} catch (err) {
|
|
console.error("Error reading JSON file:", err);
|
|
}
|
|
|
|
// get the roles
|
|
|
|
try {
|
|
for (let i = 0; i < servers.length; i++) {
|
|
const serverUpdate = await db
|
|
.insert(serverData)
|
|
.values(servers[i])
|
|
.onConflictDoUpdate({
|
|
target: serverData.plantToken,
|
|
set: {
|
|
sName: servers[i].sName,
|
|
serverDNS: servers[i].serverDNS,
|
|
active: servers[i].active,
|
|
contactEmail: servers[i].contactEmail,
|
|
contactPhone: servers[i].contactPhone,
|
|
shippingHours: servers[i].shippingHours,
|
|
customerTiAcc: servers[i].customerTiAcc,
|
|
tiPostTime: servers[i].tiPostTime,
|
|
otherSettings: servers[i].otherSettings,
|
|
},
|
|
}) // this will only update the ones that are new :D
|
|
.returning({name: serverData.sName});
|
|
}
|
|
createLog("info", "lst", "server", "Servers were just added/updated due to server startup");
|
|
} catch (error) {
|
|
createLog("error", "lst", "server", `There was an error adding/updating serverData to the db, ${error}`);
|
|
}
|
|
};
|