Functions/Common/ConnectionObjectRequests.ps1
function New-RsWebServiceProxyHelper { <# .SYNOPSIS Internal helper function. Facilitates generating WebProxy objects. .DESCRIPTION Internal helper function. Facilitates generating WebProxy objects. It accepts all bound parameters of the calling function and processes the following keys: - ReportServerUri - Credential - Proxy - APIVersion These parameters are passed on to the New-RsWebServiceProxy function, unless Proxy was specified. If the bound parameters contain the proxy parameter, the function will return that object. All other bound parameters are ignored. .PARAMETER BoundParameters The bound parameters of the calling function .EXAMPLE $Proxy = New-RsWebServiceProxyHelper -BoundParameters $PSBoundParameters Generates or retrieves a proxy object for the reporting services web api. #> [CmdletBinding()] Param ( [AllowNull()] [object] $BoundParameters ) if ($BoundParameters["Proxy"]) { return $BoundParameters["Proxy"] } $goodKeys = @("ReportServerUri", "Credential", "ApiVersion") $NewRsWebServiceProxyParam = @{ } foreach ($key in $BoundParameters.Keys) { if ($goodKeys -contains $key) { $NewRsWebServiceProxyParam[$key] = $BoundParameters[$key] } } New-RsWebServiceProxy @NewRsWebServiceProxyParam } function New-RsRestSessionHelper { <# .SYNOPSIS Internal helper function. Facilitates generating Rest Session objects. .DESCRIPTION Internal helper function. Facilitates generating Rest Session objects. It accepts all bound parameters of the calling function and processes the following keys: - ReportPortalUri - Credential - WebSession These parameters are passed on to the New-RsRestSession function, unless WebSession was specified. If the bound parameters contain the WebSession parameter, the function will return that object. All other bound parameters are ignored. .PARAMETER BoundParameters The bound parameters of the calling function .EXAMPLE $RsRestWebSession = New-RsRestSessionHelper -BoundParameters $PSBoundParameters Generates or retrieves a WebSession object for the reporting services REST api. #> [CmdletBinding()] Param ( [AllowNull()] [object] $BoundParameters ) if ($BoundParameters["WebSession"]) { return $BoundParameters["WebSession"] } $goodKeys = @("ReportPortalUri", "RestApiVersion", "Credential") $NewRsRestSessionParams = @{ } foreach ($key in $BoundParameters.Keys) { if ($goodKeys -contains $key) { $NewRsRestSessionParams[$key] = $BoundParameters[$key] } } New-RsRestSession @NewRsRestSessionParams } function Get-RsPortalUriHelper { <# .SYNOPSIS Internal helper function. Facilitates determining the Portal Uri from WebSession object. .DESCRIPTION Internal helper function. Facilitates determining the Portal Uri from WebSession object. .PARAMETER WebSession The WebSession object returned from executing New-RsRestSession command. .EXAMPLE $reportPortalUri = Get-RsPortalUriHelper -WebSession $mySession Retrieves the Portal Uri for which this web session was created. #> [CmdletBinding()] Param ( [AllowNull()] [Microsoft.PowerShell.Commands.WebRequestSession] $WebSession ) if ($WebSession -ne $null) { $reportPortalUri = $WebSession.Headers['X-RSTOOLS-PORTALURI'] if (![String]::IsNullOrEmpty($reportPortalUri)) { if ($reportPortalUri -notlike '*/') { $reportPortalUri = $reportPortalUri + '/' } return $reportPortalUri } } throw "Invalid WebSession specified! Please specify a valid WebSession or run New-RsRestSession to create a new one." } function New-RsConfigurationSettingObjectHelper { <# .SYNOPSIS Internal helper function. Facilitates generating wmi objects. .DESCRIPTION Internal helper function. Facilitates generating wmi objects. It accepts all bound parameters of the calling function and processes the following keys: - ReportServerInstance - ReportServerVersion - ComputerName - Credential - MinimumReportServerVersion These parameters are passed on to the New-RsConfigurationSettingObject function. All other bound parameters are ignored. .PARAMETER BoundParameters The bound parameters of the calling function .EXAMPLE $rsWmiObject = New-RsConfigurationSettingObjectHelper -BoundParameters $PSBoundParameters Generates or retrieves a wmi object for administrating a Report Server. #> [CmdletBinding()] Param ( [AllowNull()] [object] $BoundParameters ) $goodKeys = @("SqlServerInstance", "ReportServerInstance", "SqlServerVersion", "ReportServerVersion", "ComputerName", "Credential", "MinimumSqlServerVersion", "MinimumReportServerVersion") $NewRsConfigurationSettingObjectParam = @{ } foreach ($key in $BoundParameters.Keys) { if ($goodKeys -contains $key) { $NewRsConfigurationSettingObjectParam[$key] = $BoundParameters[$key] } } New-RsConfigurationSettingObject @NewRsConfigurationSettingObjectParam } |