From 9fe47dd5626d52bd212ad6feb9a95444eb49fee5 Mon Sep 17 00:00:00 2001 From: Armolas Date: Sun, 21 Jul 2024 15:11:52 +0100 Subject: [PATCH] Created a base api-version-one endpoint router with the /api/v1 prefix --- alembic/env.py | 12 +----------- api/v1/models/__init__.py | 11 +++++++++++ api/v1/routes/__init__.py | 10 ++++++++++ api/v1/routes/auth.py | 2 +- api/v1/routes/newsletter_router.py | 4 ++-- api/v1/routes/roles.py | 4 ++-- main.py | 7 ++----- 7 files changed, 29 insertions(+), 21 deletions(-) diff --git a/alembic/env.py b/alembic/env.py index 4b5f85a08..b1edd398b 100644 --- a/alembic/env.py +++ b/alembic/env.py @@ -3,18 +3,8 @@ from sqlalchemy import pool from alembic import context from decouple import config as decouple_config -from api.v1.models.user import User, WaitlistUser -from api.v1.models.org import Organization -from api.v1.models.profile import Profile -from api.v1.models.product import Product +from api.v1.models import * from api.v1.models.base import Base -from api.v1.models.subscription import Subscription -from api.v1.models.blog import Blog -from api.v1.models.job import Job -from api.v1.models.invitation import Invitation -from api.v1.models.role import Role -from api.v1.models.permission import Permission -from api.v1.models.newsletter import NEWSLETTER # this is the Alembic Config object, which provides diff --git a/api/v1/models/__init__.py b/api/v1/models/__init__.py index e69de29bb..48535591c 100644 --- a/api/v1/models/__init__.py +++ b/api/v1/models/__init__.py @@ -0,0 +1,11 @@ +from api.v1.models.user import User, WaitlistUser +from api.v1.models.org import Organization +from api.v1.models.profile import Profile +from api.v1.models.product import Product +from api.v1.models.subscription import Subscription +from api.v1.models.blog import Blog +from api.v1.models.job import Job +from api.v1.models.invitation import Invitation +from api.v1.models.role import Role +from api.v1.models.permission import Permission +from api.v1.models.newsletter import NEWSLETTER diff --git a/api/v1/routes/__init__.py b/api/v1/routes/__init__.py index e69de29bb..7707fcbc6 100644 --- a/api/v1/routes/__init__.py +++ b/api/v1/routes/__init__.py @@ -0,0 +1,10 @@ +from fastapi import APIRouter +from api.v1.routes.auth import auth +from api.v1.routes.roles import role +from api.v1.routes.newsletter_router import newsletter + +api_version_one = APIRouter(prefix="/api/v1") + +api_version_one.include_router(auth) +api_version_one.include_router(role) +api_version_one.include_router(newsletter) diff --git a/api/v1/routes/auth.py b/api/v1/routes/auth.py index 7944de4b6..48f6f659d 100644 --- a/api/v1/routes/auth.py +++ b/api/v1/routes/auth.py @@ -30,7 +30,7 @@ db = next(get_db()) -auth = APIRouter(prefix="/api/v1/auth", tags=["auth"]) +auth = APIRouter(prefix="/auth", tags=["auth"]) ACCESS_TOKEN_EXPIRE_MINUTES = 30 diff --git a/api/v1/routes/newsletter_router.py b/api/v1/routes/newsletter_router.py index 2ec6d7121..dafc19828 100644 --- a/api/v1/routes/newsletter_router.py +++ b/api/v1/routes/newsletter_router.py @@ -34,9 +34,9 @@ async def custom_exception_handler(request: Request, exc: CustomException): } ) -router = APIRouter() +newsletter = APIRouter(prefix='/pages', tags=['Newsletter']) -@router.post('/api/v1/pages/newsletter', tags=['Newsletter']) +@newsletter.post('/newsletter') async def sub_newsletter(request: EMAILSCHEMA, db: Session = Depends(get_db)): """ Newsletter subscription endpoint diff --git a/api/v1/routes/roles.py b/api/v1/routes/roles.py index e5695857b..1f3b935ca 100644 --- a/api/v1/routes/roles.py +++ b/api/v1/routes/roles.py @@ -16,9 +16,9 @@ from api.v1.models.permission import Permission from api.utils.dependencies import get_current_admin -role = APIRouter(prefix="/api/v1", tags=["Roles"]) +role = APIRouter(prefix="/roles", tags=["Roles"]) -@role.post("/roles", response_model=ResponseModel, status_code=status.HTTP_201_CREATED) +@role.post("/", response_model=ResponseModel, status_code=status.HTTP_201_CREATED) def create_role(current_admin: Annotated[User, Depends(get_current_admin)], role: RoleCreate, db: Session = Depends(get_db)): db_role = db.query(Role).filter(Role.role_name == role.role_name).first() if db_role: diff --git a/main.py b/main.py index 1c3c3502c..04306e300 100644 --- a/main.py +++ b/main.py @@ -6,14 +6,12 @@ from starlette.requests import Request from api.db.database import Base, engine -from api.v1.routes.newsletter_router import router as newsletter from api.v1.routes.newsletter_router import ( CustomException, custom_exception_handler ) -from api.v1.routes.auth import auth -from api.v1.routes.roles import role +from api.v1.routes import api_version_one Base.metadata.create_all(bind=engine) @@ -37,9 +35,8 @@ async def lifespan(app: FastAPI): ) app.add_exception_handler(CustomException, custom_exception_handler) # Newsletter custom exception registration -app.include_router(newsletter, tags=["Newsletter"]) -app.include_router(auth) +app.include_router(api_version_one)