From 12296279a15dac4d8612b5bc405ab98fabc83242 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Tue, 1 Apr 2025 15:23:28 +0200 Subject: [PATCH] get all my likes --- src/social/api/urls2.py | 1 + src/social/api/views.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/social/api/urls2.py b/src/social/api/urls2.py index 790e8e580..b150e6183 100644 --- a/src/social/api/urls2.py +++ b/src/social/api/urls2.py @@ -11,6 +11,7 @@ urlpatterns = [ piwik_track_view(views.LikeView2.as_view()), name='social_api_like'), path('likes/', views.LikesView.as_view()), + path('my-likes/', views.MyLikesView.as_view()), ] diff --git a/src/social/api/views.py b/src/social/api/views.py index d34503da1..22a0e9c52 100644 --- a/src/social/api/views.py +++ b/src/social/api/views.py @@ -11,6 +11,7 @@ from api.utils import vary_on_auth from catalogue.api.helpers import order_books, books_after from catalogue.api.serializers import BookSerializer from catalogue.models import Book +import catalogue.models from social.utils import likes from social.views import get_sets_for_book_ids @@ -64,7 +65,20 @@ class LikesView(APIView): res = get_sets_for_book_ids(ids, request.user) res = {books[bid]: v for bid, v in res.items()} return Response(res) - + + +@vary_on_auth +class MyLikesView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + ids = catalogue.models.tag.TagRelation.objects.filter(tag__user=request.user).values_list('object_id', flat=True).distinct() + books = Book.objects.filter(id__in=ids) + books = {b.id: b.slug for b in books} + res = get_sets_for_book_ids(ids, request.user) + res = {books[bid]: v for bid, v in res.items()} + return Response(res) + @vary_on_auth -- 2.20.1