47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from core.database import fake_users_db
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/users")
|
|
async def get_users_handler():
|
|
"""Get all users"""
|
|
users = list(fake_users_db.values())
|
|
return {
|
|
"message": "Users retrieved successfully",
|
|
"data": users,
|
|
"metadata": {
|
|
"source": "demo_db",
|
|
"result_count": len(users)
|
|
}
|
|
}
|
|
|
|
@router.post("/users")
|
|
async def create_user_handler(
|
|
username: str,
|
|
email: str,
|
|
password: str
|
|
):
|
|
"""Create a new user"""
|
|
if username in fake_users_db:
|
|
raise HTTPException(status_code=400, detail="Username already exists")
|
|
|
|
import uuid
|
|
user_id = str(uuid.uuid4())
|
|
new_user = {
|
|
"id": user_id,
|
|
"username": username,
|
|
"email": email,
|
|
"password": password,
|
|
"disabled": False
|
|
}
|
|
fake_users_db[username] = new_user
|
|
|
|
return {
|
|
"message": "User created successfully",
|
|
"data": new_user,
|
|
"next_steps": [
|
|
"Verify your email (demo)",
|
|
"Complete profile setup"
|
|
]
|
|
} |