Esempio n. 1
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)
Esempio n. 2
0
 def update_spi(self, spi_url_id, params):
     path = api_settings.SPI_UPDATE_PATH.format(spiUrlId=spi_url_id)
     success, status_code, message, data = RestFulClient.put(
         url=path,
         headers=self._get_headers(),
         loggers=self.logger,
         params=params)
     API_Logger.put_logging(loggers=self.logger,
                            params=params,
                            response=data,
                            status_code=status_code)
     return success, status_code, message, data
Esempio n. 3
0
    def _update_card_design(self, url, params):
        is_success, status_code, status_message, data = RestFulClient.put(url=url,
                                                                           loggers=self.logger, headers=self._get_headers(),
                                                                           params=params)

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

        if not is_success:
            messages.add_message(
                self.request,
                messages.ERROR,
                status_message
            )
            data = {}

        return is_success, data
Esempio n. 4
0
 def post(self, request, *args, **kwargs):
     form = request.POST
     shop_id = kwargs['id']
     shop = convert_form_to_shop(form)
     self.logger.info('========== Start update shop ==========')
     url = api_settings.EDIT_SHOP.format(shop_id=shop_id)
     is_success, status_code, status_message, data = RestFulClient.put(
         url, self._get_headers(), self.logger, params=shop)
     if is_success:
         API_Logger.put_logging(loggers=self.logger,
                                params=shop,
                                response=data,
                                status_code=status_code)
         self.logger.info('========== Finish update shop ==========')
         messages.success(request, "Updated data successfully")
         return redirect(get_back_url(request, reverse('shop:shop_list')))
     else:
         context = {'form': form}
         messages.error(request, status_message)
         self.logger.info('========== Finish update shop ==========')
         return render(request, self.template_name, context)
Esempio n. 5
0
    def post(self, request):
        success_count = 0
        failed_count = 0
        success_ids = []
        failed_ids = []
        ids = request.POST.getlist("ids[]")
        params = {'is_on_hold': False}
        for i in ids:
            self.logger.info('========== Start unhold voucher ==========')
            url = settings.DOMAIN_NAMES + UPDATE_HOLD_STATUS.format(
                voucher_id=i)
            is_success, status_code, status_message, data = RestFulClient.put(
                url=url,
                loggers=self.logger,
                headers=self._get_headers(),
                params=params)
            if (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})
            API_Logger.put_logging(loggers=self.logger,
                                   params=params,
                                   response=data,
                                   status_code=status_code)
            if is_success:
                success_count += 1
                success_ids.append(i)
            else:
                failed_count += 1
                failed_ids.append(i)
            self.logger.info('========== Finish unhold voucher ==========')

        return JsonResponse({
            "success_ids": success_ids,
            "success_count": success_count,
            "failed_count": failed_count,
            "invalid_access_token": False
        })
 def get(self, request, *args, **kwargs):
     context = super(LinkAgentToShop, self).get_context_data(**kwargs)
     agent_id = context['agent_id']
     shop_id = context['shop_id']
     shop_detail = get_shop_details(self, int(shop_id))
     self.logger.info('========== Start link shop to Agent ==========')
     form = convert_shop_to_form(shop_detail)
     converted_shop = convert_form_to_shop(form)
     converted_shop['agent_id'] = int(agent_id)
     params = converted_shop
     url = api_settings.EDIT_SHOP.format(shop_id=shop_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, 'Successfully added ' +
             shop_detail['name'] + ' to Agent ID ' + agent_id)
     self.logger.info('========== Finish link shop to Agent ==========')
     return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
