summaryrefslogtreecommitdiff
path: root/lib/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/server.py')
-rw-r--r--lib/server.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/server.py b/lib/server.py
index df6af4f..5c0df9b 100644
--- a/lib/server.py
+++ b/lib/server.py
@@ -1,13 +1,15 @@
"""All webserver logic lives here, including routes"""
-from flask import Flask
+from flask import Flask, Response
from flask import request, jsonify
import sys, os, re
import cherrypy
from paste.translogger import TransLogger
+import simplejson as json
sys.path.append("./lib")
from pb import *
+from db import Db
from param import BadParamError
from config import SERVER_HOST, SERVER_PORT
@@ -66,6 +68,25 @@ class Server(object):
'imgradient' : 'PbGradient',
'landscape' : 'PbLandscape',
}
+ @self.app.route('/im/data', methods=['GET'])
+ def get_data():
+ args_dict = request.args.to_dict()
+ query_dict = {}
+ for elem in ["newfile", "time"]:
+ if args_dict.get(elem):
+ query_dict[elem] = args_dict.get(elem)
+ if args_dict:
+ try:
+ db = Db()
+ return Response(
+ #flask prevents from returning arrays, so we need the json module
+ json.dumps(db.search(**query_dict)),
+ mimetype='application/json'
+ )
+ except Exception as e:
+ return str(e)
+ else:
+ raise InvalidUsage('Improper Usage', status_code=410)
def _find_class_by_name(self, pb_classname):
pb_classname = self._classname_aliases.get(pb_classname, None) or pb_classname