[FWA-5] Update Home List Function

This commit is contained in:
2024-07-03 08:58:10 +00:00
parent b938f296c1
commit ac841ba8e0
15 changed files with 197 additions and 77 deletions

View File

@ -12,6 +12,7 @@ from backend.core.config import get_app_settings
from backend.db.db_setup import session_context
from backend.repos.repository_users import RepositoryUsers
from backend.repos.seeder import default_users_init
from backend.repos.seeder.init_house import default_house_init
PROJECT_DIR = Path(__file__).parent.parent.parent
@ -20,6 +21,7 @@ logger = root_logger.get_logger()
def init_db(db) -> None:
logger.info("Initializing user data...")
default_users_init(db)
default_house_init(db)
def db_is_at_head(alembic_cfg: config.Config) -> bool:
settings = get_app_settings()

View File

@ -9,13 +9,13 @@ class RepositoryHouses:
self.areas = Areas()
def get_all(self, skip: int = 0, limit: int = 100):
return self.houses.query.filter_by(deleted_at=None).offset(skip).limit(limit).all()
return self.houses.query.filter_by(deleted_at=None).offset(skip*limit).limit(limit).all()
def get_all_areas(self, house_id: str, skip: int = 0, limit: int = 100):
return self.areas.query.filter_by(deleted_at=None, house_id=house_id).offset(skip).limit(limit).all()
def get_count_all(self, skip: int = 0, limit: int = 100):
return self.houses.query.filter_by(deleted_at=None).offset(skip).limit(limit).count()
def get_count_all(self):
return self.houses.query.filter_by(deleted_at=None).count()
def get_by_id(self, house_id: str):
return self.houses.query.filter_by(id=house_id).one()

View File

@ -1 +1,2 @@
from .init_users import default_users_init
from .init_house import default_house_init

View File

@ -0,0 +1,26 @@
from backend.core.config import get_app_settings
from backend.core.root_logger import get_logger
from backend.repos.repository_houses import RepositoryHouses
from sqlalchemy.orm import Session
from backend.schemas.house.house import HouseCreate
logger = get_logger("init_house")
settings = get_app_settings()
def dev_houses() -> list[dict]:
list = []
for x in range(20):
list.append({
"icon": "IconAccessible",
"name": f"Home{x+1}",
"address": f"Address{x+1}",
"areas": [{"name": f"Area{x+1}", "desc": "Description"}],
})
return list
def default_house_init(session: Session):
houses = RepositoryHouses()
for house in dev_houses():
houses.create(session, HouseCreate(**house))

View File

@ -12,19 +12,13 @@ settings = get_app_settings()
def dev_users() -> list[dict]:
return [
{
"username": "sam",
"username": "admin",
"password": "admin",
"name": "Sam",
"is_admin": True,
},
{
"username": "duy",
"password": "admin",
"name": "Duy",
"is_admin": True,
},
{
"username": "sam1",
"username": "admin1",
"password": "admin",
"name": "Sam1",
"is_admin": False,

View File

@ -28,6 +28,6 @@ def create_house(house: HouseCreate, db: db_dependency, current_user: current_us
@public_router.get("/all", response_model=ReturnValue[HousesListResponse])
async def get_all_house(page: int, pageSize: int, current_user: current_user_token) -> ReturnValue[HousesListResponse]:
housesCount = house_service.get_all_count(skip=page-1, limit=pageSize)
housesCount = house_service.get_all_count()
houses = house_service.get_all(skip=page-1, limit=pageSize)
return ReturnValue(status=200, data={'total': housesCount, 'list': list(houses)})

View File

@ -14,4 +14,4 @@ class HouseService(BaseService):
return self.repos.get_all(skip=skip, limit=limit)
def get_all_count(self, skip: int = 0, limit: int = 100):
return self.repos.get_count_all(skip=skip, limit=limit)
return self.repos.get_count_all()