def get_services_list(self): url = SERVICE_LIST_URL success, status_code, data = RestFulClient.get(url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, response=data, status_code=status_code) return data
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 get(self, request, *args, **kwargs): context = super(ActionDelete, self).get_context_data(**kwargs) campaign_id = context['campaign_id'] mechanic_id = context['mechanic_id'] action_id = context['action_id'] url = api_settings.DELETE_ACTION.format(rule_id=campaign_id, mechanic_id=mechanic_id, action_id=action_id) self.logger.info('========== Start Deleting Action ==========') is_success, status_code, status_message = RestFulClient.delete( url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, params={}, response={}, status_code=status_code) if is_success: self.logger.info('========== Finish Deleting Action ==========') messages.success(request, 'Delete successfully') return redirect('campaign:mechanic_detail', campaign_id=campaign_id, mechanic_id=mechanic_id) else: self.logger.info('========== Failed Deleting Action ==========') self.logger.info(status_message) messages.error(request, status_message) return redirect('campaign:mechanic_detail', campaign_id=campaign_id, mechanic_id=mechanic_id)
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 get(self, request, *args, **kwargs): context = super(SmartCardDelete, self).get_context_data(**kwargs) self.logger.info('========== Start deleting agent smartcard ==========') agent_id = context.get('agent_id') smartcard_id = context.get('smartcard_id') url = DELETE_AGENT_SMART_CARD_PATH.format(agent_id, smartcard_id) success, status_code, message = RestFulClient.delete( url=url, headers=self._get_headers(), loggers=self.logger, ) API_Logger.delete_logging(loggers=self.logger, status_code=status_code) self.logger.info('========== Finished deleting agent smartcard ==========') if success: messages.add_message( self.request, messages.SUCCESS, 'Delete agent smartcard successfully' ) elif status_code in ["access_token_expire", 'authentication_fail', 'invalid_access_token']: self.logger.info("{} for {} username".format(message, self.request.user)) raise InvalidAccessToken(message) else: messages.add_message( self.request, messages.ERROR, "Got error and can not delete smartcard" ) return redirect('agents:agent-smartcard', agent_id=agent_id)
def delete_shop_category(self, id): success, status_code, message = RestFulClient.delete( url=api_settings.DELETE_SHOP_CATEGORY.format(shop_category_id=id), loggers=self.logger, headers=self._get_headers()) API_Logger.delete_logging(loggers=self.logger, status_code=status_code) return success, status_code, message
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_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_currencies_list(self): self.logger.info('========== Start get currency list ==========') url = GET_ALL_CURRENCY_URL is_success, status_code, data = RestFulClient.get( url=url, headers=self._get_headers(), loggers=self.logger) if is_success: if data is None or data == "": data = [] else: if status_code in [ "access_token_expire", 'authentication_fail', 'invalid_access_token' ]: self.logger.info("{}".format(data)) raise InvalidAccessToken(data) data = [] self.logger.info('Response_content_count: {}'.format(len(data))) self.logger.info('========== Finish get currency list ==========') if len(data) > 0: value = data.get('value', None) if value is not None: currency_list = [i.split('|') for i in value.split(',')] return currency_list else: return [] else: return []
def post(self, request, *args, **kwargs): self.logger.info('========== Start update provider detail ==========') context = super(UpdateView, self).get_context_data(**kwargs) provider_id = context['provider_id'] url = UPDATE_CARED_PROVIDER.format(provider_id=provider_id) provider_name = request.POST.get('provider_name') params = { 'name': provider_name } self.logger.info('Params: {}'.format(params)) is_success, status_code, status_message, data = RestFulClient.put(url=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('========== Finish update provider detail ==========') messages.add_message(request, messages.SUCCESS, 'Update provider successfully') return redirect('card_provider:card_provider')
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 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 post(self, request, *args, **kwargs): self.logger.info('========== Start Deleting Agent ==========') context = super(AgentDelete, self).get_context_data(**kwargs) agent_id = context['agent_id'] api_path = api_settings.AGENT_DELETE_URL.format(agent_id=agent_id) success, status_code, status_message = RestFulClient.delete( url=api_path, headers=self._get_headers(), loggers=self.logger) API_Logger.delete_logging(loggers=self.logger, status_code=status_code) self.logger.info('========== Finish Deleting Agent ==========') if success: request.session['agent_delete_msg'] = 'Deleted data successfully' previous_page = request.POST.get('previous_page') if previous_page: # Forward update case to detail after execute delete action. if "update" in previous_page: previous_page = previous_page.replace('update/', '', 1) return HttpResponseRedirect(previous_page) else: request.session[ 'agent_message'] = 'Delete agent fail. Please try again or contact support.' request.session['agent_redirect_from_delete'] = True return redirect('agents:agent-list')
def get(self, request, *args, **kwargs): context = super(MechanicDelete, self).get_context_data(**kwargs) campaign_id = context['campaign_id'] mechanic_id = context['mechanic_id'] url = api_settings.DELETE_MECHANIC_URL.format(campaign_id=campaign_id, mechanic_id=mechanic_id) self.logger.info('========== Start Deleting Mechanic ==========') is_success, status_code, status_message = RestFulClient.delete( url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, params={}, response={}, status_code=status_code) if is_success: self.logger.info( '========== Finish Deleting Mechanic ==========') messages.success(request, 'Mechanic Deleted') return redirect('campaign:campaign_detail', campaign_id=campaign_id) else: self.logger.info( '========== Finish Deleting Mechanic ==========') return redirect('campaign:campaign_detail', campaign_id=campaign_id)
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_card_design_detail(self, provider_id, card_id): self.logger.info( '========== Start getting card design detail ==========') is_permission_edit = check_permissions_by_user(self.request.user, 'SYS_EDIT_CARD_DESIGN') url = api_settings.CARD_DESIGN_DETAIL.format(provider_id=provider_id, card_id=card_id) is_success, status_code, data = RestFulClient.get( url=url, headers=self._get_headers(), loggers=self.logger) API_Logger.get_logging(loggers=self.logger, params={}, response=data, status_code=status_code) if is_success: if data is None or data == "": data = {} else: messages.add_message(self.request, messages.ERROR, "Something went wrong") data = {} self.logger.info( '========== Finish getting card design detail ==========') return {"body": data, "is_permission_edit": is_permission_edit}
def get(self, request, *args, **kwargs): self.logger.info('========== Start getting provider detail ==========') context = super(DetailView, self).get_context_data(**kwargs) provider_id = context['provider_id'] url = GET_DETAIL_PROVIDER.format(provider_id=provider_id) is_success, status_code, data = RestFulClient.get( url=url, headers=self._get_headers(), loggers=self.logger) if is_success: if data is None or data == "": data = [] else: if status_code in [ "access_token_expire", 'authentication_fail', 'invalid_access_token' ]: self.logger.info("{}".format(data)) raise InvalidAccessToken(data) data = [] messages.add_message(self.request, messages.ERROR, "Something went wrong") self.logger.info('Response_content: {}'.format(data)) is_permission_edit = check_permissions_by_user(self.request.user, 'SYS_EDIT_PROVIDER') context['is_permission_edit'] = is_permission_edit context['data'] = data self.logger.info( '========== Finish getting provider detail ==========') return render(request, self.template_name, context)
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 _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 _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 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(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 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 delete_shop_type(self, id): success, status_code, message = RestFulClient.delete( url=api_settings.SHOP_TYPE_DELETE.format(shop_type_id=id), loggers=self.logger, headers=self._get_headers() ) API_Logger.delete_logging(loggers=self.logger, status_code=status_code) return success, status_code, message
def get_campaign_amount_limit(self, campaign_id): url = settings.DOMAIN_NAMES + GET_RULE_AMOUNT_LIMIT.format(rule_id=campaign_id) self.logger.info('========== Start get campaign amount limit ==========') success, status_code, data = RestFulClient.get(url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, params={}, response=data, status_code=status_code) self.logger.info('========== Finish get campaign amount limit ==========') return data
def get_mechanic_list(self, campaign_id): url = settings.DOMAIN_NAMES + GET_MECHANIC_LIST.format(bak_rule_id=campaign_id) self.logger.info('========== Start get mechanic list ==========') success, status_code, data = RestFulClient.get(url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, params={}, response=data, status_code=status_code) self.logger.info('========== Finish get mechanic list ==========') return data
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 delete_product_agent_relation(self, relation_id): url = api_settings.DELETE_PRODUCT_AGENT_RELATION.format( relation_id=relation_id) is_success, status_code, data = RestFulClient.delete( url, headers=self._get_headers(), params={}, loggers=self.logger) self.logger.info("Params: {} ".format({})) API_Logger.delete_logging(loggers=self.logger, status_code=status_code) return is_success
def get_rule_details(self, rule_id): url = settings.DOMAIN_NAMES + GET_RULE_DETAIL.format(rule_id=rule_id) success, status_code, data = RestFulClient.get( url=url, loggers=self.logger, headers=self._get_headers()) API_Logger.get_logging(loggers=self.logger, params={}, response=data, status_code=status_code) 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