from sanic import Sanic from sanic.response import json, empty from elasticsearch_dsl.connections import connections from elasticsearch_dsl import Search from models.status import Status # ElasticSearch connections.create_connection(hosts=["localhost"]) Status.init() app = Sanic("status-app") @app.route("/") async def test(req): return json({"hello": "world"}) @app.get("/statuses") async def get_statuses(req): s = Search(index="status_index") statuses = s.execute().to_dict()["hits"]["hits"] return json(statuses, indent=2) @app.post("/status") async def add_status(req): new_status = Status(title=req.json.get("title"), text=req.json.get("text")) new_status.save() return json({}, status=201)