fmartingr
/
jeeves
Archived
1
0
Fork 0
This repository has been archived on 2021-02-14. You can view files and clone it, but cannot push or open issues or pull requests.
jeeves/jeeves/server/app.py

42 lines
1.1 KiB
Python

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/<int:flow_id>")
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)