Files
saas_backend/app/routes/admin/module_environments.py
T

59 lines
2.2 KiB
Python

from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from typing import List
from app.config.database import get_db
from app.middleware.auth_middleware import get_current_user, require_access, User
from app.schemas.auth.module_environment_schema import EnvironmentCreate, EnvironmentUpdate, EnvironmentResponse
from app.controllers.auth.module_environment_controller import ModuleEnvironmentController
router = APIRouter()
@router.get("/{module_id}/environments", response_model=List[EnvironmentResponse])
def list_environments(
module_id: str,
current_user: User = Depends(get_current_user),
_: bool = Depends(require_access("modules.view")),
db: Session = Depends(get_db)
):
return ModuleEnvironmentController.list_environments(db, module_id)
@router.post("/{module_id}/environments", response_model=EnvironmentResponse)
def create_environment(
module_id: str,
env_data: EnvironmentCreate,
current_user: User = Depends(get_current_user),
_: bool = Depends(require_access("modules.manage")),
db: Session = Depends(get_db)
):
return ModuleEnvironmentController.create_environment(db, module_id, env_data)
@router.put("/{module_id}/environments/{env_id}", response_model=EnvironmentResponse)
def update_environment(
module_id: str,
env_id: str,
env_data: EnvironmentUpdate,
current_user: User = Depends(get_current_user),
_: bool = Depends(require_access("modules.manage")),
db: Session = Depends(get_db)
):
return ModuleEnvironmentController.update_environment(db, module_id, env_id, env_data)
@router.patch("/{module_id}/environments/{env_id}/default")
def set_default_environment(
module_id: str,
env_id: str,
current_user: User = Depends(get_current_user),
_: bool = Depends(require_access("modules.manage")),
db: Session = Depends(get_db)
):
return ModuleEnvironmentController.set_default_environment(db, module_id, env_id)
@router.delete("/{module_id}/environments/{env_id}")
def delete_environment(
module_id: str,
env_id: str,
current_user: User = Depends(get_current_user),
_: bool = Depends(require_access("modules.manage")),
db: Session = Depends(get_db)
):
return ModuleEnvironmentController.delete_environment(db, module_id, env_id)