Implement task 006 site config versioning and audit events
This commit is contained in:
@@ -8,7 +8,9 @@ from src.application.site_config import (
|
||||
activate_script_config_version,
|
||||
create_script_config_version,
|
||||
create_target_site,
|
||||
get_target_site,
|
||||
list_script_config_versions,
|
||||
rollback_script_config_version,
|
||||
update_target_site,
|
||||
)
|
||||
from src.domain.auth import ADMIN_ROLES, EDITOR_OR_ADMIN_ROLES
|
||||
@@ -36,6 +38,18 @@ def list_sites(
|
||||
return [TargetSiteConfigResponse(site=site) for site in repository.target_sites.list()]
|
||||
|
||||
|
||||
@router.get("/sites/{site_id}", response_model=TargetSiteConfigResponse)
|
||||
def get_site(
|
||||
site_id: UUID,
|
||||
_: CurrentUser = Depends(require_roles(EDITOR_OR_ADMIN_ROLES)),
|
||||
repository: BackendRepository = Depends(get_repository),
|
||||
) -> TargetSiteConfigResponse:
|
||||
try:
|
||||
return get_target_site(repository, site_id)
|
||||
except LookupError as error:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Not Found") from error
|
||||
|
||||
|
||||
@router.post(
|
||||
"/sites",
|
||||
response_model=TargetSiteConfigResponse,
|
||||
@@ -107,7 +121,7 @@ def post_script_config_version(
|
||||
def post_activate_script_config_version(
|
||||
site_id: UUID,
|
||||
version_id: UUID,
|
||||
_: CurrentUser = Depends(require_roles(ADMIN_ROLES)),
|
||||
current_user: CurrentUser = Depends(require_roles(ADMIN_ROLES)),
|
||||
repository: BackendRepository = Depends(get_repository),
|
||||
) -> ScriptConfigVersionResponse:
|
||||
try:
|
||||
@@ -115,6 +129,28 @@ def post_activate_script_config_version(
|
||||
repository,
|
||||
site_id=site_id,
|
||||
version_id=version_id,
|
||||
current_user=current_user,
|
||||
)
|
||||
except LookupError as error:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Not Found") from error
|
||||
|
||||
|
||||
@router.post(
|
||||
"/sites/{site_id}/publishing-config/versions/{version_id}/rollback",
|
||||
response_model=ScriptConfigVersionResponse,
|
||||
)
|
||||
def post_rollback_script_config_version(
|
||||
site_id: UUID,
|
||||
version_id: UUID,
|
||||
current_user: CurrentUser = Depends(require_roles(ADMIN_ROLES)),
|
||||
repository: BackendRepository = Depends(get_repository),
|
||||
) -> ScriptConfigVersionResponse:
|
||||
try:
|
||||
return rollback_script_config_version(
|
||||
repository,
|
||||
site_id=site_id,
|
||||
version_id=version_id,
|
||||
current_user=current_user,
|
||||
)
|
||||
except LookupError as error:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Not Found") from error
|
||||
|
||||
Reference in New Issue
Block a user