summaryrefslogtreecommitdiffstats
path: root/api/views/timelines.py
blob: 5de0e0f579345b7306a9991bc8c03dd0dd8b20ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from activities.models import TimelineEvent

from .. import schemas
from ..decorators import identity_required
from .base import api


@api.get("/v1/timelines/home", response=list[schemas.Status])
@identity_required
def home(request):
    if request.GET.get("max_id"):
        return []
    limit = int(request.GET.get("limit", "20"))
    events = (
        TimelineEvent.objects.filter(
            identity=request.identity,
            type__in=[TimelineEvent.Types.post],
        )
        .select_related("subject_post", "subject_post__author")
        .prefetch_related("subject_post__attachments")
        .order_by("-created")[:limit]
    )
    return [event.subject_post.to_mastodon_json() for event in events]