From 5acd3cf007bfb7a25dc405ccd4c52555dc45c435 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 6 Apr 2022 14:33:03 +0300 Subject: [PATCH] Move API version number to endpoint definition --- mautrix_telegram/config.py | 4 +++ mautrix_telegram/example-config.yaml | 2 +- mautrix_telegram/web/provisioning/__init__.py | 6 ++-- mautrix_telegram/web/provisioning/spec.yaml | 32 +++++++++---------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/mautrix_telegram/config.py b/mautrix_telegram/config.py index 2888365d..876b0c1f 100644 --- a/mautrix_telegram/config.py +++ b/mautrix_telegram/config.py @@ -84,6 +84,10 @@ class Config(BaseBridgeConfig): copy("appservice.provisioning.enabled") copy("appservice.provisioning.prefix") + if base["appservice.provisioning.prefix"].endswith("/v1"): + base["appservice.provisioning.prefix"] = base["appservice.provisioning.prefix"][ + : -len("/v1") + ] copy("appservice.provisioning.shared_secret") if base["appservice.provisioning.shared_secret"] == "generate": base["appservice.provisioning.shared_secret"] = self._new_token() diff --git a/mautrix_telegram/example-config.yaml b/mautrix_telegram/example-config.yaml index d5439ac1..cfdd6a34 100644 --- a/mautrix_telegram/example-config.yaml +++ b/mautrix_telegram/example-config.yaml @@ -67,7 +67,7 @@ appservice: # Whether or not the provisioning API should be enabled. enabled: true # The prefix to use in the provisioning API endpoints. - prefix: /_matrix/provision/v1 + prefix: /_matrix/provision # The shared secret to authorize users of the API. # Set to "generate" to generate and save a new token. shared_secret: generate diff --git a/mautrix_telegram/web/provisioning/__init__.py b/mautrix_telegram/web/provisioning/__init__.py index 2ca4f911..ea184482 100644 --- a/mautrix_telegram/web/provisioning/__init__.py +++ b/mautrix_telegram/web/provisioning/__init__.py @@ -53,16 +53,16 @@ class ProvisioningAPI(AuthAPI): self.app = web.Application(loop=bridge.loop, middlewares=[self.error_middleware]) - portal_prefix = "/portal/{mxid:![^/]+}" + portal_prefix = "/v1/portal/{mxid:![^/]+}" self.app.router.add_route("GET", f"{portal_prefix}", self.get_portal_by_mxid) - self.app.router.add_route("GET", "/portal/{tgid:-[0-9]+}", self.get_portal_by_tgid) + self.app.router.add_route("GET", "/v1/portal/{tgid:-[0-9]+}", self.get_portal_by_tgid) self.app.router.add_route( "POST", portal_prefix + "/connect/{chat_id:-[0-9]+}", self.connect_chat ) self.app.router.add_route("POST", f"{portal_prefix}/create", self.create_chat) self.app.router.add_route("POST", f"{portal_prefix}/disconnect", self.disconnect_chat) - user_prefix = "/user/{mxid:@[^:]*:[^/]+}" + user_prefix = "/v1/user/{mxid:@[^:]*:[^/]+}" self.app.router.add_route("GET", f"{user_prefix}", self.get_user_info) self.app.router.add_route("GET", f"{user_prefix}/chats", self.get_chats) self.app.router.add_route("GET", f"{user_prefix}/contacts", self.get_contacts) diff --git a/mautrix_telegram/web/provisioning/spec.yaml b/mautrix_telegram/web/provisioning/spec.yaml index bdcf767e..1cf90a2b 100644 --- a/mautrix_telegram/web/provisioning/spec.yaml +++ b/mautrix_telegram/web/provisioning/spec.yaml @@ -18,7 +18,7 @@ tags: - name: Misc paths: - /bridge: + /v1/bridge: get: operationId: get_bridge summary: Get the bridge's information @@ -34,7 +34,7 @@ paths: relaybot_username: type: string description: The relay bot's username on Telegram - /portal/{room_id}: + /v1/portal/{room_id}: get: operationId: get_portal summary: Get the bridging status and info of the connected Telegram chat @@ -78,7 +78,7 @@ paths: required: false schema: type: string - /portal/{chat_id}: + /v1/portal/{chat_id}: get: operationId: get_portal_by_tgid summary: Get the bridging status and info of the connected Telegram chat @@ -136,7 +136,7 @@ paths: required: false schema: type: string - /portal/{room_id}/connect/{chat_id}: + /v1/portal/{room_id}/connect/{chat_id}: post: operationId: connect_portal summary: Connect an existing Telegram chat to the given room @@ -214,7 +214,7 @@ paths: - chat_already_bridged error: $ref: "#/components/schemas/HumanReadableError" - /portal/{room_id}/create: + /v1/portal/{room_id}/create: post: operationId: create_portal summary: Create a new Telegram chat for the given room @@ -302,7 +302,7 @@ paths: type: string example: Discussion about mautrix-telegram required: true - /portal/{room_id}/disconnect: + /v1/portal/{room_id}/disconnect: post: operationId: disconnect_portal summary: Disconnect the Telegram chat from the room @@ -357,7 +357,7 @@ paths: schema: type: boolean default: false - /user/{user_id}: + /v1/user/{user_id}: get: operationId: get_me summary: Get the info of the Telegram user the given Matrix user is logged in as @@ -382,7 +382,7 @@ paths: required: true schema: type: string - /user/{user_id}/chats: + /v1/user/{user_id}/chats: get: operationId: get_chats summary: Get the list of Telegram chats the given Matrix user has access to @@ -422,7 +422,7 @@ paths: required: true schema: type: string - /user/{user_id}/contacts: + /v1/user/{user_id}/contacts: get: operationId: get_contacts summary: Get the user's Telegram contacts @@ -460,7 +460,7 @@ paths: required: true schema: type: string - /user/{user_id}/pm/{identifier}: + /v1/user/{user_id}/pm/{identifier}: post: operationId: start_dm summary: Start a direct chat with a Telegram user. @@ -516,7 +516,7 @@ paths: - type: integer description: Internal Telegram user ID example: 987654321 - /user/{user_id}/login/bot_token: + /v1/user/{user_id}/login/bot_token: post: operationId: post_bot_token summary: Log in with a bot token @@ -573,7 +573,7 @@ paths: description: The access token of the bot to log in as example: 297900271:IXjeGEcAN61zHnjPgkWnYWyvVp9K4ulHBEv required: true - /user/{user_id}/login/request_code: + /v1/user/{user_id}/login/request_code: post: operationId: post_login_phone summary: Request a phone code from Telegram @@ -693,7 +693,7 @@ paths: description: The phone number to log in as. example: "+123456789" required: true - /user/{user_id}/login/send_code: + /v1/user/{user_id}/login/send_code: post: operationId: post_login_code summary: Send the login code @@ -771,7 +771,7 @@ paths: format: int32 example: 123456 required: true - /user/{user_id}/login/send_password: + /v1/user/{user_id}/login/send_password: post: operationId: post_login_password summary: Send the two-factor auth password @@ -843,7 +843,7 @@ paths: format: password example: hunter2 required: true - /user/{user_id}/logout: + /v1/user/{user_id}/logout: post: operationId: logout summary: Log out @@ -880,7 +880,7 @@ paths: security: - Bearer: [] servers: - - url: /_matrix/provision/v1 + - url: /_matrix/provision components: responses: NotWhitelistedError: