Compare commits

...

6 Commits

Author SHA1 Message Date
Half-Shot
b296915ad0 Remove leading / from prefix 2019-12-04 15:55:31 +00:00
Half-Shot
8b2aa8decf s/user_id/key 2019-12-04 11:36:35 +00:00
Half-Shot
99c5545ab8 Tidy up 2019-12-04 11:28:42 +00:00
Half-Shot
44dabec8f3 newsfile 2019-12-03 18:22:36 +00:00
Half-Shot
fbcfeba2dc use build_uri to properly join url parts together 2019-12-03 18:17:22 +00:00
Half-Shot
3ad48dddb2 Use the /_matrix/app/v1 endpoint 2019-12-03 18:17:08 +00:00
2 changed files with 16 additions and 19 deletions

1
changelog.d/6460.bugfix Normal file
View File

@@ -0,0 +1 @@
Use `/_matrix/app/v1` endpoint prefix for appservices.

View File

@@ -13,6 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import logging
import os.path
import urllib.parse
from six.moves import urllib
@@ -46,9 +48,7 @@ sent_events_counter = Counter(
)
HOUR_IN_MS = 60 * 60 * 1000
APP_SERVICE_PREFIX = "/_matrix/app/unstable"
APP_SERVICE_PREFIX = "_matrix/app/v1"
def _is_valid_3pe_metadata(info):
@@ -81,6 +81,11 @@ def _is_valid_3pe_result(r, field):
return True
def _build_as_uri(service, endpoint_name, key):
key = urllib.parse.quote(key)
return os.path.join(service.url, APP_SERVICE_PREFIX, endpoint_name, key)
class ApplicationServiceApi(SimpleHttpClient):
"""This class manages HS -> AS communications, including querying and
pushing.
@@ -98,7 +103,7 @@ class ApplicationServiceApi(SimpleHttpClient):
def query_user(self, service, user_id):
if service.url is None:
return False
uri = service.url + ("/users/%s" % urllib.parse.quote(user_id))
uri = _build_as_uri(service, "users", user_id)
response = None
try:
response = yield self.get_json(uri, {"access_token": service.hs_token})
@@ -116,7 +121,7 @@ class ApplicationServiceApi(SimpleHttpClient):
def query_alias(self, service, alias):
if service.url is None:
return False
uri = service.url + ("/rooms/%s" % urllib.parse.quote(alias))
uri = _build_as_uri(service, "rooms", alias)
response = None
try:
response = yield self.get_json(uri, {"access_token": service.hs_token})
@@ -141,12 +146,8 @@ class ApplicationServiceApi(SimpleHttpClient):
if service.url is None:
return []
uri = "%s%s/thirdparty/%s/%s" % (
service.url,
APP_SERVICE_PREFIX,
kind,
urllib.parse.quote(protocol),
)
uri = _build_as_uri(service, "thirdparty/%s" % kind, protocol)
try:
response = yield self.get_json(uri, fields)
if not isinstance(response, list):
@@ -175,11 +176,7 @@ class ApplicationServiceApi(SimpleHttpClient):
@defer.inlineCallbacks
def _get():
uri = "%s%s/thirdparty/protocol/%s" % (
service.url,
APP_SERVICE_PREFIX,
urllib.parse.quote(protocol),
)
uri = _build_as_uri(service, "thirdparty/protocol", protocol)
try:
info = yield self.get_json(uri, {})
@@ -215,10 +212,9 @@ class ApplicationServiceApi(SimpleHttpClient):
logger.warning(
"push_bulk: Missing txn ID sending events to %s", service.url
)
txn_id = str(0)
txn_id = str(txn_id)
txn_id = 0
uri = service.url + ("/transactions/%s" % urllib.parse.quote(txn_id))
uri = _build_as_uri(service, "transactions", str(txn_id))
try:
yield self.put_json(
uri=uri,