listDomain function

Future<ListDomainModel?> listDomain(
  1. BuildContext context,
  2. Locale locale,
  3. int n
)

Implementation

Future<ListDomainModel?> listDomain(BuildContext context, Locale locale, int n) async {
  int retry = n + 1;
  if(retry > 3){
    return null;
  }
  String url = APIPath.listDomain;
  showDialog(
      context: context,
      builder: (_) {
        return DialogLoading(title: locale == const Locale('en') ? 'Checking domain' : 'ກຳລັງກວດສອບໂດເມນ');
      });
  try {
    var response = await http.get(Uri.parse(url));
    if (response.statusCode == 200) {
      await PreferenceInfo().setListDomainData(response.body);
      Navigator.pop(context);
      return ListDomainModel.fromJson(json.decode(response.body));
    } else {
      Navigator.pop(context);
      errorDialog(
          context,
          locale == const Locale('en') ? 'Sorry' : 'ຂໍອະໄພ',
          'List domain: ${response.statusCode} ${response.body}',
          locale == const Locale('en') ? 'Close' : 'ປິດ',
          'Phetsarath');
      return null;
    }
  } catch (e) {
    return await listDomain(context, locale, retry);
  }
}