Add methods to handle the finishing and cancellation of requests to the API
This commit is contained in:
parent
860c8b619a
commit
d60448640f
1 changed files with 23 additions and 1 deletions
|
|
@ -173,6 +173,8 @@ async function maybeResolve(requestID) {
|
|||
if (query.users.length === finishedUserCount) {
|
||||
query.app?.close();
|
||||
query.resolve(query.responses);
|
||||
queries.delete(requestID);
|
||||
promises.delete(requestID);
|
||||
} else {
|
||||
query.app?.render({ parts: [ `users` ] });
|
||||
};
|
||||
|
|
@ -189,10 +191,30 @@ export async function notify(userID, content, { includeGM = false } = {}) {
|
|||
});
|
||||
};
|
||||
|
||||
export async function finish(requestID) {
|
||||
// prevent finishing other people's queries
|
||||
if (!queries.has(requestID)) { return };
|
||||
|
||||
const query = queries.get(requestID);
|
||||
query.resolve(query.responses);
|
||||
queries.delete(requestID);
|
||||
promises.delete(requestID);
|
||||
|
||||
game.socket.emit(`system.taf`, {
|
||||
event: `query.cancel`,
|
||||
payload: { id: requestID },
|
||||
});
|
||||
};
|
||||
|
||||
export async function cancel(requestID) {
|
||||
// prevent cancelling other people's queries
|
||||
if (!queries.has(requestID)) { return };
|
||||
|
||||
const query = queries.get(requestID);
|
||||
query.resolve(null);
|
||||
queries.delete(requestID);
|
||||
promises.delete(requestID);
|
||||
|
||||
game.socket.emit(`system.taf`, {
|
||||
event: `query.cancel`,
|
||||
payload: { id: requestID },
|
||||
|
|
@ -234,7 +256,7 @@ export const QueryManager = {
|
|||
query, requery,
|
||||
addResponse,
|
||||
notify,
|
||||
cancel,
|
||||
finish, cancel,
|
||||
setApplication,
|
||||
userActivity,
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue