You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
Dart
63 lines
2.0 KiB
Dart
import 'dart:convert';
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
|
import 'package:http/http.dart' as http;
|
|
|
|
AppSharedPreferences sharedPref = new AppSharedPreferences();
|
|
|
|
///Example
|
|
///await BaseAppClient.post('',
|
|
/// onSuccess: (dynamic response, int statusCode) {},
|
|
/// onFailure: (String error, int statusCode) {},
|
|
/// body: null);
|
|
|
|
class BaseAppClient {
|
|
static post(
|
|
String endPoint, {
|
|
Map<String, dynamic> body,
|
|
Function(dynamic response, int statusCode) onSuccess,
|
|
Function(String error, int statusCode) onFailure,
|
|
}) async {
|
|
String url = BASE_URL + endPoint;
|
|
try {
|
|
|
|
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
|
|
// String token = await sharedPref.getString(TOKEN);
|
|
|
|
print("URL : $url");
|
|
print("Body : ${json.encode(body)}");
|
|
|
|
if (await Utils.checkConnection()) {
|
|
final response = await http.post(url,
|
|
body: json.encode(body),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Accept': 'application/json'
|
|
});
|
|
final int statusCode = response.statusCode;
|
|
if (statusCode < 200 || statusCode >= 400 || json == null) {
|
|
onFailure('Error While Fetching data', statusCode);
|
|
} else {
|
|
var parsed = json.decode(response.body.toString());
|
|
if (!parsed['IsAuthenticated']) {
|
|
// await helpers.logout();
|
|
//helpers.showErrorToast('Your session expired Please login agian');
|
|
// TODO create logout fun
|
|
} else if (parsed['MessageStatus'] == 1) {
|
|
onSuccess(parsed, statusCode);
|
|
} else {
|
|
onFailure(parsed['ErrorEndUserMessage'] ?? parsed['ErrorMessage'],
|
|
statusCode);
|
|
}
|
|
}
|
|
} else {
|
|
onFailure('Please Check The Internet Connection', -1);
|
|
}
|
|
} catch (e) {
|
|
print(e);
|
|
onFailure(e.toString(), -1);
|
|
}
|
|
}
|
|
}
|