Created base database controller and user database controller to allow for initial database control

This commit is contained in:
2024-01-01 20:19:57 +00:00
parent ef94773b8f
commit b1a22cb7bd
13 changed files with 84 additions and 14 deletions

0
controllers/__init__.py Normal file
View File

View File

View File

@ -0,0 +1,31 @@
from abc import ABC, abstractmethod
import sqlite3
class DatabaseController(ABC):
__sqlitefile = "./data/wmgzon.db"
def __init__(self):
self._conn = None
try:
self._conn = sqlite3.connect(self.__sqlitefile)
except sqlite3.Error as e:
# Close the connection if still open
if self._conn:
self._conn.close()
print(e)
@abstractmethod
def create(self):
pass
@abstractmethod
def read(self):
pass
@abstractmethod
def update(self):
pass
@abstractmethod
def delete(self):
pass

View File

@ -0,0 +1,33 @@
from .database import DatabaseController
from models.users.user import User
class UserController(DatabaseController):
def __init__(self):
super().__init__()
def create(self, user: User):
params = [
user.firstName,
user.lastName,
user.email,
user.phone,
user.password,
user.role
]
self._conn.execute(
"INSERT INTO Users (first_name, last_name, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?)",
params
)
self._conn.commit()
user.login()
def read(self):
print("Doing work")
def update(self):
print("Doing work")
def delete(self):
print("Doing work")

View File

@ -0,0 +1,5 @@
from flask import Blueprint
blueprint = Blueprint('endpoints', __name__)
from . import endpoints

View File

@ -0,0 +1,40 @@
from . import blueprint
from flask import render_template, redirect, request
from controllers.database.user import UserController
from models.users.customer import Customer
# Function responsible for displaying the main landing page of the site
@blueprint.route('/')
def welcome_page():
return render_template('index.html', content="content.html")
### LOGIN FUNCTIONALITY
# Function responsible for delivering the Login page for the site
@blueprint.route('/login')
def display_login():
return render_template('index.html', content="login.html")
# Function responsible for handling logins to the site
@blueprint.post('/login')
def login():
print("Tryin to login as " + request.form['username'])
return redirect("/")
### SIGNUP FUNCTIONALITY
# Function responsible for delivering the Signup page for the site
@blueprint.route('/signup')
def display_signup():
return render_template('index.html', content="signup.html")
# Function responsible for handling signups to the site
@blueprint.post('/signup')
def signup():
database = UserController()
database.create(Customer())
print("Tryin to signup as " + request.form['username'])
return redirect("/")