Skip to content
Snippets Groups Projects
Commit f0d6f724 authored by Kegan Dougal's avatar Kegan Dougal
Browse files

Set the service ID as soon as it is known.

parent d04fa1f7
No related branches found
No related tags found
No related merge requests found
......@@ -59,13 +59,13 @@ class ApplicationServicesHandler(object):
)
if not stored_service:
raise StoreError(404, "Application service not found")
app_service.id = stored_service.id
except StoreError:
raise SynapseError(
403, "Unrecognised application services token. "
"Consult the home server admin.",
errcode=Codes.FORBIDDEN
)
app_service.hs_token = self._generate_hs_token()
# create a sender for this application service which is used when
......
......@@ -101,11 +101,12 @@ class ApplicationServiceStore(SQLBaseStore):
if not service.hs_token:
raise StoreError(500, "No HS token")
yield self.runInteraction(
as_id = yield self.runInteraction(
"update_app_service",
self._update_app_service_txn,
service
)
service.id = as_id
# update cache TODO: Should this be in the txn?
for (index, cache_service) in enumerate(self.services_cache):
......@@ -124,7 +125,7 @@ class ApplicationServiceStore(SQLBaseStore):
"update_app_service_txn: Failed to find as_id for token=",
service.token
)
return False
return
txn.execute(
"UPDATE application_services SET url=?, hs_token=?, sender=? "
......@@ -144,7 +145,7 @@ class ApplicationServiceStore(SQLBaseStore):
"as_id, namespace, regex) values(?,?,?)",
(as_id, ns_int, json.dumps(regex_obj))
)
return True
return as_id
def _get_as_id_txn(self, txn, token):
cursor = txn.execute(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment