From 00c8b3dcbbb3767f1fa77b79d9d4129009b68361 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 21 May 2024 14:31:04 +0200 Subject: [PATCH] Implemented the interface variable in the config.js --- server/controller/config.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/server/controller/config.js b/server/controller/config.js index 6222bdcd..98b80534 100644 --- a/server/controller/config.js +++ b/server/controller/config.js @@ -10,6 +10,7 @@ const cron = require('cron-validator'); const db = require("../config/database"); const fs = require('fs'); const path = require('path'); +const interfaces = require('../util/loadInterfaces'); const configDefaults = { ping: "25", @@ -20,14 +21,23 @@ const configDefaults = { ooklaId: "none", libreId: "none", password: "none", - passwordLevel: "none" + passwordLevel: "none", + interface: "none" } module.exports.insertDefaults = async () => { let insert = []; for (let key in configDefaults) { - if (!(await config.findOne({where: {key: key}}))) + if (key !== "interface" && !(await config.findOne({where: {key: key}}))) insert.push({key: key, value: configDefaults[key]}); + + if (key === "interface") { + const ips = Object.keys(interfaces.interfaces); + let ip = ips.length > 0 ? ips[0] : "none"; + + if (!(await config.findOne({where: {key: key}}))) + insert.push({key: key, value: ip}); + } } await config.bulkCreate(insert, {validate: true}); @@ -94,6 +104,9 @@ module.exports.validateInput = async (key, value) => { if (key === "cron" && !cron.isValidCron(value.toString())) return "Not a valid cron expression"; + if (key === "interface" && !Object.keys(interfaces.interfaces).includes(value)) + return "The provided interface does not exist"; + if (configDefaults[key] === undefined) return "The provided key does not exist";