diff options
Diffstat (limited to 'lib/server.py')
| -rw-r--r-- | lib/server.py | 23 |
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 |
