diff options
Diffstat (limited to 'uploader/db_utils.py')
-rw-r--r-- | uploader/db_utils.py | 20 |
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) |