2020-03-08 01:21:41 -06:00
|
|
|
from sqlalchemy import create_engine, insert, update, select, MetaData, Table, Column, Integer, String, Boolean
|
2020-03-08 00:51:02 -06:00
|
|
|
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()
|
2020-03-08 00:51:02 -06:00
|
|
|
|
|
|
|
|
|
|
|
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)
|