adding
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
class NotificationItemSerializer(serializers.Serializer):
|
||||
id = serializers.IntegerField()
|
||||
title = serializers.CharField()
|
||||
body = serializers.CharField()
|
||||
created_at = serializers.DateTimeField()
|
||||
is_read = serializers.BooleanField()
|
||||
|
||||
|
||||
class TrialWarningSerializer(serializers.Serializer):
|
||||
days_left = serializers.IntegerField()
|
||||
title = serializers.CharField()
|
||||
body = serializers.CharField()
|
||||
|
||||
|
||||
class NotificationListSerializer(serializers.Serializer):
|
||||
unread_count = serializers.IntegerField()
|
||||
trial_warning = TrialWarningSerializer(allow_null=True)
|
||||
items = NotificationItemSerializer(many=True)
|
||||
@@ -0,0 +1,31 @@
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.views import APIView
|
||||
|
||||
from apps.notifications.services import NotificationService
|
||||
|
||||
from .serializers import NotificationListSerializer
|
||||
|
||||
|
||||
class NotificationListView(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def get(self, request):
|
||||
data = NotificationService.list_for_user(request.user)
|
||||
return Response(NotificationListSerializer(data).data)
|
||||
|
||||
|
||||
class NotificationMarkReadView(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request, notification_id):
|
||||
NotificationService.mark_read(request.user, notification_id)
|
||||
return Response({"success": True})
|
||||
|
||||
|
||||
class NotificationMarkAllReadView(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def post(self, request):
|
||||
NotificationService.mark_all_read(request.user)
|
||||
return Response({"success": True})
|
||||
Reference in New Issue
Block a user