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