Untitled
unknown
python
2 years ago
1.7 kB
2
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...