diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-09-23 23:27:27 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-09-23 23:27:27 -0700 |
| commit | 5c982ed500b51f5b8d911e5a5adec10ac2d31d2e (patch) | |
| tree | efca7a0f0209d25972df00173e4c92a814956a7a /lib/Server | |
| parent | 2755b029d873f93d91086b3d69a4c57d05c40fb5 (diff) | |
ok good
Diffstat (limited to 'lib/Server')
| -rw-r--r-- | lib/Server/InvalidUsage/__init__.py | 16 | ||||
| -rw-r--r-- | lib/Server/__init__.py | 59 |
2 files changed, 0 insertions, 75 deletions
diff --git a/lib/Server/InvalidUsage/__init__.py b/lib/Server/InvalidUsage/__init__.py deleted file mode 100644 index e5616d4..0000000 --- a/lib/Server/InvalidUsage/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from flask import jsonify - -class InvalidUsage(Exception): - status_code = 400 - - def __init__(self, message, status_code=None, payload=None): - Exception.__init__(self) - self.message = message - if status_code is not None: - self.status_code = status_code - self.payload = payload - - def to_dict(self): - rv = dict(self.payload or ()) - rv['message'] = self.message - return rv diff --git a/lib/Server/__init__.py b/lib/Server/__init__.py deleted file mode 100644 index 91bc880..0000000 --- a/lib/Server/__init__.py +++ /dev/null @@ -1,59 +0,0 @@ -from flask import Flask -from flask import abort, redirect, url_for, request, jsonify -import sys, os -sys.path.append("./lib") -from Pb import * -from Server.InvalidUsage import InvalidUsage - -class Server(object): - def __init__(self): - self.app = Flask(__name__) - @self.app.route('/<pb_classname>', methods=['POST']) - def pb(pb_classname): - return self._response_post(pb_classname, request.form.to_dict()) - - @self.app.errorhandler(InvalidUsage) - def handle_invalid_usage(error): - response = jsonify(error.to_dict()) - response.status_code = error.status_code - return response - - self._classname_aliases = { - 'generate' : 'PbGenerate', - 'imgrid' : 'PbGrid', - 'imbreak' : 'PbBreak', - 'impattern' : 'PbPattern', - 'imgradient' : 'PbGradient', - 'landscape' : 'PbLandscape', - } - - def _find_class_by_name(self, pb_classname): - pb_classname = self._classname_aliases.get(pb_classname, None) or pb_classname - try: - return filter(lambda c: c.__name__ == pb_classname, Pb.__subclasses__())[0] - except IndexError: - raise InvalidUsage('No such api', status_code=410) - - def _response_post(self, pb_classname, request_form): - pb_class = self._find_class_by_name(pb_classname) - classnames = map(lambda c: c.__name__, Pb.__subclasses__()) - try: - pb = pb_class(**request_form) - pb.create(); - pb.file_s3move() - pb.db_send(); - return jsonify(pb.file_dict()); - - #FIXME handle BadParamsError and PbError separately - except Exception as e: - sys.stderr.write("%s failure" % pb_class.__name__) - sys.stderr.write("params:\n") - sys.stderr.write(str(e)) - for i in request_form.keys(): - sys.stderr.write("{}:{}\n".format(i, request_form[i])) - raise; - return jsonify({ 'error' : 'Request could not be processed' }) - - def run(self): - self.app.run() - |
