Untitled
unknown
python
3 years ago
1.7 kB
5
Indexable
from typing import List
from uuid import UUID
from fastapi import FastAPI, HTTPException, APIRouter
from models import User, Gender, Role, UserUpdate
user_router = APIRouter()
app = FastAPI(title="Hello world")
db: List[User] = [
User(
first_name="Vladimir",
last_name="Artamonov",
middle_name="Vladimirovich",
gender=Gender.male,
roles=[Role.admin, Role.seller]
),
User(
first_name="Egor",
last_name="D.",
gender=Gender.male,
roles=[Role.user, Role.buyer]
)
]
@app.get("/")
async def route():
return {"Hello": "World"}
@user_router.get("/")
async def get_users():
return db
@user_router.post("/")
async def add_user(user: User):
db.append(user)
return {"status": 200, "user": user}
@user_router.delete("/{user_id}")
async def delete_user(user_id: UUID):
for user in db:
if user.id == user_id:
db.remove(user)
return
raise HTTPException(
status_code=404,
detail=f"User {user_id} does not exist."
)
@user_router.put("/{user_id}")
async def update_user(user_id: UUID, updates: UserUpdate):
for user in db:
if user.id == user_id:
attributes = (attribute for attribute in updates if attribute[1] is not None)
for attribute, value in attributes:
setattr(user, attribute, value)
return user
raise HTTPException(
status_code=404,
detail=f"User {user_id} does not exist."
)
app.include_router(user_router, prefix="/users", tags=["Users"])Editor is loading...