32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from fastapi import APIRouter, Security
|
|
from fastapi.encoders import jsonable_encoder
|
|
from fastapi.responses import JSONResponse
|
|
from fastapi_jwt import JwtAuthorizationCredentials
|
|
from backend.infra.authentication.auth import access_security
|
|
from backend.application.user.user_manager import (
|
|
UserManager,
|
|
) # Assuming UserManager handles user-related queries
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get(
|
|
"/get-latest-login-by-user-id/{user_id}",
|
|
operation_id="get-latest-login-by-user-id",
|
|
summary="Get the latest login timestamp for a given user",
|
|
description="Fetches the latest login timestamp for a specific user by user_id.",
|
|
response_description="Returns the latest login timestamp in Unix time seconds, or null if no login found",
|
|
)
|
|
async def get_latest_login_by_user_id(
|
|
user_id: str,
|
|
credentials: JwtAuthorizationCredentials = Security(access_security),
|
|
):
|
|
# Assume UserManager is responsible for handling user data
|
|
result = await UserManager().fetch_latest_login(user_id)
|
|
|
|
if result is None:
|
|
return JSONResponse(content=jsonable_encoder({"timestamp": None}))
|
|
|
|
return JSONResponse(content=jsonable_encoder({"timestamp": result}))
|