internal/functions/Send-File.ps1
function Send-File { <# .SYNOPSIS Uploads File. .DESCRIPTION Uploads File and checks whether file is available online afterwards. .PARAMETER File File which should be uploaded. .PARAMETER RoomID RoomID - Imported from standard config (Connect-Dracoon) .PARAMETER UploadURL Upload URL generated by Open-UploadChannel .EXAMPLE Send-File -File $PDF -RoomID $RoomID -UploadURL $uploadURL Uploads file with mandatory parameters. #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.IO.FileInfo] $File, [Parameter(Mandatory = $true)] [String] $RoomID, [Parameter(Mandatory = $true)] [String] $UploadURL ) try { $null = Invoke-RestMethod $UploadUrl -ContentType "application/octet-stream" -Method Post -InFile $File.FullName -ErrorAction Stop } catch { throw } # Check, ob Datei vorhanden $parameter = @{ "depth_level" = "-1" #Bei der Einstellung -1 wird der ganze Ast ab der Stelle "parent_id" nach unten durchsucht "search_string" = $File.BaseName filter = "type:eq:file" "parent_id" = $RoomID #Das ist der Raum, in dem auf DRACOON die Testergebnisse abgelegt werden } $AccountUrl = $APIUrl + "/v4/nodes/search" try { $Response = Invoke-WebRequest -URI $AccountUrl -Method Get -ContentType "application/json" -Headers @{Authorization = ("Bearer {0}" -f $Token) } -Body $parameter -ErrorAction Stop $content = ConvertFrom-Json $Response.content -ErrorAction Stop } catch { throw } $inhalt = $content.items $status = @($inhalt).count switch ($status) { 0 { Write-PSFMessage -Level Warning -Message "FEHLER: Dokument $($File.FullName) konnte nicht hochgeladen werden!!" -Target $File throw "FEHLER: Dokument $($File.FullName) konnte nicht hochgeladen werden!!" } 1 { Write-PSFMessage -Message "Dokument $($File.FullName) wurde erfolgreich hochgeladen!" -Target $File } 2 { Write-PSFMessage -Level Host -Message "Dokument $($File.FullName) liegt doppelt vor! Bitte prüfen" -Target $File } Default { Write-PSFMessage -Level Host -Message "Dokument $($File.FullName) liegt mehr als zwei mal vor! Bitte prüfen" -Target $File } } } |