feat: upgrading get_anon_ids api to drf compatible (12) (#35345)

* feat: upgrading simple api to drf compatible.
This commit is contained in:
Awais Qureshi
2024-08-30 16:19:48 +05:00
committed by GitHub
parent bcab8df21d
commit ede9102e33
2 changed files with 24 additions and 11 deletions

View File

@@ -1674,18 +1674,31 @@ def get_proctored_exam_results(request, course_id):
return JsonResponse({"status": success_status})
@transaction.non_atomic_requests
@ensure_csrf_cookie
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
@require_course_permission(permissions.CAN_RESEARCH)
def get_anon_ids(request, course_id):
@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch')
@method_decorator(transaction.non_atomic_requests, name='dispatch')
class GetAnonIds(APIView):
"""
Respond with 2-column CSV output of user-id, anonymized-user-id
Respond with 2-column CSV output of user-id, anonymized-user-id.
This API processes the incoming request to generate a CSV file containing
two columns: `user-id` and `anonymized-user-id`. The CSV is returned as a
response to the client.
"""
report_type = _('Anonymized User IDs')
success_status = SUCCESS_MESSAGE_TEMPLATE.format(report_type=report_type)
task_api.generate_anonymous_ids(request, course_id)
return JsonResponse({"status": success_status})
permission_classes = (IsAuthenticated, permissions.InstructorPermission)
permission_name = permissions.CAN_RESEARCH
@method_decorator(ensure_csrf_cookie)
@method_decorator(transaction.non_atomic_requests)
def post(self, request, course_id):
"""
Handle POST request to generate a CSV output.
Returns:
Response: A CSV file with two columns: `user-id` and `anonymized-user-id`.
"""
report_type = _('Anonymized User IDs')
success_status = SUCCESS_MESSAGE_TEMPLATE.format(report_type=report_type)
task_api.generate_anonymous_ids(request, course_id)
return JsonResponse({"status": success_status})
@require_POST

View File

@@ -31,7 +31,7 @@ urlpatterns = [
re_path(r'^get_students_features(?P<csv>/csv)?$', api.get_students_features, name='get_students_features'),
path('get_issued_certificates/', api.get_issued_certificates, name='get_issued_certificates'),
path('get_students_who_may_enroll', api.GetStudentsWhoMayEnroll.as_view(), name='get_students_who_may_enroll'),
path('get_anon_ids', api.get_anon_ids, name='get_anon_ids'),
path('get_anon_ids', api.GetAnonIds.as_view(), name='get_anon_ids'),
path('get_student_enrollment_status', api.get_student_enrollment_status, name="get_student_enrollment_status"),
path('get_student_progress_url', api.StudentProgressUrl.as_view(), name='get_student_progress_url'),
path('reset_student_attempts', api.reset_student_attempts, name='reset_student_attempts'),