From 706ddfb95aabf519992b3ca142ade1fdc39b620c Mon Sep 17 00:00:00 2001 From: azures04 Date: Sun, 8 Feb 2026 19:49:30 +0100 Subject: [PATCH] Added installer resources to get app icon and eula --- .../[productName]/[productPlatform]/download.js | 2 +- .../[productName]/[productPlatform]/manifest.js | 2 +- .../[productName]/[productPlatform]/requirements.js | 2 +- routes/products/[productName]/installerResource.js | 12 ++++++++++++ services/productsFileService.js | 13 +++++++++++-- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 routes/products/[productName]/installerResource.js diff --git a/routes/products/[productName]/[productPlatform]/download.js b/routes/products/[productName]/[productPlatform]/download.js index d649a84..62bde6c 100644 --- a/routes/products/[productName]/[productPlatform]/download.js +++ b/routes/products/[productName]/[productPlatform]/download.js @@ -4,7 +4,7 @@ const router = express.Router({ mergeParams: true }) router.get(/.*/, async (req, res, next) => { const { productName, productPlatform } = req.params - await productsFileService.canAccess(productName, productPlatform) + await productsFileService.canAccess(productName) const file = await productsFileService.getFile(req.url, productName, productPlatform) return res.status(200).download(file.path) }) diff --git a/routes/products/[productName]/[productPlatform]/manifest.js b/routes/products/[productName]/[productPlatform]/manifest.js index 414c45d..cf879d9 100644 --- a/routes/products/[productName]/[productPlatform]/manifest.js +++ b/routes/products/[productName]/[productPlatform]/manifest.js @@ -4,7 +4,7 @@ const router = express.Router({ mergeParams: true }) router.get("/", async (req, res) => { const { productName, productPlatform } = req.params - await productsFileService.canAccess(productName, productPlatform) + await productsFileService.canAccess(productName) const files = await productsFileService.getProductFiles(productName, productPlatform) return res.status(200).json(files) }) diff --git a/routes/products/[productName]/[productPlatform]/requirements.js b/routes/products/[productName]/[productPlatform]/requirements.js index ab11332..d7ddaca 100644 --- a/routes/products/[productName]/[productPlatform]/requirements.js +++ b/routes/products/[productName]/[productPlatform]/requirements.js @@ -4,7 +4,7 @@ const router = express.Router({ mergeParams: true }) router.get("/", async (req, res) => { const { productName, productPlatform } = req.params - await productsFileService.canAccess(productName, productPlatform) + await productsFileService.canAccess(productName) const files = await productsFileService.getRequirementsForPlatform(productName, productPlatform) return res.status(200).json(files) }) diff --git a/routes/products/[productName]/installerResource.js b/routes/products/[productName]/installerResource.js new file mode 100644 index 0000000..a055ce9 --- /dev/null +++ b/routes/products/[productName]/installerResource.js @@ -0,0 +1,12 @@ +const express = require("express") +const productsFileService = require("../../../services/productsFileService") +const router = express.Router({ mergeParams: true }) + +router.get("/", async (req, res) => { + const { productName } = req.params + await productsFileService.canAccess(productName) + const files = await productsFileService.getInstallerResources(productName) + return res.status(200).json(files) +}) + +module.exports = router \ No newline at end of file diff --git a/services/productsFileService.js b/services/productsFileService.js index 978f113..7400c98 100644 --- a/services/productsFileService.js +++ b/services/productsFileService.js @@ -124,18 +124,26 @@ async function getProducts() { return files } -async function getRequirementsForPlatform(productName, platform) { +async function getRequirementsForPlatform(productName, productPlatform) { const fixedPath = path.join(productsDataPath, productName, "files", ".brikcfg") if (!(await fs.promises.exists(fixedPath))) return [] const config = JSON.parse(await fs.promises.readFile(fixedPath, "utf8")) const globalReqs = config.requirements?.global || [] - const platformReqs = config.requirements?.[platform] || [] + const platformReqs = config.requirements?.[productPlatform] || [] return [...globalReqs, ...platformReqs] } +async function getInstallerResources(productName) { + const fixedPath = path.join(productsDataPath, productName, "files", ".brikcfg") + if (!(await fs.promises.exists(fixedPath))) return [] + + const config = JSON.parse(await fs.promises.readFile(fixedPath, "utf8")) + return config["installerResources"] +} + module.exports = { getFile, canAccess, @@ -143,5 +151,6 @@ module.exports = { getFileSha1, getProducts, getProductFiles, + getInstallerResources, getRequirementsForPlatform } \ No newline at end of file