From 00e9df0ac342842d2b109499172baf714207ad91 Mon Sep 17 00:00:00 2001 From: msramalho <19508417+msramalho@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:39:06 +0000 Subject: [PATCH] adds custom encoder --- src/endpoints/task.py | 3 ++- src/utils/mics.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/utils/mics.py diff --git a/src/endpoints/task.py b/src/endpoints/task.py index 0887183..f446d12 100644 --- a/src/endpoints/task.py +++ b/src/endpoints/task.py @@ -9,6 +9,7 @@ from web.security import get_token_or_user_auth from db import schemas from core.logging import log_error from worker.main import celery +from utils.mics import custom_jsonable_encoder task_router = APIRouter(prefix="/task", tags=["Async task operations"]) @@ -30,7 +31,7 @@ def get_status(task_id, email=Depends(get_token_or_user_auth)) -> schemas.TaskRe "status": task.status, "result": task.result } - return JSONResponse(jsonable_encoder(response, exclude_unset=True)) + return JSONResponse(jsonable_encoder(response, exclude_unset=True, custom_encoder={bytes: custom_jsonable_encoder})) except Exception as e: log_error(e) diff --git a/src/utils/mics.py b/src/utils/mics.py new file mode 100644 index 0000000..f3a9803 --- /dev/null +++ b/src/utils/mics.py @@ -0,0 +1,7 @@ +import base64 +from fastapi.encoders import jsonable_encoder + +def custom_jsonable_encoder(obj): + if isinstance(obj, bytes): + return base64.b64encode(obj).decode('utf-8') + return jsonable_encoder(obj) \ No newline at end of file