detailed user api

This commit is contained in:
Sayyid Hamid Mahdavi 2025-06-02 15:07:59 +03:30
parent ca4a46a668
commit 5faac7e63d
2 changed files with 15 additions and 4 deletions

View file

@ -1,7 +1,8 @@
from django.urls import path
from django.contrib.auth.views import LogoutView
from .views import UserListView, UserDetailView, AccountView, RequestOTPView, ChangePasswordView, \
OTPLoginView, ProfileDetailView, ProfileUpdateView, RequestOTTView, UserCurrentAvatarUrlView, UserInquiryView
from .views import UserListView, UserPublicRetrieveView, AccountView, RequestOTPView, ChangePasswordView, \
OTPLoginView, ProfileDetailView, ProfileUpdateView, RequestOTTView, UserCurrentAvatarUrlView, UserInquiryView, \
UserDetailedRetrieveView
app_name = "users"
@ -12,8 +13,9 @@ urlpatterns = [
path('account/update/', ProfileUpdateView.as_view(), name='account_update'),
path('api/account/', AccountView.as_view(), name='account_api'),
path('api/users/', UserListView.as_view(), name='user_list_api'),
path('api/users/<uuid>/', UserDetailView.as_view(), name='user_detail_api'),
path('api/users/<uuid>/', UserPublicRetrieveView.as_view(), name='user_public_retrieve_api'),
path('api/users/<uuid>/avatar', UserCurrentAvatarUrlView.as_view(), name='user_avatar_api'),
path('api/users/<uuid>/details', UserDetailedRetrieveView.as_view(), name='user_detailed_retrieve_api'),
path('api/request_otp/', RequestOTPView.as_view(), name='request_otp_api'),
path('api/request_ott/', RequestOTTView.as_view(), name='request_ott_api'),
path('api/change_password/', ChangePasswordView.as_view(), name='change_password_api'),

View file

@ -32,7 +32,7 @@ class UserListView(generics.ListAPIView):
}
class UserDetailView(generics.RetrieveAPIView):
class UserPublicRetrieveView(generics.RetrieveAPIView):
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
queryset = User.objects.all()
serializer_class = PublicUserSerializer
@ -41,6 +41,15 @@ class UserDetailView(generics.RetrieveAPIView):
"GET": [["accounts.profile:retrieve"]],
}
class UserDetailedRetrieveView(generics.RetrieveAPIView):
permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]
queryset = User.objects.all()
serializer_class = AccountSerializer
lookup_field = 'uuid'
required_alternate_scopes = {
"GET": [["accounts.profile:detailed_retrieve"]],
}
class UserCurrentAvatarUrlView(generics.RetrieveAPIView):
permission_classes = [AllowAny]
queryset = User.objects.all()