コード例 #1
0
    async def on_GET(self, request: SynapseRequest, room_id: str,
                     event_type: str, state_key: str) -> Tuple[int, JsonDict]:
        requester = await self.auth.get_user_by_req(request, allow_guest=True)
        format = parse_string(request,
                              "format",
                              default="content",
                              allowed_values=["content", "event"])

        msg_handler = self.message_handler
        data = await msg_handler.get_room_data(
            user_id=requester.user.to_string(),
            room_id=room_id,
            event_type=event_type,
            state_key=state_key,
        )

        if not data:
            raise SynapseError(404,
                               "Event not found.",
                               errcode=Codes.NOT_FOUND)

        if format == "event":
            event = format_event_for_client_v2(data.get_dict())
            return 200, event
        elif format == "content":
            return 200, data.get_dict()["content"]

        # Format must be event or content, per the parse_string call above.
        raise RuntimeError(f"Unknown format: {format:r}.")
コード例 #2
0
ファイル: room.py プロジェクト: ysoffner/synapse
    def on_GET(self, request, room_id, event_type, state_key):
        requester = yield self.auth.get_user_by_req(request, allow_guest=True)
        format = parse_string(request,
                              "format",
                              default="content",
                              allowed_values=["content", "event"])

        msg_handler = self.handlers.message_handler
        data = yield msg_handler.get_room_data(
            user_id=requester.user.to_string(),
            room_id=room_id,
            event_type=event_type,
            state_key=state_key,
            is_guest=requester.is_guest,
        )

        if not data:
            raise SynapseError(404,
                               "Event not found.",
                               errcode=Codes.NOT_FOUND)

        if format == "event":
            event = format_event_for_client_v2(data.get_dict())
            defer.returnValue((200, event))
        elif format == "content":
            defer.returnValue((200, data.get_dict()["content"]))
コード例 #3
0
ファイル: room.py プロジェクト: DoubleMalt/synapse
    def on_GET(self, request, room_id, event_type, state_key):
        requester = yield self.auth.get_user_by_req(request, allow_guest=True)
        format = parse_string(request, "format", default="content",
                              allowed_values=["content", "event"])

        msg_handler = self.message_handler
        data = yield msg_handler.get_room_data(
            user_id=requester.user.to_string(),
            room_id=room_id,
            event_type=event_type,
            state_key=state_key,
            is_guest=requester.is_guest,
        )

        if not data:
            raise SynapseError(
                404, "Event not found.", errcode=Codes.NOT_FOUND
            )

        if format == "event":
            event = format_event_for_client_v2(data.get_dict())
            defer.returnValue((200, event))
        elif format == "content":
            defer.returnValue((200, data.get_dict()["content"]))