WD: error handling and request changes

update_flutter_3.24_vida_plus_episode
taha.alam 1 year ago
parent 8f05d526f6
commit fd4dacee83

@ -46,7 +46,9 @@ class BaseAppClient {
if (body == null || body['DoctorID'] == null) { if (body == null || body['DoctorID'] == null) {
body!['DoctorID'] = doctorProfile.doctorID; body!['DoctorID'] = doctorProfile.doctorID;
} }
if (body['DoctorID'] == "") body['DoctorID'] = doctorProfile.doctorID; // changed from null; because create update episode not working if (body['DoctorID'] == "")
body['DoctorID'] = doctorProfile
.doctorID; // changed from null; because create update episode not working
if (body['EditedBy'] == null) body['EditedBy'] = doctorProfile.doctorID; if (body['EditedBy'] == null) body['EditedBy'] = doctorProfile.doctorID;
if (body['ProjectID'] == null) { if (body['ProjectID'] == null) {
body['ProjectID'] = doctorProfile.projectID; body['ProjectID'] = doctorProfile.projectID;
@ -92,16 +94,21 @@ class BaseAppClient {
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP; body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
body['PatientOutSA'] = body['PatientOutSA'] ?? 0; // PATIENT_OUT_SA; body['PatientOutSA'] = body['PatientOutSA'] ?? 0; // PATIENT_OUT_SA;
if (body['VidaAuthTokenID'] == null) { if (body['VidaAuthTokenID'] == null) {
body['VidaAuthTokenID'] = await sharedPref.getString(VIDA_AUTH_TOKEN_ID); body['VidaAuthTokenID'] =
await sharedPref.getString(VIDA_AUTH_TOKEN_ID);
} }
if (body['VidaRefreshTokenID'] == null) { if (body['VidaRefreshTokenID'] == null) {
body['VidaRefreshTokenID'] = await sharedPref.getString(VIDA_REFRESH_TOKEN_ID); body['VidaRefreshTokenID'] =
await sharedPref.getString(VIDA_REFRESH_TOKEN_ID);
} }
int? projectID = await sharedPref.getInt(PROJECT_ID); int? projectID = await sharedPref.getInt(PROJECT_ID);
if (projectID == 2 || projectID == 3) if (projectID == 2 || projectID == 3)
body['PatientOutSA'] = true; body['PatientOutSA'] = true;
else if ((body.containsKey('facilityId') && body['facilityId'] == 2 || body['facilityId'] == 3) || body['ProjectID'] == 2 || body['ProjectID'] == 3) else if ((body.containsKey('facilityId') && body['facilityId'] == 2 ||
body['facilityId'] == 3) ||
body['ProjectID'] == 2 ||
body['ProjectID'] == 3)
body['PatientOutSA'] = true; body['PatientOutSA'] = true;
else else
body['PatientOutSA'] = false; body['PatientOutSA'] = false;
@ -128,29 +135,47 @@ class BaseAppClient {
var asd = json.encode(body); var asd = json.encode(body);
var asd2; var asd2;
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.post(Uri.parse(url), body: json.encode(body), headers: {'Content-Type': 'application/json', 'Accept': 'application/json'}); final response = await http.post(Uri.parse(url),
body: json.encode(body),
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
});
final int statusCode = response.statusCode; final int statusCode = response.statusCode;
if (statusCode < 200 || statusCode >= 400) { if (statusCode < 200 || statusCode >= 400) {
onFailure(Utils.generateContactAdminMsg(), statusCode); onFailure(Utils.generateContactAdminMsg(), statusCode);
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: "$statusCode"); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: "$statusCode");
} else { } else {
var parsed = json.decode(response.body.toString()); var parsed = json.decode(response.body.toString());
if (parsed['ErrorType'] == 4) { if (parsed['ErrorType'] == 4) {
helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'], parsed['AndroidLink'], parsed['IOSLink']); helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'],
parsed['AndroidLink'], parsed['IOSLink']);
} }
if (parsed['IsAuthenticated'] != null && !parsed['IsAuthenticated']) { if (parsed['IsAuthenticated'] != null && !parsed['IsAuthenticated']) {
if (body['OTP_SendType'] != null) { if (body['OTP_SendType'] != null) {
if(parsed['ErrorCode'] =='699'){ if (parsed['ErrorCode'] == '699') {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
}else { } else {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: getError(parsed)); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: getError(parsed));
onFailure(getError(parsed), statusCode); onFailure(getError(parsed), statusCode);
} }
} else if (!isAllowAny) { } else if (!isAllowAny) {
await Provider.of<AuthenticationViewModel>(AppGlobal.CONTEX, listen: false).logout(); await Provider.of<AuthenticationViewModel>(AppGlobal.CONTEX,
listen: false)
.logout();
//todo nofailure is placed here and but have to handle the response here as well //todo nofailure is placed here and but have to handle the response here as well
Utils.showErrorToast('Your session expired Please login again'); Utils.showErrorToast('Your session expired Please login again');
locator<NavigationService>().pushNamedAndRemoveUntil(ROOT); locator<NavigationService>().pushNamedAndRemoveUntil(ROOT);
@ -160,14 +185,27 @@ class BaseAppClient {
} }
} else if (parsed['MessageStatus'] == 1) { } else if (parsed['MessageStatus'] == 1) {
if (!parsed['IsAuthenticated']) { if (!parsed['IsAuthenticated']) {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: getError(parsed)); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: getError(parsed));
onFailure(getError(parsed), statusCode); onFailure(getError(parsed), statusCode);
} else } else
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
if(body['DoctorID'] !=null ) { final validations = parsed['ValidationErrorsCSI']?['errors']?['Validations'];
if (validations is List && validations.isNotEmpty) {
final error = validations.first['Error'];
if (error != null) {
onFailure(error, statusCode);
return;
}
}
if (body['DoctorID'] != null) {
postFailureResponse( postFailureResponse(
doctorId: body['DoctorID'], doctorId: body['DoctorID'],
url: url, url: url,
@ -196,7 +234,10 @@ class BaseAppClient {
String url = BASE_URL + endPoint; String url = BASE_URL + endPoint;
try { try {
Map<String, String> headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}; Map<String, String> headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
};
String? token = await sharedPref.getString(TOKEN); String? token = await sharedPref.getString(TOKEN);
Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE); Map<String, dynamic>? profile = await sharedPref.getObj(DOCTOR_PROFILE);
@ -210,7 +251,8 @@ class BaseAppClient {
if (body!['DoctorID'] == 0) { if (body!['DoctorID'] == 0) {
body['DoctorID'] = null; body['DoctorID'] = null;
} }
var languageID = await sharedPref.getStringWithDefaultValue(APP_Language, 'en'); var languageID =
await sharedPref.getStringWithDefaultValue(APP_Language, 'en');
body['SetupID'] = body!.containsKey('SetupID') body['SetupID'] = body!.containsKey('SetupID')
? body['SetupID'] != null ? body['SetupID'] != null
? body['SetupID'] ? body['SetupID']
@ -230,7 +272,8 @@ class BaseAppClient {
: PATIENT_OUT_SA_PATIENT_REQ; : PATIENT_OUT_SA_PATIENT_REQ;
if (body.containsKey('isDentalAllowedBackend')) { if (body.containsKey('isDentalAllowedBackend')) {
body['isDentalAllowedBackend'] = body.containsKey('isDentalAllowedBackend') body['isDentalAllowedBackend'] =
body.containsKey('isDentalAllowedBackend')
? body['isDentalAllowedBackend'] != null ? body['isDentalAllowedBackend'] != null
? body['isDentalAllowedBackend'] ? body['isDentalAllowedBackend']
: IS_DENTAL_ALLOWED_BACKEND : IS_DENTAL_ALLOWED_BACKEND
@ -255,8 +298,11 @@ class BaseAppClient {
: PATIENT_TYPE_ID : PATIENT_TYPE_ID
: PATIENT_TYPE_ID; : PATIENT_TYPE_ID;
body['TokenID'] = body.containsKey('TokenID') ? body['TokenID'] ?? token : token; body['TokenID'] =
body['PatientID'] = body['PatientID'] != null ? body['PatientID'] : patient!.patientId ?? patient.patientMRN; body.containsKey('TokenID') ? body['TokenID'] ?? token : token;
body['PatientID'] = body['PatientID'] != null
? body['PatientID']
: patient!.patientId ?? patient.patientMRN;
body['PatientOutSA'] = 0; //user['OutSA']; //TODO change it body['PatientOutSA'] = 0; //user['OutSA']; //TODO change it
body['SessionID'] = SESSION_ID; //getSe body['SessionID'] = SESSION_ID; //getSe
@ -283,7 +329,8 @@ class BaseAppClient {
var asd = json.encode(body); var asd = json.encode(body);
var asd2; var asd2;
if (await Utils.checkConnection()) { if (await Utils.checkConnection()) {
final response = await http.post(Uri.parse(url.trim()), body: json.encode(body), headers: headers); final response = await http.post(Uri.parse(url.trim()),
body: json.encode(body), headers: headers);
final int statusCode = response.statusCode; final int statusCode = response.statusCode;
print("statusCode :$statusCode"); print("statusCode :$statusCode");
if (statusCode < 200 || statusCode >= 400 || json == null) { if (statusCode < 200 || statusCode >= 400 || json == null) {
@ -295,7 +342,8 @@ class BaseAppClient {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
if (parsed['ErrorType'] == 4) { if (parsed['ErrorType'] == 4) {
helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'], parsed['AndroidLink'], parsed['IOSLink']); helpers.navigateToUpdatePage(parsed['ErrorEndUserMessage'],
parsed['AndroidLink'], parsed['IOSLink']);
} }
if (parsed['IsAuthenticated'] == null) { if (parsed['IsAuthenticated'] == null) {
if (parsed['isSMSSent'] == true) { if (parsed['isSMSSent'] == true) {
@ -308,32 +356,63 @@ class BaseAppClient {
if (parsed != null) { if (parsed != null) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: getError(parsed)); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: getError(parsed));
onFailure(getError(parsed), statusCode); onFailure(getError(parsed), statusCode);
} }
} }
} else if (parsed['MessageStatus'] == 1 || parsed['SMSLoginRequired'] == true) { } else if (parsed['MessageStatus'] == 1 ||
parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else if (parsed['MessageStatus'] == 2 && parsed['IsAuthenticated']) { } else if (parsed['MessageStatus'] == 2 &&
parsed['IsAuthenticated']) {
if (parsed['SameClinicApptList'] != null) { if (parsed['SameClinicApptList'] != null) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
if (parsed['message'] == null && parsed['ErrorEndUserMessage'] == null) { if (parsed['message'] == null &&
parsed['ErrorEndUserMessage'] == null) {
if (parsed['ErrorSearchMsg'] == null) { if (parsed['ErrorSearchMsg'] == null) {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: "Server Error found with no available message"); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception:
"Server Error found with no available message");
onFailure("Server Error found with no available message", statusCode); onFailure("Server Error found with no available message",
statusCode);
} else { } else {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: parsed['ErrorSearchMsg']); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: parsed['ErrorSearchMsg']);
onFailure(parsed['ErrorSearchMsg'], statusCode); onFailure(parsed['ErrorSearchMsg'], statusCode);
} }
} else { } else {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage']); postFailureResponse(
onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: parsed['message'] ??
parsed['ErrorEndUserMessage'] ??
parsed['ErrorMessage']);
onFailure(
parsed['message'] ??
parsed['ErrorEndUserMessage'] ??
parsed['ErrorMessage'],
statusCode);
} }
} }
} else { } else {
@ -341,15 +420,28 @@ class BaseAppClient {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else { } else {
if (parsed['message'] != null) { if (parsed['message'] != null) {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: parsed['message'] ); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: parsed['message']);
onFailure(parsed['message'] ?? parsed['message'], statusCode); onFailure(parsed['message'] ?? parsed['message'], statusCode);
} else { } else {
if(body['DoctorID'] !=null ) if (body['DoctorID'] != null)
postFailureResponse(doctorId:body['DoctorID'], url:url , request: json.encode(body), response: response.body, exception: parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage']); postFailureResponse(
doctorId: body['DoctorID'],
url: url,
request: json.encode(body),
response: response.body,
exception: parsed['ErrorEndUserMessage'] ??
parsed['ErrorMessage']);
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode); onFailure(
parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'],
statusCode);
} }
} }
} }
@ -370,9 +462,14 @@ class BaseAppClient {
if (parsed["ValidationErrors"] != null) { if (parsed["ValidationErrors"] != null) {
error = parsed["ValidationErrors"]["StatusMessage"].toString() + "\n"; error = parsed["ValidationErrors"]["StatusMessage"].toString() + "\n";
if (parsed["ValidationErrors"]["ValidationErrors"] != null && parsed["ValidationErrors"]["ValidationErrors"].length != 0) { if (parsed["ValidationErrors"]["ValidationErrors"] != null &&
for (var i = 0; i < parsed["ValidationErrors"]["ValidationErrors"].length; i++) { parsed["ValidationErrors"]["ValidationErrors"].length != 0) {
error = error! + parsed["ValidationErrors"]["ValidationErrors"][i]["Messages"][0] + "\n"; for (var i = 0;
i < parsed["ValidationErrors"]["ValidationErrors"].length;
i++) {
error = error! +
parsed["ValidationErrors"]["ValidationErrors"][i]["Messages"][0] +
"\n";
} }
} }
} }
@ -382,7 +479,10 @@ class BaseAppClient {
return error; return error;
} }
get({required String endPoint, required Function(dynamic response, int statusCode) onSuccess, required Function(String error, int statusCode) onFailure}) async { get(
{required String endPoint,
required Function(dynamic response, int statusCode) onSuccess,
required Function(String error, int statusCode) onFailure}) async {
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
String url = DOCTOR_ROTATION + endPoint + '&token=' + token; String url = DOCTOR_ROTATION + endPoint + '&token=' + token;
print(url); print(url);
@ -396,4 +496,4 @@ class BaseAppClient {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} }
} }
} }

@ -1122,10 +1122,10 @@ class SOAPService extends LookupService {
"ProjectID": patientInformation.projectId "ProjectID": patientInformation.projectId
}; };
hasError = false; hasError = false;
patientProgressNoteListVidaPlus.clear();
await baseAppClient.post(GET_PROGRESS_NOTE, await baseAppClient.post(GET_PROGRESS_NOTE,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
print("Success"); print("Success");
patientProgressNoteListVidaPlus.clear();
response['ListProgressNote']['resultData'].forEach((v) { response['ListProgressNote']['resultData'].forEach((v) {
v['data'].forEach((progressNote) { v['data'].forEach((progressNote) {
patientProgressNoteListVidaPlus patientProgressNoteListVidaPlus
@ -1237,6 +1237,7 @@ class SOAPService extends LookupService {
"condition": conditionType, "condition": conditionType,
"remarks": remarks, "remarks": remarks,
"icdType": searchDiagnosis!.icdType, "icdType": searchDiagnosis!.icdType,
"selectedIcdCode": searchDiagnosis.diseasesCode,
// "icdVersion": searchDiagnosis.icdVersion, // "icdVersion": searchDiagnosis.icdVersion,
"icdSubVersion": searchDiagnosis.icdSubVersion, "icdSubVersion": searchDiagnosis.icdSubVersion,
"isNew": isNew, "isNew": isNew,
@ -1244,7 +1245,7 @@ class SOAPService extends LookupService {
"selectedDisease": searchDiagnosis.diseases, "selectedDisease": searchDiagnosis.diseases,
"diseasesCode": searchDiagnosis.diseasesCode, "diseasesCode": searchDiagnosis.diseasesCode,
"diseasesId": searchDiagnosis.diseasesId, "diseasesId": searchDiagnosis.diseasesId,
"selectedIcdCode": searchDiagnosis.icdId, // "selectedIcdCode": searchDiagnosis.icdId,
"selectedCategoryCode": searchDiagnosis.categoryCode, "selectedCategoryCode": searchDiagnosis.categoryCode,
"selectedSectionCode": searchDiagnosis.sectionCode, "selectedSectionCode": searchDiagnosis.sectionCode,
"selectedChapterCode": searchDiagnosis.chapterCode, "selectedChapterCode": searchDiagnosis.chapterCode,
@ -1357,6 +1358,8 @@ class SOAPService extends LookupService {
success = false; success = false;
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
success = false; success = false;
DrAppToastMsg.showErrorToast(error);
hasError = true; hasError = true;
super.error = error; super.error = error;
}, body: request); }, body: request);

Loading…
Cancel
Save