Skip to content

Commit

Permalink
Created a base api-version-one endpoint router with the /api/v1 prefix
Browse files Browse the repository at this point in the history
  • Loading branch information
Armolas committed Jul 21, 2024
1 parent fa66d69 commit 9fe47dd
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 21 deletions.
12 changes: 1 addition & 11 deletions alembic/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 11 additions & 0 deletions api/v1/models/__init__.py
Original file line number Diff line number Diff line change
@@ -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
10 changes: 10 additions & 0 deletions api/v1/routes/__init__.py
Original file line number Diff line number Diff line change
@@ -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)
2 changes: 1 addition & 1 deletion api/v1/routes/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions api/v1/routes/newsletter_router.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions api/v1/routes/roles.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 2 additions & 5 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -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)



Expand Down

0 comments on commit 9fe47dd

Please sign in to comment.