Added dao base
All checks were successful
All checks were successful
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from cpl.database import TableABC
|
||||
from cpl.database.abc.table_abc import TableABC
|
||||
|
||||
|
||||
class CityModel(TableABC):
|
||||
|
||||
16
tests/custom/database/src/model/user.py
Normal file
16
tests/custom/database/src/model/user.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from cpl.database.abc.db_model_abc import DbModelABC
|
||||
|
||||
|
||||
class User(DbModelABC):
|
||||
def __init__(self, id: int, name: str, city_id: int = 0):
|
||||
DbModelABC.__init__(self, id)
|
||||
self._name = name
|
||||
self._city_id = city_id
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
return self._name
|
||||
|
||||
@property
|
||||
def city_id(self) -> int:
|
||||
return self._city_id
|
||||
14
tests/custom/database/src/model/user_dao.py
Normal file
14
tests/custom/database/src/model/user_dao.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from cpl.database import InternalTables
|
||||
from cpl.database.abc import DbModelDaoABC
|
||||
from model.user import User
|
||||
|
||||
|
||||
class UserDao(DbModelDaoABC[User]):
|
||||
|
||||
def __init__(self):
|
||||
DbModelDaoABC.__init__(self, __name__, User, InternalTables.users)
|
||||
|
||||
self.attribute(User.name, str)
|
||||
self.attribute(User.city_id, int, db_name="CityId")
|
||||
|
||||
self.reference("city", "id", User.city_id, "city")
|
||||
@@ -1,5 +1,4 @@
|
||||
from cpl.database import TableABC
|
||||
|
||||
from cpl.database.abc.table_abc import TableABC
|
||||
from .city_model import CityModel
|
||||
|
||||
|
||||
|
||||
@@ -1,41 +1,38 @@
|
||||
from cpl.core.console import Console
|
||||
from cpl.database.mysql.context import DatabaseContextABC
|
||||
|
||||
from cpl.database.abc.db_context_abc import DBContextABC
|
||||
from .city_model import CityModel
|
||||
from .user_model import UserModel
|
||||
from .user_repo_abc import UserRepoABC
|
||||
|
||||
|
||||
class UserRepo(UserRepoABC):
|
||||
def __init__(self, db_context: DatabaseContextABC):
|
||||
def __init__(self, db_context: DBContextABC):
|
||||
UserRepoABC.__init__(self)
|
||||
|
||||
self._db_context: DatabaseContextABC = db_context
|
||||
self._db_context: DBContextABC = db_context
|
||||
|
||||
def add_test_user(self):
|
||||
city = CityModel("Haren", "49733")
|
||||
city2 = CityModel("Meppen", "49716")
|
||||
self._db_context.cursor.execute(city2.insert_string)
|
||||
self._db_context.execute(city2.insert_string)
|
||||
user = UserModel("TestUser", city)
|
||||
self._db_context.cursor.execute(user.insert_string)
|
||||
self._db_context.save_changes()
|
||||
self._db_context.execute(user.insert_string)
|
||||
|
||||
def get_users(self) -> list[UserModel]:
|
||||
async def get_users(self) -> list[UserModel]:
|
||||
users = []
|
||||
results = self._db_context.select("SELECT * FROM `User`")
|
||||
results = await self._db_context.select("SELECT * FROM `User`")
|
||||
for result in results:
|
||||
users.append(UserModel(result[1], self.get_city_by_id(result[2]), id=result[0]))
|
||||
users.append(UserModel(result[1], await self.get_city_by_id(result[2]), id=result[0]))
|
||||
return users
|
||||
|
||||
def get_cities(self) -> list[CityModel]:
|
||||
async def get_cities(self) -> list[CityModel]:
|
||||
cities = []
|
||||
results = self._db_context.select("SELECT * FROM `City`")
|
||||
results = await self._db_context.select("SELECT * FROM `City`")
|
||||
for result in results:
|
||||
cities.append(CityModel(result[1], result[2], id=result[0]))
|
||||
return cities
|
||||
|
||||
def get_city_by_id(self, id: int) -> CityModel:
|
||||
async def get_city_by_id(self, id: int) -> CityModel:
|
||||
if id is None:
|
||||
return None
|
||||
result = self._db_context.select(f"SELECT * FROM `City` WHERE `Id` = {id}")
|
||||
result = await self._db_context.select(f"SELECT * FROM `City` WHERE `Id` = {id}")
|
||||
return CityModel(result[1], result[2], id=result[0])
|
||||
|
||||
Reference in New Issue
Block a user