From cb334f41de75a8e5ddfb3f9645a0ac51f8657e2b Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 21 Nov 2025 19:28:33 -0700 Subject: [PATCH] Add safety check to ensure the response we got was for one of our requests. --- module/utils/QueryManager.mjs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/module/utils/QueryManager.mjs b/module/utils/QueryManager.mjs index 09839a0..225d43f 100644 --- a/module/utils/QueryManager.mjs +++ b/module/utils/QueryManager.mjs @@ -6,8 +6,8 @@ import { QueryStatus } from "../apps/QueryStatus.mjs"; * An object containing information about the current status for all * users involved with the data request. * @typedef {Record< - * string, - * "finished" | "waiting" | "cancelled" | "disconnected" | "unprompted" + * string, + * "finished" | "waiting" | "disconnected" | "unprompted" * >} UserStatus */ @@ -148,18 +148,19 @@ export async function requery(requestID, users) { }; export async function addResponse(requestID, userID, answers) { - const data = queries.get(requestID); + if (!queries.has(requestID)) { return }; + const query = queries.get(requestID); // User closed the popup manually if (answers == null) { - data.status[userID] = `unprompted`; + query.status[userID] = `unprompted`; } // User submitted the answers as expected else { - data.responses[userID] = answers; - data.status[userID] = `finished`; - await data.onSubmit?.(requestID, userID, answers); + query.responses[userID] = answers; + query.status[userID] = `finished`; + await query.onSubmit?.(requestID, userID, answers); }; await maybeResolve(requestID);