@ -31,8 +31,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
/ / / onFailure: ( String error , int statusCode ) { } ,
/ / / body: Map ( ) ;
/ / /
AuthenticatedUserObject authenticatedUserObject =
locator < AuthenticatedUserObject > ( ) ;
AuthenticatedUserObject authenticatedUserObject = locator < AuthenticatedUserObject > ( ) ;
VitalSignService _vitalSignService = locator < VitalSignService > ( ) ;
class BaseAppClient {
@ -40,12 +39,12 @@ class BaseAppClient {
post ( String endPoint ,
{ required Map < String , dynamic > body ,
required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
bool isAllowAny = false ,
bool isExternal = false ,
bool isRCService = false ,
bool bypassConnectionCheck = false } ) async {
required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
bool isAllowAny = false ,
bool isExternal = false ,
bool isRCService = false ,
bool bypassConnectionCheck = false } ) async {
String url ;
if ( isExternal ) {
url = endPoint ;
@ -56,25 +55,20 @@ class BaseAppClient {
url = BASE_URL + endPoint ;
}
try {
String ? pharmacyToken =
await sharedPref . getString ( PHARMACY_AUTORZIE_TOKEN ) ;
String ? 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 '
} ;
Map < String , String > headers = { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ;
if ( ! isExternal ) {
String ? token = await sharedPref . getString ( TOKEN ) ;
String ? languageID =
await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
String ? languageID = await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
if ( endPoint = = SEND_ACTIVATION_CODE ) {
languageID = ' en ' ;
}
if ( body . containsKey ( ' SetupID ' ) ) {
body [ ' SetupID ' ] = body . containsKey ( ' SetupID ' )
? body [ ' SetupID ' ] ! = null
? body [ ' SetupID ' ]
: SETUP_ID
? body [ ' SetupID ' ]
: SETUP_ID
: SETUP_ID ;
}
@ -87,8 +81,8 @@ class BaseAppClient {
body [ ' LanguageID ' ] = body [ ' LanguageID ' ] = = ' ar '
? 1
: body [ ' LanguageID ' ] = = ' en '
? 2
: body [ ' LanguageID ' ] ;
? 2
: body [ ' LanguageID ' ] ;
} else {
body [ ' LanguageID ' ] = Provider . of < ProjectViewModel > ( AppGlobal . context , listen: false ) . isArabic ? 1 : 2 ;
}
@ -120,16 +114,16 @@ class BaseAppClient {
if ( body . containsKey ( ' isDentalAllowedBackend ' ) ) {
body [ ' isDentalAllowedBackend ' ] = body . containsKey ( ' isDentalAllowedBackend ' )
? body [ ' isDentalAllowedBackend ' ] ! = null
? body [ ' isDentalAllowedBackend ' ]
: IS_DENTAL_ALLOWED_BACKEND
? body [ ' isDentalAllowedBackend ' ]
: IS_DENTAL_ALLOWED_BACKEND
: IS_DENTAL_ALLOWED_BACKEND ;
}
body [ ' DeviceTypeID ' ] = Platform . isIOS
? 1
: await Utils . isGoogleServicesAvailable ( )
? 2
: 3 ;
? 2
: 3 ;
if ( ! body . containsKey ( ' IsPublicRequest ' ) ) {
/ / if ( ! body . containsKey ( ' PatientType ' ) ) {
@ -166,17 +160,14 @@ class BaseAppClient {
if ( user ! = null ) {
body [ ' TokenID ' ] = body [ ' TokenID ' ] ! = null ? body [ ' TokenID ' ] : token ;
body [ ' PatientID ' ] = body [ ' PatientID ' ] ! = null
? body [ ' PatientID ' ]
: user [ ' PatientID ' ] ;
body [ ' PatientID ' ] = body [ ' PatientID ' ] ! = null ? body [ ' PatientID ' ] : user [ ' PatientID ' ] ;
body [ ' PatientOutSA ' ] = body . containsKey ( ' PatientOutSA ' )
? body [ ' PatientOutSA ' ] ! = null
? body [ ' PatientOutSA ' ]
: user [ ' OutSA ' ]
? body [ ' PatientOutSA ' ]
: user [ ' OutSA ' ]
: user [ ' OutSA ' ] ;
body [ ' SessionID ' ] = getSessionId (
body [ ' TokenID ' ] ! = null ? body [ ' TokenID ' ] : " " ) ; / / getSe
body [ ' SessionID ' ] = getSessionId ( body [ ' TokenID ' ] ! = null ? body [ ' TokenID ' ] : " " ) ; / / getSe
/ / body [ ' SessionID ' ] = body [ ' TokenID ' ] ; / / getSe
/ / headers = {
@ -203,20 +194,17 @@ class BaseAppClient {
body . removeWhere ( ( key , value ) = > key = = null | | value = = null ) ;
/ / if ( AppGlobal . isNetworkDebugEnabled ) {
p rint( " URL : $ url " ) ;
final jsonBody = json . encode ( body ) ;
p rint( jsonBody ) ;
debugP rint( " URL : $ url " ) ;
final jsonBody = json . encode ( body ) ;
debugP rint( jsonBody ) ;
/ / }
if ( await Utils . checkConnection (
bypassConnectionCheck: bypassConnectionCheck ) ) {
final response = await http . post ( Uri . parse ( url . trim ( ) ) ,
body: json . encode ( body ) , headers: headers ) ;
if ( await Utils . checkConnection ( bypassConnectionCheck: bypassConnectionCheck ) ) {
final response = await http . post ( Uri . parse ( url . trim ( ) ) , body: json . encode ( body ) , headers: headers ) ;
final int statusCode = response . statusCode ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
onFailure ( ' Error While Fetching data ' , statusCode ) ;
logApiEndpointError (
endPoint , ' Error While Fetching data ' , statusCode ) ;
logApiEndpointError ( endPoint , ' Error While Fetching data ' , statusCode ) ;
} else {
/ / var decoded = utf8 . decode ( response . bodyBytes ) ;
var parsed = json . decode ( utf8 . decode ( response . bodyBytes ) ) ;
@ -230,12 +218,8 @@ class BaseAppClient {
onSuccess ( parsed , statusCode ) ;
} else {
if ( parsed [ ' ErrorType ' ] = = 4 ) {
navigateToAppUpdate (
AppGlobal . context , parsed [ ' ErrorEndUserMessage ' ] ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
navigateToAppUpdate ( AppGlobal . context , parsed [ ' ErrorEndUserMessage ' ] ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
if ( parsed [ ' ErrorType ' ] = = 2 ) {
await logout ( ) ;
@ -254,46 +238,28 @@ class BaseAppClient {
/ / if ( parsed ! = null ) {
/ / onSuccess ( parsed , statusCode ) ;
/ / } else {
onFailure (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
/ / logout ( ) ;
/ / }
}
} else if ( parsed [ ' MessageStatus ' ] = = 1 | |
parsed [ ' SMSLoginRequired ' ] = = true ) {
} else if ( parsed [ ' MessageStatus ' ] = = 1 | | parsed [ ' SMSLoginRequired ' ] = = true ) {
onSuccess ( parsed , statusCode ) ;
} else if ( parsed [ ' MessageStatus ' ] = = 2 & &
parsed [ ' IsAuthenticated ' ] ) {
} else if ( parsed [ ' MessageStatus ' ] = = 2 & & parsed [ ' IsAuthenticated ' ] ) {
if ( parsed [ ' SameClinicApptList ' ] ! = null ) {
onSuccess ( parsed , statusCode ) ;
} else {
if ( parsed [ ' message ' ] = = null & &
parsed [ ' ErrorEndUserMessage ' ] = = null ) {
if ( parsed [ ' message ' ] = = null & & parsed [ ' ErrorEndUserMessage ' ] = = null ) {
if ( parsed [ ' ErrorSearchMsg ' ] = = null ) {
onFailure ( " Server Error found with no available message " ,
statusCode ) ;
logApiEndpointError (
endPoint ,
" Server Error found with no available message " ,
statusCode ) ;
onFailure ( " Server Error found with no available message " , statusCode ) ;
logApiEndpointError ( endPoint , " Server Error found with no available message " , statusCode ) ;
} else {
onFailure ( parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
logApiEndpointError (
endPoint , parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
}
} else {
onFailure (
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError ( endPoint ,
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
onFailure ( parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
}
}
}
@ -305,18 +271,11 @@ class BaseAppClient {
onSuccess ( parsed , statusCode ) ;
} else {
if ( parsed [ ' message ' ] ! = null ) {
onFailure (
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError ( endPoint ,
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
onFailure ( parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
} else {
onFailure (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
}
}
@ -325,23 +284,17 @@ class BaseAppClient {
}
} else {
onFailure ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
} catch ( e ) {
print ( e ) ;
onFailure ( e . toString ( ) , - 1 ) ;
_analytics . errorTracking
. log ( endPoint , error: " api exception: $ e - API Path: $ url " ) ;
_analytics . errorTracking . log ( endPoint , error: " api exception: $ e - API Path: $ url " ) ;
}
}
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 {
{ 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 ;
@ -358,16 +311,13 @@ class BaseAppClient {
' Content-Type ' : ' application/json ' ,
' Accept ' : ' application/json ' ,
' Authorization ' : pharmacyToken ? ? ' ' ,
' Mobilenumber ' : user ! = null
? Utils . getPhoneNumberWithoutZero ( user [ ' MobileNumber ' ] . toString ( ) )
: " " ,
' Mobilenumber ' : user ! = null ? Utils . 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 ' ) ;
var languageID = await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
/ / if ( body . containsKey ( ' SetupID ' ) ) {
/ / body [ ' SetupID ' ] = body . containsKey ( ' SetupID ' )
@ -429,14 +379,12 @@ class BaseAppClient {
print ( " Headers : ${ json . encode ( headers ) } " ) ;
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 ;
/ / print ( " statusCode : $ statusCode " ) ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
onFailure ! ( ' Error While Fetching data ' , statusCode ) ;
logApiEndpointError (
endPoint , ' Error While Fetching data ' , statusCode ) ;
logApiEndpointError ( endPoint , ' Error While Fetching data ' , statusCode ) ;
} else {
/ / var parsed = json . decode ( response . body . toString ( ) ) ;
var parsed = json . decode ( utf8 . decode ( response . bodyBytes ) ) ;
@ -464,56 +412,29 @@ class BaseAppClient {
if ( parsed ! = null ) {
onSuccess ! ( parsed , statusCode ) ;
} else {
onFailure ! (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint , ' session logged out ' , statusCode ) ;
onFailure ! ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , ' session logged out ' , statusCode ) ;
logout ( ) ;
}
}
} else if ( parsed [ ' MessageStatus ' ] = = 1 | |
parsed [ ' SMSLoginRequired ' ] = = true ) {
} else if ( parsed [ ' MessageStatus ' ] = = 1 | | parsed [ ' SMSLoginRequired ' ] = = true ) {
onSuccess ! ( parsed , statusCode ) ;
} else if ( parsed [ ' MessageStatus ' ] = = 2 & &
parsed [ ' IsAuthenticated ' ] ) {
} else if ( parsed [ ' MessageStatus ' ] = = 2 & & parsed [ ' IsAuthenticated ' ] ) {
if ( parsed [ ' SameClinicApptList ' ] ! = null ) {
onSuccess ! ( parsed , statusCode ) ;
} else {
if ( parsed [ ' message ' ] = = null & &
parsed [ ' ErrorEndUserMessage ' ] = = null ) {
if ( parsed [ ' message ' ] = = null & & parsed [ ' ErrorEndUserMessage ' ] = = null ) {
if ( parsed [ ' ErrorSearchMsg ' ] = = null ) {
onFailure ! ( " Server Error found with no available message " ,
statusCode ) ;
logApiEndpointError (
endPoint ,
" Server Error found with no available message " ,
statusCode ) ;
onFailure ! ( " Server Error found with no available message " , statusCode ) ;
logApiEndpointError ( endPoint , " Server Error found with no available message " , statusCode ) ;
} else {
onFailure ! ( parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorSearchMsg ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorSearchMsg ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
} else {
onFailure ! (
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
}
} else if ( ! parsed [ ' IsAuthenticated ' ] ) {
@ -525,22 +446,11 @@ class BaseAppClient {
onSuccess ! ( parsed , statusCode ) ;
} else {
if ( parsed [ ' message ' ] ! = null ) {
onFailure ! (
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
} else {
onFailure ! (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
}
}
@ -548,8 +458,7 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
} catch ( e ) {
print ( e ) ;
@ -560,18 +469,18 @@ class BaseAppClient {
Future navigateToAppUpdate ( context , String text ) async {
Navigator . pushAndRemoveUntil (
locator < NavigationService > ( ) . navigatorKey . currentContext ! ,
locator < NavigationService > ( ) . navigatorKey . currentContext ! ,
MaterialPageRoute ( builder: ( context ) = > AppUpdatePage ( appUpdateText: text ) ) ,
( Route < dynamic > route ) = > false ,
( Route < dynamic > route ) = > false ,
) ;
}
get ( String endPoint ,
{ required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
Map < String , dynamic > ? queryParams ,
bool isExternal = false ,
bool isRCService = false } ) async {
required Function ( String error , int statusCode ) onFailure ,
Map < String , dynamic > ? queryParams ,
bool isExternal = false ,
bool isRCService = false } ) async {
String url ;
if ( isExternal ) {
url = endPoint ;
@ -592,10 +501,7 @@ class BaseAppClient {
if ( await Utils . checkConnection ( ) ) {
final response = await http . get (
Uri . parse ( url . trim ( ) ) ,
headers: {
' Content-Type ' : ' application/json ' ,
' Accept ' : ' application/json '
} ,
headers: { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ,
) ;
final int statusCode = response . statusCode ;
/ / print ( " statusCode : $ statusCode " ) ;
@ -609,17 +515,16 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
getPharmacy ( String endPoint ,
{ required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
bool isAllowAny = false ,
bool isExternal = false ,
Map < String , dynamic > ? queryParams } ) async {
required Function ( String error , int statusCode ) onFailure ,
bool isAllowAny = false ,
bool isExternal = false ,
Map < String , dynamic > ? queryParams } ) async {
var token = await sharedPref . getString ( PHARMACY_AUTORZIE_TOKEN ) ;
var user = await sharedPref . getObject ( USER_PROFILE ) ;
@ -642,9 +547,7 @@ class BaseAppClient {
' Content-Type ' : ' text/html; charset=utf-8 ' ,
' Accept ' : ' application/json ' ,
' Authorization ' : token ? ? ' ' ,
' Mobilenumber ' : user ! = null
? Utils . getPhoneNumberWithoutZero ( user [ ' MobileNumber ' ] . toString ( ) )
: " " ,
' Mobilenumber ' : user ! = null ? Utils . getPhoneNumberWithoutZero ( user [ ' MobileNumber ' ] . toString ( ) ) : " " ,
' Statictoken ' : ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ' ,
' Username ' : user ! = null ? user [ ' PatientID ' ] . toString ( ) : " " ,
/ / ' Host ' : " mdlaboratories.com " ,
@ -654,19 +557,14 @@ class BaseAppClient {
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
if ( statusCode = = 401 ) {
onFailure ! ( TranslationBase . of ( AppGlobal . context ) . pharmacyRelogin ,
statusCode ) ;
logApiEndpointError (
endPoint ,
TranslationBase . of ( AppGlobal . context ) . pharmacyRelogin ,
statusCode ) ;
onFailure ! ( TranslationBase . of ( AppGlobal . context ) . pharmacyRelogin , statusCode ) ;
logApiEndpointError ( endPoint , TranslationBase . of ( AppGlobal . context ) . pharmacyRelogin , statusCode ) ;
Navigator . of ( AppGlobal . context ) . pushNamed ( HOME ) ;
} else {
var bodyUtf = json . decode ( utf8 . decode ( response . bodyBytes ) ) ;
/ / print ( bodyUtf ) ;
onFailure ! ( bodyUtf [ ' error ' ] [ ' ErrorEndUserMsg ' ] , statusCode ) ;
logApiEndpointError (
endPoint , bodyUtf [ ' error ' ] [ ' ErrorEndUserMsg ' ] , statusCode ) ;
logApiEndpointError ( endPoint , bodyUtf [ ' error ' ] [ ' ErrorEndUserMsg ' ] , statusCode ) ;
}
} else {
/ / var parsed = json . decode ( response . body . toString ( ) ) ;
@ -675,25 +573,23 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
simplePost (
String fullUrl , {
required Map < dynamic , dynamic > body ,
required Map < String , String > headers ,
required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
} ) async {
String fullUrl , {
required Map < dynamic , dynamic > body ,
required Map < String , String > headers ,
required Function ( dynamic response , int statusCode ) onSuccess ,
required Function ( String error , int statusCode ) onFailure ,
} ) async {
String url = fullUrl ;
/ / print ( " URL Query String: $ url " ) ;
/ / print ( " body: $ body " ) ;
if ( await Utils . checkConnection ( ) ) {
headers ! . addAll (
{ ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
headers ! . addAll ( { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
final response = await http . post (
Uri . parse ( url . trim ( ) ) ,
body: json . encode ( body ) ,
@ -701,12 +597,7 @@ class BaseAppClient {
) ;
final int statusCode = response . statusCode ;
/ / print ( " statusCode : $ statusCode " ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) )
simplePost ( fullUrl ,
onFailure: onFailure ,
onSuccess: onSuccess ,
body: body ,
headers: headers ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) ) simplePost ( fullUrl , onFailure: onFailure , onSuccess: onSuccess , body: body , headers: headers ) ;
/ / print ( response . body . toString ( ) ) ;
@ -718,16 +609,12 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
simpleGet ( String fullUrl ,
{ Function ( dynamic response , int statusCode ) ? onSuccess ,
Function ( String error , int statusCode ) ? onFailure ,
Map < String , dynamic > ? queryParams ,
Map < String , String > ? headers } ) async {
{ Function ( dynamic response , int statusCode ) ? onSuccess , Function ( String error , int statusCode ) ? onFailure , Map < String , dynamic > ? queryParams , Map < String , String > ? headers } ) async {
headers = headers ? ? { } ;
String url = fullUrl ;
@ -739,8 +626,7 @@ class BaseAppClient {
}
if ( await Utils . checkConnection ( ) ) {
headers . addAll (
{ ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
headers . addAll ( { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
final response = await http . get (
Uri . parse ( url . trim ( ) ) ,
headers: headers ,
@ -748,12 +634,7 @@ class BaseAppClient {
final int statusCode = response . statusCode ;
/ / print ( " statusCode : $ statusCode " ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) )
simpleGet ( fullUrl ,
onFailure: onFailure ,
onSuccess: onSuccess ,
headers: headers ,
queryParams: queryParams ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) ) simpleGet ( fullUrl , onFailure: onFailure , onSuccess: onSuccess , headers: headers , queryParams: queryParams ) ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
onFailure ! ( ' Error While Fetching data ' , statusCode ) ;
@ -763,22 +644,17 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
simplePut ( String fullUrl ,
{ Map < String , dynamic > ? body ,
Map < String , String > ? headers ,
Function ( dynamic response , int statusCode ) ? onSuccess ,
Function ( String error , int statusCode ) ? onFailure } ) async {
{ Map < String , dynamic > ? body , Map < String , String > ? headers , Function ( dynamic response , int statusCode ) ? onSuccess , Function ( String error , int statusCode ) ? onFailure } ) async {
String url = fullUrl ;
/ / print ( " URL Query String: $ url " ) ;
if ( await Utils . checkConnection ( ) ) {
headers ! . addAll (
{ ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
headers ! . addAll ( { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
final response = await http . put (
Uri . parse ( url . trim ( ) ) ,
body: json . encode ( body ) ,
@ -787,12 +663,7 @@ class BaseAppClient {
final int statusCode = response . statusCode ;
/ / print ( " statusCode : $ statusCode " ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) )
simplePut ( fullUrl ,
onFailure: onFailure ,
onSuccess: onSuccess ,
headers: headers ,
body: body ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) ) simplePut ( fullUrl , onFailure: onFailure , onSuccess: onSuccess , headers: headers , body: body ) ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
onFailure ! ( ' Error While Fetching data ' , statusCode ) ;
@ -802,16 +673,12 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
simpleDelete ( String fullUrl ,
{ Function ( dynamic response , int statusCode ) ? onSuccess ,
Function ( String error , int statusCode ) ? onFailure ,
Map < String , String > ? queryParams ,
Map < String , String > ? headers } ) async {
{ Function ( dynamic response , int statusCode ) ? onSuccess , Function ( String error , int statusCode ) ? onFailure , Map < String , String > ? queryParams , Map < String , String > ? headers } ) async {
String url = fullUrl ;
/ / print ( " URL Query String: $ url " ) ;
@ -823,8 +690,7 @@ class BaseAppClient {
}
if ( await Utils . checkConnection ( ) ) {
headers ! . addAll (
{ ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
headers ! . addAll ( { ' Content-Type ' : ' application/json ' , ' Accept ' : ' application/json ' } ) ;
final response = await http . delete (
Uri . parse ( url . trim ( ) ) ,
headers: headers ,
@ -832,12 +698,7 @@ class BaseAppClient {
final int statusCode = response . statusCode ;
/ / print ( " statusCode : $ statusCode " ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) )
simpleDelete ( fullUrl ,
onFailure: onFailure ,
onSuccess: onSuccess ,
queryParams: queryParams ,
headers: headers ) ;
if ( await handleUnauthorized ( statusCode , forUrl: fullUrl ) ) simpleDelete ( fullUrl , onFailure: onFailure , onSuccess: onSuccess , queryParams: queryParams , headers: headers ) ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
onFailure ! ( ' Error While Fetching data ' , statusCode ) ;
@ -847,13 +708,11 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
}
Future < bool > handleUnauthorized ( int statusCode ,
{ required String forUrl } ) async {
Future < bool > handleUnauthorized ( int statusCode , { required String forUrl } ) async {
if ( forUrl . startsWith ( EXA_CART_API_BASE_URL ) & & statusCode = = 401 ) {
final token = await generatePackagesToken ( ) ;
packagesAuthHeader [ ' Authorization ' ] = ' Bearer $ token ' ;
@ -866,10 +725,8 @@ class BaseAppClient {
await sharedPref . remove ( LOGIN_TOKEN_ID ) ;
await sharedPref . remove ( PHARMACY_CUSTOMER_ID ) ;
await authenticatedUserObject . getUser ( ) ;
Provider . of < ProjectViewModel > ( AppGlobal . context , listen: false ) . isLogin =
false ;
var model =
Provider . of < ToDoCountProviderModel > ( AppGlobal . context , listen: false ) ;
Provider . of < ProjectViewModel > ( AppGlobal . context , listen: false ) . isLogin = false ;
var model = Provider . of < ToDoCountProviderModel > ( AppGlobal . context , listen: false ) ;
_vitalSignService . weightKg = " " ;
_vitalSignService . heightCm = " " ;
model . setState ( 0 , 0 , false , null ) ;
@ -884,8 +741,7 @@ class BaseAppClient {
static defaultHttpParameters ( ) async {
String token = await sharedPref . getString ( TOKEN ) ;
var languageID =
await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
var languageID = await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
var user = await sharedPref . getObject ( USER_PROFILE ) ;
var params = { } ;
if ( user ! = null ) {
@ -905,11 +761,7 @@ class BaseAppClient {
}
pharmacyPost ( 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 {
{ 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 ;
@ -921,14 +773,13 @@ class BaseAppClient {
try {
if ( isExternal ) {
String token = await sharedPref . getString ( TOKEN ) ;
var languageID =
await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
var languageID = await sharedPref . getStringWithDefaultValue ( APP_LANGUAGE , ' ar ' ) ;
var user = await sharedPref . getObject ( USER_PROFILE ) ;
if ( body ! . containsKey ( ' SetupID ' ) ) {
body [ ' SetupID ' ] = body . containsKey ( ' SetupID ' )
? body [ ' SetupID ' ] ! = null
? body [ ' SetupID ' ]
: SETUP_ID
? body [ ' SetupID ' ]
: SETUP_ID
: SETUP_ID ;
}
@ -940,15 +791,15 @@ class BaseAppClient {
body [ ' generalid ' ] = GENERAL_ID ;
body [ ' PatientOutSA ' ] = body . containsKey ( ' PatientOutSA ' )
? body [ ' PatientOutSA ' ] ! = null
? body [ ' PatientOutSA ' ]
: user [ ' OutSA ' ]
? body [ ' PatientOutSA ' ]
: user [ ' OutSA ' ]
: user [ ' OutSA ' ] ;
if ( body . containsKey ( ' isDentalAllowedBackend ' ) ) {
body [ ' isDentalAllowedBackend ' ] = body . containsKey ( ' isDentalAllowedBackend ' )
? body [ ' isDentalAllowedBackend ' ] ! = null
? body [ ' isDentalAllowedBackend ' ]
: IS_DENTAL_ALLOWED_BACKEND
? body [ ' isDentalAllowedBackend ' ]
: IS_DENTAL_ALLOWED_BACKEND
: IS_DENTAL_ALLOWED_BACKEND ;
}
@ -957,24 +808,22 @@ class BaseAppClient {
if ( ! body . containsKey ( ' IsPublicRequest ' ) ) {
body [ ' PatientType ' ] = body . containsKey ( ' PatientType ' )
? body [ ' PatientType ' ] ! = null
? body [ ' PatientType ' ]
: user [ ' PatientType ' ] ! = null
? user [ ' PatientType ' ]
: user [ ' PatientType ' ]
? body [ ' PatientType ' ]
: user [ ' PatientType ' ] ! = null
? user [ ' PatientType ' ]
: user [ ' PatientType ' ]
: user [ ' PatientType ' ] ;
body [ ' PatientTypeID ' ] = body . containsKey ( ' PatientTypeID ' )
? body [ ' PatientTypeID ' ] ! = null
? body [ ' PatientTypeID ' ]
: user [ ' PatientType ' ] ! = null
? user [ ' PatientType ' ]
: user [ ' PatientType ' ]
? body [ ' PatientTypeID ' ]
: user [ ' PatientType ' ] ! = null
? user [ ' PatientType ' ]
: user [ ' PatientType ' ]
: user [ ' PatientType ' ] ;
if ( user ! = null ) {
body [ ' TokenID ' ] = token ;
body [ ' PatientID ' ] = body [ ' PatientID ' ] ! = null
? body [ ' PatientID ' ]
: user [ ' PatientID ' ] ;
body [ ' PatientID ' ] = body [ ' PatientID ' ] ! = null ? body [ ' PatientID ' ] : user [ ' PatientID ' ] ;
body [ ' PatientOutSA ' ] = user [ ' OutSA ' ] ;
/ / body [ ' SessionID ' ] = SESSION_ID ; / / getSessionId ( token ) ;
}
@ -986,14 +835,11 @@ class BaseAppClient {
var ss = json . encode ( body ) ;
if ( await Utils . checkConnection ( ) ) {
final response = await http
. post ( Uri . parse ( url . trim ( ) ) , body: json . encode ( body ) , headers: {
final response = await http . post ( Uri . parse ( url . trim ( ) ) , body: json . encode ( body ) , headers: {
' Content-Type ' : ' application/json ' ,
' Accept ' : ' application/json ' ,
' Authorization ' : token ? ? ' ' ,
' Mobilenumber ' : user ! = null
? Utils . getPhoneNumberWithoutZero ( user [ ' MobileNumber ' ] . toString ( ) )
: " " ,
' Mobilenumber ' : user ! = null ? Utils . getPhoneNumberWithoutZero ( user [ ' MobileNumber ' ] . toString ( ) ) : " " ,
' Statictoken ' : ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 ' ,
' Username ' : user ! = null ? user [ ' PatientID ' ] . toString ( ) : " " ,
} ) ;
@ -1001,15 +847,8 @@ class BaseAppClient {
/ / print ( " statusCode : $ statusCode " ) ;
if ( statusCode < 200 | | statusCode > = 400 | | json = = null ) {
var parsed = json . decode ( utf8 . decode ( response . bodyBytes ) ) ;
onFailure ! (
parsed [ ' error ' ] [ ' ErrorEndUserMsgN ' ] ? ?
' Error While Fetching data ' ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' error ' ] [ ' ErrorEndUserMsgN ' ] ? ?
' Error While Fetching data ' ,
statusCode ) ;
onFailure ! ( parsed [ ' error ' ] [ ' ErrorEndUserMsgN ' ] ? ? ' Error While Fetching data ' , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' error ' ] [ ' ErrorEndUserMsgN ' ] ? ? ' Error While Fetching data ' , statusCode ) ;
} else {
/ / var parsed = json . decode ( response . body . toString ( ) ) ;
var parsed = json . decode ( utf8 . decode ( response . bodyBytes ) ) ;
@ -1017,8 +856,7 @@ class BaseAppClient {
onSuccess ! ( parsed , statusCode ) ;
} else {
if ( parsed [ ' ErrorType ' ] = = 4 ) {
navigateToAppUpdate (
AppGlobal . context , parsed [ ' ErrorEndUserMessage ' ] ) ;
navigateToAppUpdate ( AppGlobal . context , parsed [ ' ErrorEndUserMessage ' ] ) ;
}
if ( isAllowAny ) {
onSuccess ! ( parsed , statusCode ) ;
@ -1033,47 +871,25 @@ class BaseAppClient {
if ( parsed ! = null ) {
onSuccess ! ( parsed , statusCode ) ;
} else {
onFailure ! (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logout ( ) ;
}
}
} else if ( parsed [ ' MessageStatus ' ] = = 1 | |
parsed [ ' SMSLoginRequired ' ] = = true ) {
} else if ( parsed [ ' MessageStatus ' ] = = 1 | | parsed [ ' SMSLoginRequired ' ] = = true ) {
onSuccess ! ( parsed , statusCode ) ;
} else if ( parsed [ ' MessageStatus ' ] = = 2 & &
parsed [ ' IsAuthenticated ' ] ) {
if ( parsed [ ' message ' ] = = null & &
parsed [ ' ErrorEndUserMessage ' ] = = null ) {
} else if ( parsed [ ' MessageStatus ' ] = = 2 & & parsed [ ' IsAuthenticated ' ] ) {
if ( parsed [ ' message ' ] = = null & & parsed [ ' ErrorEndUserMessage ' ] = = null ) {
if ( parsed [ ' ErrorSearchMsg ' ] = = null ) {
onFailure ! ( " Server Error found with no available message " ,
statusCode ) ;
logApiEndpointError (
endPoint ,
" Server Error found with no available message " ,
statusCode ) ;
onFailure ! ( " Server Error found with no available message " , statusCode ) ;
logApiEndpointError ( endPoint , " Server Error found with no available message " , statusCode ) ;
} else {
onFailure ! ( parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
logApiEndpointError (
endPoint , parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorSearchMsg ' ] , statusCode ) ;
}
} else {
onFailure ! (
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' message ' ] ? ?
parsed [ ' ErrorEndUserMessage ' ] ? ?
parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
} else if ( ! parsed [ ' IsAuthenticated ' ] ) {
await logout ( ) ;
@ -1084,18 +900,11 @@ class BaseAppClient {
onSuccess ! ( parsed , statusCode ) ;
} else {
if ( parsed [ ' message ' ] ! = null ) {
onFailure ! (
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError ( endPoint ,
parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
onFailure ! ( parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' message ' ] ? ? parsed [ ' message ' ] , statusCode ) ;
} else {
onFailure ! (
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
logApiEndpointError (
endPoint ,
parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] ,
statusCode ) ;
onFailure ! ( parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
logApiEndpointError ( endPoint , parsed [ ' ErrorEndUserMessage ' ] ? ? parsed [ ' ErrorMessage ' ] , statusCode ) ;
}
}
}
@ -1103,8 +912,7 @@ class BaseAppClient {
}
} else {
onFailure ! ( ' Please Check The Internet Connection ' , - 1 ) ;
_analytics . errorTracking
. log ( " internet_connectivity " , error: " no internet available " ) ;
_analytics . errorTracking . log ( " internet_connectivity " , error: " no internet available " ) ;
}
} catch ( e ) {
print ( e ) ;
@ -1116,15 +924,11 @@ class BaseAppClient {
Future < String > generatePackagesToken ( ) async {
var url = EXA_CART_API_BASE_URL + PACKAGES_TOKEN ;
var body = {
" api_client " : {
" client_id " : " a4ab6be4-424f-4836-b032-46caed88e184 " ,
" client_secret " : " 3c1a3e07-4a40-4510-9fb0-ee5f0a72752c "
}
" api_client " : { " client_id " : " a4ab6be4-424f-4836-b032-46caed88e184 " , " client_secret " : " 3c1a3e07-4a40-4510-9fb0-ee5f0a72752c " }
} ;
String ? token ;
final completer = Completer ( ) ;
simplePost ( url , body: body , headers: { } ,
onSuccess: ( dynamic stringResponse , int statusCode ) {
simplePost ( url , body: body , headers: { } , onSuccess: ( dynamic stringResponse , int statusCode ) {
if ( statusCode = = 200 ) {
var jsonResponse = json . decode ( stringResponse ) ;
token = jsonResponse [ ' auth_token ' ] ;