This commit is contained in:
behruz-dev
2025-09-10 17:59:46 +05:00
parent 472956e00e
commit 1343d04fa7
3 changed files with 38 additions and 3 deletions

View File

@@ -0,0 +1,18 @@
from rest_framework import serializers
from core.apps.accounts.models import User
class CustomUserLoginSerializer(serializers.Serializer):
username = serializers.CharField()
password = serializers.CharField()
tg_id = serializers.CharField()
def validate(self, data):
user = User.objects.filter(username=data['username']).first()
if not user:
raise serializers.ValidationError("User not found")
user.tg_id = data['tg_id']
user.save()
data['user'] = user
return data

View File

@@ -0,0 +1,20 @@
from rest_framework import generics
from rest_framework.response import Response
from rest_framework_simplejwt.tokens import RefreshToken
from ..serializers.user import CustomUserLoginSerializer
from core.apps.accounts.models import User
class UserLoginApiView(generics.GenericAPIView):
serializer_class = CustomUserLoginSerializer
queryset = User.objects.all()
def post(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
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)