Ejemplo n.º 1
0
 def _get_provider_charges(cls, backend_message_id, backend_instance, direction, couch_id, backend_api_id):
     if backend_message_id:
         if backend_api_id == SQLTwilioBackend.get_api_id():
             message = get_twilio_message(backend_instance, backend_message_id)
             status = message.status
             price = message.price
         elif backend_api_id == InfobipBackend.get_api_id():
             message = get_infobip_message(backend_instance, backend_message_id)
             status = message['status']['name']
             price = message['price']['pricePerMessage']
         else:
             raise ProviderFeeNotSupportedException("backend_message_id=%s" % backend_message_id)
         if status is None or status.lower() in [
             'accepted',
             'queued',
             'sending',
             'receiving',
         ] or price is None:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
         return _ProviderChargeInfo(
             abs(Decimal(price)),
             SmsGatewayFee.get_by_criteria(
                 backend_api_id,
                 direction,
             )
         )
     else:
         log_smsbillables_error(
             "Could not create gateway fee for message %s: no backend_message_id" % couch_id
         )
         return _ProviderChargeInfo(None, None)
Ejemplo n.º 2
0
 def _get_multipart_count(cls, backend_api_id, backend_instance, backend_message_id, multipart_count):
     if backend_api_id == SQLTwilioBackend.get_api_id():
         twilio_message = get_twilio_message(backend_instance, backend_message_id)
         if twilio_message.num_segments is not None:
             return int(twilio_message.num_segments)
         else:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
     else:
         return multipart_count
Ejemplo n.º 3
0
 def _get_multipart_count(cls, backend_api_id, backend_instance, backend_message_id, multipart_count):
     if backend_api_id == SQLTwilioBackend.get_api_id():
         twilio_message = get_twilio_message(backend_instance, backend_message_id)
         if twilio_message.num_segments is not None:
             return int(twilio_message.num_segments)
         else:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
     else:
         return multipart_count
Ejemplo n.º 4
0
 def _get_multipart_count(cls, backend_api_id, backend_instance, backend_message_id, multipart_count):
     if backend_api_id == SQLTwilioBackend.get_api_id():
         twilio_message = get_twilio_message(backend_instance, backend_message_id)
         if twilio_message.num_segments is not None:
             return int(twilio_message.num_segments)
         else:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
     elif backend_api_id == InfobipBackend.get_api_id():
         infobip_message = get_infobip_message(backend_instance, backend_message_id)
         segments = infobip_message['messageCount'] \
             if 'messageCount' in infobip_message else infobip_message['smsCount']
         if segments is not None:
             return int(segments)
         else:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
     else:
         return multipart_count
Ejemplo n.º 5
0
 def _get_twilio_charges(cls, backend_message_id, backend_instance, direction, couch_id):
     if backend_message_id:
         twilio_message = get_twilio_message(backend_instance, backend_message_id)
         if twilio_message.status in [
             'accepted',
             'queued',
             'sending',
             'receiving',
         ] or twilio_message.price is None:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
         return _TwilioChargeInfo(
             Decimal(twilio_message.price) * -1,
             SmsGatewayFee.get_by_criteria(
                 SQLTwilioBackend.get_api_id(),
                 direction,
             )
         )
     else:
         log_smsbillables_error(
             "Could not create gateway fee for Twilio message %s: no backend_message_id" % couch_id
         )
         return _TwilioChargeInfo(None, None)
Ejemplo n.º 6
0
 def _get_twilio_charges(cls, backend_message_id, backend_instance, direction, couch_id):
     if backend_message_id:
         twilio_message = get_twilio_message(backend_instance, backend_message_id)
         if twilio_message.status in [
             'accepted',
             'queued',
             'sending',
             'receiving',
         ] or twilio_message.price is None:
             raise RetryBillableTaskException("backend_message_id=%s" % backend_message_id)
         return _TwilioChargeInfo(
             Decimal(twilio_message.price) * -1,
             SmsGatewayFee.get_by_criteria(
                 SQLTwilioBackend.get_api_id(),
                 direction,
             )
         )
     else:
         log_smsbillables_error(
             "Could not create gateway fee for Twilio message %s: no backend_message_id" % couch_id
         )
         return _TwilioChargeInfo(None, None)