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