def push_sms_to_queue(*args, **kwargs): """ A sqs tasks that pulls sms from the queue and process it. Note: we have done we middleware sms client setting here as these are not set in the worker machine. and extra log can be removed after smooth trial """ brand = kwargs.get("brand", None) phone_number = kwargs.get("phone_number", None) message = kwargs.get("message", None) source_client = kwargs.get("__gm_source", None) logger.info("brand:{0} , phone: {1}, message: {2} source: {3}".format(brand, phone_number, message, source_client)) try: BRAND = settings.__dict__["_wrapped"].__class__.BRAND = make_tls_property() BRAND.value = brand SMS_CLIENT = settings.__dict__["_wrapped"].__class__.SMS_CLIENT = make_tls_property() logger.info("ENV: {0}".format(settings.ENV)) if settings.ENV in ["local", "test", "staging"]: SMS_CLIENT.value = None return if source_client == settings.SMS_CLIENT_DETAIL["KAP"]["params"]: SMS_CLIENT.value = "KAP" else: try: SMS_CLIENT.value = settings.BRAND_SMS_GATEWAY.get(settings.BRAND) except: SMS_CLIENT.value = "AIRTEL" response = sms_processing(phone_number, message, brand) logger.info("[push_sms_to_queue]: {0}".format(response)) except Exception as ex: logger.info("[Exception in push_sms_to_queue]: {0}".format(ex))
def render_sms(self, request, **kwargs): phone_number = "" message = "" if request.POST.get('text'): message = request.POST.get('text') phone_number = request.POST.get('phoneNumber') elif request.GET.get('cli'): message = request.GET.get('msg') phone_number = request.GET.get('cli') elif request.POST.get("advisorMobile"): phone_number = request.POST.get('advisorMobile') customer_id = request.POST.get('customerId') if request.POST.get('action') == 'validate': LOGGER.info('Validating the service coupon for customer {0}'.format(customer_id)) odo_read = request.POST.get('odoRead') service_type = request.POST.get('serviceType') message = '{3} {0} {1} {2}'.format(customer_id, odo_read, service_type, settings.ALLOWED_KEYWORDS['check'].upper()) LOGGER.info('Message to send: ' + message) else: ucn = request.POST.get('ucn') LOGGER.info('Terminating the service coupon {0}'.format(ucn)) message = '{2} {0} {1}'.format(customer_id, ucn, settings.ALLOWED_KEYWORDS['close'].upper()) LOGGER.info('Message to send: ' + message) try: to_be_serialized=sms_processing(phone_number, message, settings.BRAND) except InvalidKeyWord as ink: LOGGER.info("The database failed to perform {0}:{1}".format( request.POST.get('action'), ink)) send_job_to_queue(send_invalid_keyword_message, {"phone_number":phone_number, "message":ink.template, "sms_client":settings.SMS_CLIENT}) return HttpBadRequest(json.dumps({'status':False, 'message':ink.template})) except Exception as ex: LOGGER.info("The database failed to perform {0}:{1}".format( request.POST.get('action'), ex)) return HttpBadRequest(json.dumps({'status':False, 'message':ex})) return self.create_response(request, data=to_be_serialized)