def get(self, request, attempt_code): # pylint: disable=unused-argument """ Returns the status of an exam attempt. Given that this is an unauthenticated caller, we will only return the status string, no additional information about the exam """ attempt = get_exam_attempt_by_code(attempt_code) ip_address = get_ip(request) timestamp = datetime.now(pytz.UTC) if not attempt: return HttpResponse( content='You have entered an exam code that is not valid.', status=404 ) update_exam_attempt(attempt['id'], last_poll_timestamp=timestamp, last_poll_ipaddr=ip_address) return Response( data={ # IMPORTANT: Don't add more information to this as it is an # unauthenticated endpoint 'status': attempt['status'], }, status=200 )
def get(self, request, attempt_code): # pylint: disable=unused-argument """ Returns the status of an exam attempt. Given that this is an unauthenticated caller, we will only return the status string, no additional information about the exam """ attempt = get_exam_attempt_by_code(attempt_code) ip_address = get_ip(request) timestamp = datetime.now(pytz.UTC) if not attempt: return HttpResponse( content='You have entered an exam code that is not valid.', status=404) update_exam_attempt(attempt['id'], last_poll_timestamp=timestamp, last_poll_ipaddr=ip_address) return Response( data={ # IMPORTANT: Don't add more information to this as it is an # unauthenticated endpoint 'status': attempt['status'], }, status=200)
def put(self, request, attempt_id): # pylint: disable=unused-argument """ Update the is_status_acknowledge flag for the specific attempt """ try: attempt = get_exam_attempt_by_id(attempt_id) # make sure the the attempt belongs to the calling user_id if attempt and attempt['user']['id'] != request.user.id: err_msg = ( 'Attempted to access attempt_id {attempt_id} but ' 'does not have access to it.'.format( attempt_id=attempt_id ) ) raise ProctoredExamPermissionDenied(err_msg) update_exam_attempt(attempt_id, is_status_acknowledged=True) return Response( status=status.HTTP_200_OK ) except (StudentExamAttemptDoesNotExistsException, ProctoredExamPermissionDenied) as ex: LOG.exception(ex) return Response( status=status.HTTP_400_BAD_REQUEST, data={"detail": str(ex)} )
def put(self, request, attempt_id): # pylint: disable=unused-argument """ Update the is_status_acknowledge flag for the specific attempt """ attempt = get_exam_attempt_by_id(attempt_id) # make sure the the attempt belongs to the calling user_id if attempt and attempt['user']['id'] != request.user.id: err_msg = (u'Attempted to access attempt_id {attempt_id} but ' u'does not have access to it.'.format( attempt_id=attempt_id)) raise ProctoredExamPermissionDenied(err_msg) update_exam_attempt(attempt_id, is_status_acknowledged=True) return Response()
def put(self, request, attempt_id): # pylint: disable=unused-argument """ Update the is_status_acknowledge flag for the specific attempt """ attempt = get_exam_attempt_by_id(attempt_id) # make sure the the attempt belongs to the calling user_id if attempt and attempt['user']['id'] != request.user.id: err_msg = ( 'Attempted to access attempt_id {attempt_id} but ' 'does not have access to it.'.format( attempt_id=attempt_id ) ) raise ProctoredExamPermissionDenied(err_msg) update_exam_attempt(attempt_id, is_status_acknowledged=True) return Response()