def get_shop_categories(self, body): url = api_settings.GET_LIST_SHOP_CATEGORIES self.logger.info( '========== Start get shop categories list ==========') success, status_code, status_message, data = RestFulClient.post( url=url, headers=self._get_headers(), loggers=self.logger, params=body, timeout=settings.GLOBAL_TIMEOUT) if data is None: data = {} data['shop_categories'] = [] else: page = data.get("page", {}) self.logger.info('Total element: {}'.format( page.get('total_elements', 0))) API_Logger.post_logging(loggers=self.logger, params=body, response=data['shop_categories'], status_code=status_code, is_getting_list=True) self.logger.info( '========== Finish get shop categories list ==========') return data
def post(self, request, *args, **kwargs): self.logger.info('========== Start create card provider ==========') provider_name = request.POST.get('provider_name') params = {} if not provider_name: return render(request, self.template_name) params['name'] = provider_name self.logger.info('Params: {}'.format(params)) success, status_code, status_message, data = RestFulClient.post(url=self.url, headers=self._get_headers(), loggers=self.logger, timeout=settings.GLOBAL_TIMEOUT, params=params) self.logger.info('========== Finish create card provider ==========') if success: messages.add_message( request, messages.SUCCESS, 'Add provider successfully' ) return redirect('card_provider:card_provider') else: if status_code in ['access_token_expire', 'authentication_fail', 'invalid_access_token', 'authentication_fail']: self.logger.info( "{} for {} username".format(status_message, self.request.user)) raise InvalidAccessToken(status_message) messages.add_message( request, messages.ERROR, status_message ) return render(request, self.template_name)
def _list_categories(self): self.logger.info('========== Start get category list ==========') api_path = api_settings.GET_CATEGORIES body = { "paging": False } success, status_code, status_message, data = RestFulClient.post(url=api_path, headers=self._get_headers(), loggers=self.logger, params=body, timeout=settings.GLOBAL_TIMEOUT) self.logger.info("Params: {} ".format(body)) if success: data = data['product_categories'] self.logger.info("Response_content_count:{}".format(len(data))) self.logger.info('========== Finish get category list ==========') return data elif (status_code == "access_token_expire") or (status_code == 'authentication_fail') or ( status_code == 'invalid_access_token'): self.logger.info("{}".format(data)) raise InvalidAccessToken(data) else: return None
def get(self, request, *args, **kwargs): self.logger.info('========== Start get agent detail ==========') api_path = api_settings.AGENT_DETAIL_PATH id = kwargs['id'] params = {'id': id} success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=params) self.logger.info("Params: {} ".format(params)) if success: self.logger.info("{}".format(data)) self.logger.info('========== Finish get agent detail ==========') if len(data['agents']) == 0: return JsonResponse({'wrong_agent': True}) else: return JsonResponse(data['agents'][0]) elif (status_code == "access_token_expire") or ( status_code == 'authentication_fail') or (status_code == 'invalid_access_token'): self.logger.info("{}".format(data)) return JsonResponse({"invalid_access_token": True}) else: return JsonResponse({'wrong_agent': True})
def _add_agent_sof_cash(self, params): is_success, status_code, status_message, data = RestFulClient.post(url=CREATE_AGENT_BALANCE_URL, headers=self._get_headers(), loggers=self.logger, params=params, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) if is_success: messages.add_message( self.request, messages.SUCCESS, 'New currency added as cash SOF' ) elif status_message == 'timeout': message = "Transaction Timeout : Cannot add SOF Cash, please try again or contact technical support" self._add_error_message(message) elif status_message == 'Invalid agent information' and status_code == 'invalid_request': self._add_error_message("Cannot add SOF Cash - '" + status_message + "'") elif status_message == 'Invalid SOF information' and status_code == 'invalid_request': self._add_error_message("Cannot add SOF Cash - '" + status_message + "'") else: self._add_error_message("Cannot add SOF Cash - '" + status_message + "'") return is_success
def _add_agent_smart_card(self, agent_id, params): url = ADD_AGENT_SMART_CARD_PATH.format(agent_id) is_success, status_code, status_message, data = RestFulClient.post( url=url, headers=self._get_headers(), loggers=self.logger, params=params, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) if is_success: messages.add_message(self.request, messages.SUCCESS, 'Add agent smartcard successfully') elif status_message == 'timeout': messages.add_message( self.request, messages.ERROR, "Can not add SmartCard for this user, please try again or contact technical support" ) elif status_message == "Invalid agent smartcard": messages.add_message(self.request, messages.ERROR, status_message) return is_success
def get_products(self, category_id): self.logger.info('========== Start get list product ==========') api_path = api_settings.GET_PRODUCTS body = { "product_category_id": category_id, "paging": False, "is_deleted": False } success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=body, timeout=settings.GLOBAL_TIMEOUT, ) data = data or {} API_Logger.post_logging(loggers=self.logger, params=body, status_code=status_code, is_getting_list=True) self.logger.info('========== Finish get list product ==========') return data, success, status_message
def get_service_group_list(self, body): is_success, status_code, status_message, data = RestFulClient.post(url=api_settings.SERVICE_GROUP_LIST_PATH, headers=self._get_headers(), loggers=self.logger, params=body) is_permission_detail = check_permissions_by_user(self.request.user, 'CAN_VIEW_SERVICE_GROUP') is_permission_edit = check_permissions_by_user(self.request.user, 'CAN_EDIT_SERVICE_GROUP') is_permission_delete = check_permissions_by_user(self.request.user, 'CAN_DELETE_SERVICE_GROUP') if is_success: self.logger.info('Finished get service group list') for i in data.get('service_groups'): i['is_permission_detail'] = is_permission_detail i['is_permission_edit'] = is_permission_edit i['is_permission_delete'] = is_permission_delete else: if status_code == "Timeout": self.logger.error('Search service group list request timeout') status_message = 'Search timeout, please try again or contact technical support' else: self.logger.error('Search service group list request failed') status_message = 'Search failed, please try again or contact support' messages.add_message( self.request, messages.ERROR, status_message ) API_Logger.get_logging(loggers=self.logger, response=data, status_code=status_code) return data, is_success
def post(self, request, *args, **kwargs): shop_id = int(kwargs['shop_id']) url = api_settings.ADD_AGENT_DEVICE self.logger.info('========== Start add device ==========') channel_id = request.POST["channel_id"] channel_type = get_channel_detail(self, channel_id) params = { "channel_type_id": channel_type['channel_type_id'], "channel_id": channel_id, "shop_id": shop_id } is_success, status_code, status_message, data = RestFulClient.post(url=url, headers=self._get_headers(), params=params, loggers=self.logger) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) self.logger.info('========== Finish add shop ==========') if is_success: messages.success(request, 'Add device successfully') else: messages.success(request, 'Add device successfully') return redirect('shop:shop_edit', id=shop_id)
def get_category_detail(self, category_id): self.logger.info('========== Start get category detail ==========') api_path = api_settings.GET_CATEGORIES body = {"id": category_id} success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=body, timeout=settings.GLOBAL_TIMEOUT) data = data or {} if status_code not in [ "access_token_expire", 'authentication_fail', 'invalid_access_token' ]: API_Logger.post_logging(loggers=self.logger, params=body, status_code=status_code, is_getting_list=False, response=data) self.logger.info('========== Finish get category detail ==========') return data, success, status_message, status_code
def get_category_name(self, category_id): self.logger.info('========== Start getting category details ==========') url = GET_CATEGORIES params = { 'id': category_id, 'paging': False, } is_success, status_code, status_message, data= RestFulClient.post(url=url, headers=self._get_headers(), loggers=self.logger, params=params, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) self.logger.info('========== Finish getting category details ==========') if not is_success: messages.add_message( self.request, messages.ERROR, status_message ) return str(category_id) return data['product_categories'][0]['name']
def get_agent_type(self, product_id): self.logger.info('========== Start getting agent type id ==========') url = PRODUCT_AGENT_TYPE params = { 'product_id': product_id, } is_success, status_code, status_message, data = RestFulClient.post(url=url, headers=self._get_headers(), loggers=self.logger, params=params, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) self.logger.info('========== Finish getting agent type id ==========') if not is_success: messages.add_message( self.request, messages.ERROR, status_message ) return [] relations = data['relations'] agent_types = [] for item in relations: agent_type_id = item['agent_type_id'] agent_type_name = self.get_agent_type_name(agent_type_id) agent_types.append(agent_type_name) return agent_types
def post(self, request, *args, **kwargs): self.logger.info('========== Start get card provider list ==========') context = super(CardProviderList, self).get_context_data(**kwargs) provider_name = request.POST.get('provider_name') params = {} if provider_name: params['name'] = provider_name self.logger.info('Params: {}'.format(params)) is_success, status_code, status_message, data = RestFulClient.post( url=self.url, headers=self._get_headers(), loggers=self.logger, timeout=settings.GLOBAL_TIMEOUT, params=params) if not is_success: if status_code in [ "access_token_expire", 'authentication_fail', 'invalid_access_token' ]: self.logger.info("{}".format(status_message)) raise InvalidAccessToken(status_message) self.logger.info('Response_content_count: {}'.format(len(data))) is_permission_detail = check_permissions_by_user( self.request.user, 'SYS_VIEW_DETAIL_PROVIDER') is_permission_edit = check_permissions_by_user(self.request.user, 'SYS_EDIT_PROVIDER') for i in data: i['is_permission_detail'] = is_permission_detail i['is_permission_edit'] = is_permission_edit context.update({'data': data, 'provider_name': provider_name}) self.logger.info('========== Finish get card provider list ==========') return render(request, self.template_name, context)
def get_card_types_list(self): is_success, status_code, status_message, data = RestFulClient.post(url=SEARCH_CARD_TYPE, headers=self._get_headers(), loggers=self.logger, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=self.logger, response=data, status_code=status_code, is_getting_list=True) return data
def get_rule_config(self, identity_type_id): url = api_settings.PASSWORD_CENTER_RULE_CONFIG_URL body = {'identity_type_id': identity_type_id} is_success, status_code, status_message, data = RestFulClient.post( url=url, headers=self._get_headers(), loggers=self.logger, params=body) data = data or {} return data
def add_shop_type(self, params): success, status_code, message, data = RestFulClient.post( url=api_settings.SHOP_TYPE_CREATE, params=params, loggers=self.logger, headers=self._get_headers()) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) return success, status_code, message, data
def get_shop_type_detail(self, id): self.logger.info('========== Start getting shop type detail ==========') params = {'id': id} success, status_code, message, data = RestFulClient.post( url=api_settings.GET_SHOP_TYPE_DETAIL, params=params, loggers=self.logger, headers=self._get_headers() ) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) self.logger.info('========== Finish getting shop type detail ==========') return success, status_code, message, data.get('shop_types')
def get_shop_category_detail(self, id): params = {'id': id} success, status_code, message, data = RestFulClient.post( url=api_settings.GET_LIST_SHOP_CATEGORIES, params=params, loggers=self.logger, headers=self._get_headers()) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) return success, status_code, message, data.get('shop_categories')
def _get_agents(self, params): self.logger.info('========== Start searching agent ==========') api_path = SEARCH_AGENT success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=params) data = data or {} API_Logger.post_logging(loggers=self.logger, params=params, response=data.get('agents', []), status_code=status_code, is_getting_list=True) if success: has_permission_view = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT') has_permission_edit = check_permissions_by_user( self.request.user, 'CAN_EDIT_AGENT_DETAILS') has_permission_delete = check_permissions_by_user( self.request.user, 'CAN_DELETE_AGENT') has_permission_identity = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT_IDENTITIES') has_permission_smartcard = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT_SMARTCARD') has_permission_sofcash = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT_SOFCASH') has_permission_sofbank = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT_SOFBANK') has_permission_suspend = check_permissions_by_user( self.request.user, 'CAN_SUSPEND_AGENTS') has_permission_individual_wallet = check_permissions_by_user( self.request.user, 'CAN_VIEW_AGENT_INDIVIDUAL_WALLET') has_permission_management = self.check_membership( ['CAN_VIEW_PROFILE_MANAGEMENT']) agents = data.get('agents', []) for i in agents: i['has_permission_view'] = has_permission_view i['has_permission_edit'] = has_permission_edit i['has_permission_delete'] = has_permission_delete i['has_permission_identity'] = has_permission_identity i['has_permission_individual_wallet'] = has_permission_individual_wallet i['has_permission_smartcard'] = has_permission_smartcard i['has_permission_sofcash'] = has_permission_sofcash i['has_permission_sofbank'] = has_permission_sofbank i['has_permission_suspend'] = has_permission_suspend i['has_permission_management'] = has_permission_management self.logger.info('========== Finished searching agent ==========') return data, success, status_message
def add_product_agent_relation(self, body_request): url = api_settings.CREATE_PRODUCT_AGENT_RELATION is_success, status_code, status_message, data = RestFulClient.post( url, headers=self._get_headers(), params=body_request, loggers=self.logger) API_Logger.post_logging(loggers=self.logger, params=body_request, response=data, status_code=status_code) return is_success
def search_user_list(self, body): is_success, status_code, status_message, data = RestFulClient.post( url=GET_USER_BY_PHONE_URL, headers=self._get_headers(), loggers=self.logger, params=body) API_Logger.post_logging(loggers=self.logger, response=data, status_code=status_code, is_getting_list=False) return is_success, status_code, status_message, data
def get_relation_id_of_product(self, body_request): is_success, status_code, status_message, data = RestFulClient.post( url=api_settings.GET_PRODUCT_AGENT_RELATION, headers=self._get_headers(), loggers=self.logger, params=body_request) API_Logger.post_logging(loggers=self.logger, params=body_request, response=data, status_code=status_code, is_getting_list=False) if data['relations']: relation = data['relations'][0] return relation['id']
def get_cash_sof_list(self, body,opening_page_index): body['paging'] = True body['page_index'] = int(opening_page_index) success, status_code, status_message, data = RestFulClient.post(url=CASH_SOFS_URL, headers=self._get_headers(), params=body, loggers=self.logger) data = data or {} API_Logger.post_logging( loggers=self.logger, params=body, response=data.get('cash_sofs', []), status_code=status_code, is_getting_list=True ) return data, success
def _add_agent_identity(self, agent_id, body): url = AGENT_ADD_IDENTITY_PATH.format(agent_id=agent_id) # url = 'http://localhost:4892/timeout' success, status_code, message, data = RestFulClient.post( url=url, headers=self._get_headers(), loggers=self.logger, params=body) API_Logger.post_logging(loggers=self.logger, params=body, response=data, status_code=status_code) return success, message
def _get_relationships(self, params): api_path = SEARCH_RELATIONSHIP success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=params) data = data or {} API_Logger.post_logging(loggers=self.logger, params=params, response=data.get('relationships', []), status_code=status_code, is_getting_list=True) return data, success, status_message
def _get_identity_type_list(self): api_path = api_settings.GET_IDENTITY_TYPES body = {"is_deleted": False} success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=body) data = data or {} API_Logger.post_logging(loggers=self.logger, params=body, response=data.get('identity_types', []), status_code=status_code, is_getting_list=True) return data.get('identity_types', [])
def get_agent_detail(self, id): api_path = api_settings.AGENT_DETAIL_PATH params = {'id': id} success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=params) if success: return data['agents'][0] elif (status_code == "access_token_expire") or ( status_code == 'authentication_fail') or (status_code == 'invalid_access_token'): raise InvalidAccessToken(status_message)
def _create_card_design(self, url, params): is_success, status_code, status_message, data = RestFulClient.post( url=url, loggers=self.logger, headers=self._get_headers(), params=params) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code) if not is_success: messages.add_message(self.request, messages.ERROR, status_message) data = {} return is_success, data
def _get_agent_summary(self): url = api_settings.GET_AGENT_SUMMARY # url = 'http://localhost:7357/get_agent_summary' is_success, status_code, status_message, data = RestFulClient.post( url=url, headers=self._get_headers(), loggers=self.logger, params={}) API_Logger.post_logging(loggers=self.logger, params={}, response=data, status_code=status_code, is_getting_list=False) if not is_success: data = {} return data, is_success
def _create_agent_balance(self, request, agent_id): currency = request.POST.get('currency') # sof_type = "cash" # TODO: Hard code for Sof_Type body = { 'currency': currency, 'user_id': agent_id, 'user_type_id': 2 } #TODO: Hard code for agent_type api_path = api_settings.CREATE_AGENT_BALANCE_URL is_success, status_code, status_message, data = RestFulClient.post( url=api_path, headers=self._get_headers(), loggers=self.logger, params=body) return data, is_success