From 44b58bc48c31bab3b775b81ecdacfed82bbc2f57 Mon Sep 17 00:00:00 2001 From: Wolfgang Ludger Hottgenroth Date: Fri, 2 Jul 2021 10:53:42 +0200 Subject: [PATCH] db in account --- ENV.tmpl | 8 ++++++++ account.py | 17 +++++++++++++++++ db.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 account.py create mode 100644 db.py diff --git a/ENV.tmpl b/ENV.tmpl index d25bc14..4ee8f3e 100644 --- a/ENV.tmpl +++ b/ENV.tmpl @@ -1,2 +1,10 @@ # copy to ENV and adjust values +JWT_PUB_KEY="..." + +DB_USER="hv2" +DB_PASS="..." +DB_HOST="172.16.10.27" +DB_NAME="hv2" + + diff --git a/account.py b/account.py new file mode 100644 index 0000000..eb1c361 --- /dev/null +++ b/account.py @@ -0,0 +1,17 @@ +from db import execDatabaseOperation +from loguru import logger +import json + + +def _opGetAccounts(cursor, params): + accounts = [] + cursor.execute('SELECT id, description FROM account_t') + for accountObj in cursor: + logger.debug("add account {} -> {}".format(accountObj[0], accountObj[1])) + accounts.append({"id": accountObj[0], "description": accountObj[1]}) + return accounts + + +def getAccounts(user, token_info): + logger.info("getAccounts, token: {}".format(json.dumps(token_info))) + return execDatabaseOperation(_opGetAccounts, ()) diff --git a/db.py b/db.py new file mode 100644 index 0000000..a7913dc --- /dev/null +++ b/db.py @@ -0,0 +1,50 @@ +import psycopg2 +from loguru import logger +import os +import configparser + + + +DB_USER = "" +DB_PASS = "" +DB_HOST = "" +DB_NAME = "" +try: + DB_USER = os.environ["DB_USER"] + DB_PASS = os.environ["DB_PASS"] + DB_HOST = os.environ["DB_HOST"] + DB_NAME = os.environ["DB_NAME"] +except KeyError: + config = configparser.ConfigParser() + config.read('/opt/app/config/dbconfig.ini') + DB_USER = config["database"]["user"] + DB_PASS = config["database"]["pass"] + DB_HOST = config["database"]["host"] + DB_NAME = config["database"]["name"] + + +def databaseOperation(cursor, params): + cursor.execute('SELECT key, value FROM claims_for_user_v where "user" = %s and application = %s', + params) + for claimObj in cursor: + logger.debug("add claim {} -> {}".format(claimObj[0], claimObj[1])) + return [] + + +def execDatabaseOperation(func, params): + conn = None + cur = None + try: + conn = psycopg2.connect(user = DB_USER, password = DB_PASS, + host = DB_HOST, database = DB_NAME) + conn.autocommit = False + + with conn.cursor() as cur: + return func(cur, params) + except psycopg2.Error as err: + raise Exception("Error when connecting to database: {}".format(err)) + finally: + if conn: + conn.close() + +