|
|
@ -31,6 +31,7 @@ AuthenticatedUserObject authenticatedUserObject =
|
|
|
|
VitalSignService _vitalSignService = locator<VitalSignService>();
|
|
|
|
VitalSignService _vitalSignService = locator<VitalSignService>();
|
|
|
|
|
|
|
|
|
|
|
|
class BaseAppClient {
|
|
|
|
class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
|
|
post(String endPoint,
|
|
|
|
post(String endPoint,
|
|
|
|
{Map<String, dynamic> body,
|
|
|
|
{Map<String, dynamic> body,
|
|
|
|
Function(dynamic response, int statusCode) onSuccess,
|
|
|
|
Function(dynamic response, int statusCode) onSuccess,
|
|
|
@ -132,7 +133,198 @@ class BaseAppClient {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
var parsed = json.decode(response.body.toString());
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
|
|
|
|
var parsed = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
|
|
|
|
if (parsed['Response_Message'] != null) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (parsed['ErrorType'] == 4) {
|
|
|
|
|
|
|
|
navigateToAppUpdate(
|
|
|
|
|
|
|
|
AppGlobal.context, parsed['ErrorEndUserMessage']);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isAllowAny) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else if (parsed['IsAuthenticated'] == null) {
|
|
|
|
|
|
|
|
if (parsed['isSMSSent'] == true) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else if (parsed['MessageStatus'] == 1) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else if (parsed['Result'] == 'OK') {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (parsed != null) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
onFailure(
|
|
|
|
|
|
|
|
parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'],
|
|
|
|
|
|
|
|
statusCode);
|
|
|
|
|
|
|
|
logout();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if (parsed['MessageStatus'] == 1 ||
|
|
|
|
|
|
|
|
parsed['SMSLoginRequired'] == true) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else if (parsed['MessageStatus'] == 2 &&
|
|
|
|
|
|
|
|
parsed['IsAuthenticated']) {
|
|
|
|
|
|
|
|
if (parsed['SameClinicApptList'] != null) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (parsed['message'] == null &&
|
|
|
|
|
|
|
|
parsed['ErrorEndUserMessage'] == null) {
|
|
|
|
|
|
|
|
if (parsed['ErrorSearchMsg'] == null) {
|
|
|
|
|
|
|
|
onFailure("Server Error found with no available message",
|
|
|
|
|
|
|
|
statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
onFailure(parsed['ErrorSearchMsg'], statusCode);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
onFailure(
|
|
|
|
|
|
|
|
parsed['message'] ??
|
|
|
|
|
|
|
|
parsed['ErrorEndUserMessage'] ??
|
|
|
|
|
|
|
|
parsed['ErrorMessage'],
|
|
|
|
|
|
|
|
statusCode);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if (!parsed['IsAuthenticated']) {
|
|
|
|
|
|
|
|
await logout();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//helpers.showErrorToast('Your session expired Please login agian');
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (parsed['SameClinicApptList'] != null) {
|
|
|
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (parsed['message'] != null) {
|
|
|
|
|
|
|
|
onFailure(parsed['message'] ?? parsed['message'], statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
onFailure(
|
|
|
|
|
|
|
|
parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'],
|
|
|
|
|
|
|
|
statusCode);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
|
|
print(e);
|
|
|
|
|
|
|
|
onFailure(e.toString(), -1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
postPharmacy(String endPoint,
|
|
|
|
|
|
|
|
{Map<String, dynamic> body,
|
|
|
|
|
|
|
|
Function(dynamic response, int statusCode) onSuccess,
|
|
|
|
|
|
|
|
Function(String error, int statusCode) onFailure,
|
|
|
|
|
|
|
|
bool isAllowAny = false,
|
|
|
|
|
|
|
|
bool isExternal = false}) async {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var token = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN);
|
|
|
|
|
|
|
|
var user = await sharedPref.getObject(USER_PROFILE);
|
|
|
|
|
|
|
|
String url;
|
|
|
|
|
|
|
|
if (isExternal) {
|
|
|
|
|
|
|
|
url = endPoint;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
url = PHARMACY_BASE_URL + endPoint;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
|
|
|
|
|
|
var pharmacyToken = await sharedPref.getString(PHARMACY_AUTORZIE_TOKEN);
|
|
|
|
|
|
|
|
var user = await sharedPref.getObject(USER_PROFILE);
|
|
|
|
|
|
|
|
Map<String, String> headers = {
|
|
|
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
|
|
|
'Accept': 'application/json',
|
|
|
|
|
|
|
|
'Authorization': token ?? '',
|
|
|
|
|
|
|
|
'Mobilenumber': user != null
|
|
|
|
|
|
|
|
? getPhoneNumberWithoutZero(user['MobileNumber'].toString())
|
|
|
|
|
|
|
|
: "",
|
|
|
|
|
|
|
|
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
|
|
|
|
|
|
|
|
'Username': user != null ? user['PatientID'].toString() : "",
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
if (!isExternal) {
|
|
|
|
|
|
|
|
String token = await sharedPref.getString(TOKEN);
|
|
|
|
|
|
|
|
var languageID =
|
|
|
|
|
|
|
|
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
|
|
|
|
|
|
|
|
if (body.containsKey('SetupID')) {
|
|
|
|
|
|
|
|
body['SetupID'] = body.containsKey('SetupID')
|
|
|
|
|
|
|
|
? body['SetupID'] != null
|
|
|
|
|
|
|
|
? body['SetupID']
|
|
|
|
|
|
|
|
: SETUP_ID
|
|
|
|
|
|
|
|
: SETUP_ID;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
body['VersionID'] = VERSION_ID;
|
|
|
|
|
|
|
|
body['Channel'] = CHANNEL;
|
|
|
|
|
|
|
|
body['LanguageID'] = languageID == 'ar' ? 1 : 2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
body['IPAdress'] = IP_ADDRESS;
|
|
|
|
|
|
|
|
body['generalid'] = GENERAL_ID;
|
|
|
|
|
|
|
|
body['PatientOutSA'] = body.containsKey('PatientOutSA')
|
|
|
|
|
|
|
|
? body['PatientOutSA'] != null
|
|
|
|
|
|
|
|
? body['PatientOutSA']
|
|
|
|
|
|
|
|
: PATIENT_OUT_SA
|
|
|
|
|
|
|
|
: PATIENT_OUT_SA;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (body.containsKey('isDentalAllowedBackend')) {
|
|
|
|
|
|
|
|
body['isDentalAllowedBackend'] =
|
|
|
|
|
|
|
|
body.containsKey('isDentalAllowedBackend')
|
|
|
|
|
|
|
|
? body['isDentalAllowedBackend'] != null
|
|
|
|
|
|
|
|
? body['isDentalAllowedBackend']
|
|
|
|
|
|
|
|
: IS_DENTAL_ALLOWED_BACKEND
|
|
|
|
|
|
|
|
: IS_DENTAL_ALLOWED_BACKEND;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
body['DeviceTypeID'] = DeviceTypeID;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!body.containsKey('IsPublicRequest')) {
|
|
|
|
|
|
|
|
body['PatientType'] = body.containsKey('PatientType')
|
|
|
|
|
|
|
|
? body['PatientType'] != null
|
|
|
|
|
|
|
|
? body['PatientType']
|
|
|
|
|
|
|
|
: user['PatientType'] != null
|
|
|
|
|
|
|
|
? user['PatientType']
|
|
|
|
|
|
|
|
: PATIENT_TYPE
|
|
|
|
|
|
|
|
: PATIENT_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
body['PatientTypeID'] = body.containsKey('PatientTypeID')
|
|
|
|
|
|
|
|
? body['PatientTypeID'] != null
|
|
|
|
|
|
|
|
? body['PatientTypeID']
|
|
|
|
|
|
|
|
: user['PatientType'] != null
|
|
|
|
|
|
|
|
? user['PatientType']
|
|
|
|
|
|
|
|
: PATIENT_TYPE_ID
|
|
|
|
|
|
|
|
: PATIENT_TYPE_ID;
|
|
|
|
|
|
|
|
if (user != null) {
|
|
|
|
|
|
|
|
body['TokenID'] = token;
|
|
|
|
|
|
|
|
body['PatientID'] = body['PatientID'] != null
|
|
|
|
|
|
|
|
? body['PatientID']
|
|
|
|
|
|
|
|
: user['PatientID'];
|
|
|
|
|
|
|
|
body['PatientOutSA'] = user['OutSA'];
|
|
|
|
|
|
|
|
body['SessionID'] = SESSION_ID; //getSe
|
|
|
|
|
|
|
|
headers = {
|
|
|
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
|
|
|
'Accept': 'application/json',
|
|
|
|
|
|
|
|
'Authorization': pharmacyToken,
|
|
|
|
|
|
|
|
'Mobilenumber': user['MobileNumber'].toString(),
|
|
|
|
|
|
|
|
'Statictoken': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
|
|
|
|
|
|
|
|
'Username': user['PatientID'].toString(),
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("URL : $url");
|
|
|
|
|
|
|
|
print("Body : ${json.encode(body)}");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (await Utils.checkConnection()) {
|
|
|
|
|
|
|
|
final response = await http.post(url.trim(),
|
|
|
|
|
|
|
|
body: json.encode(body), headers: headers);
|
|
|
|
|
|
|
|
final int statusCode = response.statusCode;
|
|
|
|
|
|
|
|
print("statusCode :$statusCode");
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
|
|
|
|
var parsed = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
if (parsed['Response_Message'] != null) {
|
|
|
|
if (parsed['Response_Message'] != null) {
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -248,7 +440,8 @@ class BaseAppClient {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
var parsed = json.decode(response.body.toString());
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
|
|
|
|
var parsed = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -280,7 +473,7 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
|
|
if (await Utils.checkConnection()) {
|
|
|
|
if (await Utils.checkConnection()) {
|
|
|
|
final response = await http.get(url.trim(), headers: {
|
|
|
|
final response = await http.get(url.trim(), headers: {
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
'Content-Type': 'text/html; charset=utf-8',
|
|
|
|
'Accept': 'application/json',
|
|
|
|
'Accept': 'application/json',
|
|
|
|
'Authorization': token ?? '',
|
|
|
|
'Authorization': token ?? '',
|
|
|
|
'Mobilenumber': user != null
|
|
|
|
'Mobilenumber': user != null
|
|
|
@ -295,8 +488,9 @@ class BaseAppClient {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
var parsed = json.decode(response.body.toString());
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
var bodyUtf = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
|
|
|
|
onSuccess(bodyUtf, statusCode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
@ -481,7 +675,8 @@ class BaseAppClient {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
var parsed = json.decode(response.body.toString());
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
|
|
|
|
var parsed = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
if (parsed['Response_Message'] != null) {
|
|
|
|
if (parsed['Response_Message'] != null) {
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|