41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import fs from "node:fs";
|
|
import { and, eq } from "drizzle-orm";
|
|
import { Router } from "express";
|
|
import path from "path";
|
|
import { db } from "../db/db.controller.js";
|
|
import { settings } from "../db/schema/settings.schema.js";
|
|
|
|
const router = Router();
|
|
|
|
const projectRoot = path.resolve("./lstMobile"); // adjust as needed
|
|
const appJsonPath = path.join(projectRoot, "app.json");
|
|
|
|
router.get("/", async (req, res) => {
|
|
const baseUrl = `${req.protocol}://${req.get("host")}`;
|
|
const mobileSettings = await db
|
|
.select()
|
|
.from(settings)
|
|
.where(
|
|
and(
|
|
eq(settings.moduleName, "mobile"),
|
|
eq(settings.settingType, "standard"),
|
|
),
|
|
);
|
|
|
|
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`,
|
|
settings: mobileSettings,
|
|
});
|
|
});
|
|
|
|
export default router;
|