24 lines
724 B
Python
24 lines
724 B
Python
|
from django.shortcuts import get_object_or_404
|
||
|
|
||
|
from api import schemas
|
||
|
from api.decorators import identity_required
|
||
|
from api.views.base import api_router
|
||
|
from users.models import Announcement
|
||
|
from users.services import AnnouncementService
|
||
|
|
||
|
|
||
|
@api_router.get("/v1/announcements", response=list[schemas.Announcement])
|
||
|
@identity_required
|
||
|
def announcement_list(request):
|
||
|
return [
|
||
|
a.to_mastodon_json(request.user)
|
||
|
for a in AnnouncementService(request.user).visible()
|
||
|
]
|
||
|
|
||
|
|
||
|
@api_router.post("/v1/announcements/{pk}/dismiss")
|
||
|
@identity_required
|
||
|
def announcement_dismiss(request, pk: str):
|
||
|
announcement = get_object_or_404(Announcement, pk=pk)
|
||
|
AnnouncementService(request.user).mark_seen(announcement)
|