def get(self): database = self.settings['db'] query = utils.unpack_params(self) _id = query.pop('_id', None) find_last = query.pop('find_last', None) if _id: raise tornado.web.HTTPError(500, 'No ObjectId based search supported') if find_last: docs = database.analysis_header.find().sort('time', direction=pymongo.DESCENDING) else: docs = database.analysis_header.find(query) if not docs: raise tornado.web.HTTPError(500, reason='No results found for query') else: utils.return2client(self, docs)
def post(self): database = self.settings['db'] data = ujson.loads(self.request.body.decode("utf-8")) jsonschema.validate(data, utils.schemas['analysis_header']) try: result = database.analysis_header.insert(data) except perr.PyMongoError: raise tornado.web.HTTPError(500, status='Unable to insert the document') database.analysis_header.create_index([('uid', pymongo.ASCENDING)], unique=True, background=True) database.analysis_header.create_index([('time', pymongo.ASCENDING)], unique=False) if not result: raise tornado.web.HTTPError(500) else: utils.return2client(self, data)