feat(admin): moved server build/update to full app
All checks were successful
Build and Push LST Docker Image / docker (push) Successful in 2m27s
All checks were successful
Build and Push LST Docker Image / docker (push) Successful in 2m27s
This commit is contained in:
132
backend/system/serverData.controller.ts
Normal file
132
backend/system/serverData.controller.ts
Normal file
@@ -0,0 +1,132 @@
|
||||
import { sql } from "drizzle-orm";
|
||||
import { db } from "../db/db.controller.js";
|
||||
import {
|
||||
type NewServerData,
|
||||
serverData,
|
||||
} from "../db/schema/serverData.schema.js";
|
||||
import { createLogger } from "../logger/logger.controller.js";
|
||||
import { tryCatch } from "../utils/trycatch.utils.js";
|
||||
|
||||
const servers: NewServerData[] = [
|
||||
{
|
||||
name: "Test server 1",
|
||||
server: "USMCD1VMS036",
|
||||
plantToken: "test3",
|
||||
idAddress: "10.193.0.56",
|
||||
greatPlainsPlantCode: "00",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Test server 2",
|
||||
server: "USIOW1VMS036",
|
||||
plantToken: "test2",
|
||||
idAddress: "10.75.0.56",
|
||||
greatPlainsPlantCode: "00",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Lima",
|
||||
server: "USLIM1VMS006",
|
||||
plantToken: "uslim1",
|
||||
idAddress: "10.53.0.26",
|
||||
greatPlainsPlantCode: "50",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Houston",
|
||||
server: "ushou1VMS006",
|
||||
plantToken: "ushou1",
|
||||
idAddress: "10.195.0.26",
|
||||
greatPlainsPlantCode: "20",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Dayton",
|
||||
server: "usday1VMS006",
|
||||
plantToken: "usday1",
|
||||
idAddress: "10.44.0.56",
|
||||
greatPlainsPlantCode: "80",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "West Bend",
|
||||
server: "usweb1VMS006",
|
||||
plantToken: "usweb1",
|
||||
idAddress: "10.80.0.26",
|
||||
greatPlainsPlantCode: "65",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Jeff City",
|
||||
server: "usjci1VMS006",
|
||||
plantToken: "usjci",
|
||||
idAddress: "10.167.0.26",
|
||||
greatPlainsPlantCode: "40",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
{
|
||||
name: "Sherman",
|
||||
server: "usshe1vms006",
|
||||
plantToken: "usshe1",
|
||||
idAddress: "10.205.0.26",
|
||||
greatPlainsPlantCode: "21",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
serverLoc: "D$\\LST_V3",
|
||||
buildNumber: 1,
|
||||
},
|
||||
];
|
||||
|
||||
export const serversChecks = async () => {
|
||||
const log = createLogger({ module: "system", subModule: "serverData" });
|
||||
const { data, error } = await tryCatch(
|
||||
db
|
||||
.insert(serverData)
|
||||
.values(servers)
|
||||
.onConflictDoUpdate({
|
||||
target: serverData.plantToken,
|
||||
set: {
|
||||
server: sql`excluded.server`,
|
||||
name: sql`excluded.name`,
|
||||
idAddress: sql`excluded."id_address"`,
|
||||
greatPlainsPlantCode: sql`excluded.great_plains_plant_code`,
|
||||
contactEmail: sql`excluded."contact_email"`,
|
||||
contactPhone: sql`excluded.contact_phone`,
|
||||
serverLoc: sql`excluded.server_loc`,
|
||||
},
|
||||
})
|
||||
.returning(),
|
||||
);
|
||||
|
||||
if (error) {
|
||||
log.error(
|
||||
{ error: error },
|
||||
"There was an error when adding or updating the servers.",
|
||||
);
|
||||
}
|
||||
|
||||
if (data) {
|
||||
log.info({}, "All Servers were added/updated");
|
||||
}
|
||||
};
|
||||
43
backend/system/serverData.route.ts
Normal file
43
backend/system/serverData.route.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { type Response, Router } from "express";
|
||||
import { db } from "../db/db.controller.js";
|
||||
import { serverData } from "../db/schema/serverData.schema.js";
|
||||
import { apiReturn } from "../utils/returnHelper.utils.js";
|
||||
import { tryCatch } from "../utils/trycatch.utils.js";
|
||||
|
||||
// export const updateSetting = async (setting: Setting) => {
|
||||
// // TODO: when the setting is a feature setting we will need to have it run each kill switch on the crons well just stop them and during a reset it just wont start them
|
||||
// // TODO: when the setting is a system we will need to force an app restart
|
||||
// // TODO: when the setting is standard we don't do anything.
|
||||
// };
|
||||
|
||||
const r = Router();
|
||||
|
||||
r.get("/", async (_, res: Response) => {
|
||||
const { data: sName, error: sError } = await tryCatch(
|
||||
db.select().from(serverData).orderBy(serverData.name),
|
||||
);
|
||||
|
||||
if (sError) {
|
||||
return apiReturn(res, {
|
||||
success: false,
|
||||
level: "error",
|
||||
module: "system",
|
||||
subModule: "serverData",
|
||||
message: `There was an error getting the servers `,
|
||||
data: [sError],
|
||||
status: 400,
|
||||
});
|
||||
}
|
||||
|
||||
return apiReturn(res, {
|
||||
success: true,
|
||||
level: "info",
|
||||
module: "system",
|
||||
subModule: "serverData",
|
||||
message: `All current servers`,
|
||||
data: sName ?? [],
|
||||
status: 200,
|
||||
});
|
||||
});
|
||||
|
||||
export default r;
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { Express } from "express";
|
||||
import { requireAuth } from "../middleware/auth.middleware.js";
|
||||
import getServers from "./serverData.route.js";
|
||||
import getSettings from "./settings.route.js";
|
||||
import updSetting from "./settingsUpdate.route.js";
|
||||
import stats from "./stats.route.js";
|
||||
@@ -10,6 +11,7 @@ export const setupSystemRoutes = (baseUrl: string, app: Express) => {
|
||||
app.use(`${baseUrl}/api/stats`, stats);
|
||||
app.use(`${baseUrl}/api/mobile`, mobile);
|
||||
app.use(`${baseUrl}/api/settings`, getSettings);
|
||||
app.use(`${baseUrl}/api/servers`, getServers);
|
||||
app.use(`${baseUrl}/api/settings`, requireAuth, updSetting);
|
||||
|
||||
// all other system should be under /api/system/*
|
||||
|
||||
Reference in New Issue
Block a user