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.
cloudsolutions-atoms/lib/controllers/providers/api/hospitals_provider.dart

62 lines
1.4 KiB
Dart

3 years ago
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:test_sa/api/hospitals_api_client.dart';
import 'package:test_sa/controllers/providers/loading_notifier.dart';
3 years ago
3 years ago
import '../../../models/hospital.dart';
import '../../../models/user.dart';
import '../../api_routes/urls.dart';
3 years ago
class HospitalsProvider extends LoadingNotifier {
3 years ago
// number of items call in each request
final pageItemNumber = 50;
//reset provider data
3 years ago
void reset() {
_hospitals.clear();
3 years ago
_stateCode = null;
}
3 years ago
int? _stateCode;
int? get stateCode => _stateCode;
3 years ago
// contain user data
// when user not login or register _user = null
List<Hospital> _hospitals=[];
3 years ago
List<Hospital> get hospitals => _hospitals;
3 years ago
3 years ago
Future getHospitals({
3 years ago
required String? title,
}) async {
waitApiRequest(() async {
_hospitals = [];
_hospitals.addAll(await HospitalsApiClient().getHospitals(title: title ?? "", pageSize: _hospitals.length ~/ pageItemNumber));
notifyListeners();
},
onSuccess: (){
_stateCode = 200;
3 years ago
}
);
3 years ago
}
3 years ago
Future<List<Hospital>> getHospitalsList({
required String title,
}) async {
waitApiRequest((){
return HospitalsApiClient().getHospitalsList(title: title);
},
onSuccess: (){
_stateCode=200;
3 years ago
}
);
return [];
3 years ago
}
3 years ago
}