getR3WebData function
Future
getR3WebData(
{ - dynamic isReLogin = false,
})
Implementation
Future<dynamic> getR3WebData({isReLogin = false}) async {
try {
String url = '${DB.dbR3Url}$r3UrlGetDashboardData${DB.dbR3MS}';
//debugPrint('URL $url');
dynamic response = await dio.post(url);
//log('getR3Data Session => ${dio.options.headers.keys.}');
dynamic d;
if (response.statusCode == 200) {
try {
d = jsonDecode(response.data);
log(d.runtimeType.toString());
if (d["status"] == "200") {
if (d["Data"] != "") {
return {'status': 200, 'data': jsonDecode(d["Data"]), 'message': ''};
} else {
return {'status': 404, 'data': '', 'message': 'No data found'};
}
} else {
//Try re login if the session is expired and call the getR3Data() for one more time
if (!isReLogin) {
bool isValidMS = await isValidR3Session();
if (!isValidMS) {
dynamic d = await r3Login(DB.dbUserName, DB.dbPassword, DB.dbCompanyGUID);
if (d["Status"] == 200) {
return await getR3WebData(isReLogin: true);
}
}
}
return {'status': 404, 'data': '', 'message': 'getR3WebData()->api call failed on ${d["error"]}'};
}
} catch (e) {
throw ("Unable to decode the response. $e");
}
} else {
return {'status': 404, 'data': '', 'message': 'getR3WebData()->api call failed.${response.statusMessage}'};
}
} catch (e) {
return {'status': 404, 'data': '', 'message': 'getR3WebData()->api call failed. $e'};
}
}