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.
75 lines
2.5 KiB
Dart
75 lines
2.5 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:doctor_app_flutter/config/config.dart';
|
|
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
|
|
import 'package:doctor_app_flutter/interceptor/http_interceptor.dart';
|
|
import 'package:doctor_app_flutter/models/doctor_profile_model.dart';
|
|
import 'package:doctor_app_flutter/util/helpers.dart';
|
|
import 'package:http/http.dart';
|
|
|
|
/*
|
|
*@author: Mohammad Aljammal
|
|
*@Date:28/5/2020
|
|
*@param: url, onSuccess callBack, onFailure callBack
|
|
*@return:
|
|
*@desc:
|
|
*/
|
|
///Example
|
|
/*
|
|
await BaseAppClient.post('',
|
|
onSuccess: (dynamic response, int statusCode) {},
|
|
onFailure: (String error, int statusCode) {},
|
|
body: null);
|
|
* */
|
|
class BaseAppClient {
|
|
static Client client = HttpInterceptor().getClient();
|
|
|
|
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);
|
|
DoctorProfileModel doctorProfile = DoctorProfileModel.fromJson(profile);
|
|
body['DoctorID'] = doctorProfile.doctorID;
|
|
body['EditedBy'] = doctorProfile.doctorID;
|
|
body['ProjectID'] = doctorProfile.projectID;
|
|
body['ClinicID'] = doctorProfile.clinicID;
|
|
body['TokenID'] = token;
|
|
body['LanguageID'] = LANGUAGE_ID;
|
|
body['stamp'] = STAMP;
|
|
body['IPAdress'] = IP_ADDRESS;
|
|
body['VersionID'] = VERSION_ID;
|
|
body['Channel'] = CHANNEL;
|
|
body['SessionID'] = SESSION_ID;
|
|
body['IsLoginForDoctorApp'] = IS_LOGIN_FOR_DOCTOR_APP;
|
|
body['PatientOutSA'] = PATIENT_OUT_SA;
|
|
|
|
if (await Helpers.checkConnection()) {
|
|
final response = await client.post(url, body: json.encode(body));
|
|
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['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);
|
|
}
|
|
}
|
|
}
|