getcountryByRegionalBloc static method

Future<List<Country>> getcountryByRegionalBloc(
  1. String regiaonBlocName, {
  2. CountryFilter? filter,
})

Search by regional bloc: EU, EFTA, CARICOM, AU, USAN, EEU, AL, ASEAN , CAIS, CEFTA , NAFTA , SAARC.

Future<List<Country>> getCountriesByContinent(){
 try{
   List<Country> result = await CountryProvider.getCountriesByContinent("ASEAN");
   return result;
  } catch(error) {
   return null;
 }
}

Implementation

static Future<List<Country>> getcountryByRegionalBloc(String regiaonBlocName,
    {CountryFilter? filter}) async {
  if (regiaonBlocName.isNotEmpty) {
    final uri = "$_baseUrl" +
        Constants.countriesByContinent +
        regiaonBlocName +
        filter.toFormattedUri;
    // print(uri);
    var response = await _client.get(Uri.parse(uri));

    if (response.statusCode == 200) {
      var countries = List<Country>.from(jsonDecode(response.body)
          .map((x) => x != null ? Country.fromJson(x) : null));
      return countries;
    }
    throw new Exception(
        "No country found. Please check if https://restcountries.eu is avialable.");
  } else {
    throw Exception("Region bloc name can not be empty");
  }
}