コード例 #1
0
 def post(self):
     database = self.settings['db']
     data = ujson.loads(self.request.body.decode("utf-8"))
     uids = []
     if isinstance(data, list):
         for d in data:
             d = utils.default_timeuid(d)
             try:
                 jsonschema.validate(d,
                                     utils.schemas['container'])
             except (ValidationError, SchemaError):
                 raise compose_err_msg(400,
                                       "Invalid schema on document(s)", d)
             uids.append(d['uid'])
             res = database.container.insert(d)
     elif isinstance(data, dict):
         data = utils.default_timeuid(data)
         try:
             jsonschema.validate(data,
                                 utils.schemas['container'])
         except (ValidationError, SchemaError):
             raise compose_err_msg(400,
                                   "Invalid schema on document(s)", data)
         uids.append(data['uid'])
         res = database.container.insert(data)
         if not res:
             raise compose_err_msg(500,
                                   'SampleHandler expects list or dict')
     self.finish(ujson.dumps(uids))
コード例 #2
0
 def post(self):
     database = self.settings['db']
     data = ujson.loads(self.request.body.decode("utf-8"))
     uids = []
     if isinstance(data, list):
         for d in data:
             d = utils.default_timeuid(d)
             try:
                 jsonschema.validate(d, utils.schemas['request'])
             except (ValidationError, SchemaError):
                 raise utils._compose_err_msg(
                     400, "Invalid schema on document(s)", d)
             try:
                 res = database.request.insert(d)
                 uids.append(d['uid'])
             except pymongo.errors.PyMongoError:
                 raise utils._compose_err_msg(
                     500, 'Validated data can not be inserted', data)
             database.request.create_index([('uid', pymongo.DESCENDING)],
                                           unique=True,
                                           background=True)
             database.request.create_index([('time', pymongo.DESCENDING)],
                                           unique=False,
                                           background=True)
             database.request.create_index([('sample', pymongo.DESCENDING)],
                                           unique=False,
                                           background=True,
                                           sparse=True)
     elif isinstance(data, dict):
         data = utils.default_timeuid(data)
         try:
             jsonschema.validate(data, utils.schemas['request'])
         except (ValidationError, SchemaError):
             raise utils._compose_err_msg(400,
                                          "Invalid schema on document(s)",
                                          data)
         try:
             res = database.request.insert(data)
             uids.append(data['uid'])
         except pymongo.errors.PyMongoError:
             raise utils._compose_err_msg(
                 500, 'Validated data can not be inserted', data)
         database.request.create_index([('uid', pymongo.DESCENDING)],
                                       unique=True,
                                       background=True)
         database.request.create_index([('time', pymongo.DESCENDING)],
                                       unique=False,
                                       background=True)
         database.request.create_index([('sample', pymongo.DESCENDING)],
                                       unique=False,
                                       background=True,
                                       sparse=True)
     else:
         raise utils._compose_err_msg(
             500, status='SampleHandler expects list or dict')
     self.finish(ujson.dumps(uids))
コード例 #3
0
ファイル: engine.py プロジェクト: ericdill/amostra
 def post(self):
     database = self.settings['db']
     data = ujson.loads(self.request.body.decode("utf-8"))
     uids = []
     if isinstance(data, list):
         for d in data:
             d = utils.default_timeuid(d)
             try:
                 jsonschema.validate(d,
                                     utils.schemas['request'])
             except (ValidationError, SchemaError):
                 raise utils._compose_err_msg(400,
                                              "Invalid schema on document(s)", d)
             try:
                 res = database.request.insert(d)
                 uids.append(d['uid'])
             except pymongo.errors.PyMongoError:
                 raise utils._compose_err_msg(500,
                                              'Validated data can not be inserted',
                                              data)
             database.request.create_index([('uid', pymongo.DESCENDING)],
                                          unique=True, background=True)
             database.request.create_index([('time', pymongo.DESCENDING)],
                                          unique=False, background=True)
             database.request.create_index([('sample', pymongo.DESCENDING)],
                                          unique=False, background=True, sparse=True)
     elif isinstance(data, dict):
         data = utils.default_timeuid(data)
         try:
             jsonschema.validate(data,
                                 utils.schemas['request'])
         except (ValidationError, SchemaError):
             raise utils._compose_err_msg(400,
                                          "Invalid schema on document(s)", data)
         try:
             res = database.request.insert(data)
             uids.append(data['uid'])
         except pymongo.errors.PyMongoError:
             raise utils._compose_err_msg(500,
                                          'Validated data can not be inserted',
                                          data)
         database.request.create_index([('uid', pymongo.DESCENDING)],
                                          unique=True, background=True)
         database.request.create_index([('time', pymongo.DESCENDING)],
                                          unique=False, background=True)
         database.request.create_index([('sample', pymongo.DESCENDING)],
                                          unique=False, background=True, sparse=True)
     else:
         raise utils._compose_err_msg(500,
                                      status='SampleHandler expects list or dict')
     self.finish(ujson.dumps(uids))