diff --git a/routes/products/[productName]/[productPlatform]/configuration.js b/routes/products/[productName]/[productPlatform]/configuration.js new file mode 100644 index 0000000..1882e85 --- /dev/null +++ b/routes/products/[productName]/[productPlatform]/configuration.js @@ -0,0 +1,12 @@ +const express = require("express") +const productsService = require("../../../../services/productsService") +const router = express.Router({ mergeParams: true }) + +router.get("/", async (req, res) => { + const { productName, productPlatform } = req.params + await productsService.canAccess(productName) + const configs = await productsService.getInstallerConfig(productName, productPlatform) + return res.status(200).json(configs) +}) + +module.exports = router \ No newline at end of file diff --git a/routes/products/[productName]/[productPlatform]/requirements.js b/routes/products/[productName]/[productPlatform]/requirements.js index b77f80b..e349180 100644 --- a/routes/products/[productName]/[productPlatform]/requirements.js +++ b/routes/products/[productName]/[productPlatform]/requirements.js @@ -5,8 +5,8 @@ const router = express.Router({ mergeParams: true }) router.get("/", async (req, res) => { const { productName, productPlatform } = req.params await productsService.canAccess(productName) - const files = await productsService.getRequirementsForPlatform(productName, productPlatform) - return res.status(200).json(files) + const requirements = await productsService.getRequirementsForPlatform(productName, productPlatform) + return res.status(200).json(requirements) }) module.exports = router \ No newline at end of file diff --git a/services/productsService.js b/services/productsService.js index 7400c98..c0d8c5d 100644 --- a/services/productsService.js +++ b/services/productsService.js @@ -144,6 +144,18 @@ async function getInstallerResources(productName) { return config["installerResources"] } +async function getInstallerConfig(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.configurations?.global || [] + const platformReqs = config.configurations?.[productPlatform] || [] + + return { ...globalReqs, ...platformReqs } +} + module.exports = { getFile, canAccess, @@ -151,6 +163,7 @@ module.exports = { getFileSha1, getProducts, getProductFiles, + getInstallerConfig, getInstallerResources, getRequirementsForPlatform } \ No newline at end of file