plugins/FundraisingBox/Public/fb/Get-Person.ps1
function Get-Person { [CmdletBinding(DefaultParameterSetName = 'OnePage')] param ( [Parameter(Mandatory=$true, ParameterSetName = 'Single')] # [Parameter(Mandatory=$true, ParameterSetName = 'AllPages')] [Int] $Id #,[Parameter(Mandatory=$false, ParameterSetName = 'OnePage')][Int] $SkipToken = 0 ,[Parameter(Mandatory=$false, ParameterSetName = 'OnePage')][Int] $First = 10 ,[Parameter(Mandatory=$false, ParameterSetName = 'AllPages')] [Switch] $All = $false ) begin { # Create params Switch ( $PSCmdlet.ParameterSetName ) { # Single record 'Single' { $params = [Hashtable]@{ "Object" = "persons/$( $Id )" "Method" = "GET" "Paging" = $False } break } # All pages 'AllPages' { $params = [Hashtable]@{ "Object" = "persons" "Method" = "GET" "Paging" = $True } break } # Single page Default { $params = [Hashtable]@{ "Object" = "persons" "Method" = "GET" "Paging" = $False "Pagesize" = $First } } } } process { # add verbose flag, if set If ( $PSBoundParameters["Verbose"].IsPresent -eq $true ) { $params.Add("Verbose", $true) } # Request fields $persons = Invoke-FrBox @params # return $persons } end { } } |