diff --git a/edx_name_affirmation/serializers.py b/edx_name_affirmation/serializers.py index b67bc88..82529fb 100644 --- a/edx_name_affirmation/serializers.py +++ b/edx_name_affirmation/serializers.py @@ -19,9 +19,25 @@ class VerifiedNameSerializer(serializers.ModelSerializer): verified_name = serializers.CharField(required=True) profile_name = serializers.CharField(required=True) verification_attempt_id = serializers.IntegerField(required=False, allow_null=True) + verification_attempt_status = serializers.SerializerMethodField('get_verification_attempt_status') proctored_exam_attempt_id = serializers.IntegerField(required=False, allow_null=True) status = serializers.CharField(required=False, allow_null=True) + def get_verification_attempt_status(self, obj): + try: + from lms.djangoapps.verify_student.services import IDVerificationService + except: + return None + + idv_attempt_id = obj.verification_attempt_id + + if (not idv_attempt_id): return None + + verification = IDVerificationService.get_verification_details_by_id(idv_attempt_id) + + return verification.status if verification else "not_found" + + class Meta: """ Meta Class @@ -30,7 +46,7 @@ class Meta: fields = ( "id", "created", "username", "verified_name", "profile_name", "verification_attempt_id", - "proctored_exam_attempt_id", "status" + "verification_attempt_status", "proctored_exam_attempt_id", "status" ) def validate_verified_name(self, verified_name): diff --git a/edx_name_affirmation/tests/test_views.py b/edx_name_affirmation/tests/test_views.py index 650643d..a122a20 100644 --- a/edx_name_affirmation/tests/test_views.py +++ b/edx_name_affirmation/tests/test_views.py @@ -114,6 +114,7 @@ def test_post_200(self): 'profile_name': self.PROFILE_NAME, 'verified_name': self.VERIFIED_NAME, 'verification_attempt_id': self.ATTEMPT_ID, + 'verification_attempt_status': None, } response = self.client.post( reverse('edx_name_affirmation:verified_name'),