This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
uwu-me/uwume/lib/databaseMethods.py

52 lines
1.6 KiB
Python
Raw Normal View History

2020-03-08 01:21:41 -06:00
from sqlalchemy import create_engine, insert, update, select, MetaData, Table, Column, Integer, String, Boolean
from os import environ
pg_pass_file = open(environ['POSTGRES_PASSWORD_FILE'])
pg_pass = pg_pass_file.readline().strip('\n')
engine = create_engine(
f"postgresql+psycopg2://{environ['POSTGRES_USER']}:{pg_pass}@{environ['POSTGRES_HOST']}:{environ['POSTGRES_PORT']}/{environ['POSTGRES_DB']}")
2020-03-08 01:21:41 -06:00
conn = engine.connect()
md = MetaData()
def initialize_database():
users = Table('users', md,
Column('id', Integer()),
Column('name', String(255)),
Column('pass', String(255)),
Column('count', Integer()))
try:
md.create_all(engine)
except Exception as e:
print(f'{e}')
2020-03-08 01:21:41 -06:00
def create_user(idn, name, password, count):
users = Table('users', md, autoload=True, autoload_with=engine)
query = insert(users)
values = [{
'id': idn,
'name': name,
'password': password,
'count': count
}]
output = conn.execute(query, values)
def get_table():
users = Table('users', md, autoload=True, autoload_with=engine)
return users.columns.keys()
def get_count(user):
users = Table('users', md, autoload=True, autoload_with=engine)
query = select([users.columns.count]).where(users.columns.name == user)
output = conn.execute(query)
return output.fetchone()[0]
def update_count(user, count):
users = Table('users', md, autoload=True, autoload_with=engine)
query = update(users).values(count=count).where(users.columns.name == user)
return conn.execute(query)