Adapters/EBE/EBE.ps1
|
function Get-CrossroadsEBEData { [CmdletBinding()] param( [Parameter(Mandatory)][string[]]$SqlFile, [Parameter(Mandatory)][ValidateNotNullOrWhiteSpace()][string]$ConnectionString, [hashtable]$Parameters = @{}, [ValidateRange(1, 3600)][int]$Timeout = 60 ) foreach ($row in Get-CrossroadsSqlData -SqlFile $SqlFile -ConnectionString $ConnectionString -Parameters $Parameters -Timeout $Timeout) { if ("$($row.document_id)" -cnotmatch '^[1-9][0-9]*$') { throw 'Invalid EBE document ID.' } $row | Add-Member -NotePropertyMembers @{ document_id = "$($row.document_id)"; order_number = "$($row.order_number)" bol_number = "$($row.bol_number)"; indexed_at = $row.indexed_at file_name = "EBE-$($row.document_id).pdf" } -Force $row } } # The portal login and PDF fetch live in the ShipsDocuments module; these keep the adapter's # names and parameters so document consumers do not change. function New-CrossroadsEBESession { [CmdletBinding()] param( [Parameter(Mandatory)][ValidateNotNullOrWhiteSpace()][string]$BaseUrl, [Parameter(Mandatory)][pscredential]$Credential, [ValidateRange(1, 3600)][int]$TimeoutSec = 20 ) New-ShipsSession -BaseUrl $BaseUrl -Credential $Credential -TimeoutSec $TimeoutSec } function Read-CrossroadsEBEDocument { [CmdletBinding()] param( [Parameter(Mandatory)][ValidateRange(1, [long]::MaxValue)][long]$DocumentId, [Parameter(Mandatory)]$Session, [ValidateRange(1, 3600)][int]$TimeoutSec = 20 ) ,(Get-ShipsDocument -DocumentId $DocumentId -Session $Session -TimeoutSec $TimeoutSec) } |