diff --git a/address_utils/address_utils.go b/address_utils/address_utils.go index f8c5556b68cb4daae53d889fc3a8730260fd22fe..3144653f7efa4215eede709a6ec2837744781a7e 100644 --- a/address_utils/address_utils.go +++ b/address_utils/address_utils.go @@ -72,3 +72,70 @@ func stripUnwantedCharacters(s string) string { return s } + +func CleanZone(oldCountry, oldZone *string) (newCountry, newZone *string) { + // Google zones + /* + "long_name": "KwaZulu-Natal", + "short_name": "KZN", + + "long_name": "Gauteng", + "short_name": "GP", + + "long_name": "Free State", + "short_name": "FS", + + "long_name": "Limpopo", + "short_name": "LP", + + "long_name": "Mpumalanga", + "short_name": "MP", + + "long_name": "North West", + "short_name": "NW", + + "long_name": "Western Cape", + "short_name": "WC", + + "long_name": "Eastern Cape", + "short_name": "EC", + + "long_name": "Northern Cape", + "short_name": "NC", + */ + + newCountry = oldCountry + if oldCountry == nil || *oldCountry == "South Africa" || len(*oldCountry) == 0 { + defaultCountry := "ZA" + newCountry = &defaultCountry + } + + if *newCountry == "ZA" && oldZone != nil { + zone := *oldZone + // Gauteng - GT from uAfrica should be GP for Google + if zone == "GT" { + zone = "GP" + } else if zone == "NT" { + zone = "KZN" + } + + zone = string_utils.ReplaceCaseInsensitive(zone, "KwaZulu-Natal", "KZN") + zone = string_utils.ReplaceCaseInsensitive(zone, "KwaZulu Natal", "KZN") + zone = string_utils.ReplaceCaseInsensitive(zone, "Gauteng", "GP") + zone = string_utils.ReplaceCaseInsensitive(zone, "Freestate", "FS") + zone = string_utils.ReplaceCaseInsensitive(zone, "Free State", "FS") + zone = string_utils.ReplaceCaseInsensitive(zone, "Limpopo", "LP") + zone = string_utils.ReplaceCaseInsensitive(zone, "Mpumalanga", "MP") + zone = string_utils.ReplaceCaseInsensitive(zone, "North West", "NW") + zone = string_utils.ReplaceCaseInsensitive(zone, "Eastern Cape", "EC") + zone = string_utils.ReplaceCaseInsensitive(zone, "Western Cape", "WC") + zone = string_utils.ReplaceCaseInsensitive(zone, "Northern Cape", "NC") + zone = string_utils.ReplaceCaseInsensitive(zone, "Eastern-Cape", "EC") + zone = string_utils.ReplaceCaseInsensitive(zone, "Western-Cape", "WC") + zone = string_utils.ReplaceCaseInsensitive(zone, "Northern-Cape", "NC") + + newZone = &zone + } + + return +}