mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-15 14:08:50 -05:00
Host /unstable and /r0 versions of r0 APIs
This commit is contained in:
parent
af96c6f4d3
commit
14d7acfad4
27 changed files with 133 additions and 117 deletions
|
|
@ -27,7 +27,7 @@ import simplejson
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def client_v2_pattern(path_regex):
|
||||
def client_v2_patterns(path_regex, releases=(0,)):
|
||||
"""Creates a regex compiled client path with the correct client path
|
||||
prefix.
|
||||
|
||||
|
|
@ -37,7 +37,13 @@ def client_v2_pattern(path_regex):
|
|||
Returns:
|
||||
SRE_Pattern
|
||||
"""
|
||||
return re.compile("^" + CLIENT_V2_ALPHA_PREFIX + path_regex)
|
||||
patterns = [re.compile("^" + CLIENT_V2_ALPHA_PREFIX + path_regex)]
|
||||
unstable_prefix = CLIENT_V2_ALPHA_PREFIX.replace("/v2_alpha", "/unstable")
|
||||
patterns.append(re.compile("^" + unstable_prefix + path_regex))
|
||||
for release in releases:
|
||||
new_prefix = CLIENT_V2_ALPHA_PREFIX.replace("/v2_alpha", "/r%d" % release)
|
||||
patterns.append(re.compile("^" + new_prefix + path_regex))
|
||||
return patterns
|
||||
|
||||
|
||||
def parse_request_allow_empty(request):
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ from synapse.api.errors import LoginError, SynapseError, Codes
|
|||
from synapse.http.servlet import RestServlet
|
||||
from synapse.util.async import run_on_reactor
|
||||
|
||||
from ._base import client_v2_pattern, parse_json_dict_from_request
|
||||
from ._base import client_v2_patterns, parse_json_dict_from_request
|
||||
|
||||
import logging
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class PasswordRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern("/account/password")
|
||||
PATTERNS = client_v2_patterns("/account/password", releases=())
|
||||
|
||||
def __init__(self, hs):
|
||||
super(PasswordRestServlet, self).__init__()
|
||||
|
|
@ -89,7 +89,7 @@ class PasswordRestServlet(RestServlet):
|
|||
|
||||
|
||||
class ThreepidRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern("/account/3pid")
|
||||
PATTERNS = client_v2_patterns("/account/3pid", releases=())
|
||||
|
||||
def __init__(self, hs):
|
||||
super(ThreepidRestServlet, self).__init__()
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ from synapse.api.errors import SynapseError
|
|||
from synapse.api.urls import CLIENT_V2_ALPHA_PREFIX
|
||||
from synapse.http.servlet import RestServlet
|
||||
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
import logging
|
||||
|
||||
|
|
@ -97,7 +97,7 @@ class AuthRestServlet(RestServlet):
|
|||
cannot be handled in the normal flow (with requests to the same endpoint).
|
||||
Current use is for web fallback auth.
|
||||
"""
|
||||
PATTERN = client_v2_pattern("/auth/(?P<stagetype>[\w\.]*)/fallback/web")
|
||||
PATTERNS = client_v2_patterns("/auth/(?P<stagetype>[\w\.]*)/fallback/web")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(AuthRestServlet, self).__init__()
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ from synapse.api.errors import AuthError, SynapseError
|
|||
from synapse.http.servlet import RestServlet
|
||||
from synapse.types import UserID
|
||||
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
import simplejson as json
|
||||
import logging
|
||||
|
|
@ -29,7 +29,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class GetFilterRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern("/user/(?P<user_id>[^/]*)/filter/(?P<filter_id>[^/]*)")
|
||||
PATTERNS = client_v2_patterns("/user/(?P<user_id>[^/]*)/filter/(?P<filter_id>[^/]*)")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(GetFilterRestServlet, self).__init__()
|
||||
|
|
@ -65,7 +65,7 @@ class GetFilterRestServlet(RestServlet):
|
|||
|
||||
|
||||
class CreateFilterRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern("/user/(?P<user_id>[^/]*)/filter")
|
||||
PATTERNS = client_v2_patterns("/user/(?P<user_id>[^/]*)/filter")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(CreateFilterRestServlet, self).__init__()
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ from synapse.types import UserID
|
|||
|
||||
from canonicaljson import encode_canonical_json
|
||||
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
import simplejson as json
|
||||
import logging
|
||||
|
|
@ -54,7 +54,7 @@ class KeyUploadServlet(RestServlet):
|
|||
},
|
||||
}
|
||||
"""
|
||||
PATTERN = client_v2_pattern("/keys/upload/(?P<device_id>[^/]*)")
|
||||
PATTERNS = client_v2_patterns("/keys/upload/(?P<device_id>[^/]*)")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(KeyUploadServlet, self).__init__()
|
||||
|
|
@ -154,12 +154,13 @@ class KeyQueryServlet(RestServlet):
|
|||
} } } } } }
|
||||
"""
|
||||
|
||||
PATTERN = client_v2_pattern(
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/keys/query(?:"
|
||||
"/(?P<user_id>[^/]*)(?:"
|
||||
"/(?P<device_id>[^/]*)"
|
||||
")?"
|
||||
")?"
|
||||
")?",
|
||||
releases=()
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
|
|
@ -245,10 +246,11 @@ class OneTimeKeyServlet(RestServlet):
|
|||
} } } }
|
||||
|
||||
"""
|
||||
PATTERN = client_v2_pattern(
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/keys/claim(?:/?|(?:/"
|
||||
"(?P<user_id>[^/]*)/(?P<device_id>[^/]*)/(?P<algorithm>[^/]*)"
|
||||
")?)"
|
||||
")?)",
|
||||
releases=()
|
||||
)
|
||||
|
||||
def __init__(self, hs):
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ from twisted.internet import defer
|
|||
|
||||
from synapse.api.errors import SynapseError
|
||||
from synapse.http.servlet import RestServlet
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
import logging
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class ReceiptRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern(
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/rooms/(?P<room_id>[^/]*)"
|
||||
"/receipt/(?P<receipt_type>[^/]*)"
|
||||
"/(?P<event_id>[^/]*)$"
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ from synapse.api.constants import LoginType
|
|||
from synapse.api.errors import SynapseError, Codes, UnrecognizedRequestError
|
||||
from synapse.http.servlet import RestServlet
|
||||
|
||||
from ._base import client_v2_pattern, parse_json_dict_from_request
|
||||
from ._base import client_v2_patterns, parse_json_dict_from_request
|
||||
|
||||
import logging
|
||||
import hmac
|
||||
|
|
@ -41,7 +41,7 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class RegisterRestServlet(RestServlet):
|
||||
PATTERN = client_v2_pattern("/register")
|
||||
PATTERNS = client_v2_patterns("/register")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(RegisterRestServlet, self).__init__()
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ from synapse.events.utils import (
|
|||
serialize_event, format_event_for_client_v2_without_room_id,
|
||||
)
|
||||
from synapse.api.filtering import FilterCollection
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
import copy
|
||||
import logging
|
||||
|
|
@ -69,7 +69,7 @@ class SyncRestServlet(RestServlet):
|
|||
}
|
||||
"""
|
||||
|
||||
PATTERN = client_v2_pattern("/sync$")
|
||||
PATTERNS = client_v2_patterns("/sync$")
|
||||
ALLOWED_PRESENCE = set(["online", "offline"])
|
||||
|
||||
def __init__(self, hs):
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from ._base import client_v2_pattern
|
||||
from ._base import client_v2_patterns
|
||||
|
||||
from synapse.http.servlet import RestServlet
|
||||
from synapse.api.errors import AuthError, SynapseError
|
||||
|
|
@ -31,7 +31,7 @@ class TagListServlet(RestServlet):
|
|||
"""
|
||||
GET /user/{user_id}/rooms/{room_id}/tags HTTP/1.1
|
||||
"""
|
||||
PATTERN = client_v2_pattern(
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/user/(?P<user_id>[^/]*)/rooms/(?P<room_id>[^/]*)/tags"
|
||||
)
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ class TagServlet(RestServlet):
|
|||
PUT /user/{user_id}/rooms/{room_id}/tags/{tag} HTTP/1.1
|
||||
DELETE /user/{user_id}/rooms/{room_id}/tags/{tag} HTTP/1.1
|
||||
"""
|
||||
PATTERN = client_v2_pattern(
|
||||
PATTERNS = client_v2_patterns(
|
||||
"/user/(?P<user_id>[^/]*)/rooms/(?P<room_id>[^/]*)/tags/(?P<tag>[^/]*)"
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ from twisted.internet import defer
|
|||
from synapse.api.errors import AuthError, StoreError, SynapseError
|
||||
from synapse.http.servlet import RestServlet
|
||||
|
||||
from ._base import client_v2_pattern, parse_json_dict_from_request
|
||||
from ._base import client_v2_patterns, parse_json_dict_from_request
|
||||
|
||||
|
||||
class TokenRefreshRestServlet(RestServlet):
|
||||
|
|
@ -26,7 +26,7 @@ class TokenRefreshRestServlet(RestServlet):
|
|||
Exchanges refresh tokens for a pair of an access token and a new refresh
|
||||
token.
|
||||
"""
|
||||
PATTERN = client_v2_pattern("/tokenrefresh")
|
||||
PATTERNS = client_v2_patterns("/tokenrefresh")
|
||||
|
||||
def __init__(self, hs):
|
||||
super(TokenRefreshRestServlet, self).__init__()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue