._.
This commit is contained in:
parent
14d07f25fd
commit
d8a5be41e2
@ -7,6 +7,8 @@ class DeliveryAccessoryEntity(BaseModel):
|
||||
queue: int
|
||||
count: int
|
||||
accessory_id: Optional[int] = None
|
||||
accessory_name: Optional[str] = None
|
||||
city_name: Optional[str] = None
|
||||
delivery_order_id: Optional[int] = None
|
||||
|
||||
class Config:
|
||||
|
||||
@ -24,6 +24,21 @@ class DeliveryAccessoriesService:
|
||||
for da in delivery_accessories
|
||||
]
|
||||
|
||||
def get_all_delivery_accessories_by_order(self, delivery_order_id):
|
||||
delivery_accessories = self.repository.get_all_by_order_id(delivery_order_id)
|
||||
return [
|
||||
DeliveryAccessoryEntity(
|
||||
id=da.id,
|
||||
queue=da.queue,
|
||||
count=da.count,
|
||||
accessory_id=da.accessory_id,
|
||||
delivery_order_id=da.delivery_order_id,
|
||||
accessory_name=da.accessory.name,
|
||||
city_name=da.accessory.city.name,
|
||||
)
|
||||
for da in delivery_accessories
|
||||
]
|
||||
|
||||
def get_delivery_accessory_by_id(self, delivery_accessory_id: int) -> Optional[DeliveryAccessoryEntity]:
|
||||
delivery_accessory = self.repository.get_by_id(delivery_accessory_id)
|
||||
if delivery_accessory:
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.orm import Session, joinedload
|
||||
|
||||
from app.infrastructure.database.models.accessory import Accessory
|
||||
from app.infrastructure.database.models.delivery_accessories import DeliveryAccessory
|
||||
|
||||
|
||||
@ -9,6 +11,12 @@ class DeliveryAccessoriesRepository:
|
||||
def get_all(self):
|
||||
return self.db.query(DeliveryAccessory).all()
|
||||
|
||||
def get_all_by_order_id(self, delivery_order_id):
|
||||
return self.db.query(DeliveryAccessory) \
|
||||
.options(joinedload(DeliveryAccessory.accessory).joinedload(Accessory.city)) \
|
||||
.filter(DeliveryAccessory.delivery_order_id == delivery_order_id) \
|
||||
.all()
|
||||
|
||||
def get_by_id(self, delivery_accessory_id: int):
|
||||
return self.db.query(DeliveryAccessory).filter(DeliveryAccessory.id == delivery_accessory_id).first()
|
||||
|
||||
|
||||
@ -19,6 +19,13 @@ def read_delivery_accessories(db: Session = Depends(get_db),
|
||||
return service.get_all_delivery_accessories()
|
||||
|
||||
|
||||
@router.get("/delivery-orders/{delivery_order_id}/accessories", response_model=List[DeliveryAccessoryEntity])
|
||||
def get_delivery_accessories_by_order(delivery_order_id: int, db: Session = Depends(get_db),
|
||||
current_user: User = Depends(verify_token)):
|
||||
service = DeliveryAccessoriesService(db)
|
||||
return service.get_all_delivery_accessories_by_order(delivery_order_id)
|
||||
|
||||
|
||||
@router.get("/delivery-accessories/{delivery_accessory_id}", response_model=DeliveryAccessoryEntity)
|
||||
def read_delivery_accessory(delivery_accessory_id: int, db: Session = Depends(get_db),
|
||||
current_user: User = Depends(verify_token)):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user