Files
digest_app/module_notification/api/views.py
2024-04-01 11:31:16 +05:30

49 lines
1.8 KiB
Python

from datetime import datetime
import requests
from django.conf import settings
from django.contrib.auth import authenticate
from rest_framework import status
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework_simplejwt.authentication import JWTAuthentication
from module_project.utils import ApiResponse
from module_project import constants
from .serializers import InAppNotificationSerializer
from ..models import InAppNotification
class InAppNotificationCountAPIView(APIView):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
model = InAppNotification
def get(self, request, *args, **kwargs):
count = InAppNotification.pending_read_count(user=request.user)
return ApiResponse.success(message=constants.SUCCESS, data={"count": count})
class InAppNotificationListAPIView(APIView):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
model = InAppNotification
serializer_class = InAppNotificationSerializer
def get(self, request, *args, **kwargs):
obj = InAppNotification.latest_15(user=request.user)
serializer_obj = self.serializer_class(obj, many=True)
return ApiResponse.success(message=constants.SUCCESS, data=serializer_obj.data)
class InAppNotificationReadAPIView(APIView):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
model = InAppNotification
serializer_class = InAppNotificationSerializer
def get(self, request, *args, **kwargs):
obj = InAppNotification.objects.filter(user=request.user).update(is_read=True)
return ApiResponse.success(message=constants.SUCCESS)