From 876c2d351c61d689210d7cb1529612003e37226d Mon Sep 17 00:00:00 2001 From: PodYapolsky <podyapolskiyaa@gmail.com> Date: Thu, 22 Jun 2023 23:40:20 +0300 Subject: [PATCH 1/4] feat: get status of the task --- api/v1/task.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/api/v1/task.py b/api/v1/task.py index 236a7ce..3931bd4 100644 --- a/api/v1/task.py +++ b/api/v1/task.py @@ -20,6 +20,14 @@ async def create_task(request: TaskCreateRequest): return TaskCreateResponse(task_id=task_id) +@router.get("/status") +async def get_status(uuid: UUID): + task = tasks.get_tasks().get(uuid) + if task: + return { "status": task.get_status(), "ready": task.is_finished() } + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Task is not found") + + @router.get("/tasks") async def get_all_tasks(): # todo: this is demo. to be removed in the future -- GitLab From 7a7b6e612d76354656de0ea46598aa01875967c2 Mon Sep 17 00:00:00 2001 From: PodYapolsky <podyapolskiyaa@gmail.com> Date: Fri, 23 Jun 2023 00:42:29 +0300 Subject: [PATCH 2/4] fix: add response and request models to get status router --- api/v1/models.py | 9 +++++++++ api/v1/task.py | 23 ++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/api/v1/models.py b/api/v1/models.py index bf432a4..1a00a01 100644 --- a/api/v1/models.py +++ b/api/v1/models.py @@ -47,3 +47,12 @@ class TaskCreateRequest(BaseModel): class TaskCreateResponse(BaseModel): task_id: UUID + + +class TaskStatusRequest(BaseModel): + uuid: UUID + + +class TaskStatusResponse(BaseModel): + status: str + ready: bool diff --git a/api/v1/task.py b/api/v1/task.py index 3931bd4..5f31783 100644 --- a/api/v1/task.py +++ b/api/v1/task.py @@ -1,6 +1,11 @@ from uuid import UUID from fastapi import APIRouter, HTTPException, status -from .models import TaskCreateRequest, TaskCreateResponse +from .models import ( + TaskCreateRequest, + TaskCreateResponse, + TaskStatusRequest, + TaskStatusResponse, +) from core import tasks, processing @@ -20,12 +25,14 @@ async def create_task(request: TaskCreateRequest): return TaskCreateResponse(task_id=task_id) -@router.get("/status") -async def get_status(uuid: UUID): - task = tasks.get_tasks().get(uuid) +@router.get("/status", response_model=TaskStatusResponse) +async def get_status(request: TaskStatusRequest): + task = tasks.get_tasks().get(request.uuid) if task: - return { "status": task.get_status(), "ready": task.is_finished() } - raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Task is not found") + return TaskStatusResponse(status=task.get_status(), ready=task.is_finished()) + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, detail="Task is not found" + ) @router.get("/tasks") @@ -41,5 +48,7 @@ async def get_all_tasks(): @router.delete("/terminate") async def terminate_task(uuid: UUID): if tasks.get_tasks().get(uuid, None) is None: - raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Task is not Found") + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, detail="Task is not Found" + ) tasks.terminate(uuid) -- GitLab From 6c9c3526e2f396f45d133376a58a92a1a463c61c Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev <a.kudryavtsev@innopolis.university> Date: Fri, 23 Jun 2023 06:18:26 +0000 Subject: [PATCH 3/4] Update task.py --- api/v1/task.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/v1/task.py b/api/v1/task.py index 5f31783..facabb6 100644 --- a/api/v1/task.py +++ b/api/v1/task.py @@ -26,8 +26,8 @@ async def create_task(request: TaskCreateRequest): @router.get("/status", response_model=TaskStatusResponse) -async def get_status(request: TaskStatusRequest): - task = tasks.get_tasks().get(request.uuid) +async def get_status(task_id: UUID): + task = tasks.get_tasks().get(task_id)) if task: return TaskStatusResponse(status=task.get_status(), ready=task.is_finished()) raise HTTPException( -- GitLab From bc8c249b708bed8b07bbfff4f3ae98dd56db3ad1 Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev <antonkudryavtsevdoem@gmail.com> Date: Fri, 23 Jun 2023 09:19:23 +0300 Subject: [PATCH 4/4] fix: syntax error in endpoint --- api/v1/task.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/v1/task.py b/api/v1/task.py index facabb6..4c0f914 100644 --- a/api/v1/task.py +++ b/api/v1/task.py @@ -27,7 +27,7 @@ async def create_task(request: TaskCreateRequest): @router.get("/status", response_model=TaskStatusResponse) async def get_status(task_id: UUID): - task = tasks.get_tasks().get(task_id)) + task = tasks.get_tasks().get(task_id) if task: return TaskStatusResponse(status=task.get_status(), ready=task.is_finished()) raise HTTPException( -- GitLab