Files
CoPay/backend/app/utils/factories.py
T
2024-11-17 02:31:42 +03:00

67 lines
1.7 KiB
Python

import uuid
import sqlmodel
from app.core.config import config
from app.models.user import User
engine = sqlmodel.create_engine(config.DATABASE_URL)
class UserFactory:
@staticmethod
def new_user(
id: int,
username: str,
events: list['Event'] = None,
items: list['Item'] = None,
transactions: list['Transaction'] = None,
):
with sqlmodel.Session(engine) as session:
user = User(
id=id,
username=username,
events=events if events else [],
items=items if items else [],
transactions=transactions if transactions else [],
)
session.add(user)
session.commit()
@staticmethod
def bulk_new_users(users: list[dict]):
with sqlmodel.Session(engine) as session:
print(session.exec(sqlmodel.select(User)).all())
for user in users:
UserFactory.new_user(**user)
class EventFactory:
@staticmethod
def new_event(
id: int,
owner_id: int,
invite: uuid.UUID = None,
users: list['User'] = None,
transactions: list['Transaction'] = None,
):
with sqlmodel.Session(engine) as session:
user = User(
id=id,
username=username,
events=events,
items=items,
transactions=transactions,
)
session.add(user)
session.commit()
@staticmethod
def bulk_new_users(users: list[dict]):
with sqlmodel.Session(engine) as session:
print(session.exec(sqlmodel.select(User)).all())
for user in users:
UserFactory.new_user(**user)