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