Add safety check to ensure the response we got was for one of our requests.
This commit is contained in:
parent
cab29d9cd6
commit
cb334f41de
1 changed files with 8 additions and 7 deletions
|
|
@ -6,8 +6,8 @@ import { QueryStatus } from "../apps/QueryStatus.mjs";
|
||||||
* An object containing information about the current status for all
|
* An object containing information about the current status for all
|
||||||
* users involved with the data request.
|
* users involved with the data request.
|
||||||
* @typedef {Record<
|
* @typedef {Record<
|
||||||
* string,
|
* string,
|
||||||
* "finished" | "waiting" | "cancelled" | "disconnected" | "unprompted"
|
* "finished" | "waiting" | "disconnected" | "unprompted"
|
||||||
* >} UserStatus
|
* >} UserStatus
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -148,18 +148,19 @@ export async function requery(requestID, users) {
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function addResponse(requestID, userID, answers) {
|
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
|
// User closed the popup manually
|
||||||
if (answers == null) {
|
if (answers == null) {
|
||||||
data.status[userID] = `unprompted`;
|
query.status[userID] = `unprompted`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// User submitted the answers as expected
|
// User submitted the answers as expected
|
||||||
else {
|
else {
|
||||||
data.responses[userID] = answers;
|
query.responses[userID] = answers;
|
||||||
data.status[userID] = `finished`;
|
query.status[userID] = `finished`;
|
||||||
await data.onSubmit?.(requestID, userID, answers);
|
await query.onSubmit?.(requestID, userID, answers);
|
||||||
};
|
};
|
||||||
|
|
||||||
await maybeResolve(requestID);
|
await maybeResolve(requestID);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue