def post(self, request, *args, **kwargs):
        self.logger.info('========== Start approve voucher refunds ==========')
        data = request.POST.copy()
        refundRequestIds = json.loads(data.get("refundRequestIds"))
        reason = data.get("reason")
        url = api_settings.VOUCHER_REFUND_APPROVE_PATH

        data = {"refund_request_ids": refundRequestIds, "reason": reason}

        is_success, status_code, status_message, data = RestFulClient.post(
            url, headers=self._get_headers(), loggers=self.logger, params=data)

        self.logger.info(
            '========== Finish approve voucher refunds ==========')
        if is_success:
            messages.add_message(self.request, messages.SUCCESS,
                                 "System is processing, please wait a while")

            return JsonResponse({"is_success": is_success})
        else:
            return JsonResponse({
                "is_success": is_success,
                "status_code": status_code,
                "status_message": status_message,
                "data": data
            })
Ejemplo n.º 2
0
 def get_context_data(self, **kwargs):
     self.logger.info('========== Start get shop type detail ==========')
     context = super(EditView, self).get_context_data(**kwargs)
     shop_type_id = context['shop_type_id']
     self.logger.info(
         "Searching shop type with [{}] shop type id".format(shop_type_id))
     params = {'id': shop_type_id}
     is_success, status_code, status_message, data = RestFulClient.post(
         url=api_settings.GET_LIST_SHOP_TYPE,
         headers=self._get_headers(),
         loggers=self.logger,
         params=params)
     self.logger.info("Params: {} ".format(params))
     if is_success:
         data = data['shop_types'][0]
         self.logger.info('Response_content: {}'.format(data))
         context['form'] = data
         self.logger.info(
             '========== Finish get shop type detail ==========')
         return context
     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)
Ejemplo n.º 3
0
    def post(self, request, *args, **kwargs):
        form = request.POST
        context = {'form': form}

        list_shop_type = get_all_shop_type(self)
        context['list_shop_type'] = list_shop_type

        list_shop_category = get_all_shop_category(self)
        context['list_shop_category'] = list_shop_category

        self.logger.info('========== Start Adding new shop ==========')

        shop = convert_form_to_shop(form)
        success, status_code, message, data = RestFulClient.post(
            url=api_settings.CREATE_SHOP,
            params=shop,
            loggers=self.logger,
            headers=self._get_headers())
        self.logger.info("Params: {} ".format(shop))
        if success:
            self.logger.info('========== Finish Adding new shop ==========')
            messages.add_message(request, messages.SUCCESS,
                                 'Added data successfully')
            return redirect(get_back_url(request, reverse('shop:shop_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)
        else:
            return render(request, self.template_name, context)
Ejemplo n.º 4
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.º 5
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.º 6
0
    def get_context_data(self, **kwargs):
        self.logger.info(
            '========== Start showing Blocked Devices page ==========')
        context = super(BlockedDevicesList, self).get_context_data(**kwargs)
        param = {}
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.SEARCH_TICKET,
            headers=self._get_headers(),
            loggers=self.logger,
            params=param)

        if is_success:
            self.logger.info("Response_content_count:{}".format(len(data)))
            context['devices'] = [i for i in data if i['is_deleted'] == False]
            context['can_unblock_device'] = self.check_membership(
                ['CAN_DELETE_FRAUD_TICKET'])
            device_count = 0
            for ticket in context['devices']:
                if ticket['action'] == 'register customer':
                    device_count += 1
            context['total_devices'] = device_count
        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)
        self.logger.info(
            '========== Finished showing Blocked Devices page ==========')
        return context
Ejemplo n.º 7
0
    def get_context_data(self, **kwargs):
        context = super(RoleList, self).get_context_data(**kwargs)
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.ROLE_LIST,
            headers=self._get_headers(),
            loggers=self.logger)
        permissions = {}
        permissions['is_permission_detail'] = check_permissions_by_user(
            self.request.user, 'CAN_VIEW_ROLE')
        permissions['is_permission_edit'] = check_permissions_by_user(
            self.request.user, 'CAN_EDIT_ROLE')
        permissions['is_permission_delete'] = check_permissions_by_user(
            self.request.user, 'CAN_DELETE_ROLE')
        permissions['is_permission_manage'] = check_permissions_by_user(
            self.request.user, 'CAN_MANAGE_PERM_FOR_ROLE')

        if is_success:
            self.logger.info("Roles have [{}] role in database".format(
                len(data)))
            context['roles'] = data
            context['permissions'] = permissions
        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)
        return context
