def post(self): data = self.request.data result = [] for message in data: try: input_message, created = config.get_input_sms_model( ).objects.get_or_create(received_at=timezone.make_aware( datetime.strptime(message.get('ts'), "%Y-%m-%d %H:%M:%S"), timezone.get_default_timezone()), **{ k: v for k, v in message.items() if k in ('uniq', 'sender', 'recipient', 'okey', 'opid', 'opmid', 'content') }) code = (config.ATS_STATES.DELIVERED if self.callback_function( input_message, created) else config.ATS_STATES.NOT_DELIVERED) result.append((code, input_message.uniq)) except (IntegrityError, TypeError): if 'uniq' in message: result.append( (config.ATS_STATES.NOT_DELIVERED, message.get('uniq'))) return result
class InputATSSMSmessageISCore(UIRESTModelISCore): model = config.get_input_sms_model() list_display = ('created_at', 'received_at', 'sender', 'recipient', 'uniq', 'content') abstract = True form_fields = ('created_at', 'received_at', 'sender', 'recipient', 'uniq', 'okey', 'opid', 'opmid', 'content') create_permission = False update_permission = False delete_permission = False
def _get_or_create_input_message(self, message): try: return config.get_input_sms_model().objects.get_or_create( received_at=timezone.make_aware(datetime.strptime(message.get('ts'), "%Y-%m-%d %H:%M:%S"), timezone.get_default_timezone()), **{k: v for k, v in message.items() if k in ('uniq', 'sender', 'recipient', 'okey', 'opid', 'opmid', 'content')} ) except (IntegrityError, TypeError, PersistenceException, ValueError): return (None, False)
def _get_or_create_input_message(self, message): try: return get_input_sms_model().objects.get_or_create( received_at=timezone.make_aware( datetime.strptime(message.get('ts'), "%Y-%m-%d %H:%M:%S"), timezone.get_default_timezone()), **{ k: v for k, v in message.items() if k in ('uniq', 'sender', 'recipient', 'okey', 'opid', 'opmid', 'content') }) except (IntegrityError, TypeError, PersistenceException, ValueError): return (None, False)
class InputATSSMSmessageISCore(UIRESTModelISCore): model = config.get_input_sms_model() list_display = ('created_at', 'received_at', 'sender', 'recipient', 'uniq', 'content') abstract = True form_fields = ('created_at', 'received_at', 'sender', 'recipient', 'uniq', 'okey', 'opid', 'opmid', 'content') def has_create_permission(self, request, obj=None): return False def has_update_permission(self, request, obj=None): return False def has_delete_permission(self, request, obj=None): return False
def post(self): data = self.request.data result = [] for message in data: try: input_message, created = config.get_input_sms_model().objects.get_or_create( received_at=timezone.make_aware(datetime.strptime(message.get('ts'), "%Y-%m-%d %H:%M:%S"), timezone.get_default_timezone()), **{k: v for k, v in message.items() if k in ('uniq', 'sender', 'recipient', 'okey', 'opid', 'opmid', 'content')} ) code = (config.ATS_STATES.DELIVERED if self.callback_function(input_message, created) else config.ATS_STATES.NOT_DELIVERED) result.append((code, input_message.uniq)) except (IntegrityError, TypeError): if 'uniq' in message: result.append((config.ATS_STATES.NOT_DELIVERED, message.get('uniq'))) return result