summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
authorMathMan05 <mathmanrm@gmail.com>2026-03-02 19:24:28 -0600
committerRory& <root@rory.gay>2026-03-07 00:58:31 +0100
commit52d80348106e756d1ec5617cad52392e48e2385e (patch)
tree0a94ef50a04a81f3552c5d998db711ab77bdb516 /src/api
parentremove logs (diff)
downloadserver-ts-52d80348106e756d1ec5617cad52392e48e2385e.tar.xz
keep it safe
Diffstat (limited to 'src/api')
-rw-r--r--src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts b/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts

index 0d1e3272..b50d4223 100644 --- a/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts +++ b/src/api/routes/interactions/#interaction_id/#interaction_token/callback.ts
@@ -20,7 +20,19 @@ import { ButtonStyle, InteractionCallbackSchema, InteractionCallbackType, Messag import { route, stripNull } from "@spacebar/api"; import { MessageCreateAttachment, MessageCreateCloudAttachment } from "@spacebar/schemas"; import { Request, Response, Router } from "express"; -import { emitEvent, FieldErrors, InteractionSuccessEvent, uploadFile, Attachment, pendingInteractions, User, Message, Config, MessageUpdateEvent } from "@spacebar/util"; +import { + emitEvent, + FieldErrors, + InteractionSuccessEvent, + uploadFile, + Attachment, + pendingInteractions, + User, + Message, + Config, + MessageUpdateEvent, + InteractionFailureEvent, +} from "@spacebar/util"; import { handleComps, sendMessage } from "../../../../util/handlers/Message"; import { HTTPError } from "#util/util/lambert-server"; @@ -114,6 +126,19 @@ router.post("/", route({}), async (req: Request, res: Response) => { break; case InteractionCallbackType.DEFERRED_UPDATE_MESSAGE: //I think this is just ignored ish at least + interaction.timeout = setTimeout(() => { + emitEvent({ + event: "INTERACTION_FAILURE", + user_id: req.user_id, + data: { + id: interactionId, + nonce: interaction.nonce, + reason_code: 2, // when types are done: InteractionFailureReason.TIMEOUT, + }, + } as InteractionFailureEvent); + }, 30000); + pendingInteractions.delete(interactionId); + res.sendStatus(204); break; case InteractionCallbackType.UPDATE_MESSAGE: {