aboutsummaryrefslogtreecommitdiff
path: root/src/service
diff options
context:
space:
mode:
Diffstat (limited to 'src/service')
-rw-r--r--src/service/tasks.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/service/tasks.py b/src/service/tasks.py
new file mode 100644
index 0000000..6c3444b
--- /dev/null
+++ b/src/service/tasks.py
@@ -0,0 +1,27 @@
+from typing import List
+
+from model.task import Task, ValidTaskForm
+import db.tasks
+import db.task_tags
+import database
+
+def get(cursor) -> List[Task]:
+ return db.tasks.get(cursor)
+
+def create(cursor, task_form: ValidTaskForm) -> Task:
+ task = db.tasks.insert(cursor, task_form)
+ new_task_tags = db.task_tags.insert_many(cursor, task.id, task_form.tags)
+ database.commit()
+ return task
+
+def update(cursor, task: Task, task_form: ValidTaskForm) -> Task:
+ updated_task = db.tasks.update(cursor, task, task_form)
+ db.task_tags.delete(cursor, [task.id])
+ new_task_tags = db.task_tags.insert_many(cursor, task.id, task_form.tags)
+ database.commit()
+ return updated_task
+
+def delete(cursor, task_ids: List[int]):
+ db.tasks.delete(cursor, task_ids)
+ db.task_tags.delete(cursor, task_ids)
+ database.commit()