connectTokenLogin function
Future<ConnectRefreshTokenModel?>
connectTokenLogin(
- String payload,
- BuildContext context,
- Locale? locale,
- int n,
Implementation
Future<ConnectRefreshTokenModel?> connectTokenLogin(
String payload, BuildContext context, Locale? locale, int n) async {
int retry = n + 1;
if(retry > 3){
return null;
}
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, locale == const Locale('en') ? 'Warning' : 'ແຈ້ງເຕືອນ', locale == const Locale('en') ? 'Sorry, Please enter correct OTP' : 'ຂໍອະໄພ ກະລຸນາປ້ອນ OTP ໃຫ້ຖືກຕ້ອງ',
locale == const Locale('en') ? 'Close' : 'ປິດ', 'Phetsarath');
} else {
errorDialog(
context,
locale == const Locale('en') ? 'Warning' :'ແຈ້ງເຕືອນ',
'Connect Token login: ${data.code} ${data.detail}',
locale == const Locale('en') ? 'Close' : 'ປິດ',
'Phetsarath');
}
return null;
} else {
Navigator.pop(context);
errorDialog(
context,
locale == const Locale('en') ? 'Warning' : 'ແຈ້ງເຕືອນ',
'Connect Token login: ${response.statusCode} ${response.body}',
locale == const Locale('en') ? 'Close' : 'ປິດ',
'Phetsarath');
return null;
}
} catch (e) {
return await connectTokenLogin(payload, context, locale, retry);
}
}