diff --git a/server/server.js b/server/server.js index e11254df2..36a2fe099 100644 --- a/server/server.js +++ b/server/server.js @@ -561,12 +561,9 @@ exports.entryPage = "dashboard"; try { let monitorList = await sendMonitorList(socket); for (let monitorId in monitorList) { - if (monitorList[monitorId].name === monitor.name) { - throw new Error("duplicatedMonitorNameWarning"); - } - if (monitorList[monitorId].url === monitor.url) { - throw new Error("duplicatedMonitorUrlWarning"); - } + let monitorFromList = monitorList[monitorId]; + verifyPropertyAndThrowIfMatch(monitorFromList, monitor, "name"); + verifyPropertyAndThrowIfMatch(monitorFromList, monitor, "url"); } callback({ ok: true, @@ -1548,6 +1545,13 @@ async function shutdownFunction(signal) { await Database.close(); } +function verifyPropertyAndThrowIfMatch(monitorFromList, incomingMonitor, property) { + let capitalizedProperty = property.charAt(0).toUpperCase() + property.slice(1); + if (monitorFromList.id !== incomingMonitor.id && monitorFromList[property] === incomingMonitor[property]) { + throw new Error(`duplicatedMonitor${capitalizedProperty}Warning`); + } +} + function finalFunction() { console.log("Graceful shutdown successful!"); }