aboutsummaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorJoris2020-06-06 17:44:26 +0200
committerJoris2020-06-06 19:54:03 +0200
commit1595e0de940a86a7810df0e02e43838d97c0d846 (patch)
tree9701eeec0d98baa9f6044b1911df68e4c8539819 /src/db
parent6b9195000eb5404c247288b384d7ca2bacc1ab23 (diff)
Provide nix build
Diffstat (limited to 'src/db')
-rw-r--r--src/db/init.py51
-rw-r--r--src/db/tags.py72
-rw-r--r--src/db/task_tags.py39
-rw-r--r--src/db/tasks.py103
4 files changed, 0 insertions, 265 deletions
diff --git a/src/db/init.py b/src/db/init.py
deleted file mode 100644
index 5d847a3..0000000
--- a/src/db/init.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import sqlite3
-import os.path
-import time
-
-def init(path):
-
- is_db_new = not os.path.isfile(path)
-
- database = sqlite3.connect(path)
-
- cursor = database.cursor()
-
- if is_db_new:
-
- cursor.execute(
- " CREATE TABLE IF NOT EXISTS tasks("
- " id INTEGER PRIMARY KEY,"
- " created_at INTEGER NOT NULL,"
- " updated_at INTEGER NOT NULL,"
- " name TEXT NOT NULL,"
- " duration INTEGER,"
- " difficulty INT,"
- " priority INT,"
- " description TEXT,"
- " status TEXT"
- " )")
-
- cursor.execute(
- " CREATE TABLE IF NOT EXISTS tags("
- " id INTEGER PRIMARY KEY,"
- " created_at INTEGER NOT NULL,"
- " updated_at INTEGER NOT NULL,"
- " name TEXT NOT NULL,"
- " color TEXT NOT NULL"
- " )")
-
- cursor.execute(
- " CREATE TABLE IF NOT EXISTS task_tags("
- " task_id INTEGER NOT NULL,"
- " tag_id INTEGER NOT NULL,"
- " created_at INTEGER NOT NULL,"
- " FOREIGN KEY (task_id) REFERENCES tasks(id),"
- " FOREIGN KEY (tag_id) REFERENCES tags(id),"
- " PRIMARY KEY (task_id, tag_id)"
- " )")
-
- cursor.execute("PRAGMA foreign_keys = ON")
-
- database.commit()
-
- return database
diff --git a/src/db/tags.py b/src/db/tags.py
deleted file mode 100644
index 666bd1e..0000000
--- a/src/db/tags.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from sqlite3 import Cursor
-import time
-from typing import List
-
-from model.tag import Tag, ValidTagForm
-
-def get(cursor: Cursor) -> List[Tag]:
- cursor.execute(
- " SELECT"
- " id,"
- " created_at,"
- " updated_at,"
- " name,"
- " color"
- " FROM tags")
-
- res = []
-
- for tag in cursor.fetchall():
- res.append(Tag(
- id = tag[0],
- created_at = tag[1],
- updated_at = tag[2],
- name = tag[3],
- color = tag[4]
- ))
-
- return res
-
-def insert(cursor: Cursor, form: ValidTagForm):
- now = int(time.time())
- cursor.execute(
- " INSERT INTO tags("
- " created_at,"
- " updated_at,"
- " name,"
- " color"
- " ) VALUES (?, ?, ?, ?)",
- (now, now, form.name, form.color))
-
- return Tag(
- id = cursor.lastrowid,
- created_at = now,
- updated_at = now,
- name = form.name,
- color = form.color
- )
-
-def update(cursor: Cursor, tag: Tag, form: ValidTagForm):
- now = int(time.time())
-
- cursor.execute(
- " UPDATE tags SET"
- " updated_at = ?,"
- " name = ?,"
- " color = ?"
- " WHERE id = ?",
- (now, form.name, form.color, tag.id))
-
- return Tag(
- id = tag.id,
- created_at = tag.created_at,
- updated_at = now,
- name = form.name,
- color = form.color
- )
-
-def delete(cursor: Cursor, ids):
- if len(ids) >= 1:
- cursor.execute(
- "DELETE FROM tags WHERE id IN (%s)" % ",".join("?"*len(ids)),
- ids)
diff --git a/src/db/task_tags.py b/src/db/task_tags.py
deleted file mode 100644
index e8c0ee0..0000000
--- a/src/db/task_tags.py
+++ /dev/null
@@ -1,39 +0,0 @@
-from sqlite3 import Cursor
-import time
-from typing import List
-
-from model.task_tag import TaskTag
-
-def one_is_used(cursor: Cursor, tag_ids: List[int]) -> bool:
- if len(tag_ids) >= 1:
- cursor.execute(
- "SELECT task_id FROM task_tags WHERE tag_id IN (%s) LIMIT 1" % ",".join("?"*len(tag_ids)),
- tag_ids)
- return len(cursor.fetchall()) == 1
- else:
- return False
-
-def get(cursor: Cursor) -> List[TaskTag]:
- cursor.execute("SELECT task_id, tag_id FROM task_tags")
- return [TaskTag(r[0], r[1]) for r in cursor.fetchall()]
-
-def insert_many(cursor: Cursor, task_id: int, tag_ids: List[int]) -> List[TaskTag] :
- now = int(time.time())
-
- task_tags = [TaskTag(task_id = task_id, tag_id = tag) for tag in tag_ids]
-
- cursor.executemany(
- " INSERT INTO task_tags("
- " task_id,"
- " tag_id,"
- " created_at"
- " ) VALUES (?, ?, ?)",
- [(t.task_id, t.tag_id, now) for t in task_tags])
-
- return task_tags
-
-def delete(cursor: Cursor, task_ids: List[int]):
- if len(task_ids) >= 1:
- cursor.execute(
- "DELETE FROM task_tags WHERE task_id IN (%s)" % ",".join("?"*len(task_ids)),
- task_ids)
diff --git a/src/db/tasks.py b/src/db/tasks.py
deleted file mode 100644
index efb88d6..0000000
--- a/src/db/tasks.py
+++ /dev/null
@@ -1,103 +0,0 @@
-from sqlite3 import Cursor
-import time
-from typing import List
-
-from model.task import Task, ValidTaskForm
-from model.status import Status
-from model import difficulty, priority, status
-
-def get(cursor: Cursor, s: Status) -> List[Task]:
- cursor.execute(
- " SELECT"
- " id,"
- " created_at,"
- " updated_at,"
- " name,"
- " duration,"
- " difficulty,"
- " priority,"
- " description"
- " FROM"
- " tasks"
- " WHERE"
- " status = ?",
- (status.format(s),))
-
- res = []
-
- for task in cursor.fetchall():
- res.append(Task(
- id = task[0],
- created_at = task[1],
- updated_at = task[2],
- name = task[3],
- duration = task[4],
- difficulty = difficulty.parse(task[5]),
- priority = priority.parse(task[6]),
- description = task[7]
- ))
-
- return res
-
-def insert(cursor: Cursor, s: Status, form: ValidTaskForm):
- now = int(time.time())
- cursor.execute(
- " INSERT INTO tasks("
- " created_at,"
- " updated_at,"
- " name,"
- " duration,"
- " difficulty,"
- " priority,"
- " description,"
- " status"
- " ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
- (now, now, form.name, form.duration, difficulty.format(form.difficulty), priority.format(form.priority), form.description, status.format(s)))
-
- return Task(
- id = cursor.lastrowid,
- created_at = now,
- updated_at = now,
- name = form.name,
- duration = form.duration,
- difficulty = form.difficulty,
- priority = form.priority,
- description = form.description
- )
-
-def update(cursor: Cursor, task: Task, form: ValidTaskForm):
- now = int(time.time())
-
- cursor.execute(
- " UPDATE tasks SET"
- " updated_at = ?,"
- " name = ?,"
- " duration = ?,"
- " difficulty = ?,"
- " priority = ?,"
- " description = ?"
- " WHERE id = ?",
- (now, form.name, form.duration, difficulty.format(form.difficulty), priority.format(form.priority), form.description, task.id))
-
- return Task(
- id = task.id,
- created_at = task.created_at,
- updated_at = now,
- name = form.name,
- duration = form.duration,
- difficulty = form.difficulty,
- priority = form.priority,
- description = form.description
- )
-
-def delete(cursor: Cursor, ids: List[int]):
- if len(ids) >= 1:
- cursor.execute(
- "DELETE FROM tasks WHERE id IN (%s)" % ",".join("?"*len(ids)),
- ids)
-
-def update_status(cursor: Cursor, ids: List[int], s: Status):
- if len(ids) >= 1:
- cursor.execute(
- "UPDATE tasks SET status = ? WHERE id IN (%s)" % ",".join("?"*len(ids)),
- [status.format(s)] + ids)