def post(self, request): data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) if not 'content_id' in data: return JsonResponse({"messge":"[content_id] is empty."}, status=400) if not 'article' in data: return JsonResponse({"messge":"[article] must not be empty."}, status=400) if not 'image_url' in data: return JsonResponse({"messge":"[image_url] must not be empty."}, status=400) try: target = Post.objects.select_related('content', 'content__user') \ .get(content_id=data['content_id']) if target.content.user.id == user_id: target.image_url=data['image_url'] target.save() else: raise Post.DoesNotExist target = Content.objects.get(id=data['content_id'], user_id=user_id) target.article = data['article'] target.save() except Post.DoesNotExist: return JsonResponse({"messge":"This post is not exist or not your post "}, status=201) return JsonResponse({"messge":"SUCCESS"}, status=201)
def post(self, request): data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) # '좋아요' 대상 post, comment 와 사용자정보 if not 'content_id' in data: return JsonResponse({"message":"[content_id] is empty."}, status=400) content_id = data['content_id'] if not User.objects.filter(id=user_id).exists(): return JsonResponse({"message":"Can't find user."}, status=400) if not Content.objects.filter(id=content_id).exists(): return JsonResponse({"message":"Can't find target."}, status=400) likes = Like.objects.filter(user_id=user_id, content_id=content_id) if likes.exists(): likes.delete() else: Like.objects.create( user_id = user_id, content_id = content_id ) return JsonResponse({"message":"SUCCESS"}, status=201)
def post(self, request): data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) if not 'content_id' in data: return JsonResponse({"messge":"[content_id] is empty."}, status=400) try: row = Content.objects.get(id=data['content_id'], user_id=user_id) row.delete() except Content.DoesNotExist: return JsonResponse({"messge":"It is not you content or not exist."}, status=400) return JsonResponse({"messge":"SUCCESS"}, status=201)
def post(self, request): data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) inputs = {} ARTICLE = 'article' CONTENT_ID = 'content_id' # article, user_id, post_id, created_at 에 대해 comments table에 추가. if ARTICLE in data: inputs[ARTICLE] = data[ARTICLE] else: return JsonResponse({"message":"Can't comment empty article."}, status=400) if CONTENT_ID in data: inputs[CONTENT_ID] = data[CONTENT_ID] else: return JsonResponse({"message":"content_id is empty."}, status=400) if Content.objects.filter(id=inputs[CONTENT_ID]).exists(): inputs['parent_content_id'] = inputs[CONTENT_ID] else: return JsonResponse({"message":"can't find target content."}, status=401) new_content = Content.objects.create( article = inputs[ARTICLE], #created_at = datetime.now(), user_id = user_id ) Comment.objects.create( content_id = new_content.id, parent_content_id = inputs["parent_content_id"], ) return JsonResponse({"message":"SUCCESS"}, status=201)
def post(self, request): data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) # image_url, token 정보를 추출하여 posts table에 추가 작업 keys = ['token', 'image_url', 'article'] inputs = {k:v for k,v in data.items() if k in keys} for key in keys: if not key in inputs: return JsonResponse({"message":"we need to take all values [token, image_url, article]"}, status=400) new_content = Content.objects.create( article = inputs['article'], #created_at = datetime.now(), user_id = user_id ) Post.objects.create( image_url = inputs['image_url'], content_id = new_content.id ) return JsonResponse({"message":"SUCCESS"}, status=201)
def post(self, request): def findChildCommentsRecursive(self, parent_content_id): rows = Comment.objects.select_related('content').select_related('content__user') \ .filter(parent_content_id = parent_content_id) childs = [] for row in rows: data = { "content_id" : row.content_id, "name" : row.content.user.name, "article" : row.content.article, "created_at" : row.content.created_at, "comments" : findChildCommentsRecursive(self, row.content_id) } data['comments'] = findChildCommentsRecursive(self, row.content_id) childs.append(data) return childs data = json.loads(request.body) user_id = getUserIDFromToken(data['token']) # 내가 만든 Post 및 해당 post 에 달린 댓글과 좋아요 정보 모두 제공하기. # 해당 user의 contents 정보를 검색, Post에 해당하는 content 없으면 안내문구 리턴 if not Content.objects.select_related('user').filter(user_id=user_id).exists(): return JsonResponse({"message":"User's post is not exist."}, status=400) contents = Content.objects.select_related('user').filter(user_id=user_id) result = [] # Contents rows 중 user id에 매칭되는 contents 만 추출하여 looping for content in contents: # post에 해당하는 content 추출. posts = Post.objects.select_related('content').select_related('content__user') \ .filter(content_id=content.id) if not len(posts): continue # User가 작성한 post가 있다면 관련 정보를 dictionary로 저장 for post in posts: post_info = { 'content_id' : content.id, 'image_url' : post.image_url, 'article' : post.content.article, 'created_at' : post.content.created_at, 'user' : post.content.user.name } # post를 기준으로 댓글 tree 정보를 재귀호출방식으로 추출. post_info['comments'] = findChildCommentsRecursive(self, content.id) result.append(post_info) if not len(result): return JsonResponse({"message":"User's post is not exist."}, status=400) return JsonResponse({"result":result}, status=201)