diff --git a/subflows/user-conversion.js b/subflows/user-conversion.js index d257403..cea2eb3 100644 --- a/subflows/user-conversion.js +++ b/subflows/user-conversion.js @@ -1,54 +1,36 @@ // Get the user ID list from global context - -const users = global.get("userIDList","diskCon") +const users = global.get("userIDList", "diskCon") || {} // Initialize variables +let userTrigger = "none" +let statusTxt = "" -let userTrigger = {} -let userFirstName = {} -let userLastName = {} -let hassUserID = {} -let statusTxt = {} - -// Check if the user ID is in the payload or data - -if (msg.payload && msg.payload.context && msg.payload.context.user_id) { +// Extract user ID from the message +if (msg.payload?.context?.user_id) { userTrigger = msg.payload.context.user_id -} else if (msg.data && msg.data.context && msg.data.context.user_id) { +} else if (msg.data?.context?.user_id) { userTrigger = msg.data.context.user_id -} else { - userTrigger = "none" } -// Set the status message based on the user ID - -let successTxt = `User: ${users[userTrigger].firstName}` -let errorTxt = "User not found" - -if (userTrigger === "none") { - statusTxt = errorTxt +// Validate userTrigger and set status message +if (userTrigger === "none" || !users[userTrigger]) { + statusTxt = "User not found" + node.error(`User ID '${userTrigger}' not found in user list.`) + return null // Stop execution if user is not found } else { - statusTxt = successTxt + const user = users[userTrigger] + statusTxt = `User: ${user.firstName}` + msg.user = { ...user } // Avoid mutating the original msg } -// Set the user's information in the message - -msg.user = users[userTrigger] - // Create the status message - -let statusMsg = { - "status": { - "fill": "green", - "shape": "dot", - "text": `${statusTxt} at ${new Date().toLocaleString()}` +const statusMsg = { + status: { + fill: "green", + shape: "dot", + text: `${statusTxt} at ${new Date().toLocaleString()}` } } // Send the message and status message to the output nodes - -if (userTrigger === "none") { - node.error("User not found") -} else { - node.send([msg,statusMsg]) -} \ No newline at end of file +node.send([msg, statusMsg]) \ No newline at end of file