feat(intial auth): intial auth setup for the scanner
Some checks failed
Build and Push LST Docker Image / docker (push) Has been cancelled
Some checks failed
Build and Push LST Docker Image / docker (push) Has been cancelled
This commit is contained in:
@@ -34,7 +34,7 @@ const servers: NewServerData[] = [
|
||||
name: "Lima",
|
||||
server: "USLIM1VMS006",
|
||||
plantToken: "uslim1",
|
||||
idAddress: "10.53.0.26",
|
||||
idAddress: "10.53.0.26", // port opened 3000 2222
|
||||
greatPlainsPlantCode: "50",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
@@ -56,7 +56,7 @@ const servers: NewServerData[] = [
|
||||
name: "Dayton",
|
||||
server: "usday1VMS006",
|
||||
plantToken: "usday1",
|
||||
idAddress: "10.44.0.56", // 3000 opened and working
|
||||
idAddress: "10.44.0.56", // ports opened 3000 and 2222
|
||||
greatPlainsPlantCode: "80",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
@@ -122,7 +122,7 @@ const servers: NewServerData[] = [
|
||||
name: "Marked Tree",
|
||||
server: "USMAR1VMS006",
|
||||
plantToken: "usmar1",
|
||||
idAddress: "10.206.9.26",
|
||||
idAddress: "10.206.9.26", // 3000,2222 requested REQ0236838
|
||||
greatPlainsPlantCode: "90",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
@@ -144,7 +144,7 @@ const servers: NewServerData[] = [
|
||||
name: "Bowling Green 1",
|
||||
server: "USBOW1VMS006",
|
||||
plantToken: "usbow1",
|
||||
idAddress: "10.25.0.26", // 3000 is open REQ0236527
|
||||
idAddress: "10.25.0.26", // 3000 is open REQ0236527 2222 already open
|
||||
greatPlainsPlantCode: "55",
|
||||
contactEmail: "",
|
||||
contactPhone: "",
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
import fs from "node:fs";
|
||||
import { Router } from "express";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import { db } from "../db/db.controller.js";
|
||||
import { scanLog } from "../db/schema/scanlog.schema.js";
|
||||
import { apiReturn } from "../utils/returnHelper.utils.js";
|
||||
|
||||
const router = Router();
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const downloadDir = path.resolve(__dirname, "../../downloads/mobile");
|
||||
const projectRoot = path.resolve("./lstMobile"); // adjust as needed
|
||||
const appJsonPath = path.join(projectRoot, "app.json");
|
||||
|
||||
const currentApk = {
|
||||
fileName: "lst-mobile.apk",
|
||||
};
|
||||
|
||||
router.get("/version", async (req, res) => {
|
||||
const baseUrl = `${req.protocol}://${req.get("host")}`;
|
||||
|
||||
const raw = fs.readFileSync(appJsonPath, "utf-8");
|
||||
const config = JSON.parse(raw);
|
||||
|
||||
const exp = config.expo;
|
||||
|
||||
res.json({
|
||||
packageName: exp.android?.package,
|
||||
versionName: exp.version,
|
||||
versionCode: exp.android?.versionCode,
|
||||
minSupportedVersionCode: exp?.android?.minSupportedVersionCode ?? 0,
|
||||
downloadUrl: `${baseUrl}/lst/api/mobile/apk/latest`,
|
||||
});
|
||||
});
|
||||
|
||||
router.get("/apk/latest", (_, res) => {
|
||||
const apkPath = path.join(downloadDir, currentApk.fileName);
|
||||
|
||||
if (!fs.existsSync(apkPath)) {
|
||||
return res.status(404).json({ success: false, message: "APK not found" });
|
||||
}
|
||||
|
||||
res.setHeader("Content-Type", "application/vnd.android.package-archive");
|
||||
res.setHeader(
|
||||
"Content-Disposition",
|
||||
`attachment; filename="${currentApk.fileName}"`,
|
||||
);
|
||||
|
||||
return res.sendFile(apkPath);
|
||||
});
|
||||
|
||||
router.get("/apk/ehs", (_, res) => {
|
||||
const apkPath = path.join(downloadDir, "EHS.apk");
|
||||
|
||||
if (!fs.existsSync(apkPath)) {
|
||||
return res.status(404).json({ success: false, message: "APK not found" });
|
||||
}
|
||||
|
||||
res.setHeader("Content-Type", "application/vnd.android.package-archive");
|
||||
res.setHeader("Content-Disposition", `attachment; filename="EHS.apk}"`);
|
||||
|
||||
return res.sendFile(apkPath);
|
||||
});
|
||||
|
||||
router.post("/logs", async (req, res) => {
|
||||
const body = req.body;
|
||||
const newLog = await db
|
||||
.insert(scanLog)
|
||||
.values({
|
||||
scannerId: body.data.scannerId,
|
||||
message: body.data.message,
|
||||
prompt: body.data.prompt,
|
||||
commandDescription: body.data.commandDescription,
|
||||
status: body.data.status,
|
||||
lines: body.data.lines,
|
||||
})
|
||||
.returning();
|
||||
|
||||
return apiReturn(res, {
|
||||
success: true,
|
||||
level: "info",
|
||||
module: "mobile",
|
||||
subModule: "scan logs",
|
||||
message: `New log from ${body.data.scannerId}`,
|
||||
data: newLog,
|
||||
status: 200,
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
||||
@@ -4,12 +4,10 @@ import getServers from "./serverData.route.js";
|
||||
import getSettings from "./settings.route.js";
|
||||
import updSetting from "./settingsUpdate.route.js";
|
||||
import stats from "./stats.route.js";
|
||||
import mobile from "./system.mobileApp.js";
|
||||
|
||||
export const setupSystemRoutes = (baseUrl: string, app: Express) => {
|
||||
//stats will be like this as we dont need to change this
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user