Coverage for hookee/plugins/blueprint_default.py: 100.00%
31 statements
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-06 15:08 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-06 15:08 +0000
1from flask import Blueprint, request
3from hookee.pluginmanager import BLUEPRINT_PLUGIN, PluginManager
4from hookee.util import PrintUtil
6__author__ = "Alex Laird"
7__copyright__ = "Copyright 2022, Alex Laird"
8__version__ = "2.0.7"
10blueprint = Blueprint("default", __name__)
11plugin_type = BLUEPRINT_PLUGIN
12description = "Mount required management endpoints along with the default `/webhook` endpoint that processes incoming " \
13 "requests with enabled plugins."
15plugin_manager = None # type: PluginManager
16print_util = None # type: PrintUtil
19def setup(hookee_manager):
20 global plugin_manager, print_util
22 plugin_manager = hookee_manager.plugin_manager
23 print_util = hookee_manager.print_util
26@blueprint.route("/webhook",
27 methods=["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS", "TRACE", "CONNECT"])
28def webhook():
29 print_util.print_close_header(delimiter="=", color=print_util.request_color)
31 print_util.print_open_header("Request", delimiter="-", color=print_util.request_color)
33 plugin_manager.run_request_plugins(request)
35 print_util.print_open_header("Response", color=print_util.request_color)
37 response = plugin_manager.run_response_plugins(request)
39 print_util.print_close_header("=", color=print_util.request_color)
40 print_util.print_basic()
42 return response
45@blueprint.route("/status")
46def status():
47 return "", 200
50@blueprint.route("/shutdown", methods=["POST"])
51def shutdown():
52 request.environ.get("werkzeug.server.shutdown")()
54 return "", 204