def wrapper( self: RestServlet, request: Request, group_id: str, *args: Any, **kwargs: Any ) -> Awaitable[Tuple[int, JsonDict]]: if not GroupID.is_valid(group_id): raise SynapseError(400, "%s is not a legal group ID" % (group_id,)) return f(self, request, group_id, *args, **kwargs)
async def f(self: "GroupsLocalWorkerHandler", group_id: str, *args: Any, **kwargs: Any) -> JsonDict: if not GroupID.is_valid(group_id): raise SynapseError(400, "%s is not a legal group ID" % (group_id, )) if self.is_mine_id(group_id): return await getattr(self.groups_server_handler, func_name)(group_id, *args, **kwargs) else: destination = get_domain_from_id(group_id) try: return await getattr(self.transport_client, func_name)(destination, group_id, *args, **kwargs) except HttpResponseException as e: # Capture errors returned by the remote homeserver and # re-throw specific errors as SynapseErrors. This is so # when the remote end responds with things like 403 Not # In Group, we can communicate that to the client instead # of a 500. raise e.to_synapse_error() except RequestSendFailed: raise SynapseError(502, "Failed to contact group server")
async def on_GET(self, request, group_id): requester = await self.auth.get_user_by_req(request, allow_guest=True) requester_user_id = requester.user.to_string() if not GroupID.is_valid(group_id): raise SynapseError(400, "%s was not legal group ID" % (group_id, )) result = await self.groups_handler.get_rooms_in_group( group_id, requester_user_id) return 200, result
def wrapper(self, request: Request, group_id: str, *args, **kwargs): if not GroupID.is_valid(group_id): raise SynapseError(400, "%s is not a legal group ID" % (group_id,)) return f(self, request, group_id, *args, **kwargs)