connectTokenLogin function
Future<ConnectRefreshTokenModel?>
connectTokenLogin(
- String payload,
- BuildContext context,
- Locale? locale,
- int tryCatch,
Implementation
Future<ConnectRefreshTokenModel?> connectTokenLogin(
String payload,
BuildContext context,
Locale? locale,
int tryCatch,
) 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);
await PreferenceInfo().setLoginPayload(payload);
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) {
if (tryCatch < 3) {
return await connectTokenLogin(
payload,
context,
locale,
tryCatch + 1,
);
} else {
Navigator.pop(context);
errorDialog(
context,
locale == const Locale('en') ? 'Warning' : 'ແຈ້ງເຕືອນ',
'Connect Token login: error',
locale == const Locale('en') ? 'Close' : 'ປິດ',
'Phetsarath',
);
return null;
}
}
}