59 lines
2.2 KiB
Python
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) |