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):
|
class UserLoginSerializer(serializers.Serializer):
|
||||||
username = serializers.CharField()
|
username = serializers.CharField()
|
||||||
password = serializers.CharField()
|
password = serializers.CharField()
|
||||||
tg_id = serializers.CharField()
|
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
user = User.objects.filter(username=data['username'], is_superuser=True).first()
|
user = User.objects.filter(username=data['username'], is_superuser=True).first()
|
||||||
if not user:
|
if not user:
|
||||||
raise serializers.ValidationError("User not found")
|
raise serializers.ValidationError("User not found")
|
||||||
user.tg_id = data['tg_id']
|
|
||||||
user.save()
|
|
||||||
data['user'] = user
|
data['user'] = user
|
||||||
return data
|
return data
|
||||||
Reference in New Issue
Block a user