Public/ImportBatches.ps1
#Import Batches Function Get-TMImportBatch { param( [Parameter(Mandatory = $false)][PSObject]$TMSession = 'Default', [Parameter(Mandatory = $false)][int]$BatchId ) ## Get Session Configuration $TMSession = Get-TMSession $TMSession if (-not $TMSession) { Write-Host 'TMSession: [' -NoNewline Write-Host $TMSession -ForegroundColor Cyan Write-Host '] was not Found. Please use the New-TMSession command.' Throw "TM Session Not Found. Use New-TMSession command before using features." } #Honor SSL Settings $TMCertSettings = @{SkipCertificateCheck = $TMSession.AllowInsecureSSL } ## Construct the server URI $Instance = $TMSession.TMServer.Replace('/tdstm', '') $instance = $instance.Replace('https://', '') $instance = $instance.Replace('http://', '') ## Handle the URL Creation based on the TM Version if ($TMSession.TMVersion.Major -eq 4) { $uri = "https://$Instance/tdstm/module/importbatch/$($BatchId ? $BatchId : "list")" } elseif ($TMSession.TMVersion.Major -eq 5) { $uri = "https://$Instance/tdstm/ws/import/batches" } else { $uri = "https://$Instance/tdstm/ws/import/batches" } ## Attempt the Request try { $response = Invoke-WebRequest -Method Get -Uri $uri -WebSession $TMSession.TMWebSession @TMCertSettings if ($response.StatusCode -eq 200) { $Result = ($response.Content | ConvertFrom-Json).data } return @($Result) } catch { throw $_ } } #Import Batch Records Function Get-TMImportBatchRecord { param( [Parameter(Mandatory = $false)][PSObject]$TMSession = 'Default', [Parameter(Mandatory = $true)][int]$BatchId, [Parameter(Mandatory = $false)][int]$RecordId ) ## Get Session Configuration $TMSession = Get-TMSession $TMSession if (-not $TMSession) { Write-Host 'TMSession: [' -NoNewline Write-Host $TMSession -ForegroundColor Cyan Write-Host '] was not Found. Please use the New-TMSession command.' Throw "TM Session Not Found. Use New-TMSession command before using features." } #Honor SSL Settings $TMCertSettings = @{SkipCertificateCheck = $TMSession.AllowInsecureSSL } ## Construct the server URI $Instance = $TMSession.TMServer.Replace('/tdstm', '') $instance = $instance.Replace('https://', '') $instance = $instance.Replace('http://', '') ## Check version 4 if ($TMSession.TMVersion -like '4*') { ## TODO Get the 4.7 Web Service URI for this $uri = "https://$Instance/tdstm/module/importbatch/$($BatchId ? $BatchId : "list")" } else { if (-not $RecordId) { ## Get a List of the records if no specific record was requested $uri = "https://$Instance/tdstm/ws/import/batch/$($BatchId)/records" } else { ## Get a specific record $uri = "https://$Instance/tdstm/ws/import/batch/$($BatchId)/record/$($RecordId)" } } ## Attempt the Request try { $response = Invoke-WebRequest -Method Get -Uri $uri -WebSession $TMSession.TMWebSession @TMCertSettings if ($response.StatusCode -eq 200) { $Result = ($response.Content | ConvertFrom-Json).data } return @($Result) } catch { throw $_ } } Function Start-TMImportBatch { param( [Parameter(Mandatory = $false)][PSObject]$TMSession = 'Default', [Parameter(Mandatory = $true)][int[]]$BatchId ) ## Get Session Configuration $TMSession = Get-TMSession $TMSession if (-not $TMSession) { Write-Host 'TMSession: [' -NoNewline Write-Host $TMSession -ForegroundColor Cyan Write-Host '] was not Found. Please use the New-TMSession command.' Throw "TM Session Not Found. Use New-TMSession command before using features." } ## Construct the server URI $uri = "https://$($TMSession.TMServer)/tdstm/ws/import/batches" $PatchBody = @{ action = "QUEUE" ids = $BatchId } | ConvertTo-Json ## Attempt the Request try { $response = Invoke-WebRequest -Method Patch -Body $PatchBody -Uri $uri -WebSession $TMSession.TMWebSession @TMCertSettings if ($response.StatusCode -eq 200) { $Result = $response.Content | ConvertFrom-Json if ($Result.status -ne 'Success') { throw $Result.errors } } } catch { throw $_ } } |