def create_backend_app(service): from werkzeug.routing import Map # Create the backend_app backend_app = Flask(__name__) backend_app.debug = True backend_app.service = service # Reset view functions to reset the app backend_app.view_functions = {} backend_app.url_map = Map() backend_app.url_map.converters['regex'] = RegexConverter backend = BACKENDS[service] for url_path, handler in backend.flask_paths.items(): if handler.__name__ == 'dispatch': endpoint = '{0}.dispatch'.format(handler.__self__.__name__) else: endpoint = None if endpoint in backend_app.view_functions: # HACK: Sometimes we map the same view to multiple url_paths. Flask # requries us to have different names. endpoint += "2" backend_app.add_url_rule( url_path, endpoint=endpoint, methods=HTTP_METHODS, view_func=convert_flask_to_httpretty_response(handler), ) backend_app.test_client_class = AWSTestHelper return backend_app
def create_backend_app(service): from werkzeug.routing import Map # Create the backend_app backend_app = Flask(__name__) backend_app.debug = True backend_app.service = service # Reset view functions to reset the app backend_app.view_functions = {} backend_app.url_map = Map() backend_app.url_map.converters['regex'] = RegexConverter backend = BACKENDS[service] for url_path, handler in backend.flask_paths.items(): if handler.__name__ == 'dispatch': endpoint = '{0}.dispatch'.format(handler.__self__.__name__) else: endpoint = None if endpoint in backend_app.view_functions: # HACK: Sometimes we map the same view to multiple url_paths. Flask # requries us to have different names. endpoint += "2" backend_app.add_url_rule( url_path, endpoint=endpoint, methods=HTTP_METHODS, view_func=convert_flask_to_httpretty_response(handler), strict_slashes=False, ) backend_app.test_client_class = AWSTestHelper return backend_app
def create_backend_app(service): from werkzeug.routing import Map current_file = os.path.abspath(__file__) current_dir = os.path.abspath(os.path.join(current_file, os.pardir)) template_dir = os.path.join(current_dir, "templates") # Create the backend_app backend_app = Flask("moto", template_folder=template_dir) backend_app.debug = True backend_app.service = service CORS(backend_app) # Reset view functions to reset the app backend_app.view_functions = {} backend_app.url_map = Map() backend_app.url_map.converters["regex"] = RegexConverter backend_dict = backends.get_backend(service) if "us-east-1" in backend_dict: backend = backend_dict["us-east-1"] else: backend = backend_dict["global"] for url_path, handler in backend.flask_paths.items(): view_func = convert_to_flask_response(handler) if handler.__name__ == "dispatch": endpoint = "{0}.dispatch".format(handler.__self__.__name__) else: endpoint = view_func.__name__ original_endpoint = endpoint index = 2 while endpoint in backend_app.view_functions: # HACK: Sometimes we map the same view to multiple url_paths. Flask # requires us to have different names. endpoint = original_endpoint + str(index) index += 1 # Some services do not provide a URL path # I.e., boto3 sends a request to 'https://ingest.timestream.amazonaws.com' # Which means we have a empty url_path to catch this request - but Flask can't handle that if url_path: backend_app.add_url_rule( url_path, endpoint=endpoint, methods=HTTP_METHODS, view_func=view_func, strict_slashes=False, ) backend_app.test_client_class = AWSTestHelper return backend_app
def create_backend_app(service): from werkzeug.routing import Map # Create the backend_app backend_app = Flask(__name__) backend_app.debug = True backend_app.service = service CORS(backend_app) # Reset view functions to reset the app backend_app.view_functions = {} backend_app.url_map = Map() backend_app.url_map.converters["regex"] = RegexConverter backend = list(backends.get_backend(service).values())[0] for url_path, handler in backend.flask_paths.items(): view_func = convert_flask_to_httpretty_response(handler) if handler.__name__ == "dispatch": endpoint = "{0}.dispatch".format(handler.__self__.__name__) else: endpoint = view_func.__name__ original_endpoint = endpoint index = 2 while endpoint in backend_app.view_functions: # HACK: Sometimes we map the same view to multiple url_paths. Flask # requires us to have different names. endpoint = original_endpoint + str(index) index += 1 backend_app.add_url_rule( url_path, endpoint=endpoint, methods=HTTP_METHODS, view_func=view_func, strict_slashes=False, ) backend_app.test_client_class = AWSTestHelper return backend_app
import psycopg2 from flask import Flask, render_template, redirect, flash, session import requests from flask.ext.wtf import Form from wtforms import StringField, PasswordField import riotwatcher import atexit app = Flask(__name__) app.secret_key = "A0Zr98j/3yX R~XHH!jmN]LWX/,?RT" app.service = "http://127.0.0.1:5001/api/" key = "1dbf97cc-5028-4196-a05c-6645adc80bef" w = riotwatcher.RiotWatcher(key) @app.route("/") def index(): return render_template("index.html") @app.route("/sign-out") def sign_out(): if "username" in session: del session["username"] return redirect("/") @app.route("/sign-up", methods=["GET", "POST"]) def sign_up(): class SignUpForm(Form):
def create_app(service): app = Flask(__name__) app.service = service @app.route("/register", methods=['POST']) def register(): try: record = request.get_json() first_name = record['first_name'] last_name = record['last_name'] email = record['email'] password = record['password'] app.service.register(email, password, first_name, last_name) except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 return "", 200 @app.route("/login", methods=['POST']) def login(): try: record = request.get_json() email = record['email'] password = record['password'] token = app.service.login(email, password) except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 return jsonify({"token": token}), 200 @app.route("/template", methods=['POST']) def insert(): try: token = get_token(request) record = request.get_json() template_name = record['template_name'] subject = record['subject'] body = record['body'] x = app.service.insert(token, template_name, subject, body) return {'template_id': x}, 200 except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/template/<template_id>", methods=['GET']) def get(template_id): try: token = get_token(request) x = app.service.get(template_id, token) return jsonify(x), 200 except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/template", methods=['GET']) def get_all(): try: token = get_token(request) temp = app.service.get_all(token) return jsonify(temp), 200 except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/template/<template_id>", methods=['PUT']) def update(template_id): try: token = get_token(request) record = request.get_json() template_name = record['template_name'] subject = record['subject'] body = record['body'] app.service.update(token, template_name, subject, body, template_id) return "", 200 except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/template/<template_id>", methods=['DELETE']) def delete(template_id): try: token = get_token(request) app.service.delete(token, template_id) return "", 200 except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 def get_token(request_): authorization_value = request_.headers.get('Authorization') token = authorization_value[7:] return token return app
import psycopg2 from flask import Flask, render_template, redirect, flash, session import requests from flask.ext.wtf import Form from wtforms import StringField, PasswordField import riotwatcher import atexit app = Flask(__name__) app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT' app.service = 'http://127.0.0.1:5001/api/' key = '1dbf97cc-5028-4196-a05c-6645adc80bef' w = riotwatcher.RiotWatcher(key) @app.route('/') def index(): return render_template("index.html") @app.route('/sign-out') def sign_out(): if 'username' in session: del session['username'] return redirect('/') @app.route('/sign-up', methods=['GET', 'POST']) def sign_up(): class SignUpForm(Form): email = StringField()
def create_app(service): app = Flask(__name__) app.service = service @app.route("/<string:audio_file_type>/<int:audio_file_id>", methods=['PUT']) def updated_audio_file(audio_file_type, audio_file_id): try: app.service.update_audio_file(audio_file_type, audio_file_id, request.get_json()) return "" except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/<string:audio_file_type>/<int:audio_file_id>", methods=['POST']) def create_audio_file(audio_file_type, audio_file_id): try: app.service.add_audio_file(audio_file_type, audio_file_id, request.get_json()) return "" except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/<string:audio_file_type>/<int:audio_file_id>", methods=['GET']) def get_audio_file(audio_file_type, audio_file_id): try: x = app.service.get_file(audio_file_type, audio_file_id) return x except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/<string:audio_file_type>/<int:audio_file_id>", methods=['DELETE']) def delete_audio_file(audio_file_type, audio_file_id): try: app.service.delete_file(audio_file_type, audio_file_id) return "" except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 @app.route("/<string:audio_file_type>", methods=['GET']) def get_audio_files(audio_file_type): try: x = app.service.get_files(audio_file_type) return jsonify(x) except UserInputError as error: return error.args[0], 400 except Exception as error: return error.args[0], 500 return app