update
This commit is contained in:
40
core/apps/api/views/user/like.py
Normal file
40
core/apps/api/views/user/like.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from rest_framework import mixins
|
||||
from rest_framework.response import Response
|
||||
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 UserLike
|
||||
from core.apps.api.serializers.user.like import (
|
||||
ListUserLikeSerializer,
|
||||
CreateUserLikeSerializer,
|
||||
)
|
||||
|
||||
|
||||
@extend_schema(tags=["User Like"])
|
||||
class UserLikeViewSet(BaseViewSetMixin, mixins.ListModelMixin, GenericViewSet):
|
||||
serializer_class = ListUserLikeSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
http_method_names = ["get", "post", "delete"]
|
||||
|
||||
action_serializer_class = {
|
||||
"list": ListUserLikeSerializer,
|
||||
"create": CreateUserLikeSerializer,
|
||||
}
|
||||
|
||||
def create(self, request):
|
||||
ser = self.get_serializer(data=request.data)
|
||||
ser.is_valid(raise_exception=True)
|
||||
instance = UserLike.objects.filter(user=request.user, ad=ser.validated_data.get("ad")).first()
|
||||
if instance is not None:
|
||||
instance.delete()
|
||||
return Response(data={"detail": "deleted"})
|
||||
self.perform_create(ser)
|
||||
return Response(data={"detail": "created"})
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = UserLike.objects.filter(user=self.request.user).order_by("-id")
|
||||
return queryset
|
||||
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(user=self.request.user)
|
||||
Reference in New Issue
Block a user