def record_dr_from_payload(cls, payload): # no DR support in non-DB mode if not get_config('use_db'): return uuid = payload.get('callbackData') msg = cls.get_or_none(uuid) if msg is None: raise ValueError( "SMS-DR reference unreachable SMS-MT `{uuid}`".format( uuid=uuid)) kwargs = { 'sms_type': cls.DR, 'delivery_status_on': aware_datetime_from_iso( payload.get('delivery_status_on', datetime_to_iso(timezone.now()))), 'status': cls.DELIVERY_STATUS_MATRIX.get( payload.get('deliveryInfo', {}).get('deliveryStatus', cls.NOT_DELIVERED)) } msg.update(**kwargs) msg.save() return msg
def create_mo_from_payload(cls, payload): kwargs = { 'direction': cls.INCOMING, 'sms_type': cls.MO, 'status': cls.RECEIVED, 'sender_address': cls.clean_address(payload.get('senderAddress')), 'destination_address': cls.clean_address(payload.get('destinationAddress')), 'message_id': payload.get('messageId'), 'content': payload.get('message'), 'created_on': aware_datetime_from_iso(payload.get('dateTime')) } if not get_config('use_db'): return cls(**kwargs) return cls.objects.create(**kwargs)
def record_dr_from_payload(cls, payload): # no DR support in non-DB mode if not get_config('use_db'): return uuid = payload.get('callbackData') msg = cls.get_or_none(uuid) if msg is None: raise ValueError("SMS-DR reference unreachable SMS-MT `{uuid}`" .format(uuid=uuid)) kwargs = { 'sms_type': cls.DR, 'delivery_status_on': aware_datetime_from_iso( payload.get('delivery_status_on', datetime_to_iso(timezone.now()))), 'status': cls.DELIVERY_STATUS_MATRIX.get( payload.get('deliveryInfo', {}) .get('deliveryStatus', cls.NOT_DELIVERED)) } msg.update(**kwargs) msg.save() return msg