from sqlite3 import Cursor import time from model.task import Task, ValidTaskForm def get(cursor: Cursor) -> Task: cursor.execute( " SELECT" " id," " created_at," " modified_at," " name," " duration," " tag" " FROM tasks") res = [] for task in cursor.fetchall(): res.append(Task( id = task[0], created_at = task[1], modified_at = task[2], name = task[3], duration = task[4], tag = task[5] )) return res def insert(cursor: Cursor, form: ValidTaskForm): now = int(time.time()) cursor.execute( " INSERT INTO tasks(" " created_at," " modified_at," " name," " duration," " tag" " ) VALUES (?, ?, ?, ?, ?)", (now, now, form.name, form.duration, form.tag)) return Task( id = cursor.lastrowid, created_at = now, modified_at = now, name = form.name, duration = form.duration, tag = form.tag ) def update(cursor: Cursor, task: Task, form: ValidTaskForm): now = int(time.time()) cursor.execute( " UPDATE tasks" " SET" " modified_at = ?," " name = ?," " duration = ?," " tag = ?" " WHERE id = ?", (now, form.name, form.duration, form.tag, task.id)) return Task( id = task.id, created_at = task.created_at, modified_at = now, name = form.name, duration = form.duration, tag = form.tag ) def delete(cursor: Cursor, ids): if len(ids) >= 1: cursor.execute( 'DELETE FROM tasks WHERE id IN (%s)' % ','.join('?'*len(ids)), ids)