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 _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 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 _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_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 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_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 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(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 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(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 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 get_agent_type(self, product_id): self.logger.info( '========== Start get product - agent types relations ==========') params = {'product_id': product_id} is_success, status_code, status_message, data = RestFulClient.post( url=api_settings.PRODUCT_AGENT_TYPE, headers=self._get_headers(), loggers=self.logger, params=params) relations = data['relations'] API_Logger.post_logging(loggers=self.logger, params=params, response=relations, status_code=status_code, is_getting_list=True) self.logger.info( '========== Finished get product - agent types relations ==========' ) agent_types = [] for item in relations: agent_type_id = item['agent_type_id'] agent_types.append(agent_type_id) return agent_types
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_context_data(self, **kwargs): product_id = self.kwargs['product_id'] self.logger.info('========== Start get product details ==========') params = {"id": product_id, 'paging': False} is_success, status_code, status_message, data = RestFulClient.post( url=api_settings.GET_PRODUCT_DETAIL, headers=self._get_headers(), loggers=self.logger, params=params) API_Logger.post_logging(loggers=self.logger, params=params, response=data, status_code=status_code, is_getting_list=False) self.logger.info('========== Finished get product details ==========') product = data['products'][0] if not product['denomination']: product['denomination'] = [''] product['product_category_id'] = product['product_category']['id'] context = {"product": product} context['cbo_agent_types'] = self.get_agent_type(product_id) self.set_ui_list(context) return context
def get_context_data(self, **kwargs): self.logger.info('========== Start get bank detail ==========') context = super(EditView, self).get_context_data(**kwargs) bank_id = context['bank_id'] params = {'id': bank_id} is_success, status_code, status_message, bank_detail = BanksClient.get_bank_details( params=params, headers=self._get_headers(), logger=self.logger) API_Logger.post_logging(loggers=self.logger, params=params, response=bank_detail, status_code=status_code) self.logger.info('========== Finished get bank detail ==========') self.logger.info('========== Start get currency list ==========') is_success_currencies, status_code_currencies, currencies = BanksClient.get_currencies_list( header=self._get_headers(), logger=self.logger) API_Logger.get_logging(loggers=self.logger, response=currencies, status_code=status_code_currencies) if not is_success: messages.error(self.request, status_message) if not is_success_currencies: messages.error(self.request, currencies) currencies = [] context = {'bank': bank_detail, 'currencies': currencies} self.logger.info('========== Finished get currency list ==========') return context
def post(self, request, *args, **kwargs): self.logger.info('========== Start update shop category ==========') shop_category_id = kwargs['id'] form = request.POST params = { 'name' : form['name'], 'description' : form['description'] } url = api_settings.EDIT_SHOP_CATEGORIES.format(shop_category_id=shop_category_id) is_success, status_code, status_message, data = RestFulClient.put(url, self._get_headers(), self.logger, params) API_Logger.put_logging(loggers=self.logger, params=params, response=data, status_code=status_code) if is_success: messages.add_message( request, messages.SUCCESS, 'Updated data successfully' ) self.logger.info('========== Finish update shop category ==========') return redirect('shop_category:shop_category_list') elif (status_code == "access_token_expire") or (status_code == 'authentication_fail') or ( status_code == 'invalid_access_token'): self.logger.info("{} for {} username".format(status_message, self.request.user)) raise InvalidAccessToken(status_message)
def _upload_via_api(request, file, function_id, logger): myHeader = get_auth_header(request.user) # myHeader["content-type"] = None myHeader["content-type"] = None myHeader["Content-Type"] = None is_success, status_code, status_message, data = RestFulClient.upload( url=UPLOAD_FILE, files={'file_data': file}, headers=myHeader, loggers=logger, params={'function_id': function_id}, timeout=settings.GLOBAL_TIMEOUT) API_Logger.post_logging(loggers=logger, params={ 'file_data': file._name, 'function_id': function_id }, response=data, status_code=status_code, is_getting_list=True) if not is_success: data = [] return data
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 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_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 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_campaign_detail(self, campaign_id): url = GET_CAMPAIGNS_DETAIL.format(bak_rule_id=campaign_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_campaign_amount_limit(self, campaign_id): url = GET_RULE_AMOUNT_LIMIT.format(rule_id=campaign_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_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_choices_types(self): url = settings.DOMAIN_NAMES + SOF_TYPES_URL 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 {'sof_types': data}