SkierPGP/Skier

View on GitHub
init.py

Summary

Maintainability
B
6 hrs
Test Coverage
import threading

from flask import render_template

import cfg

def init(app):
    from skier import frontend
    from skier import pgpapi
    from skier import pks
    from cfg import API_VERSION
    from skier import pgpactions

    if not cfg.cfg.config.features.disable_frontend:
        app.register_blueprint(frontend.frontend)
        app.register_blueprint(frontend.frontend_keys, url_prefix="/keys")
    app.register_blueprint(pgpapi.pgpapi, url_prefix="/api/v{}".format(API_VERSION))
    app.register_blueprint(pks.legacypks, url_prefix="/pks")

    app.config["SQLALCHEMY_DATABASE_URI"] = cfg.sqlalchemy_uri

    app.jinja_env.globals.update(theme = cfg.cfg.config.theme)

    @app.before_first_request
    def f(*args, **kwargs):
        if cfg.cfg.config.pool_enabled.autosync:
            threading.Thread(target=pgpactions.synch_keys).start()

    @app.errorhandler(404)
    def four_oh_four(error):
        if not cfg.cfg.config.features.disable_frontend:
            return render_template("error/404.html"), 404
        else:
            return "Not Found", 404

    @app.errorhandler(403)
    def four_oh_three(error):
        if not cfg.cfg.config.features.disable_frontend:
            return render_template("error/403.html"), 403
        else:
            return "Forbidden", 403

    @app.errorhandler(500)
    def five_oh_oh(error):
        if not cfg.cfg.config.features.disable_frontend:
            return render_template("error/500.html"), 500
        else:
            return "Internal Server Error", 500

    @app.route("/skier")
    def skier():
        return "", 200