aboutsummaryrefslogtreecommitdiff
path: root/todo/service
diff options
context:
space:
mode:
authorJoris2020-06-06 17:44:26 +0200
committerJoris2020-06-06 19:54:03 +0200
commit1595e0de940a86a7810df0e02e43838d97c0d846 (patch)
tree9701eeec0d98baa9f6044b1911df68e4c8539819 /todo/service
parent6b9195000eb5404c247288b384d7ca2bacc1ab23 (diff)
downloadtodo-1595e0de940a86a7810df0e02e43838d97c0d846.tar.gz
todo-1595e0de940a86a7810df0e02e43838d97c0d846.tar.bz2
todo-1595e0de940a86a7810df0e02e43838d97c0d846.zip
Provide nix build
Diffstat (limited to 'todo/service')
-rw-r--r--todo/service/__init__.py0
-rw-r--r--todo/service/tasks.py32
2 files changed, 32 insertions, 0 deletions
diff --git a/todo/service/__init__.py b/todo/service/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/todo/service/__init__.py
diff --git a/todo/service/tasks.py b/todo/service/tasks.py
new file mode 100644
index 0000000..2cebf00
--- /dev/null
+++ b/todo/service/tasks.py
@@ -0,0 +1,32 @@
+from typing import List
+
+from todo.model.task import Task, ValidTaskForm
+from todo.model.status import Status
+import todo.db.tasks
+import todo.db.task_tags
+import todo.database
+
+def get(cursor, status: Status) -> List[Task]:
+ return todo.db.tasks.get(cursor, status)
+
+def create(cursor, status: Status, task_form: ValidTaskForm) -> Task:
+ task = todo.db.tasks.insert(cursor, status, task_form)
+ todo.db.task_tags.insert_many(cursor, task.id, task_form.tags)
+ todo.database.commit()
+ return task
+
+def update(cursor, task: Task, task_form: ValidTaskForm) -> Task:
+ todo.db.task_tags.delete(cursor, [task.id])
+ updated_task = todo.db.tasks.update(cursor, task, task_form)
+ todo.db.task_tags.insert_many(cursor, task.id, task_form.tags)
+ todo.database.commit()
+ return updated_task
+
+def delete(cursor, task_ids: List[int]):
+ todo.db.task_tags.delete(cursor, task_ids)
+ todo.db.tasks.delete(cursor, task_ids)
+ todo.database.commit()
+
+def update_status(cursor, task_ids: List[int], status: Status) -> List[Task]:
+ todo.db.tasks.update_status(cursor, task_ids, status)
+ todo.database.commit()