Fix route order for POST /api/admin/users endpoint
Move POST /api/admin/users before PUT /api/admin/users/{email}
to fix "Method Not Allowed" error when creating users.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
48db28b8fb
commit
1d53c33d07
1 changed files with 22 additions and 22 deletions
44
main.py
44
main.py
|
|
@ -945,28 +945,6 @@ async def get_all_users(current_user: dict = Depends(require_admin)):
|
|||
) for user in users
|
||||
]
|
||||
|
||||
@app.put("/api/admin/users/{email}", response_model=models.UserResponse)
|
||||
async def update_user(email: str, user_update: models.UserUpdate, current_user: dict = Depends(require_admin)):
|
||||
# Get the user by email first
|
||||
existing_user = await crud.get_user_by_email(email)
|
||||
if not existing_user:
|
||||
raise HTTPException(status_code=404, detail="User not found")
|
||||
|
||||
# Update the user
|
||||
update_data = user_update.model_dump(exclude_unset=True)
|
||||
updated_user = await crud.update_user(str(existing_user["_id"]), update_data)
|
||||
|
||||
if not updated_user:
|
||||
raise HTTPException(status_code=500, detail="Failed to update user")
|
||||
|
||||
return models.UserResponse(
|
||||
email=updated_user["email"],
|
||||
full_name=updated_user.get("full_name"),
|
||||
is_active=updated_user["is_active"],
|
||||
is_admin=updated_user["is_admin"],
|
||||
auth_provider=updated_user.get("auth_provider", "local")
|
||||
)
|
||||
|
||||
@app.post("/api/admin/users", response_model=models.UserResponse)
|
||||
async def admin_create_user(
|
||||
user_data: models.AdminUserCreate,
|
||||
|
|
@ -990,6 +968,28 @@ async def admin_create_user(
|
|||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
|
||||
@app.put("/api/admin/users/{email}", response_model=models.UserResponse)
|
||||
async def update_user(email: str, user_update: models.UserUpdate, current_user: dict = Depends(require_admin)):
|
||||
# Get the user by email first
|
||||
existing_user = await crud.get_user_by_email(email)
|
||||
if not existing_user:
|
||||
raise HTTPException(status_code=404, detail="User not found")
|
||||
|
||||
# Update the user
|
||||
update_data = user_update.model_dump(exclude_unset=True)
|
||||
updated_user = await crud.update_user(str(existing_user["_id"]), update_data)
|
||||
|
||||
if not updated_user:
|
||||
raise HTTPException(status_code=500, detail="Failed to update user")
|
||||
|
||||
return models.UserResponse(
|
||||
email=updated_user["email"],
|
||||
full_name=updated_user.get("full_name"),
|
||||
is_active=updated_user["is_active"],
|
||||
is_admin=updated_user["is_admin"],
|
||||
auth_provider=updated_user.get("auth_provider", "local")
|
||||
)
|
||||
|
||||
@app.post("/api/admin/users/{email}/reset-password")
|
||||
async def admin_reset_password(
|
||||
email: str,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue