UpgradeWizard/Invoke-TFSAPIUW.ps1
function Invoke-TFSAPIUW { Param( [Parameter(Mandatory=$true)] [string]$Url, [Parameter(Mandatory=$false)] [string]$HttpMethod = 'Get', [Parameter(Mandatory=$false)] [string]$HttpContent, [Parameter(Mandatory=$false)] [switch]$GetContents, [Parameter(Mandatory=$false)] [string]$NoRaw ) $Headers = Create-HttpHeaders if ($Url.Substring(0,1) -eq '/') { $Url = $Url.Substring(1) } if ($Url.Substring(0,4) -ne 'http') { $TFSUrl = '{0}{1}' -f (Get-TFSConfigKeyValue 'collectionUrl'), $Url } else { $TFSUrl = $Url } $TempPath = (Join-Path $env:TEMP ([System.Guid]::NewGuid().ToString() + ".TXT")) try { switch ($HttpMethod) { 'Get' { if ($GetContents) { Invoke-RestMethod -Method Get -Headers $Headers -Uri $TFSUrl -OutFile $TempPath if($NoRaw -eq '') {$Result = Get-Content $TempPath -Raw} else {$Result = Get-Content $TempPath} [io.file]::Delete($TempPath) $Result } else { Invoke-RestMethod -Method Get -Headers $Headers -Uri $TFSUrl } } 'Put' { Invoke-RestMethod -Method Put -Headers $Headers -Uri $TFSUrl -Body $HttpContent } } } catch { 'WebServiceError' } } Export-ModuleMember -Function Invoke-TFSAPIUW |