12
12
13
13
14
14
class SqliteBoardImageRecordStorage (BoardImageRecordStorageBase ):
15
- _conn : sqlite3 .Connection
16
- _cursor : sqlite3 .Cursor
17
-
18
15
def __init__ (self , db : SqliteDatabase ) -> None :
19
16
super ().__init__ ()
20
17
self ._conn = db .conn
21
- self ._cursor = self ._conn .cursor ()
22
18
23
19
def add_image_to_board (
24
20
self ,
25
21
board_id : str ,
26
22
image_name : str ,
27
23
) -> None :
28
24
try :
29
- self ._cursor .execute (
25
+ cursor = self ._conn .cursor ()
26
+ cursor .execute (
30
27
"""--sql
31
28
INSERT INTO board_images (board_id, image_name)
32
29
VALUES (?, ?)
@@ -44,7 +41,8 @@ def remove_image_from_board(
44
41
image_name : str ,
45
42
) -> None :
46
43
try :
47
- self ._cursor .execute (
44
+ cursor = self ._conn .cursor ()
45
+ cursor .execute (
48
46
"""--sql
49
47
DELETE FROM board_images
50
48
WHERE image_name = ?;
@@ -63,7 +61,8 @@ def get_images_for_board(
63
61
limit : int = 10 ,
64
62
) -> OffsetPaginatedResults [ImageRecord ]:
65
63
# TODO: this isn't paginated yet?
66
- self ._cursor .execute (
64
+ cursor = self ._conn .cursor ()
65
+ cursor .execute (
67
66
"""--sql
68
67
SELECT images.*
69
68
FROM board_images
@@ -73,15 +72,15 @@ def get_images_for_board(
73
72
""" ,
74
73
(board_id ,),
75
74
)
76
- result = cast (list [sqlite3 .Row ], self . _cursor .fetchall ())
75
+ result = cast (list [sqlite3 .Row ], cursor .fetchall ())
77
76
images = [deserialize_image_record (dict (r )) for r in result ]
78
77
79
- self . _cursor .execute (
78
+ cursor .execute (
80
79
"""--sql
81
80
SELECT COUNT(*) FROM images WHERE 1=1;
82
81
"""
83
82
)
84
- count = cast (int , self . _cursor .fetchone ()[0 ])
83
+ count = cast (int , cursor .fetchone ()[0 ])
85
84
86
85
return OffsetPaginatedResults (items = images , offset = offset , limit = limit , total = count )
87
86
@@ -128,31 +127,34 @@ def get_all_board_image_names_for_board(
128
127
stmt += ";"
129
128
130
129
# Execute the query
131
- self ._cursor .execute (stmt , params )
130
+ cursor = self ._conn .cursor ()
131
+ cursor .execute (stmt , params )
132
132
133
- result = cast (list [sqlite3 .Row ], self . _cursor .fetchall ())
133
+ result = cast (list [sqlite3 .Row ], cursor .fetchall ())
134
134
image_names = [r [0 ] for r in result ]
135
135
return image_names
136
136
137
137
def get_board_for_image (
138
138
self ,
139
139
image_name : str ,
140
140
) -> Optional [str ]:
141
- self ._cursor .execute (
141
+ cursor = self ._conn .cursor ()
142
+ cursor .execute (
142
143
"""--sql
143
144
SELECT board_id
144
145
FROM board_images
145
146
WHERE image_name = ?;
146
147
""" ,
147
148
(image_name ,),
148
149
)
149
- result = self . _cursor .fetchone ()
150
+ result = cursor .fetchone ()
150
151
if result is None :
151
152
return None
152
153
return cast (str , result [0 ])
153
154
154
155
def get_image_count_for_board (self , board_id : str ) -> int :
155
- self ._cursor .execute (
156
+ cursor = self ._conn .cursor ()
157
+ cursor .execute (
156
158
"""--sql
157
159
SELECT COUNT(*)
158
160
FROM board_images
@@ -162,5 +164,5 @@ def get_image_count_for_board(self, board_id: str) -> int:
162
164
""" ,
163
165
(board_id ,),
164
166
)
165
- count = cast (int , self . _cursor .fetchone ()[0 ])
167
+ count = cast (int , cursor .fetchone ()[0 ])
166
168
return count
0 commit comments