oneIDReset function

Future<OneIDResetOTP?> oneIDReset(
  1. BuildContext context,
  2. String phoneNumber,
  3. String accessToken,
  4. int n,
)

Implementation

Future<OneIDResetOTP?> oneIDReset(
    BuildContext context, String phoneNumber, String accessToken, int n) async {
  int retry = n + 1;
  if(retry > 3){
    return null;
  }
  String url = APIPath.ONE_ID_RESET+phoneNumber;
  String? locale = await PreferenceInfo().getLocaleLanguage();
  try {
    var response = await http.get(Uri.parse(url), headers: {
      'accept': 'text/plain',
      'Authorization': 'Bearer $accessToken'
    });
    if (response.statusCode == 200) {
      return oneIDResetModelFromJson(response.body);
    } else if (response.statusCode == 400) {
      Navigator.pop(context);
      BadRequestModel data = badRequestModelFromJson(response.body);
      errorDialog(
          context,
          locale == 'en' ? 'Warning' : 'ແຈ້ງເຕືອນ',
          'OneID reset\n${data.code} ${data.detail}',
          locale == 'en' ? 'Close' : 'ປິດ',
          'Phetsarath');
      return null;
    } else {
      Navigator.pop(context);
      errorDialog(
          context,
          locale == 'en' ? 'Warning' : 'ແຈ້ງເຕືອນ',
          'OneID Reset\n${response.statusCode} ${response.body}',
          locale == 'en' ? 'Close' : 'ປິດ',
          'Phetsarath');
      return null;
    }
  } catch (e) {
    return await oneIDReset(context, phoneNumber, accessToken, retry);
  }
}