From 975d24319605a4a06b46bc4c2f8d291743c53918 Mon Sep 17 00:00:00 2001
From: Will Hunt <will@half-shot.uk>
Date: Thu, 25 Oct 2018 23:31:46 +0100
Subject: [PATCH] Queue up matrix requests

---
 src/discordas.ts | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/discordas.ts b/src/discordas.ts
index 33b70b2..08d03a4 100644
--- a/src/discordas.ts
+++ b/src/discordas.ts
@@ -67,7 +67,9 @@ function run (port: number, fileConfig: DiscordBridgeConfig) {
     controller: {
       // onUserQuery: userQuery,
       onAliasQuery: roomhandler.OnAliasQuery.bind(roomhandler),
-      onEvent: roomhandler.OnEvent.bind(roomhandler),
+      onEvent: (request, context) =>
+          request.outcomeFrom(Promise.resolve(roomhandler.OnEvent(request, context)))
+      ,
       onAliasQueried: roomhandler.OnAliasQueried.bind(roomhandler),
       thirdPartyLookup: roomhandler.ThirdPartyLookup,
       onLog: (line, isError) => {
@@ -84,6 +86,11 @@ function run (port: number, fileConfig: DiscordBridgeConfig) {
     registration,
     userStore: config.database.userStorePath,
     roomStore: config.database.roomStorePath,
+    // To avoid out of order message sending.
+    queue: {
+      type: "per_room",
+      perRequest: true,
+    },
   });
   provisioner.SetBridge(bridge);
   roomhandler.setBridge(bridge);
-- 
GitLab