From 14397c110d394c32a9442a33d1740dea6e7036bb Mon Sep 17 00:00:00 2001
From: Augusto Herrmann <augusto+github@herrmann.tech>
Date: Thu, 3 Oct 2024 23:55:59 -0300
Subject: [PATCH] Use lifespan instead of event handler to remove deprecation
 warning

---
 src/api.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/api.py b/src/api.py
index d699676..fcdc36d 100644
--- a/src/api.py
+++ b/src/api.py
@@ -1,6 +1,7 @@
 """Definição das rotas, endpoints e seu comportamento na API.
 """
 
+from contextlib import asynccontextmanager
 from datetime import timedelta
 import json
 import os
@@ -42,20 +43,20 @@
 
     description = environment_msg + description
 
+@asynccontextmanager
+async def lifespan(app: FastAPI):
+    """Executa as rotinas de inicialização da API."""
+    await create_db_and_tables()
+    await crud_auth.init_user_admin()
+    yield
+
 app = FastAPI(
     title="Plataforma de recebimento de dados do Programa de Gestão - PGD",
     description=description,
     version=os.getenv("TAG_NAME", "dev-build") or "dev-build",
+    lifespan=lifespan,
 )
 
-
-@app.on_event("startup")
-async def on_startup():
-    """Executa as rotinas de inicialização da API."""
-    await create_db_and_tables()
-    await crud_auth.init_user_admin()
-
-
 @app.middleware("http")
 async def check_user_agent(request: Request, call_next):
     user_agent = request.headers.get("User-Agent", None)