Public/Get-SyncHrLocation.ps1

function Get-SyncHrLocation
{
    [CmdletBinding(PositionalBinding=$false)]
    param
    (
        [Parameter(Mandatory=$true)][object[]]$PersonDataInput,
        [Parameter(Mandatory=$true)][hashtable]$AuthHeader,
        [Parameter(Mandatory=$false)][string]$BaseUrl = 'https://clients.synchr.com/synchr'
    )

    if ($AuthHeader.Authorization -notmatch 'SHR apiKey') {
        Write-Log -LogText "Invalid AuthHeader. Use Get-SyncHrAuthHeader first."
        throw "Invalid AuthHeader. Use Get-SyncHrAuthHeader first."
        return
    }

    try
    {

        $url = "$BaseUrl/api/1.0/location/list"

        Write-Log -LogText "Getting SyncHr Locations >> $url"

        $response = Invoke-RestMethod -Method Get -Uri $url -Headers $AuthHeader -ContentType 'application/json' -Verbose:$false
        $locations = $response.location

        Write-Log -LogText "Locations returned: $($locations.Count)"

        if ($locations.Count -lt 1)
        {
            return $PersonDataInput
        }

        foreach ($emp in $PersonDataInput)
        {
            if ($emp.emplStatusDescription -eq 'Active Employee')
            {
                $location = $locations | ? {$_.locationCode -eq $emp.locationCode}

                if ($location)
                {
                    $emp.location_name = $location.locationDescription
                    $emp.location_street = @($location.streetAddress, $location.streetAddress2, $location.streetAddress3, $location.streetAddress4) -join ' '
                    $emp.location_city = $location.city
                    $emp.location_state = $location.stateProvinceCode
                    $emp.location_zip = $location.postalCode
                    $emp.location_country = $location.countryCode
                }
                else 
                {
                    Write-Log -LogText "No valid location found in SyncHr for >> $($emp.fName) $($emp.lName) $($emp.empNo) >> LocationCode: ""$($emp.loctionCode)""" -LogType warning
                }
            }
        }

        return $PersonDataInput

    }
    catch
    {
        Write-Log "Unhandled exception" -LogType: error -ErrorObject $_
        throw $_
    }

}