Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)