👔(backend) add document version serializer
Add document version serializer to get the pagination with the document version list.
This commit is contained in:
@@ -259,3 +259,12 @@ class InvitationSerializer(serializers.ModelSerializer):
|
|||||||
attrs["document_id"] = document_id
|
attrs["document_id"] = document_id
|
||||||
attrs["issuer"] = user
|
attrs["issuer"] = user
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
|
class DocumentVersionSerializer(serializers.Serializer):
|
||||||
|
"""Serialize Versions."""
|
||||||
|
|
||||||
|
etag = serializers.CharField()
|
||||||
|
is_latest = serializers.BooleanField()
|
||||||
|
last_modified = serializers.DateTimeField()
|
||||||
|
version_id = serializers.CharField()
|
||||||
|
|||||||
@@ -337,10 +337,18 @@ class DocumentViewSet(
|
|||||||
Q(user=request.user) | Q(team__in=request.user.get_teams()),
|
Q(user=request.user) | Q(team__in=request.user.get_teams()),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return drf_response.Response(
|
|
||||||
document.get_versions_slice(from_datetime=from_datetime)
|
versions_data = document.get_versions_slice(from_datetime=from_datetime)[
|
||||||
|
"versions"
|
||||||
|
]
|
||||||
|
paginator = pagination.PageNumberPagination()
|
||||||
|
paginated_versions = paginator.paginate_queryset(versions_data, request)
|
||||||
|
serialized_versions = serializers.DocumentVersionSerializer(
|
||||||
|
paginated_versions, many=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return paginator.get_paginated_response(serialized_versions.data)
|
||||||
|
|
||||||
@decorators.action(
|
@decorators.action(
|
||||||
detail=True,
|
detail=True,
|
||||||
methods=["get", "delete"],
|
methods=["get", "delete"],
|
||||||
@@ -377,6 +385,7 @@ class DocumentViewSet(
|
|||||||
{
|
{
|
||||||
"content": response["Body"].read().decode("utf-8"),
|
"content": response["Body"].read().decode("utf-8"),
|
||||||
"last_modified": response["LastModified"],
|
"last_modified": response["LastModified"],
|
||||||
|
"id": version_id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,8 @@ def test_api_document_versions_list_authenticated_related(via, mock_user_get_tea
|
|||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
content = response.json()
|
content = response.json()
|
||||||
assert len(content["versions"]) == 0
|
assert len(content["results"]) == 0
|
||||||
|
assert content["count"] == 0
|
||||||
|
|
||||||
# Add a new version to the document
|
# Add a new version to the document
|
||||||
document.content = "new content"
|
document.content = "new content"
|
||||||
@@ -137,9 +138,8 @@ def test_api_document_versions_list_authenticated_related(via, mock_user_get_tea
|
|||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
content = response.json()
|
content = response.json()
|
||||||
assert len(content["versions"]) == 1
|
assert len(content["results"]) == 1
|
||||||
assert content["next_version_id_marker"] == ""
|
assert content["count"] == 1
|
||||||
assert content["is_truncated"] is False
|
|
||||||
|
|
||||||
|
|
||||||
def test_api_document_versions_retrieve_anonymous_public():
|
def test_api_document_versions_retrieve_anonymous_public():
|
||||||
|
|||||||
Reference in New Issue
Block a user