Private/Complete-KadenOpenJournal.ps1
|
function Complete-KadenOpenJournal { <# .SYNOPSIS Mark an open journal completed and retain it for 30 days. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)] $OpenJournal, $Operations ) $journal = $OpenJournal.Journal $completed = [ordered]@{} foreach ($prop in @($journal.PSObject.Properties)) { $completed[$prop.Name] = $prop.Value } $completed['status'] = 'completed' $completed['operations'] = @($Operations) $completed['cleanupEligibleAtUtc'] = [datetime]::UtcNow.AddDays(30).ToString('o') Write-KadenJsonAtomic -LiteralPath $OpenJournal.Path -Object $completed $txnDir = Split-Path -Parent $OpenJournal.Path foreach ($name in @('staging', 'backup')) { $dir = Join-Path $txnDir $name if (Test-Path -LiteralPath $dir) { Remove-Item -LiteralPath $dir -Recurse -Force } } } |