Mautic Country handling fix
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 205
- Forks
- 129
- PR merge metrics
- No merged PRs in 30d
Description
Mautic stored the countries in plain text (not iso3)
I wrote a small wrapper to covert the iso3 to the mautic plain text equivalent
` // based on : app/bundles/CoreBundle/Assets/json/countries.json : 2018 May 30
const countries = [
"AFG" => "Afghanistan",
"ALA" => "Åland Islands",
"ALB" => "Albania",
"DZA" => "Algeria",
"AND" => "Andorra",
"AGO" => "Angola",
"AIA" => "Anguilla",
"ATA" => "Antarctica",
"ATG" => "Antigua and Barbuda",
"ARG" => "Argentina",
"ARM" => "Armenia",
"ABW" => "Aruba",
"AUS" => "Australia",
"AUT" => "Austria",
"AZE" => "Azerbaijan",
"BHS" => "Bahamas",
"BHR" => "Bahrain",
"BGD" => "Bangladesh",
"BRB" => "Barbados",
"BLR" => "Belarus",
"BEL" => "Belgium",
"BLZ" => "Belize",
"BEN" => "Benin",
"BMU" => "Bermuda",
"BTN" => "Bhutan",
"BOL" => "Bolivia",
"BES" => "Bonaire Saint Eustatius and Saba",
"BIH" => "Bosnia and Herzegovina",
"BWA" => "Botswana",
"BVT" => "Bouvet Island",
"BRA" => "Brazil",
"BRN" => "Brunei",
"BGR" => "Bulgaria",
"BFA" => "Burkina Faso",
"BDI" => "Burundi",
"CPV" => "Cape Verde",
"KHM" => "Cambodia",
"CMR" => "Cameroon",
"CAN" => "Canada",
"CYM" => "Cayman Islands",
"CAF" => "Central African Republic",
"TCD" => "Chad",
"CHL" => "Chile",
"CHN" => "China",
"COL" => "Colombia",
"COM" => "Comoros",
"COK" => "Cook Islands",
"CRI" => "Costa Rica",
"HRV" => "Croatia",
"CUB" => "Cuba",
"CYP" => "Cyprus",
"CZE" => "Czech Republic",
"DNK" => "Denmark",
"DJI" => "Djibouti",
"DMA" => "Dominica",
"DOM" => "Dominican Republic",
"COG" => "Democratic Republic of the Congo",
"TLS" => "East Timor",
"ECU" => "Ecuador",
"EGY" => "Egypt",
"SLV" => "El Salvador",
"GNQ" => "Equatorial Guinea",
"ERI" => "Eritrea",
"EST" => "Estonia",
"ETH" => "Ethiopia",
"FLK" => "Falkland Islands",
"FJI" => "Fiji",
"FIN" => "Finland",
"FRA" => "France",
"GUF" => "French Guiana",
"PYF" => "French Polynesia",
"GAB" => "Gabon",
"GMB" => "Gambia",
"GEO" => "Georgia",
"DEU" => "Germany",
"GHA" => "Ghana",
"GIB" => "Gibraltar",
"GRC" => "Greece",
"GRL" => "Greenland",
"GRD" => "Grenada",
"GLP" => "Guadeloupe",
"GUM" => "Guam",
"GTM" => "Guatemala",
"GGY" => "Guernsey",
"GIN" => "Guinea",
"GNB" => "Guinea Bissau",
"GUY" => "Guyana",
"HTI" => "Haiti",
"HMD" => "Heard Island and McDonald Islands",
"VAT" => "Holy See",
"HND" => "Honduras",
"HKG" => "Hong Kong",
"HUN" => "Hungary",
"ISL" => "Iceland",
"IND" => "India",
"IDN" => "Indonesia",
"IRN" => "Iran",
"IRQ" => "Iraq",
"IRL" => "Ireland",
"ISR" => "Israel",
"ITA" => "Italy",
"CIV" => "Ivory Coast",
"JAM" => "Jamaica",
"JPN" => "Japan",
"JEY" => "Jersey",
"JOR" => "Jordan",
"KAZ" => "Kazakhstan",
"KEN" => "Kenya",
"KIR" => "Kiribati",
"KWT" => "Kuwait",
"KGZ" => "Kyrgyzstan",
"LAO" => "Laos",
"LVA" => "Latvia",
"LBN" => "Lebanon",
"LSO" => "Lesotho",
"LBR" => "Liberia",
"LBY" => "Libya",
"LIE" => "Liechtenstein",
"LTU" => "Lithuania",
"LUX" => "Luxembourg",
"MAC" => "Macao",
"MKD" => "Macedonia",
"MDG" => "Madagascar",
"MWI" => "Malawi",
"MYS" => "Malaysia",
"MDV" => "Maldives",
"MLI" => "Mali",
"MLT" => "Malta",
"MHL" => "Marshall Islands",
"MTQ" => "Martinique",
"MRT" => "Mauritania",
"MUS" => "Mauritius",
"MYT" => "Mayotte",
"MEX" => "Mexico",
"FSM" => "Micronesia",
"MDA" => "Moldova",
"MCO" => "Monaco",
"MNG" => "Mongolia",
"MNE" => "Montenegro",
"MSR" => "Montserrat",
"MAR" => "Morocco",
"MOZ" => "Mozambique",
"MMR" => "Myanmar",
"NAM" => "Namibia",
"NRU" => "Nauru",
"NPL" => "Nepal",
"NLD" => "Netherlands",
"NCL" => "New Caledonia",
"NZL" => "New Zealand",
"NIC" => "Nicaragua",
"NER" => "Niger",
"NGA" => "Nigeria",
"NIU" => "Niue",
"NFK" => "North Korea",
"MNP" => "Northern Mariana Islands",
"NOR" => "Norway",
"OMN" => "Oman",
"PAK" => "Pakistan",
"PLW" => "Palau",
"PSE" => "Palestine",
"PAN" => "Panama",
"PNG" => "Papua New Guinea",
"PRY" => "Paraguay",
"PER" => "Peru",
"PHL" => "Philippines",
"PCN" => "Pitcairn",
"POL" => "Poland",
"PRT" => "Portugal",
"PRI" => "Puerto Rico",
"QAT" => "Qatar",
"COG_B" => "Republic of the Congo",
"REU" => "Réunion",
"ROU" => "Romania",
"RUS" => "Russia",
"RWA" => "Rwanda",
"BLM" => "Saint Barthelemy",
"SHN" => "Saint Helena Ascension and Tristan da Cunha",
"KNA" => "Saint Kitts and Nevis",
"LCA" => "Saint Lucia",
"MAF" => "Saint Martin",
"SPM" => "Saint Pierre and Miquelon",
"VCT" => "Saint Vincent and the Grenadines",
"WSM" => "Samoa",
"SMR" => "San Marino",
"STP" => "Sao Tome and Principe",
"SAU" => "Saudi Arabia",
"SEN" => "Senegal",
"SRB" => "Serbia",
"SYC" => "Seychelles",
"SLE" => "Sierra Leone",
"SGP" => "Singapore",
"SVK" => "Slovakia",
"SVN" => "Slovenia",
"SLB" => "Solomon Islands",
"SOM" => "Somalia",
"ZAF" => "South Africa",
"SGS" => "South Georgia and the South Sandwich Islands",
"KOR" => "South Korea",
"SDN" => "South Sudan",
"ESP" => "Spain",
"LKA" => "Sri Lanka",
"SJM" => "Svalbard and Jan Mayen",
"SDN_B" => "Sudan",
"SUR" => "Suriname",
"SWZ" => "Swaziland",
"SWE" => "Sweden",
"CHE" => "Switzerland",
"SYR" => "Syria",
"PYF_B" => "Tahiti",
"TWN" => "Taiwan",
"TJK" => "Tajikistan",
"TZA" => "Tanzania",
"THA" => "Thailand",
"TGO" => "Togo",
"TKL" => "Tokelau",
"TON" => "Tonga",
"TTO" => "Trinidad and Tobago",
"TUN" => "Tunisia",
"TUR" => "Turkey",
"TKM" => "Turkmenistan",
"TCA" => "Turks and Caicos Islands",
"TUV" => "Tuvalu",
"GBR" => "United Kingdom",
"USA" => "United States",
"" => "Unknown",
"UGA" => "Uganda",
"UKR" => "Ukraine",
"ARE" => "United Arab Emirates",
"URY" => "Uruguay",
"UZB" => "Uzbekistan",
"VUT" => "Vanuatu",
"VEN" => "Venezuela",
"VNM" => "Vietnam",
"VGB" => "Virgin Islands (British)",
"VIR" => "Virgin Islands (U.S.)",
"WLF" => "Wallis and Futuna",
"ESH" => "Western Sahara",
"YEM" => "Yemen",
"MKD_B" => "Yugoslavia",
"ZMB" => "Zambia",
"ZWE" => "Zimbabwe",
];
public static function toIso3($MauticCountryPlainText)
{
// there are duplicate countries in the list, so we need to normalize that into the ISO3 Codes
$Iso3_temp = array_search(strtolower($MauticCountryPlainText), array_map('strtolower', self::countries) );
if (!$Iso3_temp) {
return "";
}
$Iso3 = str_replace("_B", "", $Iso3_temp );
return $Iso3;
}
public static function toMauticText($Iso3)
{
$Iso3 = strtoupper($Iso3);
if ( !array_key_exists($Iso3, self::countries )) {
return "";
}
return self::countries[$Iso3];
}
`
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the country data referenced in app/bundles/CoreBundle/Assets/json/countries.json and determine where country values enter the api-library. Add coverage for the proposed ISO3/plain-text conversions, including duplicate-country handling, and consider the work done when both conversion methods return the expected values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100