Public/Get-HuduCompanies.ps1

function Get-HuduCompanies {
    [CmdletBinding()]
    Param (
        [String]$Name = '',
        [Alias("phone_number")]
        [String]$PhoneNumber = '',
        [String]$Website = '',
        [String]$City = '',
        [String]$State = '',
        [Alias("id_in_integration")]
        [Int]$IdInIntegration = '',
        [Int]$Id = ''
    
    )


    if ($Id) {
        $Company = Invoke-HuduRequest -Method get -Resource "/api/v1/companies/$Id"
        return $Company
    } else {
    
        $ResourceFilter = ''
    
        if ($Name) {
            $ResourceFilter = "$($ResourceFilter)&name=$($Name)"
        }
    
        if ($PhoneNumber) {
            $ResourceFilter = "$($ResourceFilter)&phone_number=$($PhoneNumber)"
        }
    
        if ($Website) {
            $ResourceFilter = "$($ResourceFilter)&website=$($Website)"
        }
    
        if ($City) {
            $ResourceFilter = "$($ResourceFilter)&city=$($City)"
        }
    
        if ($City) {
            $ResourceFilter = "$($ResourceFilter)&state=$($City)"
        }
    
        if ($IdInIntegration) {
            $ResourceFilter = "$($ResourceFilter)&id_in_integration=$($IdInIntegration)"
        }
    
    
    
        $i = 1;
        $AllCompanies = do {
            $Companies = Invoke-HuduRequest -Method get -Resource "/api/v1/companies?page=$i&page_size=1000$($ResourceFilter)"
            $i++
            $Companies.Companies
        } while ($Companies.Companies.count % 1000 -eq 0 -and $Companies.Companies.count -ne 0)
        
            
        return $AllCompanies
    
    }
}