connectTokenLoginExceptionTwo function

Future<ConnectRefreshTokenModel?> connectTokenLoginExceptionTwo(
  1. String payload,
  2. BuildContext context
)

Implementation

Future<ConnectRefreshTokenModel?> connectTokenLoginExceptionTwo(
    String payload, BuildContext context) async {
  String url = APIPath.CONNECT_TOKEN_LOGIN;
  try {
    var response = await http.post(Uri.parse(url), body: payload, headers: {
      'Content-type': 'application/json',
      'Accept': 'application/json'
    });
    if (response.statusCode == 200) {
      ConnectRefreshTokenModel data =
          connectRefreshTokenModelFromJson(response.body);
      return data;
    } else if (response.statusCode == 400) {
      Navigator.pop(context);
      BadRequestModel data = badRequestModelFromJson(response.body);
      if (data.code == 'REQUEST_TOKEN_ERROR' &&
          data.message == 'invalid_grant') {
        errorDialog(context, 'ແຈ້ງເຕືອນ', 'ຂໍອະໄພ ກະລຸນາປ້ອນ OTP ໃຫ້ຖືກຕ້ອງ',
            'ປິດ', 'Phetsarath');
      } else {
        errorDialog(
            context,
            'ແຈ້ງເຕືອນ',
            'Connect Token login: ${data.code} ${data.detail}',
            'ປິດ',
            'Phetsarath');
      }
      return null;
    } else {
      Navigator.pop(context);
      errorDialog(
          context,
          'ແຈ້ງເຕືອນ',
          'Connect Token login: ${response.statusCode} ${response.body}',
          'ປິດ',
          'Phetsarath');
      return null;
    }
  } on SocketException catch (e) {
    Navigator.pop(context);
    errorDialog(context, 'ແຈ້ງເຕືອນ', 'ກະລຸນາກວດສອບອິນເຕີເນັດຂອງທ່ານ', 'ປິດ',
        'Phetsarath');
  } catch (e) {
    Navigator.pop(context);
    errorDialog(context, 'ແຈ້ງເຕືອນ', 'ເກີດຂໍ້ຜິດພາດກະລຸນາລອງໃໝ່ອີກຄັ້ງ', 'ປິດ',
        'Phetsarath');
    return null;
  }
}