46 lines
1.0 KiB
Python
46 lines
1.0 KiB
Python
import os
|
|
import psycopg2
|
|
import psycopg2.extras
|
|
|
|
DB_HOST = os.getenv("DB_HOST", "localhost")
|
|
DB_PORT = int(os.getenv("DB_PORT", 5432))
|
|
DB_NAME = os.getenv("DB_NAME", "fallout")
|
|
DB_USER = os.getenv("DB_USER", "fallout")
|
|
DB_PASS = os.getenv("DB_PASSWORD", "VeniceOfWasteland2026!")
|
|
|
|
|
|
def get_conn():
|
|
return psycopg2.connect(
|
|
host=DB_HOST, port=DB_PORT, dbname=DB_NAME,
|
|
user=DB_USER, password=DB_PASS
|
|
)
|
|
|
|
|
|
def query(sql, params=None):
|
|
conn = get_conn()
|
|
try:
|
|
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as cur:
|
|
cur.execute(sql, params)
|
|
return [dict(r) for r in cur.fetchall()]
|
|
finally:
|
|
conn.close()
|
|
|
|
|
|
def query_one(sql, params=None):
|
|
rows = query(sql, params)
|
|
return rows[0] if rows else None
|
|
|
|
|
|
def execute(sql, params=None):
|
|
conn = get_conn()
|
|
try:
|
|
with conn.cursor() as cur:
|
|
cur.execute(sql, params)
|
|
conn.commit()
|
|
finally:
|
|
conn.close()
|
|
|
|
|
|
def get_all_sessions():
|
|
return query("SELECT * FROM sessions ORDER BY id")
|