From 99976484f93693e7c14ba80cda09ffc40594fb56 Mon Sep 17 00:00:00 2001 From: Samuel Guillemet <samuel.guillemet@telecom-sudparis.eu> Date: Fri, 21 Jul 2023 15:17:45 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20IMPROVE:=20Use=20load=5Fmodules?= =?UTF-8?q?=20to=20load=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/api/v1/api.py | 8 ++------ src/app/api/v1/endpoints/__init__.py | 3 --- src/app/api/v1/endpoints/webhook.py | 14 +++++++------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/app/api/v1/api.py b/src/app/api/v1/api.py index ec2de71..e8beeab 100644 --- a/src/app/api/v1/api.py +++ b/src/app/api/v1/api.py @@ -1,15 +1,11 @@ """ API v1 router. """ -import importlib - from fastapi import APIRouter from app.api.v1 import endpoints +from app.utils.load_submodules import load_submodules -endpoints_module = [ - importlib.import_module(f"app.api.v1.endpoints.{module}") - for module in endpoints.__all__ -] +endpoints_module = load_submodules(endpoints) api_v1_router = APIRouter() diff --git a/src/app/api/v1/endpoints/__init__.py b/src/app/api/v1/endpoints/__init__.py index aef3ae2..e69de29 100644 --- a/src/app/api/v1/endpoints/__init__.py +++ b/src/app/api/v1/endpoints/__init__.py @@ -1,3 +0,0 @@ -from . import webhook - -__all__ = ["webhook"] diff --git a/src/app/api/v1/endpoints/webhook.py b/src/app/api/v1/endpoints/webhook.py index e9369b0..28decba 100644 --- a/src/app/api/v1/endpoints/webhook.py +++ b/src/app/api/v1/endpoints/webhook.py @@ -18,12 +18,6 @@ logger = logging.getLogger("app.api.v1.webhook") router = APIRouter(tags=["webhook"], prefix="/webhook") -# Common responses for the error cases. -responses = { - 403: {"description": "Webhook signature verification failed.", "model": ErrorModel}, - 501: {"description": "Webhook event not supported.", "model": ErrorModel}, -} - # Load all webhook components and create a list of tuples containing # the event name, handler function, and response model. components_tuple: list[ @@ -44,7 +38,13 @@ components_tuple: list[ response_model=Union[ tuple(response_model for _, _, response_model in components_tuple) # type: ignore ], - responses={**responses}, + responses={ + 403: { + "description": "Webhook signature verification failed.", + "model": ErrorModel, + }, + 501: {"description": "Webhook event not supported.", "model": ErrorModel}, + }, ) async def webhook_route(webhook_event: BaseWebhookEvent): """ -- GitLab