Functions/Get-DqChecks.ps1
Function Get-DqChecks { <# .SYNOPSIS Deze functie haalt alle controles op uit een DQ Monitor Webservice. .DESCRIPTION De Get-DqChecks functie haalt een lijst op van controles die bekend zijn bij de DQ Monitor Webservice. Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext. .PARAMETER CustomOnly Optioneel: Indicatie dat alleen een lijst met eigen gemaakte controles van de klant opgehaald moeten worden. .PARAMETER IncludeStatement Optioneel: Indicatie dat ook het T-SQL statement opgehaald moet worden. Deze flag werkt alleen in combinatie met 'CustomOnly'. .INPUTS Geen. .OUTPUTS Array met JSON objecten die controles representeren. .EXAMPLE PS> Get-DqChecks {} .EXAMPLE PS> Get-DqChecks -CustomOnly {} .LINK Set-DqContext #> [OutputType([Array])] [CmdletBinding()] Param( [Parameter(Mandatory=$False)] [Switch] $CustomOnly, [Parameter(Mandatory=$False)] [Switch] $IncludeStatement ) Validate-Context If ($CustomOnly.IsPresent -and $CustomOnly) { Write-Verbose "Ophalen aanwezige klantencontroles van DQ Monitor API..." } Else { Write-Verbose "Ophalen alle controles van DQ Monitor API..." } $Response = Invoke-WebRequest -UseBasicParsing -Uri $DqContext.GetCheckControllerUrl() -Method Get -Header $DqContext.Headers -ErrorAction Stop $Checks = $Response.Content | ConvertFrom-Json | Select -ExpandProperty Checks If ($CustomOnly.IsPresent -and $CustomOnly) { $CustomChecks = @($Checks | Where-Object { $_.IsCustom -eq $True }) Write-Verbose "Totaal $($Checks.Count) controle(s) gevonden waarvan $($CustomChecks.Count) klantencontrole(s)." $Checks = $CustomChecks If ($IncludeStatement.IsPresent -and $IncludeStatement) { Write-Verbose "T-SQL statements worden ook opgehaald voor de lijst van klantencontroles..." ForEach($Check in $Checks) { $Response = Invoke-WebRequest -UseBasicParsing -Uri "$($DqContext.GetCheckControllerUrl())/$($Check.Id)" -Method Get -Header $DqContext.Headers -ErrorAction Stop $CheckDetailed = $Response.Content | ConvertFrom-Json | Select -ExpandProperty Check $Check.Statement = $CheckDetailed.Statement } } } Else { Write-Verbose "$($Checks.Count) controle(s) gevonden." } Return [Array] ($Checks | Sort-Object { $_.Name }) } |