mirror of https://gitee.com/anolis/sysom.git
fix(diagnosis-backend): sbs task result api add content_encoding choose field, text or base64
This commit is contained in:
parent
3d915c3c7e
commit
29ddb40c01
|
@ -1,3 +1,5 @@
|
|||
import enum
|
||||
import base64
|
||||
import requests
|
||||
import tempfile
|
||||
import os
|
||||
|
@ -22,6 +24,11 @@ from service_scripts.base import (
|
|||
)
|
||||
|
||||
|
||||
class ContextType(enum.Enum):
|
||||
TEXT = 'text'
|
||||
BASE64 = 'base64'
|
||||
|
||||
|
||||
class TaskAPIView(
|
||||
CommonModelViewSet,
|
||||
mixins.ListModelMixin,
|
||||
|
@ -159,12 +166,23 @@ class TaskAPIView(
|
|||
obj_list = request.FILES.getlist("files")
|
||||
task_id = request.POST.get("task_id", None)
|
||||
brief = request.POST.get("brief", False)
|
||||
content_encoding = request.POST.get("content_encoding", "text")
|
||||
results = request.POST.getlist("results", None)
|
||||
try:
|
||||
content_encoding = ContextType(content_encoding)
|
||||
except ValueError:
|
||||
return ErrorResponse("content_encoding field can only `text` or `base64`!")
|
||||
|
||||
if task_id is None or results is None:
|
||||
return ErrorResponse(
|
||||
f"Missing params, required both <task_id> and <result>"
|
||||
)
|
||||
|
||||
if content_encoding.value == 'base64':
|
||||
results = [
|
||||
base64.b64decode(result).decode() for result in results
|
||||
]
|
||||
|
||||
# 1. Get task
|
||||
instance = JobModel.objects.get(task_id=task_id)
|
||||
if instance is None:
|
||||
|
|
Loading…
Reference in New Issue