Private/Test-ReturnFilter.ps1
function Test-ReturnFilter($object,$location,$result) { # The Test-ReturnFilter function is used to perform a search across response content for a particular value # $object = The parent function's variable holding the user generated query data # $location = The key/value pair that contains the name of the key holding the data to filter through # $result = The unfiltered API response content # For when a location is one layer deep if ($object -and $location.split('.').count -eq 1) { # The $object check assumes that not all filters will be used in each call # If it does exist, the results are filtered using the $object's value against the $location's key name # Example: Filtering an SLA Domain Name based on the "effectiveSlaDomainName" key/value pair return $result | Where-Object -FilterScript { $_.$location -eq $object } } # For when a location is two layers deep elseif ($object -and $location.split('.').count -eq 2) { # The $object check assumes that not all filters will be used in each call # If it does exist, the results are filtered using the $object's value against the $location's key name # Example: Filtering an SLA Domain Name based on the "effectiveSlaDomainName" key/value pair return $result | Where-Object -FilterScript { $_.($location.split('.')[0]).($location.split('.')[-1]) -eq $object } } else { # When no $location is found, return the original $result return $result } } |