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
Пример #2
0
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
Пример #3
0
 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)
Пример #4
0
 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