From 1d7c4c2dfdbe3fbefbaa5feb75eb243e93b653e6 Mon Sep 17 00:00:00 2001 From: Piotr Dec Date: Tue, 21 Oct 2025 17:50:53 +0200 Subject: [PATCH] Mappings & processing WIP --- app/api/v1.py | 5 ++++- app/core/core.py | 6 +++++- app/model/webhook.py | 2 +- pyproject.toml | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/api/v1.py b/app/api/v1.py index e628d1f..d6355fb 100644 --- a/app/api/v1.py +++ b/app/api/v1.py @@ -1,3 +1,4 @@ +from automapper import mapper from fastapi import APIRouter, Depends from fastapi_utils.cbv import cbv from starlette.responses import JSONResponse, Response @@ -5,6 +6,7 @@ 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.model.webhook import WebhookEvent router = APIRouter() @@ -20,8 +22,9 @@ class APIv1: @router.get("/health", summary="Health check") async def health(self) -> JSONResponse: - return JSONResponse({"status": "ok"}) + return JSONResponse({"status": self.webhook_service.health}) @router.post("/ci", summary="CI Webhook") async def ci(self, request: Request): + self.webhook_service.process_ci_event(mapper.to(WebhookEvent).map(request)) return Response(status_code=201) diff --git a/app/core/core.py b/app/core/core.py index 9e3acec..a7096d2 100644 --- a/app/core/core.py +++ b/app/core/core.py @@ -3,10 +3,11 @@ from typing import Annotated from injectable import injectable, autowired, Autowired from app.model.healthcheck import HealthCheck +from app.model.webhook import WebhookEvent from app.services import DockerService, GitService, Passwords -# @injectable +@injectable class WebhookProcessor: @autowired def __init__(self, docker: Annotated[DockerService, Autowired], @@ -16,6 +17,9 @@ class WebhookProcessor: self._git = git self._keepass = keepass + def process_ci_event(self, event: WebhookEvent): + pass + @property def health(self) -> HealthCheck: return HealthCheck( diff --git a/app/model/webhook.py b/app/model/webhook.py index 70470b2..da9ad8d 100644 --- a/app/model/webhook.py +++ b/app/model/webhook.py @@ -3,7 +3,7 @@ from typing import List @dataclass -class WebhookRequest: +class WebhookEvent: _id: str commit: str message: str diff --git a/pyproject.toml b/pyproject.toml index c4e6d55..9b97797 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,7 @@ dependencies = [ "pykeepass>=4.1.1.post1", "docker>=7.1.0", "injectable==4.0.1", + "py-automapper>=2.2.0", ] [project.optional-dependencies]