feat: changed PUT to PATCH, added sanity checks, fixed typos
* also added nicer error response messages that, I believe, add clarity
This commit is contained in:
parent
79b77acaef
commit
74ecee3557
17
app/main.py
17
app/main.py
@ -52,16 +52,21 @@ async def read_services(skip: int = 0, limit: int = 100, db: Session = Depends(g
|
||||
@app.post("/api/v1/service", response_model=schemas.Service)
|
||||
async def create_service(service: schemas.ServiceCreate, db: Session = Depends(get_db)):
|
||||
"""Service types: icmp = 0, http = 1, ssh=2"""
|
||||
if service.service_type not in [0, 1, 2]:
|
||||
raise HTTPException(status_code=422, detail="Invalid service type provided")
|
||||
owner = get_usr(service.owner_id, db)
|
||||
if owner is None:
|
||||
raise HTTPException(status_code=422, detail="No such owner_id")
|
||||
return crud.create_service(db=db, service=service)
|
||||
|
||||
@app.get("/api/v1/service/{service_id}", response_model=schemas.Service)
|
||||
async def read_service(service_id: int, db: Session = Depends(get_db)):
|
||||
db_service = get_srv(service_id, db)
|
||||
if db_service is None:
|
||||
raise HTTPException(status_code=404, detail="User not found")
|
||||
raise HTTPException(status_code=404, detail="Service not found")
|
||||
return db_service
|
||||
|
||||
@app.put("/api/v1/service/{service_id}")
|
||||
@app.patch("/api/v1/service/{service_id}")
|
||||
async def update_service(service_id: int, service: schemas.ServiceUpdate, db: Session = Depends(get_db)):
|
||||
if ((service.name is None) and (service.owner_id is None) and (service.is_private is None) and (service.description is None) and (service.service_type is None) and (service.url is None) and (service.is_active is None)):
|
||||
raise HTTPException(status_code=400, detail="No data provided")
|
||||
@ -85,7 +90,7 @@ async def delete_service(service_id: int, db: Session = Depends(get_db)):
|
||||
async def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
|
||||
db_user = crud.get_user_by_username(db, name=user.name)
|
||||
if db_user:
|
||||
raise HTTPException(status_code=400, detail="username already registered")
|
||||
raise HTTPException(status_code=400, detail="Username already registered")
|
||||
return crud.create_user(db=db, user=user)
|
||||
|
||||
@app.get("/api/v1/users", response_model=List[schemas.User])
|
||||
@ -100,11 +105,11 @@ async def read_user(user_id: int, db: Session = Depends(get_db)):
|
||||
raise HTTPException(status_code=404, detail="User not found")
|
||||
return db_user
|
||||
|
||||
@app.put("/api/v1/users/{user_id}")
|
||||
@app.patch("/api/v1/users/{user_id}")
|
||||
async def update_user(user_id: int, user: schemas.UserUpdate, db: Session = Depends(get_db)):
|
||||
if ((user.name is None) and (user.password is None) and (user.full_name is None) and (user.is_active is None)):
|
||||
raise HTTPException(status_code=400, detail="No data provided")
|
||||
db_user = read_usr(user_id, db)
|
||||
db_user = get_usr(user_id, db)
|
||||
if db_user is None:
|
||||
raise HTTPException(status_code=422, detail="Unprocessable entity")
|
||||
crud.update_user(db=db, user_id=user_id, user=user)
|
||||
@ -112,7 +117,7 @@ async def update_user(user_id: int, user: schemas.UserUpdate, db: Session = Depe
|
||||
|
||||
@app.delete("/api/v1/users/{user_id}")
|
||||
async def delete_user(user_id: int, db: Session = Depends(get_db)):
|
||||
db_user = read_usr(user_id, db)
|
||||
db_user = get_usr(user_id, db)
|
||||
if db_user is None:
|
||||
raise HTTPException(status_code=422, detail="Unprocessable entity")
|
||||
crud.del_user(db=db, user_id=user_id)
|
||||
|
Reference in New Issue
Block a user