from typing import List from model.task import Task, ValidTaskForm from model.status import Status import db.tasks import db.task_tags import database def get(cursor, status: Status) -> List[Task]: return db.tasks.get(cursor, status) def create(cursor, status: Status, task_form: ValidTaskForm) -> Task: task = db.tasks.insert(cursor, status, task_form) db.task_tags.insert_many(cursor, task.id, task_form.tags) database.commit() return task def update(cursor, task: Task, task_form: ValidTaskForm) -> Task: db.task_tags.delete(cursor, [task.id]) updated_task = db.tasks.update(cursor, task, task_form) db.task_tags.insert_many(cursor, task.id, task_form.tags) database.commit() return updated_task def delete(cursor, task_ids: List[int]): db.task_tags.delete(cursor, task_ids) db.tasks.delete(cursor, task_ids) database.commit() def update_status(cursor, task_ids: List[int], status: Status) -> List[Task]: db.tasks.update_status(cursor, task_ids, status) database.commit()