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))
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))
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))