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)
Ejemplo n.º 2
0
    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}
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
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
Ejemplo n.º 6
0
    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')
Ejemplo n.º 7
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
Ejemplo n.º 8
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
Ejemplo n.º 9
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 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
Ejemplo n.º 11
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)
    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
Ejemplo n.º 13
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']
Ejemplo n.º 14
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
Ejemplo n.º 15
0
    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
Ejemplo n.º 16
0
    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
Ejemplo n.º 17
0
    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
Ejemplo n.º 18
0
    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
Ejemplo n.º 19
0
 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
Ejemplo n.º 22
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
Ejemplo n.º 23
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
Ejemplo n.º 24
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
Ejemplo n.º 25
0
 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
Ejemplo n.º 26
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_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
Ejemplo n.º 29
0
 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}