]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: fix email and notes endpoints api spec (#10148)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Mon, 9 Jun 2025 14:09:28 +0000 (07:09 -0700)
committerGitHub <noreply@github.com>
Mon, 9 Jun 2025 14:09:28 +0000 (07:09 -0700)
src/documents/views.py

index 6e7f814b34b43a3a90588d25709f429f876c2363..afd36c7f508f32cffc99ea9c0c98ca5cf4758d58 100644 (file)
@@ -145,6 +145,7 @@ from documents.serialisers import CustomFieldSerializer
 from documents.serialisers import DocumentListSerializer
 from documents.serialisers import DocumentSerializer
 from documents.serialisers import DocumentTypeSerializer
+from documents.serialisers import NotesSerializer
 from documents.serialisers import PostDocumentSerializer
 from documents.serialisers import RunTaskViewSerializer
 from documents.serialisers import SavedViewSerializer
@@ -433,27 +434,24 @@ class DocumentTypeViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
     ),
     notes=extend_schema(
         description="View, add, or delete notes for the document",
-        responses={
-            200: {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "id": {"type": "integer"},
-                        "note": {"type": "string"},
-                        "created": {"type": "string", "format": "date-time"},
-                        "user": {
-                            "type": "object",
-                            "properties": {
-                                "id": {"type": "integer"},
-                                "username": {"type": "string"},
-                                "first_name": {"type": "string"},
-                                "last_name": {"type": "string"},
-                            },
-                        },
-                    },
-                },
+        methods=["GET", "POST", "DELETE"],
+        request=inline_serializer(
+            name="NoteCreateRequest",
+            fields={
+                "note": serializers.CharField(),
             },
+        ),
+        parameters=[
+            OpenApiParameter(
+                name="id",
+                type=OpenApiTypes.INT,
+                location=OpenApiParameter.QUERY,
+                required=False,
+                description="Note ID to delete (used only for DELETE requests)",
+            ),
+        ],
+        responses={
+            200: NotesSerializer(many=True),
             400: None,
             403: None,
             404: None,
@@ -519,6 +517,28 @@ class DocumentTypeViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin):
             404: None,
         },
     ),
+    email=extend_schema(
+        description="Email the document to one or more recipients as an attachment.",
+        request=inline_serializer(
+            name="EmailRequest",
+            fields={
+                "addresses": serializers.CharField(),
+                "subject": serializers.CharField(),
+                "message": serializers.CharField(),
+                "use_archive_version": serializers.BooleanField(default=True),
+            },
+        ),
+        responses={
+            200: inline_serializer(
+                name="EmailResponse",
+                fields={"message": serializers.CharField()},
+            ),
+            400: None,
+            403: None,
+            404: None,
+            500: None,
+        },
+    ),
 )
 class DocumentViewSet(
     PassUserMixin,