From 8fbcc688fdbfae30e65ae20eb904c5f9318d8460 Mon Sep 17 00:00:00 2001 From: Kangmin Lee <dlrkdals421@ajou.ac.kr> Date: Tue, 7 Jun 2022 19:15:38 +0000 Subject: [PATCH] =?UTF-8?q?=EC=8B=A0=EA=B3=A0=EA=B8=B0=EB=8A=A5=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- campics_/content/views.py | 60 +++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/campics_/content/views.py b/campics_/content/views.py index d41bb7c..166e3ec 100644 --- a/campics_/content/views.py +++ b/campics_/content/views.py @@ -1,6 +1,6 @@ from django.shortcuts import render from rest_framework.views import APIView -from content.models import Feed, FeedLike, FeedView +from content.models import Feed, FeedLike, FeedView, FeedReport from rest_framework.response import Response from user.models import User, Univ from rest_framework.response import Response @@ -10,6 +10,7 @@ from uuid import uuid4 from datetime import datetime from django.db.models import Q + class UploadFeed(APIView): def post(self, request): file = request.FILES['file'] @@ -24,7 +25,7 @@ class UploadFeed(APIView): user_id = request.data.get('user_id') email = request.data.get('email') - user = User.objects.filter(Q(email = email)).first() + user = User.objects.filter(Q(email=email)).first() univ = user.univ type = request.data.get('type') if type == 'photozone': @@ -32,9 +33,11 @@ class UploadFeed(APIView): if type == 'scene': type = True - Feed.objects.create(content=content, image=image, profile_image=profile_image, user_id=user_id, email=email, like_count=0, view_count=0, type=type, univ=univ) + Feed.objects.create(content=content, image=image, profile_image=profile_image, user_id=user_id, email=email, + like_count=0, view_count=0, report_count=0, type=type, univ=univ) return Response(status=200) + class LikeFeed(APIView): def post(self, request): feed_id = request.data.get('feed_id') @@ -58,9 +61,10 @@ class LikeFeed(APIView): return Response(status=200, data=dict(message='피드 좋아요 완료.')) + class ViewFeed(APIView): def post(self, request): - feed_id = request.data.get('feed_id') #id? + feed_id = request.data.get('feed_id') # id? email = request.data.get('email') is_view = request.data.get('is_view', 'True') @@ -81,6 +85,36 @@ class ViewFeed(APIView): return Response(status=200, data=dict(message='피드 조회 완료.')) +class ReportFeed(APIView): + def post(self, request): + feed_id = request.data.get('feed_id') + email = request.data.get('email') + is_report = request.data.get('is_report', 'True') + + if is_report.lower() == 'false': + is_report = False + else: + is_report = True + feed_report = FeedReport.objects.filter(feed_id=feed_id, email=email).first() + + if feed_report is None: + FeedReport.objects.create(feed_id=feed_id, + email=email, + is_report=is_report, + ) + else: + feed_report.is_report = is_report + feed_report.save() + + feed = Feed.objects.filter(id=feed_id).first() + report_count=FeedReport.objects.filter(feed_id=feed_id, is_report=True).count() + if report_count>=5: #5회 이상 신고 게시글 삭제 + feed.delete() + return Response(status=200, data=dict(message='신고 5회 누적 게시글 삭제 완료')) + + return Response(status=200, data=dict(message='피드 신고 완료.')) + + ## 시환님꺼 class DeleteFeed(APIView): def post(self, request): @@ -101,13 +135,14 @@ class DeleteFeed(APIView): else: return Response(status=500, data=dict(message='삭제 실패')) + class searchUniv(APIView): def get(self, request): search_word = request.GET.get('keyword') # search_word = '대학' - + if search_word is None: - univ_list = Univ.objects.values('univ').order_by('univ') + univ_list = Univ.objects.values('univ').order_by('univ') else: univ_list = Univ.objects.filter(univ__contains=search_word).values('univ').order_by('univ') @@ -115,23 +150,24 @@ class searchUniv(APIView): message = None if univ_list.count() == 0: - message='검색한 정보가 없습니다.' + message = '검색한 정보가 없습니다.' return render(request, 'jinstagram/search.html', - context=dict(univ_list=univ_list,user_list=user_list,message=message)) + context=dict(univ_list=univ_list, user_list=user_list, message=message)) + class searchUser(APIView): def get(self, request): search_word = request.GET.get('keyword') # search_word = 's1' - user_list = Feed.objects.filter(user_id__contains=search_word) # .values() 뭐 필요? + user_list = Feed.objects.filter(user_id__contains=search_word) # .values() 뭐 필요? print(user_list) univ_list = None message = None if user_list.count() == 0: - message='검색한 정보가 없습니다.' - + message = '검색한 정보가 없습니다.' + return render(request, 'jinstagram/search.html', - context=dict(univ_list=univ_list,user_list=user_list,message=message)) + context=dict(univ_list=univ_list, user_list=user_list, message=message)) -- GitLab