From 5f80a7a86f2de03397e6260477a6d93bcf4f7cae Mon Sep 17 00:00:00 2001 From: Brian Wiborg Date: Wed, 5 Nov 2025 21:29:25 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20model-free=20apps=20and=20?= =?UTF-8?q?middleware=20installer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ohmyapi/core/runtime.py | 17 +++++++++++------ src/ohmyapi/middleware/cors.py | 10 +++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/ohmyapi/core/runtime.py b/src/ohmyapi/core/runtime.py index 8fedc3c..dea8d78 100644 --- a/src/ohmyapi/core/runtime.py +++ b/src/ohmyapi/core/runtime.py @@ -342,9 +342,9 @@ class App: except ModuleNotFoundError: return - getter = getattr(mod, "get", None) - if getter is not None: - for middleware in getter(): + installer = getattr(mod, "install", None) + if installer is not None: + for middleware in installer(): self._middlewares.append(middleware) def __serialize_route(self, route): @@ -404,10 +404,15 @@ class App: """ Convenience method for serializing the runtime data. """ + # An app may come without any models + models = [] + if f"{self.name}.models" in self._models: + models = [ + f"{self.name}.{m.__name__}" + for m in self._models[f"{self.name}.models"] + ] return { - "models": [ - f"{self.name}.{m.__name__}" for m in self._models[f"{self.name}.models"] - ], + "models": models, "middlewares": self.__serialize_middleware(), "routes": self.__serialize_router(), } diff --git a/src/ohmyapi/middleware/cors.py b/src/ohmyapi/middleware/cors.py index 49852cd..77d49b6 100644 --- a/src/ohmyapi/middleware/cors.py +++ b/src/ohmyapi/middleware/cors.py @@ -15,12 +15,12 @@ CORS_CONFIG: Dict[str, Any] = getattr(settings, "MIDDLEWARE_CORS", {}) if not isinstance(CORS_CONFIG, dict): raise ValueError("MIDDLEWARE_CORS must be of type dict") -middleware = [ - (CORSMiddleware, { +middleware = ( + CORSMiddleware, + { "allow_origins": CORS_CONFIG.get("ALLOW_ORIGINS", DEFAULT_ORIGINS), "allow_credentials": CORS_CONFIG.get("ALLOW_CREDENTIALS", DEFAULT_CREDENTIALS), "allow_methods": CORS_CONFIG.get("ALLOW_METHODS", DEFAULT_METHODS), "allow_headers": CORS_CONFIG.get("ALLOW_HEADERS", DEFAULT_HEADERS), - }), -] - + } +)