Update code in endpoints/login.post.py

This commit is contained in:
Backend IM Bot 2025-03-25 08:25:44 +00:00
parent 71537127e9
commit fd694d3791

View File

@ -1,37 +1,40 @@
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, HTTPException
from pydantic import BaseModel import uuid
from datetime import timedelta from datetime import datetime
from core.database import get_db
from sqlalchemy.orm import Session activity_logs = [] # In-memory storage
from core.auth import verify_password, create_access_token
from models.user import User
router = APIRouter() router = APIRouter()
class UserAuth(BaseModel): @router.post("/login")
username: str async def log_activity(
password: str user_id: str = "demo_user",
action: str = "login",
@router.post("/login") details: str = "User logged in"
async def login(
user_data: UserAuth,
db: Session = Depends(get_db)
): ):
"""User authentication endpoint""" """Activity logging endpoint"""
user = db.query(User).filter(User.username == user_data.username).first() if not user_id:
raise HTTPException(status_code=400, detail="User ID is required")
if not user or not verify_password(user_data.password, user.hashed_password):
raise HTTPException(status_code=400, detail="Invalid credentials") log_id = str(uuid.uuid4())
activity_logs.append({
# Generate token with expiration "id": log_id,
access_token = create_access_token( "user_id": user_id,
data={"sub": user.id}, "action": action,
expires_delta=timedelta(hours=1) "details": details,
) "timestamp": datetime.now().isoformat(),
"metadata": {
"ip_address": "127.0.0.1",
"user_agent": "demo_agent"
}
})
return { return {
"access_token": access_token, "message": "Activity logged successfully",
"token_type": "bearer", "log_id": log_id,
"user_id": user.id, "user_id": user_id,
"username": user.username "features": {
} "retention_days": 30,
"analytics_enabled": True
}
}