import os from quart import Quart, redirect, request, jsonify import jinja2 from jeeves.core.parsers import FlowParser app = Quart(__name__) jinja2_env = jinja2.Environment(loader=jinja2.FileSystemLoader("/home/fmartingr/Code/jeeves/jeeves/server/frontend/templates")) FLOWS = [] DATA_FOLDER = "~/Code/jeeves/_data" for rootname, dirnames, filenames in os.walk(DATA_FOLDER): for filename in filenames: _zz, extension = os.path.splitext(os.path.join(rootname, filename)) if extension == '.yaml': FLOWS.append(FlowParser.from_yaml(open(os.path.join(rootname, filename), "rb").read())) @app.route("/healthz") async def healthz_view(): return "ok" @app.route("/") async def home(): return redirect("/flows") @app.route("/flows") async def list_flows(): template = jinja2_env.get_template("flows/list.j2") return template.render(flows=FLOWS) @app.route("/flows/") async def flow_detail(flow_id): flow = list(filter(lambda flow: flow.id == flow_id, FLOWS))[0] template = jinja2_env.get_template("flows/task-list.j2") return template.render(flow=flow)