feat(): push notifications via firebase admin

This commit is contained in:
doas root
2025-11-20 21:25:48 +03:00
parent c010984d64
commit fa24f4060f
22 changed files with 706 additions and 3 deletions
+8 -2
View File
@@ -8,15 +8,17 @@ from contextlib import asynccontextmanager
from pathlib import Path
from typing import Final
import firebase_admin # type: ignore[import-untyped]
import uvicorn
from dishka import AsyncContainer
from dishka.integrations.fastapi import setup_dishka
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from firebase_admin import credentials
from template_project.web_api.configuration import load_configuration
from template_project.web_api.configuration import Configuration, load_configuration
from template_project.web_api.ioc.make import make_ioc
from template_project.web_api.routes import auth, healthcheck, profile
from template_project.web_api.routes import auth, healthcheck, notification, profile
LOG_CONFIG: Final = {
"version": 1,
@@ -41,6 +43,9 @@ LOG_CONFIG: Final = {
@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncIterator[None]:
configuration: Configuration = app.state.dishka_container.context[Configuration]
cred = credentials.Certificate(configuration.firebase.certificate_path)
firebase_admin.initialize_app(cred)
yield
await app.state.dishka_container.close()
@@ -66,6 +71,7 @@ def make_asgi_application(
app.include_router(auth.router)
app.include_router(healthcheck.router)
app.include_router(profile.router)
app.include_router(notification.router)
setup_dishka(container=ioc, app=app)