Last Commit for solidjs

This commit is contained in:
2024-07-24 02:39:55 +00:00
parent 5eb89d3b99
commit 953edb3d0c
18 changed files with 397 additions and 93 deletions

View File

@ -1,7 +1,7 @@
from backend.db.models.houses import Houses, Areas
from sqlalchemy.orm import Session
from backend.schemas.house import HouseCreate
from backend.schemas.house import HouseCreate, HouseUpdate, AreaUpdate
class RepositoryHouses:
def __init__(self):
@ -34,3 +34,45 @@ class RepositoryHouses:
db.refresh(db_house)
return db_house
def update_area(self, db: Session, areas: list[AreaUpdate], house_id: str):
db_house = self.get_by_id(house_id)
if not db_house:
return None
try:
db_areaId = [area.id for area in db_house.areas]
area_update_id = [area.id for area in areas if area.id is not None]
area_delete_id = [area_id for area_id in db_areaId if area_id not in area_update_id]
if area_delete_id:
self.areas.query.where(Areas.id.in_(area_delete_id)).delete()
for area in areas:
area_obj = Areas(**area.dict(), house_id=house_id)
db.merge(area_obj)
# areaList = [dict(**area.dict(), house_id=house_id) for area in areas]
# db.execute(update(Areas), areaList)
# self.areas.query.update(areaList)
db.commit()
except Exception:
db.rollback()
raise
def update(self, db: Session, house: HouseUpdate):
db_house = self.get_by_id(house.id)
if not db_house:
return None
try:
self.houses.query.where(Houses.id == house.id).update(house.dict(exclude={"id", 'areas'}, exclude_unset=True, exclude_none=True))
db.commit()
self.update_area(db, house.areas, house.id)
except Exception:
db.rollback()
raise
db.refresh(db_house)
return db_house
def delete(self, db: Session, house_id: str):
pass