|
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
|
|
|
|
import 'dart:convert';
|
|
|
|
|
import 'dart:io' show Platform;
|
|
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/analytics/google-analytics.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart';
|
|
|
|
@ -15,6 +16,7 @@ import 'package:diplomaticquarterapp/uitl/utils.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
|
|
|
|
import 'package:http/http.dart' as http;
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
@ -34,6 +36,8 @@ AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObjec
|
|
|
|
|
VitalSignService _vitalSignService = locator<VitalSignService>();
|
|
|
|
|
|
|
|
|
|
class BaseAppClient {
|
|
|
|
|
final _analytics = locator<GAnalytics>();
|
|
|
|
|
|
|
|
|
|
post(String endPoint,
|
|
|
|
|
{Map<String, dynamic> body,
|
|
|
|
|
Function(dynamic response, int statusCode) onSuccess,
|
|
|
|
@ -143,6 +147,7 @@ class BaseAppClient {
|
|
|
|
|
// print("statusCode :$statusCode");
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('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));
|
|
|
|
@ -155,9 +160,11 @@ class BaseAppClient {
|
|
|
|
|
} else {
|
|
|
|
|
if (parsed['ErrorType'] == 4) {
|
|
|
|
|
navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
}
|
|
|
|
|
if (parsed['ErrorType'] == 2) {
|
|
|
|
|
await logout();
|
|
|
|
|
logApiEndpointError(endPoint, "session logged out", statusCode);
|
|
|
|
|
}
|
|
|
|
|
if (isAllowAny) {
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
@ -173,6 +180,7 @@ class BaseAppClient {
|
|
|
|
|
// onSuccess(parsed, statusCode);
|
|
|
|
|
// } else {
|
|
|
|
|
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
// logout();
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
@ -185,11 +193,14 @@ class BaseAppClient {
|
|
|
|
|
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);
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(parsed['ErrorSearchMsg'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorSearchMsg'], statusCode);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(parsed['message'] ?? parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['message'] ?? parsed['message'], statusCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -202,8 +213,10 @@ class BaseAppClient {
|
|
|
|
|
} else {
|
|
|
|
|
if (parsed['message'] != null) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -212,10 +225,12 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_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");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -317,6 +332,7 @@ class BaseAppClient {
|
|
|
|
|
// print("statusCode :$statusCode");
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('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));
|
|
|
|
@ -325,6 +341,7 @@ class BaseAppClient {
|
|
|
|
|
} else {
|
|
|
|
|
if (parsed['ErrorType'] == 4) {
|
|
|
|
|
navigateToAppUpdate(AppGlobal.context, parsed['ErrorEndUserMessage']);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
}
|
|
|
|
|
if (isAllowAny) {
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
@ -340,6 +357,8 @@ class BaseAppClient {
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, 'session logged out', statusCode);
|
|
|
|
|
logout();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -352,11 +371,14 @@ class BaseAppClient {
|
|
|
|
|
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);
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(parsed['ErrorSearchMsg'], 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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (!parsed['IsAuthenticated']) {
|
|
|
|
@ -369,8 +391,10 @@ class BaseAppClient {
|
|
|
|
|
} else {
|
|
|
|
|
if (parsed['message'] != null) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -378,10 +402,12 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_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");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -421,6 +447,7 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('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));
|
|
|
|
@ -428,6 +455,7 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -470,11 +498,13 @@ 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);
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
@ -483,6 +513,7 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -512,11 +543,13 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
|
logApiFullUrlError(fullUrl, 'Error While Fetching data', statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onSuccess(response.body.toString(), statusCode);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -545,11 +578,13 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
|
logApiFullUrlError(fullUrl, 'Error While Fetching data', statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onSuccess(response.body.toString(), statusCode);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -571,11 +606,13 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
|
logApiFullUrlError(fullUrl, 'Error While Fetching data', statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onSuccess(response.body.toString(), statusCode);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -604,11 +641,13 @@ class BaseAppClient {
|
|
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
|
|
|
onFailure('Error While Fetching data', statusCode);
|
|
|
|
|
logApiFullUrlError(fullUrl, 'Error While Fetching data', statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onSuccess(response.body.toString(), statusCode);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -750,6 +789,7 @@ class BaseAppClient {
|
|
|
|
|
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);
|
|
|
|
|
} else {
|
|
|
|
|
// var parsed = json.decode(response.body.toString());
|
|
|
|
|
var parsed = json.decode(utf8.decode(response.bodyBytes));
|
|
|
|
@ -773,6 +813,7 @@ class BaseAppClient {
|
|
|
|
|
onSuccess(parsed, statusCode);
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logApiEndpointError(endPoint, parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'], statusCode);
|
|
|
|
|
logout();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -782,11 +823,14 @@ class BaseAppClient {
|
|
|
|
|
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);
|
|
|
|
|
} else {
|
|
|
|
|
onFailure(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);
|
|
|
|
|
}
|
|
|
|
|
} else if (!parsed['IsAuthenticated']) {
|
|
|
|
|
await logout();
|
|
|
|
@ -798,8 +842,10 @@ class BaseAppClient {
|
|
|
|
|
} else {
|
|
|
|
|
if (parsed['message'] != null) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -807,10 +853,12 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
|
|
|
_analytics.errorTracking.log("internet_connectivity", error: "no internet available");
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
print(e);
|
|
|
|
|
onFailure(e.toString(), -1);
|
|
|
|
|
logApiEndpointError(endPoint, e.toString(), -1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -829,8 +877,20 @@ class BaseAppClient {
|
|
|
|
|
}
|
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
|
completer.complete();
|
|
|
|
|
logApiFullUrlError(url, error, statusCode);
|
|
|
|
|
});
|
|
|
|
|
await completer.future;
|
|
|
|
|
return token;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logApiFullUrlError(String fullUrl, error, code){
|
|
|
|
|
final endpoint = Uri.parse(fullUrl).pathSegments.last;
|
|
|
|
|
logApiEndpointError(endpoint, error, code);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logApiEndpointError(String endPoint, error, code){
|
|
|
|
|
_analytics.errorTracking.log(endPoint, error: error);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|