about summary refs log tree commit diff
path: root/qc_app/db_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'qc_app/db_utils.py')
-rw-r--r--qc_app/db_utils.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/qc_app/db_utils.py b/qc_app/db_utils.py
index a04c5e1..75b6b73 100644
--- a/qc_app/db_utils.py
+++ b/qc_app/db_utils.py
@@ -2,7 +2,7 @@
 import logging
 import traceback
 import contextlib
-from typing import Tuple, Optional, Iterator
+from typing import Any, Tuple, Optional, Iterator, Callable
 
 from urllib.parse import urlparse
 import MySQLdb as mdb
@@ -32,3 +32,8 @@ def database_connection(db_url: Optional[str] = None) -> Iterator[mdb.Connection
         connection.rollback()
     finally:
         connection.close()
+
+def with_db_connection(func: Callable[[mdb.Connection], Any]) -> Any:
+    """Call `func` with a MySQDdb database connection."""
+    with database_connection(app.config["SQL_URI"]) as conn:
+        return func(conn)