1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-23 06:49:37 +02:00

search api

This commit is contained in:
Sean Morley 2024-07-17 17:36:05 -04:00
parent aa03c49979
commit 7431d45124
5 changed files with 114 additions and 4 deletions

View file

@ -139,6 +139,17 @@ class AdventureViewSet(viewsets.ModelViewSet):
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
@action(detail=False, methods=['get'])
def search(self, request):
query = self.request.query_params.get('query', '')
queryset = Adventure.objects.filter(
(Q(name__icontains=query) | Q(description__icontains=query) | Q(location__icontains=query) | Q(activity_types__icontains=query)) &
(Q(user_id=request.user.id) | Q(is_public=True))
)
queryset = self.apply_sorting(queryset)
adventures = self.paginate_and_respond(queryset, request)
return adventures
def paginate_and_respond(self, queryset, request):
paginator = self.pagination_class()