Skip to content

Commit

Permalink
Add a /versions endpoint. (#542)
Browse files Browse the repository at this point in the history
And support Matrix v1.1.
  • Loading branch information
clokep authored Dec 28, 2022
1 parent f978334 commit fffe87b
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog.d/542.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support Matrix v1.1.
2 changes: 2 additions & 0 deletions sydent/http/httpserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
from sydent.http.servlets.termsservlet import TermsServlet
from sydent.http.servlets.threepidbindservlet import ThreePidBindServlet
from sydent.http.servlets.threepidunbindservlet import ThreePidUnbindServlet
from sydent.http.servlets.versions import VersionsServlet

if TYPE_CHECKING:
from sydent.sydent import Sydent
Expand Down Expand Up @@ -97,6 +98,7 @@ def __init__(self, sydent: "Sydent", lookup_pepper: str) -> None:
matrix.putChild(b"identity", identity)
identity.putChild(b"api", api)
identity.putChild(b"v2", v2)
identity.putChild(b"versions", VersionsServlet())
api.putChild(b"v1", v1)

validate.putChild(b"email", email)
Expand Down
47 changes: 47 additions & 0 deletions sydent/http/servlets/versions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Copyright 2022 The Matrix.org Foundation C.I.C.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from twisted.web.server import Request

from sydent.http.servlets import SydentResource, jsonwrap, send_cors
from sydent.types import JsonDict


class VersionsServlet(SydentResource):
isLeaf = True

@jsonwrap
def render_GET(self, request: Request) -> JsonDict:
"""
Return the supported Matrix versions.
"""
send_cors(request)

return {
"versions": [
"r0.1.0",
"r0.2.0",
"r0.2.1",
"r0.3.0",
"v1.1",
"v1.2",
"v1.3",
"v1.4",
"v1.5",
]
}

def render_OPTIONS(self, request: Request) -> bytes:
send_cors(request)
return b""

0 comments on commit fffe87b

Please sign in to comment.