Exemplo n.º 1
0
 def post(self, request):
     serializer = PostSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(response_data(True, serializer.data))
     else:
         return Response(response_data(False, serializer.errors),
                         status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 2
0
 def put(self, request, pk):
     user = self.get_object(pk)
     serializer = UserSerializer(user, data=request.data, partial=True)
     if serializer.is_valid():
         serializer.save()
         return Response(response_data(True, serializer.data))
     else:
         return Response(response_data(False, serializer.errors),
                         status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 3
0
    def post(self, request, post_id):
        custom_request_data = copy.deepcopy(request.data)
        custom_request_data['post'] = post_id

        serializer = CommentSerializer(data=custom_request_data)
        if serializer.is_valid():
            serializer.save()
            return Response(response_data(True, serializer.data))
        else:
            return Response(response_data(False, serializer.errors),
                            status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 4
0
    def post(self, request):
        username = request.data['username']
        password = request.data['password']

        token = User.authentication(username, password)
        if token is None:
            return Response(response_data(False, '로그인 실패'),
                            status=status.HTTP_401_UNAUTHORIZED)
        else:
            data = {'x_access_token': token}
        return Response(response_data(True, data))
Exemplo n.º 5
0
 def post(self, request):
     serializer = UserSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(response_data(True, serializer.data))
     else:
         try:
             User.objects.get(username=request.data['username'])
             return Response(response_data(False, serializer.errors),
                             status=status.HTTP_409_CONFLICT)
         except User.DoesNotExist:
             return Response(response_data(False, serializer.errors))
Exemplo n.º 6
0
    def get(self, request):
        """
        옵션 검색
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        fin_co_nos = request.query_params.getlist('fin_co_no', None)
        intr_rate_type = request.query_params.get('intr_rate_type', None)
        save_trm = request.query_params.get('save_trm', None)
        intr_rate = request.query_params.get('intr_rate', 0)
        intr_rate2 = request.query_params.get('intr_rate2', 0)
        join_deny = request.query_params.get('join_deny', None)

        products = self.get_products(top_fin_grp_no)
        custom_products = []
        for product in products:
            custom_product_data = self.set_custom_product_data(product)
            custom_products.append(custom_product_data)

        # 금리 유형
        if intr_rate_type == 'S':
            param_rate_type = 'rate_type_s'
        else:
            param_rate_type = 'rate_type_m'

        # 저축 기간
        if save_trm == '6':
            param_save_trm = 'months_6'
        elif save_trm == '12':
            param_save_trm = 'months_12'
        elif save_trm == '24':
            param_save_trm = 'months_24'
        else:
            param_save_trm = 'months_36'

        params = [
            ('bank_id', fin_co_nos),
            (param_rate_type, intr_rate_type),
            (param_save_trm, save_trm),
            ('basic_rate_max', intr_rate),
            ('prime_rate_max', intr_rate2),
            ('join_deny', join_deny)
        ]

        try:
            for param in params:
                custom_products = self.product_filter(custom_products, param[0], param[1])
            return Response(response_data(True, custom_products))
        except Exception as e:
            # 검색 결과가 없을 때
            return Response(response_data(True, []))
Exemplo n.º 7
0
 def post(self, request, post_id):
     user_id = int(request.query_params['user_id'])
     serializer = PostLikeSerializer(data={
         'post': post_id,
         'user': user_id
     })
     if serializer.is_valid():
         serializer.save()
         self.like_post(post_id)
         return Response(response_data(True, serializer.data))
     else:
         PostLike.objects.get(post_id=post_id, user_id=user_id).delete()
         self.unlike_post(post_id)
         return Response(response_data(True),
                         status=status.HTTP_204_NO_CONTENT)
Exemplo n.º 8
0
    def get(self, request, fin_prdt_cd):
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        fin_co_no = request.query_params.get('fin_co_no', None)

        products = self.get_products(top_fin_grp_no)
        params = [
            ('fin_prdt_cd', fin_prdt_cd),
            ('fin_co_no', fin_co_no)
        ]
        try:
            for param in params:
                products = self.product_filter(products, param[0], param[1])
            product_detail = products[0]
            custom_options_data = self.set_custom_option_data(product_detail['options'])
            data = {
                'product_id': product_detail['fin_prdt_cd'],
                'product_name': product_detail['fin_prdt_nm'],
                'bank_id': product_detail['fin_co_no'],
                'bank_name': product_detail['kor_co_nm'],
                'bank_logo': 'logo.png',
                'max_limit': '없음' if product_detail['max_limit'] is None else product_detail['max_limit'],
                'join_way': product_detail['join_way'],
                'join_deny': product_detail['join_deny'],
                'join_member': product_detail['join_member'],
                'contents_prime_condition': product_detail['spcl_cnd'],
                'contents_maturity_rate': product_detail['mtrt_int'],
                'contents_etc': product_detail['etc_note'],
                'options': custom_options_data
            }
            return Response(response_data(True, data))
        except Exception as e:
            print(traceback.format_exc())
Exemplo n.º 9
0
 def post(self, request):
     user_token = request.data['token']
     res = self.debug_token(user_token)
     sns_id = res['data']['user_id']
     try:
         user = User.objects.get(sns_type='facebook', sns_id=sns_id)
         # token 갱신
         data = {'sns_access_token': user_token}
         serializer = UserSerializer(user, data=data, partial=True)
         if serializer.is_valid():
             serializer.save()
             return Response(response_data(True, serializer.data))
         else:
             return Response(response_data(False, 'FB 토큰 갱신 에러'))
     except User.DoesNotExist:
         return Response(response_data(True, None))
Exemplo n.º 10
0
 def post(self, request):
     token = request.data['x-access-token']
     secret = settings.SECRET_KEY
     data = Authentication().validate_token(token, secret)
     if type(data) is not dict:
         data = {'error': data}
     return Response(response_data(True, data))
Exemplo n.º 11
0
def companies(request):
    if request.method == 'GET':
        top_fin_grp_no = request.query_params.get('top_fin_grp_No', '020000')
        page_no = request.query_params.get('page_no', 1)

        res = services.get_companies(top_fin_grp_no, page_no).json()
        data = res['result']['baseList']
        return Response(response_data(True, data))
Exemplo n.º 12
0
    def get(self, request, fin_prdt_cd):
        """
        전체 은행 금융상품
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        page_no = request.query_params.get('page_no', 0)
        fin_co_no = request.query_params.get('fin_co_no', None)
        res = services.get_saving_products(top_fin_grp_no, page_no).json()

        products = []
        for page_no in range(int(res['result']['max_page_no'])):
            res = services.get_saving_products(top_fin_grp_no, page_no + 1).json()
            product_list = res['result']['baseList']
            option_list = res['result']['optionList']

            for product in product_list:
                product['options'] = []
                for option in option_list:
                    if product['fin_prdt_cd'] == option['fin_prdt_cd']:
                        product['options'].append(option)
                products.append(product)

        params = [
            ('fin_prdt_cd', fin_prdt_cd),
            ('fin_co_no', fin_co_no)
        ]

        try:
            for param in params:
                products = self.product_filter(products, param[0], param[1])
            product_detail = products[0]
            custom_options_data = self.set_custom_option_data(product_detail['options'])
            data = {
                'product_id': product_detail['fin_prdt_cd'],
                'product_name': product_detail['fin_prdt_nm'],
                'bank_id': product_detail['fin_co_no'],
                'bank_name': product_detail['kor_co_nm'],
                'bank_logo': 'logo.png',
                'max_limit': product_detail['max_limit'],
                'join_way': product_detail['join_way'],
                'join_deny': product_detail['join_deny'],
                'join_member': product_detail['join_member'],
                'contents_prime_condition': product_detail['spcl_cnd'],
                'contents_maturity_rate': product_detail['mtrt_int'],
                'contents_etc': product_detail['etc_note'],
                'options': custom_options_data
            }
            return Response(response_data(True, data))
        except Exception as e:
            print(traceback.format_exc())
Exemplo n.º 13
0
    def get(self, request, post_id):
        qs = Comment.objects.filter(post_id=post_id)
        comment_serializer = CommentSerializer(qs, many=True)
        comments = comment_serializer.data

        for index, comment in enumerate(comments):
            user = User.objects.get(pk=comment['user'])
            user_serializer = UserSerializer(user)

            comments[index]['created_at'] = datetime_formatter(
                comment['created_at'], '%Y-%m-%d %H:%M:%S')
            comments[index]['updated_at'] = datetime_formatter(
                comment['updated_at'], '%Y-%m-%d %H:%M:%S')
            comments[index]['user'] = user_serializer.data
        return Response(response_data(True, comments))
Exemplo n.º 14
0
    def get(self, request, pk):
        post = self.get_object(pk)
        self.view_post(post)
        post_serializer = PostSerializer(post)
        post_data = post_serializer.data

        user = User.objects.get(pk=post_data['user'])
        user_serializer = UserSerializer(user)
        comment_count = Comment.objects.filter(post_id=post_data['id']).count()

        post_data['created_at'] = datetime_formatter(post_data['created_at'],
                                                     '%Y-%m-%d %H:%M:%S')
        post_data['updated_at'] = datetime_formatter(post_data['updated_at'],
                                                     '%Y-%m-%d %H:%M:%S')
        post_data['user'] = user_serializer.data
        post_data['comment_count'] = comment_count
        return Response(response_data(True, post_data))
Exemplo n.º 15
0
    def get(self, request):
        """
        특정 상품명 검색(예금)
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        fin_prdt_nm = request.query_params.get('fin_prdt_nm')

        products = self.get_products(top_fin_grp_no)
        deepcopy_products = copy.deepcopy(products)
        products = []
        for product in deepcopy_products:
            if fin_prdt_nm in product['fin_prdt_nm']:
                products.append(product)
        # 출력 형식 변경
        custom_products = []
        for product in products:
            custom_product_data = self.set_custom_product_data(product)
            custom_products.append(custom_product_data)
        return Response(response_data(True, custom_products))
Exemplo n.º 16
0
    def get(self, request):
        """
        특정 은행 금융상품(예금)
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        fin_co_nos = request.query_params.getlist('fin_co_no')

        products = self.get_products(top_fin_grp_no)
        deepcopy_products = copy.deepcopy(products)
        products = []
        for fin_co_no in fin_co_nos:
            for product in deepcopy_products:
                if product['fin_co_no'] == fin_co_no:
                    products.append(product)
        # 출력 형식 변경
        custom_products = []
        for product in products:
            custom_product_data = self.set_custom_product_data(product)
            custom_products.append(custom_product_data)
        return Response(response_data(True, custom_products))
Exemplo n.º 17
0
    def get(self, request):
        limit = int(request.query_params.get('limit', 10))
        now_page = int(request.query_params.get('page', 1))
        max_page = math.ceil(len(Post.objects.all()) / limit)

        post_qs = paging_data(Post.objects.all()[::-1], limit, now_page)
        post_serializer = PostSerializer(post_qs, many=True)
        posts = post_serializer.data

        for index, post in enumerate(posts):
            user = User.objects.get(pk=post['user'])
            user_serializer = UserSerializer(user)
            comment_count = Comment.objects.filter(post_id=post['id']).count()

            posts[index]['created_at'] = datetime_formatter(
                post['created_at'], '%Y-%m-%d %H:%M:%S')
            posts[index]['updated_at'] = datetime_formatter(
                post['updated_at'], '%Y-%m-%d %H:%M:%S')
            posts[index]['user'] = user_serializer.data
            posts[index]['comment_count'] = comment_count
        return Response(response_data(True, posts, now_page, max_page))
Exemplo n.º 18
0
    def get(self, request):
        """
        전체 은행 금융상품
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        page_no = request.query_params.get('page_no', 0)
        res = services.get_saving_products(top_fin_grp_no, page_no).json()

        products = []
        for page_no in range(int(res['result']['max_page_no'])):
            res = services.get_saving_products(top_fin_grp_no, page_no + 1).json()
            product_list = res['result']['baseList']
            option_list = res['result']['optionList']

            for product in product_list:
                product['options'] = []
                for option in option_list:
                    if product['fin_prdt_cd'] == option['fin_prdt_cd']:
                        product['options'].append(option)
                products.append(product)
        """
        특정 은행 금융상품
        """
        fin_co_nos = request.query_params.getlist('fin_co_no')
        if len(fin_co_nos) > 0:
            deepcopy_products = copy.deepcopy(products)
            products = []
            for fin_co_no in fin_co_nos:
                for product in deepcopy_products:
                    if product['fin_co_no'] == fin_co_no:
                        products.append(product)
        # 출력 형식 변경
        custom_products = []
        for product in products:
            custom_product_data = self.set_custom_product_data(product)
            custom_products.append(custom_product_data)
        return Response(response_data(True, custom_products))
Exemplo n.º 19
0
 def get(self, request, pk):
     user = self.get_object(pk)
     serializer = UserSerializer(user)
     return Response(response_data(True, serializer.data))
Exemplo n.º 20
0
 def get(self, request):
     qs = User.objects.all()
     serializer = UserSerializer(qs, many=True)
     return Response(response_data(True, serializer.data))
Exemplo n.º 21
0
 def delete(self, request, pk):
     comment = self.get_object(pk)
     comment.delete()
     return Response(response_data(True), status=status.HTTP_204_NO_CONTENT)
Exemplo n.º 22
0
 def get(self, request, pk):
     comment = self.get_object(pk)
     serializer = CommentSerializer(comment)
     return Response(response_data(True, serializer.data))
Exemplo n.º 23
0
 def get(self, request, comment_id):
     qs = CommentLike.objects.filter(comment_id=comment_id)
     serializer = CommentLikeSerializer(qs, many=True)
     return Response(response_data(True, serializer.data))
Exemplo n.º 24
0
    def get(self, request):
        """
        전체 은행 금융상품
        """
        top_fin_grp_no = request.query_params.get('top_fin_grp_no', '020000')
        page_no = request.query_params.get('page_no', 0)
        res = services.get_saving_products(top_fin_grp_no, page_no).json()

        products = []
        for page_no in range(int(res['result']['max_page_no'])):
            res = services.get_saving_products(top_fin_grp_no, page_no + 1).json()
            product_list = res['result']['baseList']
            option_list = res['result']['optionList']

            for product in product_list:
                product['options'] = []
                for option in option_list:
                    if product['fin_prdt_cd'] == option['fin_prdt_cd']:
                        product['options'].append(option)
                products.append(product)
        custom_products = []
        for product in products:
            custom_product_data = self.set_custom_product_data(product)
            custom_products.append(custom_product_data)
        """
        옵션 검색
        """
        fin_co_nos = request.query_params.getlist('fin_co_no', None)
        intr_rate_type = request.query_params.get('intr_rate_type', None)
        rsrv_type = request.query_params.get('rsrv_type', None)
        save_trm = request.query_params.get('save_trm', None)
        intr_rate = request.query_params.get('intr_rate', 0)
        intr_rate2 = request.query_params.get('intr_rate2', 0)
        join_deny = request.query_params.get('join_deny', None)

        # 금리 유형
        if intr_rate_type == 'S':
            param_rate_type = 'rate_type_s'
        else:
            param_rate_type = 'rate_type_m'

        # 적립 유형
        if rsrv_type == 'S':
            param_rsrv_type = 'rsrv_type_s'
        else:
            param_rsrv_type = 'rsrv_type_f'

        # 저축 기간
        if save_trm == '6':
            param_save_trm = 'months_6'
        elif save_trm == '12':
            param_save_trm = 'months_12'
        elif save_trm == '24':
            param_save_trm = 'months_24'
        else:
            param_save_trm = 'months_36'

        params = [
            ('bank_id', fin_co_nos),
            (param_rate_type, intr_rate_type),
            (param_rsrv_type, rsrv_type),
            (param_save_trm, save_trm),
            ('basic_rate_max', intr_rate),
            ('prime_rate_max', intr_rate2),
            ('join_deny', join_deny)
        ]

        try:
            for param in params:
                custom_products = self.product_filter(custom_products, param[0], param[1])
            return Response(response_data(True, custom_products))
        except Exception as e:
            # 검색 결과가 없을 때
            return Response(response_data(True, []))
Exemplo n.º 25
0
 def get(self, request, post_id):
     qs = PostLike.objects.filter(post_id=post_id)
     serializer = PostLikeSerializer(qs, many=True)
     return Response(response_data(True, serializer.data))