Added API endpoints to list library followees and followers

This commit is contained in:
Eliot Berriot 2018-04-10 23:17:51 +02:00
commit e82a53da35
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
4 changed files with 101 additions and 0 deletions

View file

@ -18,6 +18,7 @@ from funkwhale_api.music.models import TrackFile
from . import activity
from . import actors
from . import authentication
from . import filters
from . import library
from . import models
from . import permissions
@ -177,6 +178,40 @@ class LibraryViewSet(viewsets.GenericViewSet):
data = library.scan_from_account_name(account)
return response.Response(data)
@list_route(methods=['get'])
def following(self, request, *args, **kwargs):
library_actor = actors.SYSTEM_ACTORS['library'].get_actor_instance()
queryset = models.Follow.objects.filter(
actor=library_actor
).select_related(
'target',
'target',
).order_by('-creation_date')
filterset = filters.FollowFilter(request.GET, queryset=queryset)
serializer = serializers.APIFollowSerializer(filterset.qs, many=True)
data = {
'results': serializer.data,
'count': len(filterset.qs),
}
return response.Response(data)
@list_route(methods=['get'])
def followers(self, request, *args, **kwargs):
library_actor = actors.SYSTEM_ACTORS['library'].get_actor_instance()
queryset = models.Follow.objects.filter(
target=library_actor
).select_related(
'target',
'target',
).order_by('-creation_date')
filterset = filters.FollowFilter(request.GET, queryset=queryset)
serializer = serializers.APIFollowSerializer(filterset.qs, many=True)
data = {
'results': serializer.data,
'count': len(filterset.qs),
}
return response.Response(data)
@transaction.atomic
def create(self, request, *args, **kwargs):
serializer = serializers.APILibraryCreateSerializer(data=request.data)