Source code for fasjson.web.base_routes
import re
import ldap
from flask import current_app, jsonify, url_for
from flask_healthz import HealthError
[docs]
def root():
blueprints = sorted(
[name for name in current_app.blueprints if re.match("^v[0-9]+$", name)],
key=lambda name: int(name[1:]),
)
apis = [
{
"version": int(name[1:]),
"uri": url_for(f"{name}.root", _external=True),
"specs": url_for(f"{name}.specs", _external=True),
"docs": url_for(f"{name}.doc", _external=True),
}
for name in blueprints
]
return jsonify({"message": "Welcome to FASJSON", "apis": apis})
[docs]
def readiness():
"""Readiness Health Check"""
try:
client = ldap.initialize(current_app.config["FASJSON_LDAP_URI"])
client.simple_bind_s()
except ldap.SERVER_DOWN as e:
raise HealthError("LDAP server is down") from e