diff --git a/app/api/v1/web.py b/app/api/v1/web.py index a7636fc..a75a8e5 100644 --- a/app/api/v1/web.py +++ b/app/api/v1/web.py @@ -1,8 +1,9 @@ -from fastapi import APIRouter, Request +import logging +from fastapi import APIRouter, Request, Form from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates -from app.core.parsers.obsidian import parse_training_data +from app.core.parsers.obsidian import ObsidianNotesParser, parse_training_data from app.core.templates.templates import BaseTemplateResponse web_router = APIRouter() @@ -26,3 +27,21 @@ async def obsidian_list(request: Request): return template_renderer.render( request=request, template_name="trainings.html", context={"trainings": data} ) + + +@web_router.get("/obsidian/parse", response_class=HTMLResponse) +async def obsidian_parse_form(request: Request): + return template_renderer.render( + request=request, template_name="obsidian/parser.html", context={"trainings": {}} + ) + + +@web_router.post("/obsidian/parse", response_class=HTMLResponse) +async def obsidian_parse(request: Request, training_data: str = Form(...)): + logging.error(training_data) + op = ObsidianNotesParser() + result = op.parse(data=training_data) + logging.error(result) + return template_renderer.render( + request=request, template_name="trainings.html", context={"trainings": result} + ) diff --git a/app/templates/obsidian/parser.html b/app/templates/obsidian/parser.html new file mode 100644 index 0000000..3f96a04 --- /dev/null +++ b/app/templates/obsidian/parser.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block content %} +

Parse training data

+
+
+ + +
+ +
+{% if result %} +
+

Result:

+
{{ result }}
+
+{% endif %} +{% endblock %}