import 'dart:convert'; import 'package:cssd/models/my_package_model.dart'; import 'package:flutter/foundation.dart'; import '../config/urls.dart'; import '../config/user.dart'; import 'package:http/http.dart' as http; class MyPackageProvider extends ChangeNotifier { String searchBoxValue = ''; bool filterOn = false; List? myPackages; List? hospitalPackages; List? originalMyPackages; List? originalHospitalPackages; List? originalMyPackagesRequests; List? originalHospitalPackagesRequests; MyPackageFilterObject? filters = MyPackageFilterObject( id: '', name: '', udi: '', ); int pageNumber = 1; void resetPageNumber() => pageNumber = 1; bool isloading = false; void resetLoading() { isloading = false; notifyListeners(); } void setLoading() { isloading = true; // notifyListeners(); } void searchMyPackages(String value) { myPackages = []; searchBoxValue = value; originalMyPackages!.forEach((result) { if (result.id.toString().contains(searchBoxValue)) { myPackages!.add(result); } }); notifyListeners(); } void searchHospitalPackages(String value) { hospitalPackages = []; searchBoxValue = value; originalHospitalPackages!.forEach((result) { if (result.id.toString().contains(searchBoxValue)) { hospitalPackages!.add(result); } }); notifyListeners(); } void setFilters( id, name, udi, ) { pageNumber = 1; filters = MyPackageFilterObject( id: id, name: name, udi: udi, ); if (filters!.id == '' && filters!.name == '' && filters!.udi == '') { filterOn = false; } else { filterOn = true; } notifyListeners(); } Future getMyPackages() async { String url = Url.getMyItems(pageNumber); if (filterOn) { if (filters!.id != '') { url += '&package_id=${filters!.id}'; } if (filters!.name != '') { url += '&name=${filters!.name}'; } if (filters!.udi != '') { url += '&udi=${filters!.udi}'; } } var response = await http.get( Uri.parse(url), headers: {'Authorization': User.token, "Accept": "application/json"}, ); var packagesData = json.decode(response.body); if (pageNumber == 1) { originalMyPackages = []; } for (var package in packagesData['data']) { originalMyPackages!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), fromDate: package['transfers']['from_date'], toDate: package['transfers']['to_date'], ), ); } pageNumber += 1; searchMyPackages(''); } Future getHospitalPackages() async { String url = Url.getHospitalItems(pageNumber); if (filterOn) { if (filters!.id != '') { url += '&package_id=${filters!.id}'; } if (filters!.name != '') { url += '&name=${filters!.name}'; } if (filters!.udi != '') { url += '&udi=${filters!.udi}'; } } var response = await http.get( Uri.parse(url), headers: {'Authorization': User.token, "Accept": "application/json"}, ); var packagesData = json.decode(response.body); if (pageNumber == 1) { originalHospitalPackages = []; } for (var package in packagesData['data']) { originalHospitalPackages!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), userName: package['user'] != null ? package['user']['name'] : '', fromDate: package['transfers']['from_date'], toDate: package['transfers']['to_date'], ), ); } pageNumber += 1; searchHospitalPackages(''); } Future getMyPackageRequests() async { String url = Url.getMyItemRequests; var response = await http.get( Uri.parse(url), headers: {'Authorization': User.token, "Accept": "application/json"}, ); var packagesData = json.decode(response.body); originalMyPackagesRequests = []; for (var package in packagesData['data']) { originalMyPackagesRequests!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), ), ); } } Future getHospitalPackageRequests() async { String url = Url.getHospitalItemRequests; var response = await http.get( Uri.parse(url), headers: {'Authorization': User.token, "Accept": "application/json"}, ); var packagesData = json.decode(response.body); originalHospitalPackagesRequests = []; for (var package in packagesData['data']) { originalHospitalPackagesRequests!.add( MyPackageResultObject( name: package['name'], id: package['id'].toString(), userName: package['user'] != null ? package['user']['name'] : '', ), ); } } Future transferPackage(String packageId, String userId) async { var response = await http.post( Uri.parse(Url.transferItems(packageId)), body: json.encode( { 'user_id': userId, }, ), headers: { 'Authorization': User.token, 'X-Requested-With': 'XMLHttpRequest', "Content-Type": "application/json", "Accept": "application/json" }, ); var packageData = json.decode(response.body); print(packageData); } Future verifyPackageRequests(String id, String value) async { var response = await http.post( Uri.parse(Url.verifyItemRequests(id, value)), body: json.encode({'status': value}), headers: { 'Authorization': User.token, 'X-Requested-With': 'XMLHttpRequest', "Content-Type": "application/json", "Accept": "application/json" }, ); var packageData = json.decode(response.body); try { if (packageData['data']['transfers']['status'] == 'approved') { return true; } else { return false; } } catch (e) { return false; } } }