Ejemplo n.º 8
0
    def search_system_user(cls,
                           headers=None,
                           logger=None,
                           username=None,
                           email=None,
                           user_id=None,
                           status=None,
                           paging=None,
                           page_index=None):
        params = {}

        if username is not '' and username is not None:
            params['username'] = username
        if email is not '' and email is not None:
            params['email'] = email
        if user_id is not '' and user_id is not None:
            params['user_id'] = user_id
        if status is not None:
            if status == 'Active':
                params['is_suspended'] = False
            if status == 'Suspended':
                params['is_suspended'] = True
        if paging is not '' and paging is not None:
            params['paging'] = paging
        if page_index and page_index.isdigit():
            params['page_index'] = int(page_index)

        is_success, status_code, status_message, data = RestFulClient.post(
            api_settings.SEARCH_SYSTEM_USER, headers, logger, params)
        return is_success, status_code, status_message, data
Ejemplo n.º 9
0
    def _add_user_role(self, role_id, user_id):
        url = api_settings.USER_ROLE_PATH.format(role_id=role_id)
        params = {'user_id': int(user_id)}

        is_success_add, status_code_add, status_message_add, data = RestFulClient.post(
            url, self._get_headers(), self.logger, params=params)
        return is_success_add
    def _get_card_sof_transaction(self, body):
        success, status_code, status_message, data = RestFulClient.post(url=self.search_card_transaction,
                                                                        headers=self._get_headers(),
                                                                        loggers=self.logger,
                                                                        params=body)
        data = data or {}
        API_Logger.post_logging(loggers=self.logger, params=body, response=data.get('card_sof_transactions', []),
                                status_code=status_code, is_getting_list=True)

        return data, success, status_message
Ejemplo n.º 11
0
    def set_ui_list(self, context):
        self.logger.info('========== Start get category list ==========')
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.GET_CATEGORIES,
            headers=self._get_headers(),
            loggers=self.logger,
            params={})
        categories = data['product_categories']
        categories = [x for x in categories if not x['is_deleted']]
        context['categories'] = categories
        API_Logger.post_logging(loggers=self.logger,
                                params={},
                                response=categories,
                                status_code=status_code,
                                is_getting_list=True)
        self.logger.info('========== Finished get category list ==========')

        self.logger.info('========== Start get service list ==========')
        is_success, status_code, data = RestFulClient.get(
            url=api_settings.SERVICE_LIST_URL,
            headers=self._get_headers(),
            loggers=self.logger)
        API_Logger.get_logging(loggers=self.logger,
                               params={},
                               response=data,
                               status_code=status_code)
        context['services'] = data
        self.logger.info('========== Finished get service list ==========')

        self.logger.info('========== Start get agent type list ==========')
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.AGENT_TYPES_LIST_URL,
            headers=self._get_headers(),
            loggers=self.logger,
            params={})
        API_Logger.post_logging(loggers=self.logger,
                                params={},
                                response=data,
                                status_code=status_code,
                                is_getting_list=True)
        context['agent_types'] = data
        self.logger.info('========== Finished get agent type list ==========')
    def create_bank(cls, headers, params, logger):
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.CREATE_BANK_PROFILE_PATH, headers=headers, loggers=logger, params=params
        )

        if not is_success:
            if status_code in ["access_token_expire", 'authentication_fail', 'invalid_access_token']:
                logger.info("{}".format(status_message))
                raise InvalidAccessToken(status_message)

        return is_success, status_code, status_message, data
