fix
This commit is contained in:
18
core/apps/accounts/serializers/user.py
Normal file
18
core/apps/accounts/serializers/user.py
Normal 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
|
||||
20
core/apps/accounts/views/user.py
Normal file
20
core/apps/accounts/views/user.py
Normal 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)
|
||||
@@ -44,13 +44,10 @@ class UserSerializer(serializers.ModelSerializer):
|
||||
class UserLoginSerializer(serializers.Serializer):
|
||||
username = serializers.CharField()
|
||||
password = serializers.CharField()
|
||||
tg_id = serializers.CharField()
|
||||
|
||||
def validate(self, data):
|
||||
user = User.objects.filter(username=data['username'], is_superuser=True).first()
|
||||
if not user:
|
||||
raise serializers.ValidationError("User not found")
|
||||
user.tg_id = data['tg_id']
|
||||
user.save()
|
||||
data['user'] = user
|
||||
return data
|
||||
Reference in New Issue
Block a user