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

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 

7 

8class UserInfo(BaseModel): 

9 id: int 

10 username: str 

11 name: str 

12 email: Optional[str] = None 

13 is_admin: bool 

14 

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 

22 

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 )