✨ Feat: [#88] 24시간 내 조회수 중복 방지
This commit is contained in:
@@ -7,8 +7,8 @@ from django.db import transaction
|
||||
|
||||
from .models import Code, Page, Element
|
||||
from .serializers import CodeSerializer
|
||||
from .permissions import IsOwnerOrMemberInCreateAndUpdateAndDelete
|
||||
from .services import NocodetoolObjectMapService
|
||||
from .permissions import IsOwnerOrMemberInCreateAndUpdateAndDelete, IsNotPublished
|
||||
from .services import NocodetoolObjectMapService, NocodetoolHitService
|
||||
|
||||
from users.models import User
|
||||
from portfolios.models import Portfolio
|
||||
@@ -18,13 +18,16 @@ from bson import ObjectId
|
||||
|
||||
|
||||
class NoCodeToolAPIView(APIView):
|
||||
permission_classes = [IsAuthenticated, IsOwnerOrMemberInCreateAndUpdateAndDelete]
|
||||
permission_classes = [IsAuthenticated, IsNotPublished, IsOwnerOrMemberInCreateAndUpdateAndDelete]
|
||||
|
||||
@transaction.atomic
|
||||
def get(self, request):
|
||||
related_type = request.query_params.get("type")
|
||||
related_id = request.query_params.get("id")
|
||||
code_id = None
|
||||
if obj := NocodetoolObjectMapService.mapping_model_instance(related_type, related_id):
|
||||
if obj.is_published:
|
||||
NocodetoolHitService.hit_once(obj, request)
|
||||
code_id = ObjectId(obj.code_id)
|
||||
|
||||
if not code_id:
|
||||
|
||||
Reference in New Issue
Block a user