From b4914681a5d42b9f1407c41fd2b7518b75d88ec4 Mon Sep 17 00:00:00 2001
From: Amber Brown <hawkowl@atleastfornow.net>
Date: Mon, 1 Jul 2019 23:33:52 +1000
Subject: [PATCH] fix async/await consentresource (#5585)

Fixes #5582
---
 changelog.d/5585.misc                    | 1 +
 synapse/rest/consent/consent_resource.py | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 changelog.d/5585.misc

diff --git a/changelog.d/5585.misc b/changelog.d/5585.misc
new file mode 100644
index 0000000000..6be06d4d0b
--- /dev/null
+++ b/changelog.d/5585.misc
@@ -0,0 +1 @@
+Synapse can now handle RestServlets that return coroutines.
diff --git a/synapse/rest/consent/consent_resource.py b/synapse/rest/consent/consent_resource.py
index 624c42441e..1ddf9997ff 100644
--- a/synapse/rest/consent/consent_resource.py
+++ b/synapse/rest/consent/consent_resource.py
@@ -23,6 +23,8 @@ from six.moves import http_client
 import jinja2
 from jinja2 import TemplateNotFound
 
+from twisted.internet import defer
+
 from synapse.api.errors import NotFoundError, StoreError, SynapseError
 from synapse.config import ConfigError
 from synapse.http.server import (
@@ -139,7 +141,7 @@ class ConsentResource(DirectServeResource):
             else:
                 qualified_user_id = UserID(username, self.hs.hostname).to_string()
 
-            u = await self.store.get_user_by_id(qualified_user_id)
+            u = await defer.maybeDeferred(self.store.get_user_by_id, qualified_user_id)
             if u is None:
                 raise NotFoundError("Unknown user")
 
-- 
GitLab