From b0ce091283db9b0be892a2f9a03f8c230b24b1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?France=CC=81=20Wilke?= <francewilke@gmail.com> Date: Fri, 12 Nov 2021 06:58:54 +0200 Subject: [PATCH] Add shared `CleanZone` to map zone name/codes --- address_utils/address_utils.go | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/address_utils/address_utils.go b/address_utils/address_utils.go index f8c5556..3144653 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 +} -- GitLab