diff --git a/account/views.py b/account/views.py index 8dbb2f7..e208163 100644 --- a/account/views.py +++ b/account/views.py @@ -546,7 +546,6 @@ class UserEmailVerification(viewsets.ModelViewSet): class ReSendEmailOtp(viewsets.ModelViewSet): """Send otp on phone""" serializer_class = EmailVerificationSerializer - permission_classes = [IsAuthenticated] http_method_names = ('post',) def create(self, request, *args, **kwargs): """Param diff --git a/junior/serializers.py b/junior/serializers.py index 96f5fb6..d3d0b2f 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -91,6 +91,9 @@ class CreateJuniorSerializer(serializers.ModelSerializer): # Update guardian code""" # condition for guardian code if guardian_code: + if junior.guardian_code and guardian_code: + if guardian_code[0] in junior.guardian_code: + raise serializers.ValidationError({"error":ERROR_CODE['2076'],"code":"400", "status":"failed"}) if not junior.guardian_code: junior.guardian_code = [] junior.guardian_code_status = [] @@ -104,9 +107,8 @@ class CreateJuniorSerializer(serializers.ModelSerializer): guardian_data = Guardian.objects.filter(guardian_code=guardian_code[0]).last() if guardian_data: JuniorGuardianRelationship.objects.get_or_create(guardian=guardian_data, junior=junior) + send_notification.delay(ASSOCIATE_REQUEST, junior.auth.id, JUNIOR, guardian_data.user.id, {}) junior_approval_mail.delay(user.email, user.first_name) - send_notification.delay(ASSOCIATE_REQUEST, junior.auth.id, JUNIOR, guardian_data.user.id, {}) - junior.dob = validated_data.get('dob', junior.dob) junior.passcode = validated_data.get('passcode', junior.passcode) junior.country_name = validated_data.get('country_name', junior.country_name) diff --git a/junior/views.py b/junior/views.py index c1c110d..d7a3d5f 100644 --- a/junior/views.py +++ b/junior/views.py @@ -326,6 +326,7 @@ class RemoveJuniorAPIView(views.APIView): if serializer.is_valid(): # save serializer serializer.save() + JuniorGuardianRelationship.objects.filter(guardian=guardian, junior=junior_queryset).delete() send_notification.delay(REMOVE_JUNIOR, None, None, junior_queryset.auth.id, {}) return custom_response(SUCCESS_CODE['3022'], serializer.data, response_status=status.HTTP_200_OK) return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST) @@ -744,6 +745,7 @@ class RemoveGuardianCodeAPIView(views.APIView): def put(self, request, format=None): try: guardian_code = self.request.data.get("guardian_code") + guardian_data = Guardian.objects.filter(guardian_code=guardian_code).last() junior_queryset = Junior.objects.filter(auth=self.request.user).last() if junior_queryset: # use RemoveGuardianCodeSerializer serializer @@ -752,6 +754,7 @@ class RemoveGuardianCodeAPIView(views.APIView): if serializer.is_valid(): # save serializer serializer.save() + JuniorGuardianRelationship.objects.filter(guardian=guardian_data, junior=junior_queryset).delete() return custom_response(SUCCESS_CODE['3044'], response_status=status.HTTP_200_OK) return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST) else: