示例#1
0
def delete_location(address: str, db: Session = Depends(get_db)):
    db_location = crud.get_location_by_address(db, address=address)
    if not db_location:
        raise HTTPException(status_code=404, detail="Location not found")
    try:
        return crud.delete_location(db, location=db_location)
    except AssertionError as ex:
        raise HTTPException(status_code=409,
                            detail="Location cannot be deleted")
示例#2
0
def update_location(address: str,
                    payload: schemas.LocationUpdater,
                    db: Session = Depends(get_db)):
    db_location = crud.get_location_by_address(db, address=address)
    if not db_location:
        raise HTTPException(status_code=404, detail="Location not found")
    if not payload.new_address:
        raise HTTPException(status_code=400, detail="No update data supplied")
    try:
        return crud.update_location_address(db,
                                            location=db_location,
                                            new_address=payload.new_address)
    except IntegrityError as ex:
        raise HTTPException(status_code=409,
                            detail="Address already registered")
示例#3
0
def create_user_location(user_location_creator: schemas.UserLocation,
                         db: Session = Depends(get_db)):
    db_user = crud.get_user_by_phone(db, phone=user_location_creator.phone)
    if not db_user:
        raise HTTPException(status_code=404, detail="User not found")
    db_location = crud.get_location_by_address(
        db, address=user_location_creator.address)
    if not db_location:
        raise HTTPException(status_code=404, detail="Location not found")
    db_user_location = crud.get_user_location_by_user_and_location(
        db, user=db_user, location=db_location)
    if db_user_location:
        raise HTTPException(status_code=409,
                            detail="User location already created")
    out = crud.create_user_location(db,
                                    user=db_user,
                                    location=db_location,
                                    nickname=user_location_creator.nickname)
    return out
示例#4
0
def delete_user_location(phone: str,
                         address: Optional[str] = None,
                         nickname: Optional[str] = None,
                         db: Session = Depends(get_db)):
    db_user = crud.get_user_by_phone(db, phone=phone)
    if address:
        db_location = crud.get_location_by_address(db, address=address)
        if not db_location:
            raise HTTPException(status_code=404, detail="Location not found")
        db_user_location = crud.get_user_location_by_user_and_location(
            db, user=db_user, location=db_location)
    elif nickname:
        db_user_location = crud.get_user_location_by_nickname_and_phone(
            db, nickname=nickname, phone=phone)
    else:
        raise HTTPException(status_code=422,
                            detail="Address or nickname required")
    if not db_user_location:
        raise HTTPException(status_code=404, detail="User location not found")
    return crud.delete_user_location(db, user_location=db_user_location)
示例#5
0
def create_location(location: schemas.LocationBase,
                    db: Session = Depends(get_db)):
    db_location = crud.get_location_by_address(db, address=location.address)
    if db_location:
        raise HTTPException(status_code=409, detail="Location already created")
    return crud.create_location(db, location=location)
示例#6
0
def read_locations(address: str, db: Session = Depends(get_db)):
    db_location = crud.get_location_by_address(db, address=address)
    if db_location is None:
        raise HTTPException(status_code=404, detail="Location not found")
    return db_location