Chore: Structured consume task return values (#12612)

This commit is contained in:
Trenton H
2026-04-20 13:19:54 -07:00
committed by GitHub
parent 7492cda794
commit 58789e5061
15 changed files with 125 additions and 82 deletions
+16 -7
View File
@@ -2477,7 +2477,6 @@ class TaskSerializerV10(OwnedObjectSerializer):
"wait_time_seconds",
"input_data",
"result_data",
"result_message",
"related_document_ids",
"acknowledged",
"owner",
@@ -2504,12 +2503,8 @@ class TaskSerializerV9(serializers.ModelSerializer):
# v9 field: status -> uppercase Celery state strings
status = serializers.SerializerMethodField()
# v9 field: result -> result_message (with legacy format fallback)
result = serializers.CharField(
source="result_message",
read_only=True,
allow_null=True,
)
# v9 field: result -> derived from result_data
result = serializers.SerializerMethodField()
# v9 field: related_document -> first document ID from result_data
related_document = serializers.SerializerMethodField()
@@ -2541,6 +2536,20 @@ class TaskSerializerV9(serializers.ModelSerializer):
PaperlessTask.TaskType.LLM_INDEX: "llmindex_update",
}
def get_result(self, obj: PaperlessTask) -> str | None:
"""Reconstruct a human-readable result string from result_data for v9 clients."""
if not obj.result_data:
return None
if doc_id := obj.result_data.get("document_id"):
return f"Success. New document id {doc_id} created"
if reason := obj.result_data.get("reason"):
return reason
if dup_id := obj.result_data.get("duplicate_of"):
return f"Not consuming: It is a duplicate of document #{dup_id}"
if error := obj.result_data.get("error_message"):
return error
return None
def get_task_name(self, obj: PaperlessTask) -> str:
return self._TASK_TYPE_TO_V9_NAME.get(obj.task_type, obj.task_type)