Exemple #1
0
 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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #5
0
    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)
Exemple #6
0
 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
Exemple #9
0
 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')
Exemple #11
0
    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
Exemple #19
0
    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
Exemple #21
0
    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)
Exemple #22
0
 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})
Exemple #23
0
    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
Exemple #25
0
 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
Exemple #26
0
 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
Exemple #27
0
 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
Exemple #28
0
    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
Exemple #30
0
 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