oneIDReset function

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

Implementation

Future<OneIDResetOTP?> oneIDReset(
  BuildContext context,
  String phoneNumber,
  String accessToken,
  int tryCatch,
) async {
  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;
    }
  } on SocketException {
    if (tryCatch < 3) {
      return await oneIDReset(
        context,
        phoneNumber,
        accessToken,
        tryCatch + 1,
      );
    } else {
      Navigator.pop(context);
      errorDialog(
        context,
        'ແຈ້ງເຕືອນ',
        'ກະລຸນາກວດສອບອິນເຕີເນັດຂອງທ່ານ',
        'ປິດ',
        'Phetsarath',
      );
      return null;
    }
  } catch (e) {
    if (tryCatch < 3) {
      return await oneIDReset(
        context,
        phoneNumber,
        accessToken,
        tryCatch + 1,
      );
    } else {
      Navigator.pop(context);
      errorDialog(
        context,
        'ແຈ້ງເຕືອນ',
        'ເກີດຂໍ້ຜິດພາດກະລຸນາລອງໃໝ່ອີກຄັ້ງ',
        'ປິດ',
        'Phetsarath',
      );
      return null;
    }
  }
}