def get(self, boardid): jid = '' if not boardid: #api has two modes (jid in url or jid in argument) jid = self.get_argument('jid', '') else: #get project board = yield dbapi.find_one_array_by_condition('projects', 'boards', {'boards.ID': {'$eq': boardid}}) if board: jid = board['jid'] http_client = httpclient.AsyncHTTPClient() url = url_concat(settings.PRESENCE_URL, {'jid': jid, 'req_jid':settings.XMPP_USER, 'type': 'text'}) logging.info('PRESENCE_URL: %s' % url) res = yield http_client.fetch(url) if res.error: self.write("Error: %s" % response.error) else: self.write(json_encode({ 'status': 200, 'present': True if res.body.strip() == 'null' else False })) self.set_header("Content-Type", "application/json")
def get(self, boardid): logging.info('msg get') jid = '' if not boardid: jid = self.get_argument('jid') else: board = yield dbapi.find_one_array_by_condition('projects', 'boards', {'boards.ID': {'$eq': boardid}}) if board: jid = '{}/IB'.format(board['jid']) #FIXME: /IB is a hack maybe remove it at store time logging.info(jid) query_json = self.get_argument('queryJson', None) num_messages = int(self.get_argument('numMessages', None) or 10) query_dict = { 'from' : jid } query = {} if query_json: query = ujson.loads(query_json) query_dict.update(query) cursor = db.messages.find(query_dict) messages = [] # Modify the query before iterating cursor.sort([('timestamp', pymongo.DESCENDING)]).limit(num_messages) while (yield cursor.fetch_next): messages.append(cursor.next_object()) messages.reverse() self.write(json.dumps({ 'status': 200, 'messages': messages }, default=json_util.default)) self.set_header("Content-Type", "application/json")