Files
content-ingestion-agent/app/publication.py

13 lines
662 B
Python

from .kab_ingestion.domain.models import IngestionResult, SourceDocument
from .kab_ingestion.ports.cms import CMSConnector
from .governance import review
def publish_document(document: SourceDocument, cms: CMSConnector | None, enabled: bool, require_approval: bool) -> IngestionResult:
decision = review(document, require_approval)
if not decision.approved:
return IngestionResult(document, False, "rejected", decision.reason)
if not enabled or cms is None:
return IngestionResult(document, True, "validated", "publication disabled")
return IngestionResult(document, True, "published", published_url=str(cms.publish(document)))