Ejemplo n.º 13
0
    def create_fraud_ticket(self, params):
        success, status_code, message, data = RestFulClient.post(
            url=CREATE_FRAUD_TICKET,
            headers=self._get_headers(),
            loggers=self.logger,
            params=params)

        API_Logger.post_logging(loggers=self.logger, params=params,
                                response=data, status_code=status_code)

        return success, data, message
Ejemplo n.º 14
0
    def get_roles(self):
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.ROLE_LIST,
            headers=self._get_headers(),
            loggers=self.logger)

        self.logger.info("Have {} roles in database".format(len(data)))

        if is_success:
            return data
        else:
            return []
 def _get_bank_sof_list(self, body):
     success, status_code, status_message, data = RestFulClient.post(
         url=self.searchcustomerbanksofurl,
         headers=self._get_headers(),
         loggers=self.logger,
         params=body)
     data = data or {}
     API_Logger.post_logging(loggers=self.logger,
                             params=body,
                             response=data.get('bank_sofs', []),
                             status_code=status_code,
                             is_getting_list=True)
     return data, success, status_message
Ejemplo n.º 16
0
 def add_spi(self, service_command_id, params):
     self.logger.info(
         "========== Start adding SPI URL by service command ==========")
     path = api_settings.SPI_ADD_PATH.format(service_command_id)
     success, status_code, message, data = RestFulClient.post(
         url=path,
         headers=self._get_headers(),
         loggers=self.logger,
         params=params)
     self.logger.info("param is : {}".format(params))
     self.logger.info(
         "========== Finish adding SPI URL by service command ==========")
     return success, status_code, message, data
Ejemplo n.º 17
0
 def _add_role_permission(self, role_id, params_to_insert):
     headers = self._get_headers()
     self.logger.info("Header: [{}]".format(headers))
     url = api_settings.ROLE_PERMISSION_PATH.format(role_id=role_id)
     self.logger.info("Adding permission to to [{}] role".format(params_to_insert))
     is_success, status_code, status_message, data = RestFulClient.post(url=url,
                                                                        headers=headers,
                                                                        loggers=self.logger,
                                                                        params=params_to_insert)
     if (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)
     return is_success
    def get_bank_details(cls, params, headers, logger):
        is_success, status_code, status_message, data = RestFulClient.post(
            url=api_settings.GET_BANK_PROFILE_REPORT_PATH, headers=headers, loggers=logger, params=params
        )

        if not is_success:
            if status_code in ["access_token_expire", 'authentication_fail', 'invalid_access_token']:
                logger.info("{}".format(status_message))
                raise InvalidAccessToken(status_message)

        if is_success and len(data) > 0:
            bank_detail = data[0]

        return is_success, status_code, status_message, bank_detail
    def create_condition(self, rule_id, mechanic_id, params):
        success, status_code, message, data = RestFulClient.post(
            url=api_settings.CREATE_CONDITION.format(rule_id=rule_id,
                                                     mechanic_id=mechanic_id),
            headers=self._get_headers(),
            loggers=self.logger,
            params=params)

        API_Logger.post_logging(loggers=self.logger,
                                params=params,
                                response=data,
                                status_code=status_code)

        return success, data, message
Ejemplo n.º 20
0
    def _do_approval(self, request):
        self.logger.info(
            '========== Start Approve balance adjustment order ==========')
        reference_id = request.POST.get('reference_id')
        url = api_settings.APPROVE_BAL_ADJUST_PATH.format(
            reference_id=reference_id)
        #url = 'http://localhost:4393/general_error_approval'

        body = {'reason': request.POST.get('reason_for_approval_or_reject')}

        is_success, status_code, status_message, data = RestFulClient.post(
            url=url,
            headers=self._get_headers(),
            loggers=self.logger,
            params=body)

        API_Logger.post_logging(loggers=self.logger,
                                params=body,
                                response=data,
                                status_code=status_code)
        self.logger.info(
            '========== Finish Approve balance adjustment order ==========')
        if is_success:
            messages.add_message(request, messages.SUCCESS,
                                 'Payment is approved successfully')
            return redirect('balance_adjustment:balance_adjustment_list')
        elif status_code.lower() in ["general_error"]:
            error_msg = 'Other error, please contact system administrator'
            return self._handle_error(error_msg, reference_id)
            # If get error timeout, response as success to client
        elif status_code.lower() in [
                "external_call_timeout", "internal_call_timeout",
                "sof_timeout", "timeout"
        ]:
            self.logger.info(
                'get timeout error from server but considers as success to client'
            )
            messages.add_message(request, messages.SUCCESS,
                                 'Payment is approved successfully')
            return redirect('balance_adjustment:balance_adjustment_list')
        elif status_message == 'timeout':
            messages.add_message(
                request, messages.ERROR,
                'Request timed-out, please try again or contact system administrator'
            )
            return redirect('balance_adjustment:balance_adjustment_detail',
                            ReferenceId=reference_id)
        else:
            return self._handle_error(status_message, reference_id)
