added pucks and samples
This commit is contained in:
@ -11,7 +11,8 @@ router = APIRouter()
|
||||
|
||||
@router.get("/", response_model=List[DewarSchema])
|
||||
async def get_dewars(db: Session = Depends(get_db)):
|
||||
return db.query(DewarModel).all()
|
||||
dewars = db.query(DewarModel).options(joinedload(DewarModel.pucks)).all()
|
||||
return dewars
|
||||
|
||||
|
||||
@router.post("/", response_model=DewarSchema, status_code=status.HTTP_201_CREATED)
|
||||
@ -22,8 +23,6 @@ async def create_dewar(dewar: DewarCreate, db: Session = Depends(get_db)) -> Dew
|
||||
id=dewar_id,
|
||||
dewar_name=dewar.dewar_name,
|
||||
tracking_number=dewar.tracking_number,
|
||||
number_of_pucks=dewar.number_of_pucks,
|
||||
number_of_samples=dewar.number_of_samples,
|
||||
status=dewar.status,
|
||||
ready_date=dewar.ready_date,
|
||||
shipping_date=dewar.shipping_date,
|
||||
@ -37,6 +36,7 @@ async def create_dewar(dewar: DewarCreate, db: Session = Depends(get_db)) -> Dew
|
||||
db.add(db_dewar)
|
||||
db.commit()
|
||||
db.refresh(db_dewar)
|
||||
|
||||
return db_dewar
|
||||
|
||||
|
||||
@ -49,7 +49,12 @@ async def get_dewar(dewar_id: str, db: Session = Depends(get_db)):
|
||||
if not dewar:
|
||||
raise HTTPException(status_code=404, detail="Dewar not found")
|
||||
|
||||
return dewar
|
||||
# Ensure dewar.pucks is an empty list if there are no pucks
|
||||
dewar_dict = dewar.__dict__
|
||||
if dewar_dict.get("pucks") is None:
|
||||
dewar_dict["pucks"] = []
|
||||
|
||||
return DewarSchema.from_orm(dewar)
|
||||
|
||||
|
||||
@router.put("/{dewar_id}", response_model=DewarSchema)
|
||||
@ -60,7 +65,9 @@ async def update_dewar(dewar_id: str, dewar_update: DewarUpdate, db: Session = D
|
||||
raise HTTPException(status_code=404, detail="Dewar not found")
|
||||
|
||||
for key, value in dewar_update.dict(exclude_unset=True).items():
|
||||
setattr(dewar, key, value)
|
||||
# Ensure we're only setting directly settable attributes
|
||||
if hasattr(dewar, key):
|
||||
setattr(dewar, key, value)
|
||||
|
||||
db.commit()
|
||||
db.refresh(dewar)
|
||||
|
Reference in New Issue
Block a user