30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from rest_framework import mixins
|
|
from rest_framework.viewsets import GenericViewSet
|
|
from django_core.mixins.base import BaseViewSetMixin
|
|
from drf_spectacular.utils import extend_schema
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from core.apps.accounts.models import SearchHistory
|
|
from core.apps.api.serializers.search import (
|
|
ListSearchHistorySerializer,
|
|
RetrieveSearchHistorySerializer,
|
|
CreateSearchHistorySerializer,
|
|
|
|
)
|
|
|
|
|
|
@extend_schema(tags=['Search'])
|
|
class SearchHistoryViewSet(BaseViewSetMixin, mixins.ListModelMixin, mixins.CreateModelMixin,
|
|
mixins.DestroyModelMixin, GenericViewSet):
|
|
serializer_class = ListSearchHistorySerializer
|
|
permission_classes = [IsAuthenticated]
|
|
http_method_names = ['get', 'post', 'delete']
|
|
action_permission_classes = {}
|
|
action_serializer_class = {
|
|
'list': ListSearchHistorySerializer,
|
|
'create': CreateSearchHistorySerializer,
|
|
}
|
|
|
|
def get_queryset(self):
|
|
queryset = SearchHistory.objects.filter(user=self.request.user)
|
|
return queryset
|