feat: task

This commit is contained in:
2026-07-03 19:59:19 +02:00
parent edceea6619
commit 4050368147
7 changed files with 125 additions and 5 deletions
+43 -1
View File
@@ -5,9 +5,10 @@ import flask
import flask_limiter
import flask_limiter.util
import gunicorn.app.base
import tortoise
from app import PKG_NAME
from app.models.comment import Comment
from app.models import Comment, Task
if typing.TYPE_CHECKING:
from app.params import Parameters
@@ -50,6 +51,47 @@ class Server(gunicorn.app.base.BaseApplication):
await Comment.create(content=data["content"])
return ("", 204)
@self.app.route("/api/lists/<list_name>/tasks", methods=["GET"])
async def get_tasks(list_name: str) -> list:
return await Task.filter(list=list_name).values()
@self.app.route("/api/lists/<list_name>/tasks", methods=["POST"])
async def post_task(list_name: str) -> typing.Any:
data = flask.request.get_json()
data["list"] = list_name
parsed_data = Task.validate_create(data)
if parsed_data is None:
flask.abort(400)
return (await Task.create(**parsed_data)).get().values()
@self.app.route("/api/lists/<list_name>/tasks/<task_uuid>", methods=["PUT"])
async def put_task(list_name: str, task_uuid: str) -> typing.Any:
data = flask.request.get_json()
data["list"] = list_name
parsed_data = Task.validate_update(data)
if parsed_data is None:
flask.abort(400)
try:
task = await Task.get(id=task_uuid)
await task.update_from_dict(parsed_data)
return task.get().values()
except tortoise.exceptions.ObjectDoesNotExistError:
flask.abort(404)
@self.app.route("/api/lists/<list_name>/tasks/<task_uuid>", methods=["DELETE"])
async def delete_task(list_name: str, task_uuid: str) -> typing.Any:
data = flask.request.get_json()
data["list"] = list_name
parsed_data = Task.validate_update(data)
if parsed_data is None:
flask.abort(400)
try:
task = await Task.get(id=task_uuid)
await task.delete()
except tortoise.exceptions.ObjectDoesNotExistError:
flask.abort(404)
return ""
return self
@typing.override