aboutsummaryrefslogtreecommitdiff
path: root/uploader/db_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/db_utils.py')
-rw-r--r--uploader/db_utils.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/uploader/db_utils.py b/uploader/db_utils.py
new file mode 100644
index 0000000..d9d521e
--- /dev/null
+++ b/uploader/db_utils.py
@@ -0,0 +1,20 @@
+"""module contains all db related stuff"""
+from typing import Any, Callable
+
+import MySQLdb as mdb
+from redis import Redis
+from flask import current_app as app
+from gn_libs.mysqldb import database_connection
+
+
+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)
+
+
+def with_redis_connection(func: Callable[[Redis], Any]) -> Any:
+ """Call `func` with a redis connection."""
+ redisuri = app.config["REDIS_URL"]
+ with Redis.from_url(redisuri, decode_responses=True) as rconn:
+ return func(rconn)