Ejemplo n.º 21
0
    def get_permissions(cls, headers, params, logger):
        is_success, status_code, status_message, permissions = RestFulClient.post(
            url=api_settings.PERMISSION_LIST,
            headers=headers,
            loggers=logger,
            params=params)
        if not is_success:
            if status_code in [
                    "access_token_expire", 'authentication_fail',
                    'invalid_access_token'
            ]:
                logger.info("{}".format(status_message))
                raise InvalidAccessToken(status_message)

        return is_success, status_code, status_message, permissions
Ejemplo n.º 22
0
 def get_user_role(self, user_id):
     params = {'user_id': user_id}
     is_success, status_code, status_message, data = RestFulClient.post(
         url=api_settings.ROLE_LIST,
         headers=self._get_headers(),
         loggers=self.logger,
         params=params)
     self.logger.info("User have {} role id".format(data))
     if is_success:
         if len(data) > 0:
             return data[0]
         else:
             return {}
     else:
         return []
Ejemplo n.º 23
0
 def get_context_data(self, **kwargs):
     self.logger.info('========== Start get role entity ==========')
     context = super(RoleEditView, self).get_context_data(**kwargs)
     role_id = context['role_id']
     self.logger.info("Searching role with [{}] role id".format(role_id))
     params = {'id': role_id}
     is_success, status_code, status_message, data = RestFulClient.post(
         url=api_settings.ROLE_LIST,
         headers=self._get_headers(),
         loggers=self.logger,
         params=params)
     if is_success:
         context['role'] = data[0]
         self.logger.info('========== End get role entity ==========')
         return context
 def _get_transaction_history_list(self, body):
     success, status_code, status_message, data = RestFulClient.post(
         url=api_settings.BALANCE_MOVEMENT_LIST_PATH,
         headers=self._get_headers(),
         loggers=self.logger,
         params=body,
         timeout=settings.GLOBAL_TIMEOUT)
     data = data or {}
     order_balance_movements = data.get('order_balance_movements', [])
     page = data.get("page", {})
     API_Logger.post_logging(loggers=self.logger,
                             params=body,
                             response=order_balance_movements,
                             status_code=status_code,
                             is_getting_list=True)
     return order_balance_movements, page, success, status_message
Ejemplo n.º 25
0
    def get_card_list(self, body):
        api_path = api_settings.CARD_LIST_PATH

        # api_path = 'http://localhost:4693/search_card_profile'

        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, response=data.get('cards', []),
                                status_code=status_code, is_getting_list=True)

        return data, success, status_message
