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 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); } } }