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.
47 lines
1.5 KiB
Dart
47 lines
1.5 KiB
Dart
import 'package:diplomaticquarterapp/config/config.dart';
|
|
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
|
|
import 'package:diplomaticquarterapp/core/model/hospitals/request_get_hospitals_model.dart';
|
|
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
|
import 'package:geolocator/geolocator.dart';
|
|
|
|
class HospitalService extends BaseService {
|
|
List<HospitalsModel> _hospitals = List();
|
|
|
|
List<HospitalsModel> get hospitals => _hospitals;
|
|
|
|
double _latitude;
|
|
double _longitude;
|
|
|
|
_getCurrentLocation() async {
|
|
await Geolocator.getLastKnownPosition().then((value) {
|
|
_latitude = value.latitude;
|
|
_longitude = value.longitude;
|
|
}).catchError((e) {
|
|
_longitude = 0;
|
|
_latitude = 0;
|
|
});
|
|
}
|
|
|
|
Future getHospitals({bool isResBasedOnLoc = true}) async {
|
|
if(isResBasedOnLoc)
|
|
await _getCurrentLocation();
|
|
Map<String, dynamic> body = Map();
|
|
body['Latitude'] = isResBasedOnLoc?_latitude:0;
|
|
body['Longitude'] = isResBasedOnLoc?_longitude:0;
|
|
body['IsOnlineCheckIn'] = isResBasedOnLoc;
|
|
body['PatientOutSA'] = 0;
|
|
|
|
await baseAppClient.post(GET_PROJECT,
|
|
onSuccess: (dynamic response, int statusCode) {
|
|
_hospitals.clear();
|
|
response['ListProject'].forEach((hospital) {
|
|
_hospitals.add(HospitalsModel.fromJson(hospital));
|
|
});
|
|
}, onFailure: (String error, int statusCode) {
|
|
hasError = true;
|
|
super.error = error;
|
|
}, body: body);
|
|
}
|
|
|
|
}
|