Ejemplo n.º 26
0
    def get_context_data(self, **kwargs):
        self.logger.info(
            '========== Start getting balance adjustment detail ==========')
        context = super(BalanceAdjustmentDetailView,
                        self).get_context_data(**kwargs)
        reference_id = context['ReferenceId']
        body = {'reference_id': reference_id}
        url = api_settings.BALANCE_ADJUSTMENT_PATH
        #url = 'http://localhost:43931/additional_detail' # status: REJECT_FAIL
        #url = 'http://localhost:43932/additional_detail'  # status: APPROVE_FAIL
        #url = 'http://localhost:43933/additional_detail'  # status: Created
        is_success, status_code, status_message, data = RestFulClient.post(
            url=url,
            headers=self._get_headers(),
            loggers=self.logger,
            params=body)
        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)
        API_Logger.get_logging(loggers=self.logger,
                               params={},
                               response=data,
                               status_code=status_code)
        permissions = {}
        permissions['SYS_BAL_ADJUST_APPROVE'] = check_permissions_by_user(
            self.request.user, 'SYS_BAL_ADJUST_APPROVE')

        balanceAdjustmentRespone = data['balance_adjustment_reference'][0]
        referenceServiceGroupInfo = self._get_service_group_detail(
            balanceAdjustmentRespone['reference_service_group_id'])
        referenceServiceInfo = self._get_service_detail(
            balanceAdjustmentRespone['reference_service_id'])

        context = {
            'order': data['balance_adjustment_reference'][0],
            'referenceServiceGroupInfo': referenceServiceGroupInfo,
            'referenceServiceInfo': referenceServiceInfo,
            'show_buttons': True,
            'permissions': permissions
        }
        self.logger.info(
            '========== Finish getting balance adjustment detail ==========')
        return context
Ejemplo n.º 27
0
    def get_otp_list(self, body):
        is_success, status_code, status_message, data = RestFulClient.post(url=api_settings.OTP_URL,
                                                                           headers=self._get_headers(),
                                                                           loggers=self.logger,
                                                                           params=body)
        if not is_success:
            data = {'otps': []}

            messages.add_message(
                self.request,
                messages.ERROR,
                status_message
            )
        API_Logger.post_logging(loggers=self.logger, params=body, response=data['otps'],
                                status_code=status_code, is_getting_list=True)

        return data, is_success
Ejemplo n.º 28
0
    def _create_refund_request(self, voucher_refund_request):
        url = CREATE_REFUND_REQUEST
        params = voucher_refund_request
        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 not is_success:
            data = []
        return data['voucher_refund_id']
 def _get_cash_sof_list(self, user_id, user_type):
     self.logger.info('========== Start getting cash sof list ==========')
     body = {}
     body['user_id'] = int(user_id)
     body['user_type'] = int(user_type)
     success, status_code, status_message, data = RestFulClient.post(
         url=CASH_SOFS_URL,
         headers=self._get_headers(),
         params=body,
         loggers=self.logger)
     data = data or {}
     API_Logger.post_logging(loggers=self.logger,
                             params=body,
                             response=data.get('cash_sofs', []),
                             status_code=status_code,
                             is_getting_list=True)
     self.logger.info('========== Finish getting cash sof list ==========')
     return data
Ejemplo n.º 30
0
    def send(cls, method, url, params, request, description=None, log_count_field=None):
        loggers = build_logger(request, __name__)

        if description:
            loggers.info("===== Start {} =====".format(description))

        headers = build_auth_header_from_request(request)

        if len(params) > 0:
            loggers.info("Request data: {} ".format(params))

        if method == 'GET':
            is_success, status_code, data = RestFulClient.get(url, loggers, headers)
            status_message = None
        elif method == 'POST':
            is_success, status_code, status_message, data = RestFulClient.post(url, headers, loggers, params)
        elif method == 'PUT':
            is_success, status_code, status_message, data = RestFulClient.put(url, headers, loggers, params)
        elif method == 'DELETE':
            is_success, status_code, status_message = RestFulClient.delete(url, headers, loggers, params)
            data = None

        if status_code in ["access_token_expire", 'authentication_fail', 'invalid_access_token']:
            raise InvalidAccessToken(status_message)

        if log_count_field:
            log_data = data
            for field in log_count_field.split('.'):
                if field == "data":
                    continue
                if log_data:
                    log_data = log_data.get(field, {})
                else:
                    log_data = {}

            count = len(log_data)
            loggers.info('Response count: {}'.format(count))
        else:
            loggers.info('Response data: {}'.format(data))

        if description:
            loggers.info("===== Finish {} =====".format(description))

        return is_success, status_code, status_message, data