✏️ Fix: [#48] user 필드 중복 체크 로직 구현 및 기존 분리 api 삭제
This commit is contained in:
@@ -4,7 +4,7 @@ from django.shortcuts import get_object_or_404
|
||||
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.viewsets import ReadOnlyModelViewSet
|
||||
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer, TokenRefreshSerializer
|
||||
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer, TokenRefreshSerializer, TokenObtainSerializer
|
||||
from rest_framework_simplejwt.tokens import RefreshToken
|
||||
from rest_framework_simplejwt.exceptions import TokenError, InvalidToken
|
||||
|
||||
@@ -53,8 +53,12 @@ class JoinAPIView(APIView):
|
||||
def post(self, request):
|
||||
serializer = JoinSerializer(data=request.data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
res = Response({"message": "회원가입이 완료되었습니다."}, status=status.HTTP_200_OK)
|
||||
user = serializer.save()
|
||||
access = str(RefreshToken.for_user(user).access_token)
|
||||
res = Response({
|
||||
"message": "회원가입이 완료되었습니다.",
|
||||
"access": access
|
||||
}, status=status.HTTP_200_OK)
|
||||
return res
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@@ -95,18 +99,22 @@ class LoginAPIView(APIView):
|
||||
else: # id, 비번 둘 중 하나가 틀렸을 때
|
||||
return Response({"message": "아이디 혹은 비밀번호가 맞지 않습니다."}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
class NicknameAPIView(APIView):
|
||||
class CheckUserFieldDuplicateAPIView(APIView):
|
||||
permission_classes = [AllowAny]
|
||||
# 닉네임 중복 체크
|
||||
# 유저 필드 중복 확인
|
||||
def get(self, request):
|
||||
nickname = request.GET.get('nickname', None)
|
||||
if not nickname:
|
||||
return Response({"message": "닉네임을 입력하세요."}, status=status.HTTP_400_BAD_REQUEST)
|
||||
field = request.query_params.get('field')
|
||||
value = request.query_params.get('value')
|
||||
if not field or not value:
|
||||
return Response({"message": "올바르지 않은 요청입니다."}, status=status.HTTP_400_BAD_REQUEST)
|
||||
try:
|
||||
get_object_or_404(User, nickname=nickname)
|
||||
return Response({"message": "해당 닉네임은 사용할 수 없습니다."}, status=status.HTTP_400_BAD_REQUEST)
|
||||
except:
|
||||
return Response({"message": "사용할 수 있는 닉네임입니다."}, status=status.HTTP_200_OK)
|
||||
if CheckUserFieldDuplicateService.check_duplicate(field, value):
|
||||
return Response({"message": f"존재하는 {field} 입니다."}, status=status.HTTP_400_BAD_REQUEST)
|
||||
else:
|
||||
return Response({"message": f"사용해도 되는 {field} 입니다."}, status=status.HTTP_200_OK)
|
||||
except ValueError as e:
|
||||
return Response({"message": str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class TagUserAPIView(APIView):
|
||||
def get(self, request):
|
||||
|
||||
Reference in New Issue
Block a user