feat(profile): add activity sorting and payment filters
This commit is contained in:
@@ -3,7 +3,7 @@ from __future__ import annotations
|
||||
import logging
|
||||
import mimetypes
|
||||
from pathlib import Path
|
||||
from typing import List, Optional
|
||||
from typing import List, Literal, Optional
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import get_user_model
|
||||
@@ -624,19 +624,34 @@ def _profile_page_payload(queryset, page: int, page_size: int = 10):
|
||||
|
||||
|
||||
@blog_router.get("/me/activity/liked", response=PaginatedProfilePostsSchema, auth=jwt_auth)
|
||||
def my_liked_posts(request, page: int = Query(1, ge=1)):
|
||||
queryset = _published_queryset().filter(likes__user=request.auth).order_by("-published_at", "-created_at", "-id")
|
||||
def my_liked_posts(
|
||||
request,
|
||||
page: int = Query(1, ge=1),
|
||||
sort_order: Literal["asc", "desc"] = Query("desc"),
|
||||
):
|
||||
sort_prefix = "" if sort_order == "asc" else "-"
|
||||
queryset = _published_queryset().filter(likes__user=request.auth).order_by(f"{sort_prefix}likes__created_at", "-id")
|
||||
return _profile_page_payload(queryset, page)
|
||||
|
||||
|
||||
@blog_router.get("/me/activity/saved", response=PaginatedProfilePostsSchema, auth=jwt_auth)
|
||||
def my_saved_posts(request, page: int = Query(1, ge=1)):
|
||||
queryset = _published_queryset().filter(saves__user=request.auth).order_by("-published_at", "-created_at", "-id")
|
||||
def my_saved_posts(
|
||||
request,
|
||||
page: int = Query(1, ge=1),
|
||||
sort_order: Literal["asc", "desc"] = Query("desc"),
|
||||
):
|
||||
sort_prefix = "" if sort_order == "asc" else "-"
|
||||
queryset = _published_queryset().filter(saves__user=request.auth).order_by(f"{sort_prefix}saves__created_at", "-id")
|
||||
return _profile_page_payload(queryset, page)
|
||||
|
||||
|
||||
@blog_router.get("/me/activity/comments", response=PaginatedProfileCommentsSchema, auth=jwt_auth)
|
||||
def my_blog_comments(request, page: int = Query(1, ge=1)):
|
||||
def my_blog_comments(
|
||||
request,
|
||||
page: int = Query(1, ge=1),
|
||||
sort_order: Literal["asc", "desc"] = Query("desc"),
|
||||
):
|
||||
sort_prefix = "" if sort_order == "asc" else "-"
|
||||
queryset = (
|
||||
Comment.objects.filter(
|
||||
author=request.auth,
|
||||
@@ -647,7 +662,7 @@ def my_blog_comments(request, page: int = Query(1, ge=1)):
|
||||
post__is_deleted=False,
|
||||
)
|
||||
.select_related("author", "post")
|
||||
.order_by("-created_at", "-id")
|
||||
.order_by(f"{sort_prefix}created_at", "-id")
|
||||
)
|
||||
return _profile_page_payload(queryset, page)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user