Skip to content

Commit

Permalink
feat: upgrading simple api to drf compatible ( 3rd api ) list_email_c…
Browse files Browse the repository at this point in the history
…ontent (#35111)

* feat: upgrading simple api to drf compatible.
  • Loading branch information
awais786 authored Aug 22, 2024
1 parent 0c2a919 commit f93d16f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 14 deletions.
38 changes: 25 additions & 13 deletions lms/djangoapps/instructor/views/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2172,23 +2172,35 @@ def list_background_email_tasks(request, course_id):
return JsonResponse(response_payload)


@require_POST
@ensure_csrf_cookie
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
@require_course_permission(permissions.EMAIL)
def list_email_content(request, course_id):
@method_decorator(cache_control(no_cache=True, no_store=True, must_revalidate=True), name='dispatch')
class ListEmailContent(APIView):
"""
List the content of bulk emails sent
"""
course_id = CourseKey.from_string(course_id)
task_type = InstructorTaskTypes.BULK_COURSE_EMAIL
# First get tasks list of bulk emails sent
emails = task_api.get_instructor_task_history(course_id, task_type=task_type)
permission_classes = (IsAuthenticated, permissions.InstructorPermission)
permission_name = permissions.EMAIL

response_payload = {
'emails': list(map(extract_email_features, emails)),
}
return JsonResponse(response_payload)
@method_decorator(ensure_csrf_cookie)
def post(self, request, course_id):
"""
List the content of bulk emails sent for a specific course.
Args:
request (HttpRequest): The HTTP request object.
course_id (str): The ID of the course for which to list the bulk emails.
Returns:
HttpResponse: A response object containing the list of bulk email contents.
"""
course_id = CourseKey.from_string(course_id)
task_type = InstructorTaskTypes.BULK_COURSE_EMAIL
# First get tasks list of bulk emails sent
emails = task_api.get_instructor_task_history(course_id, task_type=task_type)

response_payload = {
'emails': list(map(extract_email_features, emails)),
}
return JsonResponse(response_payload)


class InstructorTaskSerializer(serializers.Serializer): # pylint: disable=abstract-method
Expand Down
2 changes: 1 addition & 1 deletion lms/djangoapps/instructor/views/api_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
name='mark_student_can_skip_entrance_exam'),
path('list_instructor_tasks', api.list_instructor_tasks, name='list_instructor_tasks'),
path('list_background_email_tasks', api.list_background_email_tasks, name='list_background_email_tasks'),
path('list_email_content', api.list_email_content, name='list_email_content'),
path('list_email_content', api.ListEmailContent.as_view(), name='list_email_content'),
path('list_forum_members', api.list_forum_members, name='list_forum_members'),
path('update_forum_role_membership', api.update_forum_role_membership, name='update_forum_role_membership'),
path('send_email', api.send_email, name='send_email'),
Expand Down

0 comments on commit f93d16f

Please sign in to comment.