diff --git a/.gitignore b/.gitignore index 790a54f..b85bc8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .idea *.iml uv.lock +**/*.kdbx* __pycache__/ **/dist/ diff --git a/app/core/__init__.py b/app/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/core/core.py b/app/core/core.py new file mode 100644 index 0000000..bb6cad4 --- /dev/null +++ b/app/core/core.py @@ -0,0 +1,28 @@ +from app.model.healthcheck import HealthCheck +from app.services import DockerService, GitService, Passwords + + +class WebhookProcessor: + def __init__(self): + try: + self._docker = DockerService() + except Exception as e: + self._docker = None + print(e) + try: + self._git = GitService() + except Exception as e: + self._git = None + print(f"{type(e).__name__}: {e}") + try: + self._keepass = Passwords() + except Exception as e: + self._keepass = None + print(e) + + @property + def health(self) -> HealthCheck: + return HealthCheck( + self._docker is not None and self._git is not None and self._keepass is not None, + f"Docker: {self._docker is not None}, Git: {self._git is not None}, KeePass: {self._keepass is not None}" + ) diff --git a/app/main.py b/app/main.py index bb425d1..4b13b8a 100644 --- a/app/main.py +++ b/app/main.py @@ -4,6 +4,7 @@ from jinja2 import Environment, FileSystemLoader, select_autoescape from app.api.v1 import router as api_v1_router from app.config import get_settings +from app.core.core import WebhookProcessor # Inicjalizacja Jinja2 templates_env = Environment( @@ -15,6 +16,10 @@ app = FastAPI(title="Karl", version="0.1.0") # Rejestracja routera API pod /api/v1 app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"]) +# app.add_event_handler() + +webhook_service = WebhookProcessor() +print(webhook_service.health) # Przykładowy endpoint HTML diff --git a/app/model/healthcheck.py b/app/model/healthcheck.py new file mode 100644 index 0000000..ac483f3 --- /dev/null +++ b/app/model/healthcheck.py @@ -0,0 +1,7 @@ +from dataclasses import dataclass + + +@dataclass +class HealthCheck: + healthy: bool + message: str diff --git a/app/services/__init__.py b/app/services/__init__.py index e69de29..febb742 100644 --- a/app/services/__init__.py +++ b/app/services/__init__.py @@ -0,0 +1,5 @@ +from .containers import DockerService +from .passwords import Passwords +from .vcs import GitService + +__all__ = ["GitService", "Passwords", "DockerService"] diff --git a/config/secret.txt b/config/secret.txt new file mode 100644 index 0000000..b5f9078 --- /dev/null +++ b/config/secret.txt @@ -0,0 +1 @@ +supersecret