Partial integration of database.

This commit is contained in:
Alexander Huddleston 2020-03-08 01:21:41 -06:00
parent 344ad4e47b
commit 1ae10296fc
3 changed files with 42 additions and 5 deletions

View file

@ -1,7 +1,9 @@
try:
from classUwuCounter import UwuCounter
from databaseMethods import create_user
except:
from .classUwuCounter import UwuCounter
from .databaseMethods import create_user
from flask import Flask, Response
from flask_login import LoginManager, UserMixin, login_required
@ -16,6 +18,7 @@ class User(UserMixin):
self.id = username
self.password = password
self.count = UwuCounter(initialCount)
create_user(0, username, password, 0)
@classmethod
def get(cls, id):

View file

@ -1,15 +1,15 @@
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean
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']}")
conn = engine.connect()
md = MetaData()
def initialize_database():
conn = engine.connect()
md = MetaData()
users = Table('users', md,
Column('id', Integer()),
Column('name', String(255)),
@ -19,3 +19,33 @@ def initialize_database():
md.create_all(engine)
except Exception as e:
print(f'{e}')
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)

View file

@ -2,10 +2,12 @@ try:
from .lib.helpers import get_static_paths, get_content_text
from .lib.classUser import User
from .lib.classUwuCounter import UwuCounter
from .lib.databaseMethods import get_table, get_count, update_count
except:
from lib.classUser import User
from lib.helpers import get_static_paths, get_content_text
from lib.classUwuCounter import UwuCounter
from lib.databaseMethods import get_table, get_count, update_count
from . import app
from flask import Flask, render_template, redirect, url_for, request, flash
from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user
@ -44,7 +46,9 @@ def get_curval(username):
error = ''
if(request.method == 'GET'):
try:
return f'{User.user_database[username][2].curval}'
new_count = f'{User.user_database[username][2].curval}'
update_count(username, new_count)
return new_count
except Exception as e:
error = f'{e}'
return f'ERROR: {error}'
@ -55,7 +59,7 @@ def user_page(username):
error = ''
if(request.method == 'GET'):
if(username in User.user_database.keys()):
return render_template('user/index.html', this_user=username, user_curval=str(User.user_database[username][2].curval), static_paths=get_static_paths(), content_text=get_content_text())
return render_template('user/index.html', this_user=username, user_curval=str(get_count(username)), static_paths=get_static_paths(), content_text=get_content_text())
else:
error = 'User doesn\'t exist.'
elif(request.method == 'POST'):