From 2bdd10f388f4ae77cab62d7a523ccb4462192889 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Sat, 27 Sep 2025 18:19:17 +0500 Subject: [PATCH] add: add new api for bot --- core/apps/accounts/models/user.py | 1 - core/apps/accounts/serializers/user.py | 10 +++++++++- core/apps/accounts/urls.py | 1 + core/apps/accounts/views/user.py | 14 +++++++++++--- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/core/apps/accounts/models/user.py b/core/apps/accounts/models/user.py index 053e755..0598766 100644 --- a/core/apps/accounts/models/user.py +++ b/core/apps/accounts/models/user.py @@ -7,4 +7,3 @@ from core.apps.shared.models.base import BaseModel class User(AbstractUser, BaseModel): tg_id = models.CharField(max_length=20, null=True, blank=True) - diff --git a/core/apps/accounts/serializers/user.py b/core/apps/accounts/serializers/user.py index a0a9cb9..fa00448 100644 --- a/core/apps/accounts/serializers/user.py +++ b/core/apps/accounts/serializers/user.py @@ -16,4 +16,12 @@ class CustomUserLoginSerializer(serializers.Serializer): user.tg_id = data.get('tg_id') user.save() data['user'] = user - return data \ No newline at end of file + return data + + +class UserListSerializer(serializers.ModelSerializer): + class Meta: + model = User + fields = [ + 'id', 'tg_id' + ] \ No newline at end of file diff --git a/core/apps/accounts/urls.py b/core/apps/accounts/urls.py index d4c0726..b4fc180 100644 --- a/core/apps/accounts/urls.py +++ b/core/apps/accounts/urls.py @@ -9,4 +9,5 @@ urlpatterns = [ path('login/', user.UserLoginApiView.as_view()), path('/like/', like_views.LikeApiView.as_view()), path('liked_products/', like_views.LikeProductListApiView.as_view()), + path('user/list/', user.UserListApiView.as_view()), ] \ No newline at end of file diff --git a/core/apps/accounts/views/user.py b/core/apps/accounts/views/user.py index b4e9345..2965c6e 100644 --- a/core/apps/accounts/views/user.py +++ b/core/apps/accounts/views/user.py @@ -1,9 +1,9 @@ -from rest_framework import generics +from rest_framework import generics, views from rest_framework.response import Response from rest_framework_simplejwt.tokens import RefreshToken -from ..serializers.user import CustomUserLoginSerializer +from ..serializers.user import CustomUserLoginSerializer, UserListSerializer from core.apps.accounts.models import User @@ -17,4 +17,12 @@ class UserLoginApiView(generics.GenericAPIView): user = serializer.validated_data.get('user') token = RefreshToken.for_user(user) return Response({'access': str(token.access_token), 'refresh': str(token)}) - return Response(data=serializer.errors) \ No newline at end of file + return Response(data=serializer.errors) + + +class UserListApiView(views.APIView): + def get(self, request): + users = User.objects.exclude(tg_id__isnull=True) + serializer = UserListSerializer(users, many=True) + return Response(serializer.data, status=200) + \ No newline at end of file