diff --git a/api/utility.py b/api/utility.py new file mode 100644 index 0000000..e0d7441 --- /dev/null +++ b/api/utility.py @@ -0,0 +1,21 @@ +from psycopg.rows import dict_row, Row +from .connection import g_conn_dict as conn +from .operation import * + +def query(name: str, sql: str) -> Row | None: + with conn[name].cursor(row_factory=dict_row) as cur: + cur.execute(sql) + return cur.fetchone() + +def decorate(value: str | None, type: str, optional: bool) -> str: + if optional: + value = 'NULL' if value == None else value + if type == 'str': + value = f'"{value}"' if value != 'NULL' else value + return value + +def update(name: str, sql: str, undo_sql: str): + with conn[name].cursor() as cur: + cur.execute(sql) + redo = sql.replace("'", '"') + add_operation(name, redo, undo_sql)