Esempio n. 7
0
    def post(self, request, *args, **kwargs):
        self.logger.info('========== Start edit product ==========')
        product_id = self.kwargs['product_id']
        is_active = request.POST.get('is_active') == 'on'
        name = request.POST.get('name')
        description = request.POST.get('description')
        image_url = request.POST.get('image_url')
        product_category_id = request.POST.get('product_category_id')
        product_category_id = int(
            product_category_id) if product_category_id else None
        payment_service_id = request.POST.get('payment_service_id')
        payment_service_id = int(
            payment_service_id) if payment_service_id else None
        is_allow_price_range = request.POST.get('is_allow_price_range') == 'on'
        max_price = request.POST.get('max_price')
        max_price = float(
            max_price) if is_allow_price_range and max_price else None
        min_price = request.POST.get('min_price')
        min_price = float(
            min_price) if is_allow_price_range and min_price else None
        cbo_agent_types = request.POST.getlist('cbo_agent_types')
        cbo_agent_types = list(map(
            int, cbo_agent_types))  # convert list string to list int
        denomination = request.POST.getlist('denomination')
        denomination = self.filter_empty_denomination(denomination)

        params = {
            "id": product_id,
            "is_active": is_active,
            "name": name,
            "description": description,
            "image_url": image_url,
            "product_category_id": product_category_id,
            "payment_service_id": payment_service_id,
            "is_allow_price_range": is_allow_price_range,
            "max_price": max_price,
            "min_price": min_price,
            "denomination": denomination
        }

        is_success, status_code, status_message, data = RestFulClient.put(
            url=api_settings.EDIT_PRODUCT.format(product_id=product_id),
            headers=self._get_headers(),
            loggers=self.logger,
            params=params)

        API_Logger.put_logging(loggers=self.logger,
                               params=params,
                               response=data,
                               status_code=status_code)
        self.logger.info('========== Finished edit product ==========')

        if not is_success:
            messages.error(request, status_message)
        else:
            self.delete_agent_types(product_id)
            self.mapping_product_agent_types(product_id, cbo_agent_types)
            messages.success(request, "Edited Successfully")
        context = {'product': params}
        context['cbo_agent_types'] = cbo_agent_types
        self.set_ui_list(context)
        return render(request, self.template_name, context)
Esempio n. 8
0
    def post(self, request, *args, **kwargs):
        self.logger.info('========== Start creating bank profile ==========')

        name = request.POST.get('name', '')
        bank_bin = request.POST.get('bin', '')
        is_active = request.POST.get('is_active', 1)
        description = request.POST.get('description', '')
        pre_sof_url = request.POST.get('pre_sof_url', '')
        presof_order_read_timeout = request.POST.get('presof_order_read_timeout', '')
        if presof_order_read_timeout:
            presof_order_read_timeout = int(presof_order_read_timeout)
        credit_url = request.POST.get('credit_url', '')
        debit_url = request.POST.get('debit_url', '')
        account_number = request.POST.get('account_number', '')
        account_name = request.POST.get('account_name', '')
        currency = request.POST.get('currency', '')
        check_status_url = request.POST.get('check_status_url', '')
        cancel_url = request.POST.get('cancel_url', '')
        connection_timeout = request.POST.get('connection_timeout', '')
        read_timeout = request.POST.get('read_timeout', '')

        if is_active == '1':
            is_active = bool(True)
        else:
            is_active = bool(False)

        params = {
            "name": name,
            "bin": bank_bin,
            "description": description,
            "pre_sof_url": pre_sof_url,
            "pre_sof_read_timeout": presof_order_read_timeout,
            "is_active": is_active,
            "debit_url": debit_url,
            "credit_url": credit_url,
            "bank_account_number": account_number,
            "bank_account_name": account_name,
            "currency": currency,
            "check_status_url": check_status_url,
            "cancel_url": cancel_url,
            "connection_timeout": connection_timeout,
            "read_timeout": read_timeout
        }

        is_success, status_code, status_message, data = BanksClient.create_bank(
            headers=self._get_headers(), params=params, logger=self.logger
        )
        API_Logger.put_logging(loggers=self.logger, params=params, response=data, status_code=status_code)

        if is_success:
            self.logger.info('========== Finished creating bank profile ==========')
            messages.success(request, 'Add bank successfully')
            return redirect('bank:bank_sofs_list')
        else:
            self.logger.info('========== Finished creating bank profile got error [{}] =========='.format(status_message))
            if data == 'timeout':
                messages.error(request, "Timeout updating configuration, please try again or contact technical support")
            else:
                messages.error(request, status_message)

            is_success, status_code, data = BanksClient.get_currencies_list(
                header=self._get_headers(), logger=self.logger
            )

            if not is_success:
                messages.error(self.request, data)
                data = []

            context = {'currencies': data, 'bank_info': params}
            return render(request, self.template_name, context)