Coverage for backend/authentication/user/views/UserInfo.py: 100%
20 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from typing import Optional
2from drf_spectacular.utils import extend_schema
3from pydantic import BaseModel
4from rest_framework.decorators import api_view
5from rest_framework.response import Response
6from CoreRoot import settings
8class UserInfo(BaseModel):
9 id: int
10 username: str
11 name: str
12 email: Optional[str] = None
13 is_admin: bool
15@extend_schema(request=None, responses=UserInfo)
16@api_view(['GET'])
17def get_user_info(request) -> Response:
18 user_id = request.user.id
19 name = f"{request.user.first_name} {request.user.last_name}".strip()
20 username = request.user.username
21 user_email = request.user.email
23 return Response(
24 UserInfo(
25 id=user_id,
26 name=name,
27 username=username,
28 email=user_email,
29 is_admin=request.user.is_staff
30 ).model_dump()
31 )