CI events flow simplified
This commit is contained in:
parent
29dfc13a48
commit
34ee5f8754
7 changed files with 59 additions and 174 deletions
|
|
@ -4,10 +4,9 @@ from fastapi_utils.cbv import cbv
|
|||
from starlette.responses import JSONResponse, Response
|
||||
|
||||
from app.api.models import Request
|
||||
from app.core.core import WebhookProcessor
|
||||
from app.core.injects import AutowireSupport
|
||||
from app.events import SimpleEventBus
|
||||
from app.model.webhook import WebhookEvent
|
||||
from app.core.woodpecker import Woodpecker
|
||||
from app.model.webhook import WoodpeckerEvent
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
|
@ -19,22 +18,21 @@ async def root():
|
|||
|
||||
@cbv(router)
|
||||
class APIv1:
|
||||
webhook_service: WebhookProcessor = Depends(AutowireSupport.webhook_processor)
|
||||
event_bus: SimpleEventBus = Depends(AutowireSupport.event_bus)
|
||||
woodpecker: Woodpecker = Depends(AutowireSupport.woodpecker)
|
||||
logger = __import__('logging').getLogger(__name__)
|
||||
|
||||
def __init__(self):
|
||||
try: # TODO: rejestracja w innym miejscu: klasa jest przeładowywana co żądanie
|
||||
mapper.add(Request, WebhookEvent)
|
||||
try: # TODO: rejestracja w innym miejscu: klasa jest przeładowywana co żądanie
|
||||
mapper.add(Request, WoodpeckerEvent)
|
||||
except exceptions.DuplicatedRegistrationError:
|
||||
pass
|
||||
|
||||
@router.get("/health", summary="Health check")
|
||||
async def health(self) -> JSONResponse:
|
||||
# TODO: JSON serialize
|
||||
return JSONResponse({"status": self.webhook_service.health.healthy})
|
||||
return JSONResponse({"status": "unknown"})
|
||||
|
||||
@router.post("/ci", summary="CI Webhook")
|
||||
async def ci(self, request: Request):
|
||||
self.event_bus.publish(mapper.map(request))
|
||||
self.woodpecker.on_ci_event(mapper.map(request))
|
||||
return Response(status_code=201)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue