Projekt

Obecné

Profil

Stáhnout (1.99 KB) Statistiky
| Větev: | Tag: | Revize:
1 2c96b4a5 David Friesecký
import sqlite3
2
from sqlite3 import Error
3
4
from ..constants import DATABASE_FILE
5
from ..dao.repository import IRepository
6
7
8
class DBManager(IRepository):
9
10
    def create(self, sql: str, *args) -> bool:
11
        conn = None
12
        try:
13
            sql: str = args[0]
14
            values = args[1:]
15
16
            conn = sqlite3.connect(DATABASE_FILE)
17
            c = conn.cursor()
18
            c.execute(sql, values)
19
            conn.commit()
20
            c.close()
21
        except Error as e:
22
            print(e)
23
            return False
24
        finally:
25
            if conn:
26
                conn.close()
27
        return True
28
29
    def read(self, sql: str, item_id: int = None) -> list:
30
        conn = None
31
        try:
32
            conn = sqlite3.connect(DATABASE_FILE)
33
            c = conn.cursor()
34
35
            if item_id is not None:
36
                c.execute(sql, item_id)
37
            else:
38
                c.execute(sql)
39
40
            records = c.fetchall()
41
            c.close()
42
        except Error as e:
43
            print(e)
44
            return []
45
        finally:
46
            if conn:
47
                conn.close()
48
        return records
49
50
    def update(self, sql: str, item_id: int, *args) -> bool:
51
        conn = None
52
        try:
53
            values = list(args)
54
            values.append(item_id)
55
56
            conn = sqlite3.connect(DATABASE_FILE)
57
            c = conn.cursor()
58
            c.execute(sql, values)
59
            conn.commit()
60
            c.close()
61
        except Error as e:
62
            print(e)
63
            return False
64
        finally:
65
            if conn:
66
                conn.close()
67
        return True
68
69
    def delete(self, sql: str, item_id: int) -> bool:
70
        conn = None
71
        try:
72
            conn = sqlite3.connect(DATABASE_FILE)
73
            c = conn.cursor()
74
            c.execute(sql, (item_id,))
75
            conn.commit()
76
            c.close()
77
        except Error as e:
78
            print(e)
79
            return False
80
        finally:
81
            if conn:
82
                conn.close()
83
        return True