This commit is contained in:
2026-08-24 15:54:08 +03:30
commit 236002a87c
133 changed files with 5946 additions and 0 deletions
View File
+21
View File
@@ -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)
+31
View File
@@ -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})