Ejemplo n.º 1
0
 def post(self, request, format=None):
     user = request.user
     serializer = PostSerializer(data=request.data, context={'user': user})
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 2
0
 def post(self, request, format=None):
     user = request.user
     serializer = PostSerializer(data=request.data, context={'user':user})
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 3
0
    def put(self, request, pk, format=None):
        response = {}
        response["status"] = message.SUCCESS

        try:
            post = self.get_object(pk)
            request.data["user"] = request.user.id
            serializer = PostSerializer(post, data=request.data)
            if serializer.is_valid():
                serializer.save()
                response["data"] = serializer.data
                response["message"] = message.UPDATE_POST_SUCCESS

                #update_post_attributes(request.data["attributes"],serializer.data["id"])
            else:
                response["message"] = serializer.errors

        except Exception as exp:
            print(exp)
            traceback.print_exc()
            response["status"] = message.ERROR
            response["message"] = str(exp)

        if response["status"] == message.SUCCESS:
            return JSONResponse(response, status=status.HTTP_200_OK)
        else:
            return JSONResponse(response, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 4
0
def find_post_by_id(request, post_id):
    post = Post.objects.filter(id=post_id).first()
    if post:
        if post.community.state is True:
            if not request.user.is_authenticated:
                serializer = PostSerializer(post, context={"request": request})
                return Response(serializer.data, status=200)
            if post.user == request.user:
                track = Track.objects.filter(user=request.user).first()
                check_community_track(track, post.community, request.user)
                serializer = PostSerializer(post, context={"request": request})
                return Response(serializer.data, status=200)
            track = Track.objects.filter(user=request.user).first()
            check_community_track(track, post.community, request.user)
            view = View.objects.filter(user=request.user, post=post).first()
            serializer = check_view(view, post, request.user, request)
            return Response(serializer.data, status=200)
        if post.community.state is False:
            if not request.user.is_authenticated:
                return Response({Message.SC_LOGIN_REDIRECT}, status=401)
            view = View.objects.filter(user=request.user, post=post).first()
            if Community.objects.filter(user=request.user,
                                        community_type=post.community):
                serializer = check_view(view, post, request.user, request)
                return Response(serializer.data, status=200)
            return Response({Message.MUST_FOLLOW}, status=400)
    return Response({Message.SC_NOT_FOUND}, status=204)
Ejemplo n.º 5
0
    def post(self, request, format=None):
        print('You hit add post')
        response = {}
        response["status"] = message.SUCCESS

        try:

            data = request.data
            data["user"] = request.user.id
            print(data)
            serializer = PostSerializer(data=data)

            if serializer.is_valid():
                serializer.save()

                response["data"] = serializer.data
                response["message"] = message.CREATE_POST_SUCCESS

            else:
                response["message"] = serializer.errors

        except Exception as exp:
            print(exp)
            traceback.print_exc()
            response["status"] = message.ERROR
            response["message"] = str(exp)

        if response["status"] == message.SUCCESS:
            return JSONResponse(response, status=status.HTTP_201_CREATED)
        else:
            return JSONResponse(response, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 6
0
 def post(self, request, pk):
     post = get_object_or_404(Post, pk=pk)
     serializer = PostSerializer(post, data=request.data)
     
     if not serializer.is_valid():
         return Response({'serializer': serializer, 'post': post})
     serializer.save()
     return redirect('store-detail',post.poster.id) 
Ejemplo n.º 7
0
def post_message(request):
    if request.method == "POST":
        serializer = PostSerializer(data=request.data)
        if serializer.is_valid():
            print(serializer.data)
            message = serializer.validated_data.get("message")
            message_type = serializer.validated_data.get("message_type")
            Post.objects.create(message=message, message_type=message_type)
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 8
0
 def put(self, request, pk1, pk2):
     try:
         instance = self.get_profile(pk1=pk1).posts.get(id=pk2)
     except Post.DoesNotExist:
         raise Http404
     serializer = PostSerializer(instance=instance, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors)
Ejemplo n.º 9
0
    def post(self, request): 
        serializer = PostSerializer(data=request.data)

        if not serializer.is_valid():
            return Response({'serializer': serializer})
        
        user=self.request.user 
        # post와 유저를 연결, post에관한 유저정보는 사용자가 입력하는 것이아닌 자동으로
        serializer.save(poster=user,restaurant=user.store.store_name,local=user.store.store_local) 
        # perform_create()가 serializer.save()를 해줌
        return redirect('post-list') 
Ejemplo n.º 10
0
    def put(self, request, pk, format=None):
        try:
            post = Post.objects.get(id=pk)
        except:
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = PostSerializer(post, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 11
0
def create_post(request):
    if not request.user.is_authenticated:
        return Response({Message.SC_LOGIN_REDIRECT}, status=401)
    if request.method == "POST":
        title = request.data.get("title")
        content = request.data.get("content")
        community = request.data.get("community")
        image = request.data.get('image')
        type = request.data.get('type')
        if community is None:
            return Response({Message.SC_BAD_RQ}, status=400)
        user = request.user
        if community:
            if Community.objects.filter(community_type=community):
                _community = Community.objects.filter(
                    community_type=community).first()
                positive_point = PositivePoint.objects.filter(
                    user=user).first()
                positive_point.point = positive_point.point + 1
                positive_point.save()
                if image:
                    if len(image) > len('data:,'):
                        current_post = Post.objects.create(
                            user=user,
                            content=content,
                            community=_community,
                            title=title,
                            type=PostType.objects.filter(type=type).first())
                        current_post.image = get_image(image)
                        current_post.point = rank.hot(0, 0,
                                                      current_post.timestamp)
                        current_post.save()
                        serializer = PostSerializer(
                            current_post, context={"request": request})
                        return Response(serializer.data, status=201)
                current_post = Post.objects.create(
                    user=user,
                    content=content,
                    community=_community,
                    title=title,
                    type=PostType.objects.filter(type=type).first())
                current_post.point = rank.hot(0, 0, current_post.timestamp)
                current_post.save()
                serializer = PostSerializer(current_post,
                                            context={"request": request})
                return Response(serializer.data, status=201)
        return Response({Message.SC_BAD_RQ}, status=400)
    return Response({Message.SC_BAD_RQ}, status=400)
Ejemplo n.º 12
0
    def get(self, request):
        tag_name = request.GET.get('keyword', '')
        posts = Post.objects.filter(
            tags__name__exact=tag_name).order_by('-created_at')
        serialized_posts = PostSerializer(posts, many=True)

        return Response(serialized_posts.data)
Ejemplo n.º 13
0
    def get(self, request):
        title = request.GET.get('keyword', '')
        posts = Post.objects.filter(
            title__contains=title).order_by('-created_at')
        serialized_posts = PostSerializer(posts, many=True)

        return Response(serialized_posts.data)
 def get(self, request):
     posts = Post.objects.filter(
         author__user_id=request.user.id).order_by('id')
     paginator = PageNumberPagination()
     result_page = paginator.paginate_queryset(posts, request)
     ser = PostSerializer(result_page, many=True)
     return Response(ser.data)
Ejemplo n.º 15
0
def post_status(request, pk):
    response = {}
    response["status"] = message.SUCCESS

    try:
        post = Post.objects.get(pk=pk)
        if request.method == "GET":
            output = {}
            output["status"] = post.status
            output["is_verified"] = post.is_verified
            response["data"] = output

        elif request.method == "PUT":
            data = request.data
            post["is_verified"] = data["is_verified"]
            post["status"] = data["status"]
            post.save()

            serializer = PostSerializer(post)
            response["data"] = serializer.data

    except Exception as exp:
        print(exp)
        traceback.print_exc()
        response["status"] = message.ERROR
        response["message"] = str(exp)

    if response["status"] == message.SUCCESS:
        return JSONResponse(response, status=status.HTTP_200_OK)
    else:
        return JSONResponse(response, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 16
0
 def delete(self, request, pk):
     post = Post.objects.get(pk=pk)
     serializer_class = PostSerializer(post)
     #password = request.data.get('password', None)
     #if password == post.password:
     post.delete()
     return Response({"message":"success"})
Ejemplo n.º 17
0
 def get(self, request, pk1, pk2):
     try:
         post = self.get_profile(pk1=pk1).posts.get(id=pk2)
     except Post.DoesNotExist:
         raise Http404
     serializer = PostSerializer(post)
     return Response(serializer.data, status=status.HTTP_200_OK)
Ejemplo n.º 18
0
def userProfileView(request, un):

    tasks = User_Profile.objects.filter(username=un)
    serializer = user_profile_serializer(tasks, many=True)

    #problem
    pos = Post.objects.filter(username=un)
    serializer2 = PostSerializer(pos, many=True)

    #solution
    sol = Solution.objects.filter(username=un)
    serializer3 = SolutionSerializer(sol, many=True)

    #user_personal
    personal = User_Personal.objects.filter(username=un)
    serializer4 = user_personal_serializer(personal, many=True)

    #user_professional
    professional = User_Professional.objects.filter(username=un)
    serializer5 = user_professional_serializer(professional, many=True)

    #email
    em = CustomUser.objects.filter(id=un)
    serializer6 = LoginSerializer(em, many=True)
    content = {"email": serializer6.data[0].get('email')}

    Serializer_list = [
        serializer.data, serializer2.data, serializer3.data, serializer4.data,
        serializer5.data, content
    ]

    return Response(Serializer_list, safe=False)  # returns list of json
Ejemplo n.º 19
0
 def to_representation(self, value):
     if isinstance(value, User):
         return UserSerializer(value).data
     elif isinstance(value, Post):
         return PostSerializer(value, context={'request': None}).data
     else:
         return 'unknown'
Ejemplo n.º 20
0
class DiarySerializer(serializers.ModelSerializer):
    post_list = PostSerializer(many=True, read_only=True)
    goal_list = GoalSerializer(many=True, read_only=True)
    class Meta:
        model = Diary
        fields = ('id', 'created_at' , 'updated_at', 'user', 'account_num', 'bank', 'money',
                    'image', 'title', 'post_list', 'goal_list')
Ejemplo n.º 21
0
 def test_list_post(self):
     """
     Test listing posts
     """
     res = self.client.get(POST_URL)
     posts = Post.objects.all()
     serializer = PostSerializer(many=True)
     self.assertEqual(res.data, serializer.data)
Ejemplo n.º 22
0
    def get(self, request, pk, format=None):
        try:
            post = Post.objects.get(id=pk)
        except:
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = PostSerializer(post)
        return Response(serializer.data, status=status.HTTP_200_OK)
Ejemplo n.º 23
0
def top_posts(request):

    post = [p for p in Post.objects.all()]

    post = sorted(post, key=lambda x: x.vote_total(), reverse=True)

    serializer = PostSerializer(post, many=True)
    return Response(data=serializer.data, status=status.HTTP_200_OK)
Ejemplo n.º 24
0
def detail(request, pk):
    """
    Retrieve, update or delete a code post.
    """
    try:
        post = Post.objects.get(pk=pk)
    except Post.DoesNotExist:
        response = {"message": "post not exists"}
        return Response(response, status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = PostSerializer(post)
        return Response(serializer.data)

    elif request.method == 'PUT':
        request = uploadFile(request)
        serializer = PostSerializer(post, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        post.delete()
        respone = {"message": "bạn đã xóa thành công bài post id = " + str(pk)}
        return Response(respone, status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 25
0
 def get(self, request, user_id):
     user = get_object_or_404(UserProfile, id=user_id)
     forum = PostSerializer(user.bookmarked_posts.all(),
                            many=True,
                            context={
                                'request': request,
                                'user': user.user
                            })
     return Response(forum.data, status=status.HTTP_200_OK)
Ejemplo n.º 26
0
def re_post(request, post_id):
    if not request.user.is_authenticated:
        return Response({Message.SC_LOGIN_REDIRECT}, status=401)
    post = Post.objects.filter(id=post_id).first()
    if post:
        new_post = Post.objects.create(parent=post, user=request.user)
        serializer = PostSerializer(new_post, context={"request": request})
        return Response(serializer.data, status=200)
    return Response({Message.SC_NOT_FOUND}, status=204)
Ejemplo n.º 27
0
    def to_representation(self, value):

        if isinstance(value, Post):
            serializer = PostSerializer(value)

        else:
            return value.__str__()

        return serializer.data
Ejemplo n.º 28
0
 def get(self, request):
     user = request.user.profile
     user_following = Follow.objects.filter(follower=user).all()
     # user_posts = Post.objects.filter(written_by = user).all()
     response = list()
     for person in user_following:
         for vote in person.user.votes.filter(vote_type='like').all():
             if vote.post in response:
                 continue
             serializer = PostSerializer(vote.post,
                                         context={
                                             'request': request,
                                             'user': user.user
                                         })
             data = serializer.data.copy()
             data[
                 'message'] = f'{person.user.first_name} {person.user.last_name} liked this post'
             response.append(data)
         for comment in person.user.comments_made.all():
             if comment.post in response:
                 continue
             serializer = PostSerializer(comment.post,
                                         context={
                                             'request': request,
                                             'user': user.user
                                         })
             data = serializer.data.copy()
             data[
                 'message'] = f'{person.user.first_name} {person.user.last_name} commented on this post'
             response.append(data)
     for user_followed in user_following:
         posts = Post.objects.filter(written_by=user_followed.user).all()
         for post in posts:
             if post in response:
                 continue
             serializer = PostSerializer(post,
                                         context={
                                             'request': request,
                                             'user': user.user
                                         })
             data = serializer.data.copy()
             data['message'] = None
             response.append(data)
     return Response(response, status=status.HTTP_200_OK)
Ejemplo n.º 29
0
 def get(self, request, profile_id):
     user = get_object_or_404(UserProfile, id=profile_id)
     query = Post.objects.filter(written_by=user)
     serializer = PostSerializer(query,
                                 many=True,
                                 context={
                                     'request': request,
                                     'user': request.user
                                 })
     return Response(serializer.data, status=status.HTTP_200_OK)
    def test_filter_post_by_title(self):
        """Test returning post searched post."""
        post1 = sample_post(user_id=self.user, title="Hello programmer")
        post2 = sample_post(user_id=self.user, title="We love programmer")
        post3 = sample_post(user_id=self.user, title="The code defines you")
        tag1 = sample_tag(user=self.user, name="Finance")
        tag2 = sample_tag(user=self.user, name="Technology")
        post1.tags.add(tag1)
        post2.tags.add(tag2)
        post3.tags.add(tag1)

        res = self.client.get(POST_URL, {'search': f'programmer'})

        serializer1 = PostSerializer(post1)
        serializer2 = PostSerializer(post2)
        serializer3 = PostSerializer(post3)

        self.assertIn(serializer1.data, res.data)
        self.assertIn(serializer2.data, res.data)
        self.assertNotIn(serializer3.data, res.data)
    def test_retrieve_post(self):
        """Test retrieving list of posts"""
        # sample_post(user_id=self.user)
        # sample_post(user_id=self.user)

        res = self.client.get(POST_URL)

        posts = Post.objects.all().order_by('-id')
        serializer = PostSerializer(posts, many=True)
        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)