Initial commit
This commit is contained in:
11
all_paw_care/db/__init__.py
Normal file
11
all_paw_care/db/__init__.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from config import Config
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
# Database engine object
|
||||
DBEngine = create_engine(Config.SQLALCHEMY_DATABASE_URI, echo=True)
|
||||
|
||||
# Database session object
|
||||
DBSession = sessionmaker(DBEngine)
|
||||
|
||||
65
all_paw_care/db/actions.py
Normal file
65
all_paw_care/db/actions.py
Normal file
@@ -0,0 +1,65 @@
|
||||
# Local
|
||||
from all_paw_care.db.types.user import User
|
||||
from all_paw_care.db.types.base import Base
|
||||
from all_paw_care.db import DBEngine
|
||||
from all_paw_care.db import DBSession
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy import select
|
||||
|
||||
def ensure_tables():
|
||||
Base.metadata.create_all(DBEngine)
|
||||
|
||||
def login(username: str):
|
||||
if get_user(username):
|
||||
return True
|
||||
|
||||
else:
|
||||
return False
|
||||
|
||||
def add_user(username: str):
|
||||
with DBSession() as session, session.begin():
|
||||
try:
|
||||
session.add(User(username=username))
|
||||
|
||||
except:
|
||||
session.rollback()
|
||||
|
||||
finally:
|
||||
session.commit()
|
||||
|
||||
return True
|
||||
|
||||
def get_users():
|
||||
with DBSession() as session, session.begin():
|
||||
users = list()
|
||||
database_users = session.scalars(select(User).order_by(User.id)).all()
|
||||
for database_user in database_users:
|
||||
user = (database_user.id, database_user.username)
|
||||
users.append(user)
|
||||
|
||||
return users
|
||||
|
||||
def get_user(username: str = None):
|
||||
if username:
|
||||
with DBSession() as session, session.begin():
|
||||
user = session.scalars(
|
||||
select(User).where(User.username == username)).all()
|
||||
|
||||
if len(user) == 1:
|
||||
return (user[0].id, user[0].username)
|
||||
|
||||
elif len(user) == 0:
|
||||
return None
|
||||
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
def user_exists(username: str):
|
||||
with DBSession() as session, session.begin():
|
||||
users = session.execute(
|
||||
select(User).where(User.username == username))
|
||||
print(users)
|
||||
|
||||
4
all_paw_care/db/metadata.py
Normal file
4
all_paw_care/db/metadata.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from sqlalchemy.schema import MetaData
|
||||
|
||||
DBMetadata = MetaData(schema='all_paw_care')
|
||||
|
||||
5
all_paw_care/db/types/base.py
Normal file
5
all_paw_care/db/types/base.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from sqlalchemy.orm import DeclarativeBase
|
||||
|
||||
class Base(DeclarativeBase):
|
||||
pass
|
||||
|
||||
13
all_paw_care/db/types/user.py
Normal file
13
all_paw_care/db/types/user.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from all_paw_care.db.types.base import Base
|
||||
|
||||
from sqlalchemy import String
|
||||
from sqlalchemy.orm import Mapped
|
||||
from sqlalchemy.orm import mapped_column
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = 'users'
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
username: Mapped[str] = mapped_column(
|
||||
String(40), nullable=False, unique=True)
|
||||
|
||||
Reference in New Issue
Block a user