| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/erp/horilla_api/api_views/notifications/ |
Upload File : |
from rest_framework.pagination import PageNumberPagination
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from ...api_serializers.notifications.serializers import NotificationSerializer
# Create your views here.
class NotificationView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, type):
if type == "all":
queryset = request.user.notifications.all()
elif type == "unread":
queryset = request.user.notifications.unread()
pagination = PageNumberPagination()
page = pagination.paginate_queryset(queryset, request)
serializer = NotificationSerializer(page, many=True)
return pagination.get_paginated_response(serializer.data)
class NotificationReadDelView(APIView):
permission_classes = [IsAuthenticated]
def post(self, request, id):
obj = request.user.notifications.filter(id=id).first()
obj.mark_as_read()
serializer = NotificationSerializer(obj)
return Response(serializer.data, status=200)
def delete(self, request, id):
obj = request.user.notifications.filter(id=id).first()
obj.deleted = True
obj.save()
return Response({"status": "deleted"}, status=200)
class NotificationBulkReadDelView(APIView):
permission_classes = [IsAuthenticated]
def post(self, request):
obj = request.user.notifications.all()
obj.mark_all_as_read()
return Response({"status": "marked as read"}, status=200)
def delete(self, request):
obj = request.user.notifications.all()
obj.mark_all_as_deleted()
return Response({"status": "deleted"}, status=200)
class NotificationBulkDelUnreadMessageView(APIView):
permission_classes = [IsAuthenticated]
def delete(self, request):
obj = request.user.notifications.unread()
obj.mark_all_as_deleted()
return Response({"status": "deleted"}, status=200)