feat: minimum working comments app
Python Lint CI / ty (push) Successful in 58s
TS Lint / ESLint (push) Successful in 58s
Python Lint CI / ruff (push) Successful in 58s
Python Lint CI / ruff-format-check (push) Successful in 58s
TS Lint / TypeScript (push) Successful in 3m28s
TS Lint / Oxlint (push) Successful in 3m28s

This commit is contained in:
2026-07-01 18:19:25 +02:00
parent c93a74b0f4
commit 92d2e7c3a0
7 changed files with 143 additions and 14 deletions
+19 -1
View File
@@ -1,9 +1,11 @@
import logging
import typing
import flask
import gunicorn.app.base
from app import PKG_NAME
from app.models.comment import Comment
if typing.TYPE_CHECKING:
from app.params import Parameters
@@ -21,6 +23,7 @@ class Server(gunicorn.app.base.BaseApplication):
PKG_NAME, static_folder="dist/assets", template_folder="dist"
)
self._index_content: str | None = None
self.logger: logging.Logger = logging.getLogger(self.__class__.__name__)
super().__init__()
def register_routes(self) -> typing.Self:
@@ -28,6 +31,16 @@ class Server(gunicorn.app.base.BaseApplication):
def index() -> str:
return flask.render_template("index.html")
@self.app.route("/api/comments", methods=["GET"])
async def get_comments() -> list:
return await Comment.all().order_by("created_at").values()
@self.app.route("/api/comments", methods=["POST"])
async def post_comment() -> tuple[str, int]:
data = flask.request.get_json()
await Comment.create(content=data["content"])
return ("", 204)
return self
@typing.override
@@ -48,5 +61,10 @@ class Server(gunicorn.app.base.BaseApplication):
self.run()
else:
self.app.run(
host=self.bind, port=self.port, debug=self.debug, load_dotenv=False
host=self.bind,
port=self.port,
debug=self.debug,
load_dotenv=False,
use_evalex=False,
use_reloader=False,
)