Example #1
0
    def post(self, request, *args, **kwargs):

        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        if user != contents.user:
            raise CustomValidation('-20', '컨텐츠를 등록한 사용자가 아닙니다.')

        serializer = ContentsPasswordSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            data = {'result': 1, 'error': 'null', 'data': '비밀번호가 설정되었습니다.'}
            return Response(data, status=status.HTTP_201_CREATED)
        else:
            dict = serializer.errors
            if 'contents' in dict and 'unique' in dict['contents'][0]:
                raise CustomValidation('-24', '비밀번호가 이미 설정되었습니다.')
            elif 'password' in dict:
                if 'blank' in dict['password'][0]:
                    raise CustomValidation('-21', '비밀번호를 입력하세요.')
                elif '4' in dict['password'][0]:
                    raise CustomValidation('-22', '비밀번호는 4자리입니다.')
            raise CustomValidation('0', dict)
Example #2
0
    def post(self, request, pk=None):

        #로그인 체크
        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        # 컨텐츠 여부 체크
        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        if user != contents.user:
            raise CustomValidation('-20', '컨텐츠를 등록한 사용자가 아닙니다.')

        try:
            contents_password = ContentsPassword.objects.get(contents=contents)
            contents_password.delete()

            data = {
                "result": 1,
                "error": "null",
                "data": "컨텐츠 비밀번호가 삭제되었습니다."
            }

            return Response(data, status=status.HTTP_200_OK)
        except ContentsPassword.DoesNotExist:
            raise CustomValidation('-25', '등록된 비밀번호가 없습니다.')
