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()