Files
aurora-moments/api/apps/notifications/views.py
T
KrisandClaude Sonnet 5 4877e0a779 Initial commit: Aurora Moments self-hosted photo/video sharing platform
Django/DRF + PostgreSQL/Redis/Celery backend with accounts, library,
moments, and notifications apps; React/TypeScript/Vite frontend with
Instagram-style sidebar nav, feed, profiles, nested comment replies,
notifications, and photo/video upload with ffmpeg-generated posters.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-10 10:28:53 -05:00

25 lines
971 B
Python

from rest_framework import mixins, permissions, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
from .models import Notification
from .serializers import NotificationSerializer
class NotificationViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
serializer_class = NotificationSerializer
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Notification.objects.filter(recipient=self.request.user).select_related("actor", "moment")
@action(detail=False, methods=["get"], url_path="unread-count")
def unread_count(self, request):
count = self.get_queryset().filter(is_read=False).count()
return Response({"unread_count": count})
@action(detail=False, methods=["post"], url_path="mark-read")
def mark_read(self, request):
self.get_queryset().filter(is_read=False).update(is_read=True)
return Response(status=204)