From 38a1f6bb749cc82c0c1834b36c0b0b470c56f3c0 Mon Sep 17 00:00:00 2001
From: hollum <hollum@hotmail.com>
Date: Mon, 28 Mar 2022 16:18:20 +0200
Subject: [PATCH] code smell - speculative generality

---
 backend/secfit/comments/models.py      | 16 ----------
 backend/secfit/comments/serializers.py | 13 +-------
 backend/secfit/comments/urls.py        |  6 ++--
 backend/secfit/comments/views.py       | 44 ++------------------------
 4 files changed, 5 insertions(+), 74 deletions(-)

diff --git a/backend/secfit/comments/models.py b/backend/secfit/comments/models.py
index e1bba07..02ddaab 100644
--- a/backend/secfit/comments/models.py
+++ b/backend/secfit/comments/models.py
@@ -30,19 +30,3 @@ class Comment(models.Model):
 
     class Meta:
         ordering = ["-timestamp"]
-
-
-class Like(models.Model):
-    """Django model for a reaction to a comment.
-
-
-    Attributes:
-        owner:       Who liked the comment
-        comment:     The comment that was liked
-        timestamp:   When the like occurred.
-    """
-    owner = models.ForeignKey(
-        get_user_model(), on_delete=models.CASCADE, related_name="likes"
-    )
-    comment = models.ForeignKey(Comment, on_delete=models.CASCADE, related_name="likes")
-    timestamp = models.DateTimeField(auto_now_add=True)
diff --git a/backend/secfit/comments/serializers.py b/backend/secfit/comments/serializers.py
index 9183e58..ab96342 100644
--- a/backend/secfit/comments/serializers.py
+++ b/backend/secfit/comments/serializers.py
@@ -1,6 +1,6 @@
 from rest_framework import serializers
 from rest_framework.serializers import HyperlinkedRelatedField
-from comments.models import Comment, Like
+from comments.models import Comment
 from workouts.models import Workout
 
 
@@ -13,14 +13,3 @@ class CommentSerializer(serializers.HyperlinkedModelSerializer):
     class Meta:
         model = Comment
         fields = ["url", "id", "owner", "workout", "content", "timestamp"]
-
-
-class LikeSerializer(serializers.HyperlinkedModelSerializer):
-    owner = serializers.ReadOnlyField(source="owner.username")
-    comment = HyperlinkedRelatedField(
-        queryset=Comment.objects.all(), view_name="comment-detail"
-    )
-
-    class Meta:
-        model = Like
-        fields = ["url", "id", "owner", "comment", "timestamp"]
diff --git a/backend/secfit/comments/urls.py b/backend/secfit/comments/urls.py
index db48bdc..c2da753 100644
--- a/backend/secfit/comments/urls.py
+++ b/backend/secfit/comments/urls.py
@@ -1,11 +1,9 @@
 from django.urls import path, include
-from comments.models import Comment, Like
-from comments.views import CommentList, CommentDetail, LikeList, LikeDetail
+from comments.models import Comment
+from comments.views import CommentList, CommentDetail
 from rest_framework.urlpatterns import format_suffix_patterns
 
 urlpatterns = [
     path("api/comments/", CommentList.as_view(), name="comment-list"),
     path("api/comments/<int:pk>/", CommentDetail.as_view(), name="comment-detail"),
-    path("api/likes/", LikeList.as_view(), name="like-list"),
-    path("api/likes/<int:pk>/", LikeDetail.as_view(), name="like-detail"),
 ]
diff --git a/backend/secfit/comments/views.py b/backend/secfit/comments/views.py
index aeb562f..eb023cb 100644
--- a/backend/secfit/comments/views.py
+++ b/backend/secfit/comments/views.py
@@ -1,10 +1,10 @@
 from django.shortcuts import render
 from rest_framework import generics, mixins
-from comments.models import Comment, Like
+from comments.models import Comment
 from rest_framework import permissions
 from comments.permissions import IsCommentVisibleToUser
 from workouts.permissions import IsOwner, IsReadOnly
-from comments.serializers import CommentSerializer, LikeSerializer
+from comments.serializers import CommentSerializer
 from django.db.models import Q
 from rest_framework.filters import OrderingFilter
 from workouts.models import Visibility
@@ -78,43 +78,3 @@ class CommentDetail(
 
     def delete(self, request, *args, **kwargs):
         return self.destroy(request, *args, **kwargs)
-
-
-# List of likes
-class LikeList(mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView):
-    serializer_class = LikeSerializer
-    permission_classes = [permissions.IsAuthenticated]
-
-    def get(self, request, *args, **kwargs):
-        return self.list(request, *args, **kwargs)
-
-    def post(self, request, *args, **kwargs):
-        return self.create(request, *args, **kwargs)
-
-    def perform_create(self, serializer):
-        serializer.save(owner=self.request.user)
-
-    def get_queryset(self):
-        return Like.objects.filter(owner=self.request.user)
-
-
-# Details of like
-class LikeDetail(
-    mixins.RetrieveModelMixin,
-    mixins.UpdateModelMixin,
-    mixins.DestroyModelMixin,
-    generics.GenericAPIView,
-):
-    queryset = Like.objects.all()
-    serializer_class = LikeSerializer
-    permission_classes = [permissions.IsAuthenticated]
-    _Detail = []
-
-    def get(self, request, *args, **kwargs):
-        return self.retrieve(request, *args, **kwargs)
-
-    def put(self, request, *args, **kwargs):
-        return self.update(request, *args, **kwargs)
-
-    def delete(self, request, *args, **kwargs):
-        return self.destroy(request, *args, **kwargs)
-- 
GitLab