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)
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)
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)
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))
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))
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, []))
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)
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())
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))
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))
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))
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())
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))
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))
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))
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))
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))
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))
def get(self, request, pk): user = self.get_object(pk) serializer = UserSerializer(user) return Response(response_data(True, serializer.data))
def get(self, request): qs = User.objects.all() serializer = UserSerializer(qs, many=True) return Response(response_data(True, serializer.data))
def delete(self, request, pk): comment = self.get_object(pk) comment.delete() return Response(response_data(True), status=status.HTTP_204_NO_CONTENT)
def get(self, request, pk): comment = self.get_object(pk) serializer = CommentSerializer(comment) return Response(response_data(True, serializer.data))
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))
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, []))
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))