fix: moved services initialization to main

This commit is contained in:
Piotr Dec 2026-04-14 02:27:31 +02:00
parent 59c5844f5b
commit a50df466d0
Signed by: stawros
GPG key ID: 74B18A3F0F1E99C0
3 changed files with 7 additions and 8 deletions

View file

@ -8,8 +8,6 @@ from starlette.responses import JSONResponse, Response
from karl.api.models import Request
from karl.core.injects import AutowireSupport
from karl.core.reload import ReloadService
from karl.core.woodpecker import Woodpecker
from karl.model.webhook import WoodpeckerEvent, ReloadEvent
router = APIRouter()
@ -22,8 +20,6 @@ async def root():
@cbv(router)
class APIv1:
woodpecker: Woodpecker = Depends(AutowireSupport.woodpecker)
reload: ReloadService = Depends(AutowireSupport.reload)
bus: EventBus = Depends(AutowireSupport.bus)
def __init__(self):
@ -42,7 +38,7 @@ class APIv1:
await self.bus.dispatch(mapper.map(request))
return Response(status_code=201)
@router.get("/reload", summary="Manual service reload", response_model=None)
@router.get("/reload", summary="Manual service reload")
async def reload(self, service: str = None) -> Response:
if service is None:
return Response(status_code=400)

View file

@ -19,6 +19,7 @@ class ReloadService:
self._bus = bus
self._git = GitService()
bus.on(ReloadEvent, self.on_reload)
logger.info("ReloadService initialized.")
async def on_reload(self, event: ReloadEvent):
logger.info(f"Received ReloadEvent: {event.service}")

View file

@ -3,6 +3,7 @@ import logging
from fastapi import FastAPI
from injectable import load_injection_container
from core.injects import AutowireSupport
from karl.config import get_settings
from karl.util.logging import HandlerFactory
@ -15,7 +16,7 @@ class KarlApplication:
_app = FastAPI(title="Karl", version="0.1.0")
self._set_middlewares(_app)
self._set_routes(_app)
self._set_events(_app)
self._init_services(_app)
self._app = _app
@ -55,8 +56,9 @@ class KarlApplication:
app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"])
pass
def _set_events(self, app: FastAPI):
pass
def _init_services(self, app: FastAPI):
AutowireSupport.reload()
AutowireSupport.woodpecker()
def run():