Example #3
0
    def post(self, request, *args, **kwargs):
        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        if user != contents.user:
            raise CustomValidation('-20', '컨텐츠를 등록한 사용자가 아닙니다.')

        try:
            queryset = ContentsPassword.objects.get(contents=contents)
        except ContentsPassword.DoesNotExist:
            raise CustomValidation('-25', '등록된 비밀번호가 없습니다.')
        
        serializer = ContentsPasswordSerializer(queryset, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            data = {'result': 1, 'error': 'null', 'data': '비밀번호가 수정되었습니다.'}
            return Response(data, status=status.HTTP_201_CREATED)
        else:
            dict = serializer.errors
            if 'password' in dict:
                if 'blank' in dict['password'][0]:
                    raise CustomValidation('-21', '비밀번호를 입력하세요.')
                elif '4' in dict['password'][0]:
                    raise CustomValidation('-22', "비밀번호는 4자리입니다.")
            raise CustomValidation('0', dict)
Example #4
0
    def post(self, request, *args, **kwargs):

        user = get_user(request.data['user'])

        contentsfiles_serializer = self.serializer_class(data=request.data)
        if contentsfiles_serializer.is_valid():
            contentsfiles_serializer.save()
            return Response(contentsfiles_serializer.data, status=status.HTTP_201_CREATED)
        else:
            data = {"contents_files": contentsfiles_serializer.errors}
            raise serializers.ValidationError(data)
Example #5
0
    def post(self, request, *args, **kwargs):
        """
           컨텐츠 작성

            ---
            # /contents/

        """

        get_user(request.data['user'])
        qr_data = request.data['qr_data']
        activation_code = request.data['activation_code']

        try:
            qrdats = QRDatas.objects.get(qr_data=qr_data)

            if activation_code:
                if str(qrdats.activation_code) != activation_code:
                    raise CustomValidation('-14', "등록된 시리얼 번호가 없습니다.")
            else:
                raise CustomValidation('-14', "등록된 시리얼 번호가 없습니다.")

            if qrdats.is_active == 1:
                raise CustomValidation('-15', "컨텐츠가 등록된 QR코드 입니다.")

        except QRDatas.DoesNotExist:
             raise CustomValidation('-16', "등록된 QR코드가 없습니다.")

        try:
            Contents.objects.get(qr_data__qr_data=qr_data)
            raise CustomValidation('-15', "컨텐츠가 등록된 QR코드 입니다.")

        except Contents.DoesNotExist:
            contents_serializer = ContentsSerializer(data=request.data)
            if contents_serializer.is_valid():
                contents_serializer.save()
                data = {'result': 0, 'error': 'null', 'data': contents_serializer.data}
                return Response(data, status=status.HTTP_201_CREATED)
            else:
                raise CustomValidation('0', contents_serializer.errors)
Example #6
0
    def post(self, request, *args, **kwargs):

        like_type = self.request.data.get('like_type', None)
        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        if like_type is None:
            data = {'result': 0, 'error': 'like_type을 입력하세요.', 'data': ''}
            return Response(data, status=status.HTTP_200_OK)

        if like_type == '0':
            try:
                contents_like = contents.like_set.get(user=user)
                contents_like.delete()
            except:
                pass
            try:
                contents_unlike = contents.unlike_set.get(user=user)
                contents_unlike.delete()
            except:
                pass
            data = {'result': 1, 'error': 'null', 'data': '0'}
            return Response(data, status=status.HTTP_200_OK)

        elif like_type == '1':
            try:
                contents_unlike = contents.unlike_set.get(user=user)
                contents_unlike.delete()
            except:
                pass

            contents.like_set.get_or_create(user=user)
            data = {'result': 1, 'error': 'null', 'data': '1'}
            return Response(data, status=status.HTTP_200_OK)

        elif like_type == '2':
            try:
                contents_like = contents.like_set.get(user=user)
                contents_like.delete()
            except:
                pass

            contents.unlike_set.get_or_create(user=user)
            data = {'result': 1, 'error': 'null', 'data': '2'}
            return Response(data, status=status.HTTP_200_OK)

        else:
            data = {'result': 0, 'error': 'like_type이 바르지않습니다.', 'data': ''}
            return Response(data, status=status.HTTP_200_OK)
Example #7
0
def get_user_page(request):

    if request.method == 'POST':

        json_data = json.loads(request.body.decode('utf-8'))

        try:
            user_id = json_data['userid']
            user = User.objects.get(id=user_id)

        except:
            return HttpResponseBadRequest("The user doesn't exists.")

    elif request.method == 'GET':
        user = request.user

    try:
        products = [x['product'] for
                    x in Reviewing.objects.filter(user=user).values("product")]
        all_products = get_products()
        reviewed_products = [p for p in all_products if p['id'] in products]
        for p in reviewed_products:
            p['iswish'] = is_wish(request.user.pk, p['id'])
            p['review'] = utils.get_review_data(user.id, p['id'])
    except:
        pass

    friends = get_friends(user)
    friends_res = []
    for f in friends:
        friends_res.append(get_user(f))
    response = dict(
        user=get_user(user.id),
        friends=friends_res,
        products=reviewed_products
    )

    return JsonResponse(response)
Example #8
0
    def get(self, request, *args, **kwargs):

        user_pk = self.request.GET.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.GET.get('contents', None)
        contents = get_contents(contents_pk)

        try:
            UnLike.objects.get(contents=contents, user=user)
            data = {'result': 1, 'error': 'null', 'data': '싫어요를 클릭했습니다.'}
        except UnLike.DoesNotExist:
            data = {'result': 0, 'error': 'null', 'data': '싫어요를 클릭하지 않았습니다.'}

        return Response(data, status=status.HTTP_200_OK)
Example #9
0
    def get_serializer_class(self):
        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.data.get('contents', None)
        get_contents(contents_pk)

        comment_content = self.request.data.get('comment_content', None)

        if comment_content is None:
                raise CustomValidation('-31', "댓글을 입력해주세요.")
        else:
            if len(comment_content) < 1:
                raise CustomValidation('-31', "댓글을 입력해주세요.")

        return create_comment_serializer(parent_id=self.request.GET.get("parent_id", None), user=user)
Example #10
0
    def create(self, validated_data):
        user = self._kwargs['data']['user']
        qr_data = self._kwargs['data']['qr_data']
        user = get_user(user)
        qr_data = QRDatas.objects.get(qr_data=qr_data)
        contents = Contents.objects.create(user=user, qr_data=qr_data,  **validated_data)
        QRDatas.objects.filter(pk=contents.qr_data.pk).update(is_active=1)

        contents_files = self.initial_data.getlist('contents_files')
        if len(contents_files) > 0:
            files_type = self.initial_data.getlist('contents_files_type')
            files_type_list = files_type[0].split(',')
            for file_item, file_type in zip(contents_files, files_type_list):
                c = ContentsFiles(file=file_item, file_type=file_type,  contents=contents,  user=contents.user)
                c.save()
            return contents
Example #11
0
    def post(self, request, pk=None, user=None):

        user = get_user(user)
        contents = get_contents(pk)

        if user.pk != contents.user.pk:
            raise CustomValidation('-18', '작성자만 수정 가능합니다.')

        serializer = ContentsUpdateSerializer(contents, data=request.data, partial=True)

        if serializer.is_valid():
            serializer.save()
            data = {'result': 0, 'error': 'null', 'data': serializer.data}
            return Response(data, status=status.HTTP_200_OK)
        else:
            raise CustomValidation('0', serializer.errors)
Example #12
0
    def post(self, request, *args, **kwargs):

        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        contents_unlike, contents_unlike_created = contents.unlike_set.get_or_create(user=user)

        if contents_unlike_created:
            data = {'result': 1, 'error': 'null',  'data': '싫어요'}
        else:
            contents_unlike.delete()
            data = {'result': 0, 'error': 'null',  'data': '싫어요 취소'}

        return Response(data, status=status.HTTP_200_OK)
Example #13
0
    def post(self, request, pk=None):

        user_pk = self.request.data.get('user', None)
        user= get_user(user_pk)

        comment = self.get_object(pk)

        if user.pk != comment.user.pk:
            raise CustomValidation('-27', '작성자만 삭제 가능합니다.')

        comment.delete()

        data = {
            "result": 1,
            "error": "null",
            "data": "댓글이 삭제되었습니다."
        }
        return Response(data, status=status.HTTP_200_OK)
Example #14
0
    def post(self, request, *args, **kwargs):

        #로그인 체크
        user_pk = self.request.data.get('user', None)
        user = get_user(user_pk)

        # 컨텐츠 여부 체크
        contents_pk = self.request.data.get('contents', None)
        contents = get_contents(contents_pk)

        # 패스워드 체크
        contents_password = self.request.data.get('password', None)

        if contents_password == contents.contentspassword.password:
            data = {'result': 1, 'error': 'null', 'data': '비밀번호가 일치합니다.'}
            return Response(data, status=status.HTTP_200_OK)
        else:
            raise CustomValidation('-26', "비밀번호가 다릅니다.")
Example #15
0
    def post(self, request, *args, **kwargs):

        user = request.data.get("user")

        serializer = self.get_serializer(data=request.data)
        if not serializer.is_valid():
            dict = serializer.errors
            if 'user' in dict:
                if 'integer' in dict['user'][0]:
                    raise CustomValidation('-9', "user에 " + dict['user'][0])
                else:
                    raise CustomValidation('0', dict['user'][0])
            elif 'current_password' in dict:
                if 'blank' in dict['current_password'][0]:
                    raise CustomValidation('-10', "기존 비밀번호를 입력하세요.")
                else:
                    raise CustomValidation('0', dict['current_password'][0])
            elif 'new_password' in dict:
                if 'blank' in dict['new_password'][0]:
                    raise CustomValidation('-12', "변경할 비밀번호를 입력하세요.")
                else:
                    raise CustomValidation('-13',
                                           "변경할 " + dict['new_password'][0])
            else:
                raise CustomValidation('0', dict)

        user = get_user(user)
        if not user.check_password(
                serializer.validated_data['current_password']):
            raise CustomValidation('-11', '기존 비밀번호가 다릅니다.')

        user.set_password(serializer.validated_data['new_password'])
        user.save()

        return Response({
            "result": 1,
            "error": 'null',
            "data": '비밀번호가 변경되었습니다.'
        })
Example #16
0
    def get(self, request, *args, **kwargs):

        user_pk = self.request.GET.get('user', None)
        user = get_user(user_pk)

        contents_pk = self.request.GET.get('contents', None)
        contents = get_contents(contents_pk)
        like_type = 0

        try:
            contents.like_set.get(user=user)
            like_type = 1
        except:
            pass

        try:
            contents.unlike_set.get(user=user)
            like_type = 2
        except:
            pass

        data = {'result': 1, 'error': 'null', 'data': like_type}
        return Response(data, status=status.HTTP_200_OK)
Example #17
0
def get_user_info(request):
    """We get the username and information for the current user"""
    return JsonResponse(get_user(request.user.id))
Example #18
0
 def get(self, request, user=None):
     user = get_user(user)
     serializer = self.serializer_class(user)
     data = {'result': 0, 'error': 'null', 'data': serializer.data}
     return Response(data)