Пример #1
0
    def present(self, annotation: Annotation):
        """
        Get the JSON presentation of an annotation.

        This representation does not contain any user specific information and
        has only the data applicable to all users. This does not blank content
        for moderated annotations.

        :param annotation: Annotation to present
        :return: A dict suitable for JSON serialisation
        """
        model = deepcopy(annotation.extra) or {}

        model.update(
            {
                "id": annotation.id,
                "created": utc_iso8601(annotation.created),
                "updated": utc_iso8601(annotation.updated),
                "user": annotation.userid,
                "uri": annotation.target_uri,
                "text": annotation.text or "",
                "tags": annotation.tags or [],
                "group": annotation.groupid,
                #  Convert our simple internal annotation storage format into the
                #  legacy complex permissions dict format that is still used in
                #  some places.
                "permissions": {
                    "read": [self._get_read_permission(annotation)],
                    "admin": [annotation.userid],
                    "update": [annotation.userid],
                    "delete": [annotation.userid],
                },
                "target": annotation.target,
                "document": DocumentJSONPresenter(annotation.document).asdict(),
                "links": self._links_service.get_all(annotation),
            }
        )

        model.update(user_info(self._user_service.fetch(annotation.userid)))

        if annotation.references:
            model["references"] = annotation.references

        return model
Пример #2
0
 def test_format_returns_empty_dict_when_user_missing(self):
     assert session.user_info(None) == {}
Пример #3
0
    def test_allows_null_display_name(self, factories):
        user = factories.User.build(display_name=None)

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': None}}
Пример #4
0
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name='Jane Doe')

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': 'Jane Doe'}}
 def format(self, annotation_resource):
     user = self.user_svc.fetch(annotation_resource.annotation.userid)
     return user_info(user)
Пример #6
0
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name="Jane Doe")

        result = session.user_info(user)
        assert result == {"user_info": {"display_name": "Jane Doe"}}
Пример #7
0
 def format(self, annotation_resource):
     user = self.user_svc.fetch(annotation_resource.annotation.userid)
     return user_info(user)
Пример #8
0
 def test_format_returns_empty_dict_when_user_missing(self):
     assert session.user_info(None) == {}
Пример #9
0
    def test_allows_null_display_name(self, factories):
        user = factories.User.build(display_name=None)

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': None}}
Пример #10
0
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name='Jane Doe')

        result = session.user_info(user)
        assert result == {'user_info': {'display_name': 'Jane Doe'}}
Пример #11
0
    def test_returns_user_info_object(self, factories):
        user = factories.User.build(display_name="Jane Doe")

        result = session.user_info(user)
        assert result == {"user_info": {"display_name": "Jane Doe"}}