Public/FlagTypes/Get-HuduFlagType.ps1
|
<#
.SYNOPSIS Retrieves one or more flag types from the connected Hudu instance. .DESCRIPTION With -Id, retrieves a single flag type by ID, returning $null instead of throwing if the ID doesn't exist (Hudu responds with an HTTP 404 in that case). Without -Id, retrieves every flag type matching the supplied filters, across all pages. Hudu matches the filters exactly. .PARAMETER Id ID of a single flag type to retrieve. .PARAMETER Name Filters results to the flag type with exactly the given name. .PARAMETER Color Filters results to flag types with exactly the given color. .PARAMETER Slug Filters results to the flag type with exactly the given URL slug. .EXAMPLE Get-HuduFlagType Returns every flag type. .EXAMPLE Get-HuduFlagType -Name 'Critical Issue' Returns the flag type named 'Critical Issue'. .OUTPUTS Boyles.PowerShell.Hudu.Models.HuduFlagType .OUTPUTS Boyles.PowerShell.Hudu.Models.HuduFlagType[] #> function Get-HuduFlagType { [CmdletBinding(DefaultParameterSetName = 'All')] [OutputType([Boyles.PowerShell.Hudu.Models.HuduFlagType])] [OutputType([Boyles.PowerShell.Hudu.Models.HuduFlagType[]])] param ( [Parameter(Mandatory, ParameterSetName = 'Single')] [ValidateRange(1, [int]::MaxValue)] [int] $Id, [Parameter(ParameterSetName = 'All')] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(ParameterSetName = 'All')] [ValidateNotNullOrEmpty()] [string] $Color, [Parameter(ParameterSetName = 'All')] [ValidateNotNullOrEmpty()] [string] $Slug ) $client = Get-HuduClientInternal if ($PSCmdlet.ParameterSetName -eq 'Single') { try { [Boyles.PowerShell.Hudu.Models.HuduFlagType] $flagType = $Client.GetFlagType($Id) return $flagType } catch { $message = $_.Exception.Message if ($message -like '*HTTP 404*') { return $null # ID wasn't found. Hudu returns a 404 error } else { throw $_ } } } $query = ConvertTo-RequestQuery -BoundParameters $PSBoundParameters -ParameterMetadata $MyInvocation.MyCommand.Parameters | ConvertTo-StringDictionary Write-Verbose "QUERY = $($query | ConvertTo-Json)" [Boyles.PowerShell.Hudu.Models.HuduFlagType[]] $results = $client.GetFlagTypes($query) return $results } |