This commit is contained in:
behruz-dev
2025-11-22 14:27:03 +05:00
parent 5f32e8e8a7
commit fd67401574

View File

@@ -1,10 +1,9 @@
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from rest_framework import generics, permissions, status, views from rest_framework import generics, permissions, status, views
from rest_framework_simplejwt.tokens import RefreshToken from rest_framework_simplejwt.tokens import RefreshToken
from core.apps.admin_panel.serializers.user import UserSerializer, UserLoginSerializer
from core.apps.accounts.models import User from core.apps.accounts.models import User
from core.apps.admin_panel.serializers.user import UserLoginSerializer, UserSerializer
from core.apps.shared.mixins.response import ResponseMixin from core.apps.shared.mixins.response import ResponseMixin
@@ -18,14 +17,16 @@ class UserCreateApiView(generics.GenericAPIView, ResponseMixin):
if serializer.is_valid(raise_exception=True): if serializer.is_valid(raise_exception=True):
serializer.save() serializer.save()
return self.success_response( return self.success_response(
message='User qoshildi', status_code=status.HTTP_201_CREATED message="User qoshildi", status_code=status.HTTP_201_CREATED
) )
return self.error_response(data=serializer.errors, message='User qoshishda xatolik') return self.error_response(
data=serializer.errors, message="User qoshishda xatolik"
)
class UserListApiView(generics.GenericAPIView, ResponseMixin): class UserListApiView(generics.GenericAPIView, ResponseMixin):
serializer_class = UserSerializer serializer_class = UserSerializer
queryset = User.objects.all() queryset = User.objects.filter(is_superuser=False)
permission_classes = [permissions.IsAdminUser] permission_classes = [permissions.IsAdminUser]
def get(self, request): def get(self, request):
@@ -35,7 +36,7 @@ class UserListApiView(generics.GenericAPIView, ResponseMixin):
serializer = self.serializer_class(page, many=True) serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
serializer = self.serializer_class(users, many=True) serializer = self.serializer_class(users, many=True)
return self.success_response(data=serializer.data, message='userlar royxati') return self.success_response(data=serializer.data, message="userlar royxati")
class UserUpdateApiView(generics.GenericAPIView, ResponseMixin): class UserUpdateApiView(generics.GenericAPIView, ResponseMixin):
@@ -45,11 +46,15 @@ class UserUpdateApiView(generics.GenericAPIView, ResponseMixin):
def patch(self, request, id): def patch(self, request, id):
user = get_object_or_404(User, id=id) user = get_object_or_404(User, id=id)
serializer = self.serializer_class(instance=user, data=request.data, partial=True) serializer = self.serializer_class(
instance=user, data=request.data, partial=True
)
if serializer.is_valid(raise_exception=True): if serializer.is_valid(raise_exception=True):
serializer.save() serializer.save()
return self.success_response(message='user tahrirlandi') return self.success_response(message="user tahrirlandi")
return self.failure_response(data=serializer.errors, message='user tahrirlashda xatolik') return self.failure_response(
data=serializer.errors, message="user tahrirlashda xatolik"
)
class UserDeleteApiView(generics.GenericAPIView, ResponseMixin): class UserDeleteApiView(generics.GenericAPIView, ResponseMixin):
@@ -60,7 +65,9 @@ class UserDeleteApiView(generics.GenericAPIView, ResponseMixin):
def delete(self, request, id): def delete(self, request, id):
user = get_object_or_404(User, id=id) user = get_object_or_404(User, id=id)
user.delete() user.delete()
return self.success_response(message='user ochirildi', status_code=status.HTTP_204_NO_CONTENT) return self.success_response(
message="user ochirildi", status_code=status.HTTP_204_NO_CONTENT
)
class UserDetailApiView(generics.GenericAPIView, ResponseMixin): class UserDetailApiView(generics.GenericAPIView, ResponseMixin):
@@ -71,7 +78,7 @@ class UserDetailApiView(generics.GenericAPIView, ResponseMixin):
def get(self, request, id): def get(self, request, id):
user = get_object_or_404(User, id=id) user = get_object_or_404(User, id=id)
serializer = self.serializer_class(user) serializer = self.serializer_class(user)
return self.success_response(data=serializer.data, message='user malumotlari') return self.success_response(data=serializer.data, message="user malumotlari")
class UserDashboardApiView(views.APIView, ResponseMixin): class UserDashboardApiView(views.APIView, ResponseMixin):
@@ -81,8 +88,8 @@ class UserDashboardApiView(views.APIView, ResponseMixin):
admin_users = User.objects.filter(is_superuser=True).count() admin_users = User.objects.filter(is_superuser=True).count()
users = User.objects.filter(is_superuser=False).count() users = User.objects.filter(is_superuser=False).count()
return self.success_response( return self.success_response(
data={'admin_users': admin_users, 'users': users}, data={"admin_users": admin_users, "users": users},
message='userlar soni', message="userlar soni",
) )
@@ -93,13 +100,12 @@ class UserLoginApiView(generics.GenericAPIView, ResponseMixin):
def post(self, request): def post(self, request):
serializer = self.serializer_class(data=request.data) serializer = self.serializer_class(data=request.data)
if serializer.is_valid(): if serializer.is_valid():
user = serializer.validated_data.get('user') user = serializer.validated_data.get("user")
token = RefreshToken.for_user(user) token = RefreshToken.for_user(user)
return self.success_response( return self.success_response(
data={ data={"access": str(token.access_token), "refresh": str(token)},
'access': str(token.access_token), message="user tizimga kirish muvaffaqiyatli yakunlandi",
'refresh': str(token)
},
message='user tizimga kirish muvaffaqiyatli yakunlandi'
) )
return self.failure_response(message='user tizimga kirishda xatolik', data=serializer.errors) return self.failure_response(
message="user tizimga kirishda xatolik", data=serializer.errors
)