diff --git a/users/views.py b/users/views.py index 68efe8a..0d5d232 100644 --- a/users/views.py +++ b/users/views.py @@ -94,4 +94,23 @@ class NicknameAPIView(APIView): return Response({"message": "해당 닉네임은 사용할 수 없습니다."}, status=status.HTTP_400_BAD_REQUEST) except: return Response({"message": "사용할 수 있는 닉네임입니다."}, status=status.HTTP_200_OK) - \ No newline at end of file + +class SetPortofolioRequiredInfoAPIView(APIView): + def get(self, request): + custom_url = request.GET.get('custom_url', None) + if not custom_url: + return Response({"message": "no url"}, status=status.HTTP_400_BAD_REQUEST) + if User.objects.filter(custom_url=custom_url).exists(): + return Response({"message": "already used url"}, status=status.HTTP_400_BAD_REQUEST) + else: + return Response({"message": "can use this url"}, status=status.HTTP_200_OK) + + def patch(self, request): + user = request.user + serializer = SetPortofolioRequiredInfoSerializer(user, data=request.data) + if serializer.is_valid(): + serializer.save() + user.is_custom_url = True + user.save() + return Response({"message": "updated successfully"}, status=status.HTTP_202_ACCEPTED) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) \ No newline at end of file