Private/NestedFunctions/Invoke-JCApiGet.ps1

Function Invoke-JCApiGet
{ 
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory = $true, Position = 0)][ValidateNotNullOrEmpty()][string]$Url,
        [Parameter(Mandatory = $false, Position = 1)][ValidateNotNullOrEmpty()][int]$Limit = 100
    )
    $Skip = 0
    $UriQueryString_Template = '{0}{1}limit={2}&skip={3}'
    $Results_Output = @()
    $PaginationExist = $true
    If ($Url -like '*`?*')
    {
        $SearchOperator = '&'
    }
    Else
    {
        $SearchOperator = '?'
    }
    While ($PaginationExist)
    {
        $Uri = $UriQueryString_Template -f $Url, $SearchOperator, $Limit, $Skip
        Write-Debug ('Calling Uri: ' + $Uri)
        $Results = Invoke-RestMethod -Method:('GET') -Headers:($hdrs) -Uri:($Uri)
        If ($Results)
        {
            $Skip += $Results.Count
            $Results_Output += $Results
            If ($Results.Count -le 1)
            {
                $PaginationExist = $false
            }
        }
        Else
        {
            $PaginationExist = $false
        }
    }
    If ($Results_Output)
    {
        Return $Results_Output
    }
}