From 2d0896e40bb1db776bd5504405fa5525bca97219 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Tue, 21 Jul 2020 14:39:30 +0300
Subject: [PATCH] Allow configurable modification via webserver

---
 web-service/server/src/index.js | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/web-service/server/src/index.js b/web-service/server/src/index.js
index 04696158e..2b9eb04a1 100644
--- a/web-service/server/src/index.js
+++ b/web-service/server/src/index.js
@@ -276,6 +276,14 @@ function broadcastExcept(exc, name, ...args) {
 	}
 }
 
+function locateConfigPeer(uri) {
+	let cur_uri = uri;
+	while (cur_uri.length > 0 && !cfg_to_peer.hasOwnProperty(cur_uri)) {
+		cur_uri = cur_uri.substring(0, cur_uri.lastIndexOf('/'));
+	}
+	return (cur_uri.length > 0) ? cfg_to_peer[cur_uri] : null;
+}
+
 
 app.ws('/', (ws, req) => {
 	console.log("New web socket request");
@@ -471,11 +479,9 @@ app.ws('/', (ws, req) => {
 	 * Update certain URIs values
 	 */
 	 p.bind("update_cfg", (uri, json) => {
-		const parsedURI = stringSplitter(uri)
-		console.log("URI", uri)
-		console.log("JSON", json)
-		if(uri_to_peer[parsedURI]){
-			let peer = uri_to_peer[parsedURI]
+		let peer = locateConfigPeer(uri);
+
+		if (peer) {
 			peer.send("update_cfg", uri, json)
 		}else{
 			console.log("Failed to update the configuration uri", uri)
-- 
GitLab