Skip to content

Commit 2b0181a

Browse files
committed
Add necessary files
1 parent 2efb6cb commit 2b0181a

File tree

13 files changed

+75
-1
lines changed

13 files changed

+75
-1
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from fastapi import Request, Response
2+
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
3+
4+
5+
class AuthMiddleware(BaseHTTPMiddleware):
6+
"""Middleware that is responsible for authenticating the user"""
7+
8+
async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
9+
"""Authenticates the user"""
10+
# TODO: Implement authentication here
11+
response = await call_next(request)
12+
return response
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from fastapi import Request, Response
2+
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
3+
4+
5+
class ExceptionMiddleware(BaseHTTPMiddleware):
6+
"""Catches exceptions and returns the appropriate response/error code"""
7+
8+
async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
9+
"""Catches exceptions and returns the appropriate response/error code"""
10+
# TODO: Implement exception handling here
11+
response = await call_next(request)
12+
return response
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from fastapi import Request, Response
2+
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
3+
4+
5+
class LoggerMiddleware(BaseHTTPMiddleware):
6+
"""Middleware that logs the request and response"""
7+
8+
async def dispatch(self, request: Request, call_next: RequestResponseEndpoint) -> Response:
9+
"""Logs the request and response"""
10+
# TODO: Add logging here
11+
response = await call_next(request)
12+
return response

gs/backend/api/setup.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,35 @@
11
from fastapi import FastAPI
22

3+
from gs.backend.api.middleware.auth_middleware import AuthMiddleware
34
from gs.backend.api.middleware.cors_middleware import add_cors_middleware
5+
from gs.backend.api.middleware.exception_middleware import ExceptionMiddleware
6+
from gs.backend.api.middleware.logger_middleware import LoggerMiddleware
7+
from gs.backend.api.v1.aro.endpoints.picture_requests import picture_requests_router
8+
from gs.backend.api.v1.aro.endpoints.user import aro_user_router
9+
from gs.backend.api.v1.mcc.endpoints.aro_requests import aro_requests_router
10+
from gs.backend.api.v1.mcc.endpoints.commands import commands_router
11+
from gs.backend.api.v1.mcc.endpoints.telemetry import telemetry_router
412

513

614
def setup_routes(app: FastAPI) -> None:
715
"""Adds the routes to the app"""
16+
version_1 = "/api/v1"
17+
18+
# ARO routes
19+
aro_prefix = f"{version_1}/aro"
20+
app.include_router(aro_user_router, prefix=f"{aro_prefix}/user")
21+
app.include_router(picture_requests_router, prefix=f"{aro_prefix}/requests")
22+
23+
# MCC routes
24+
mcc_prefix = f"{version_1}/mcc"
25+
app.include_router(commands_router, prefix=f"{mcc_prefix}/commands")
26+
app.include_router(telemetry_router, prefix=f"{mcc_prefix}/telemetry")
27+
app.include_router(aro_requests_router, prefix=f"{mcc_prefix}/requests")
828

929

1030
def setup_middlewares(app: FastAPI) -> None:
1131
"""Adds the middlewares to the app"""
12-
add_cors_middleware(app)
32+
add_cors_middleware(app) # Cors middleware should be added first
33+
app.add_middleware(AuthMiddleware)
34+
app.add_middleware(LoggerMiddleware)
35+
app.add_middleware(ExceptionMiddleware)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from fastapi import APIRouter
2+
3+
picture_requests_router = APIRouter(tags=["ARO", "Picture Requests"])
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from fastapi import APIRouter
2+
3+
aro_user_router = APIRouter(tags=["ARO", "User Information"])

gs/backend/api/v1/aro/models/requests.py

Whitespace-only changes.

gs/backend/api/v1/aro/models/responses.py

Whitespace-only changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from fastapi import APIRouter
2+
3+
aro_requests_router = APIRouter(tags=["MCC", "ARO Requests"])
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from fastapi import APIRouter
2+
3+
commands_router = APIRouter(tags=["MCC", "Commands"])

0 commit comments

Comments
 (0)