21 lines
725 B
Python
21 lines
725 B
Python
from fastapi import HTTPException, status
|
|
|
|
from app.repositories.scheme_versions import get_current_scheme_version
|
|
from app.repositories.schemes import get_scheme_record_by_scheme_id
|
|
|
|
|
|
async def get_current_draft_context(scheme_id: str):
|
|
scheme = await get_scheme_record_by_scheme_id(scheme_id)
|
|
version = await get_current_scheme_version(
|
|
scheme_id=scheme.scheme_id,
|
|
current_version_number=scheme.current_version_number,
|
|
)
|
|
|
|
if version.status != "draft" or scheme.status != "draft":
|
|
raise HTTPException(
|
|
status_code=status.HTTP_409_CONFLICT,
|
|
detail="Current scheme version is not editable because it is not in draft state",
|
|
)
|
|
|
|
return scheme, version
|