class AppProvider extends ChangeNotifier { Client client = Client(); late Databases _databases; late bool _isloading; List<Medications>? _meditem; bool get isloading => _isloading; List<Medications>? get meditem => _meditem; AppProvider() { _isloading = true; initializeclass(); } initializeclass() { client ..setEndpoint(Appconstants.endpoint) ..setProject(Appconstants.projectid); _databases = Databases(client); _isloading = false; } // load medication method loadMedication(String userid) async { try { final response = await _databases.listDocuments( collectionId: Appconstants.collectionID, databaseId: Appconstants.dbID, queries: [ // Query.orderAsc('date'), Query.equal('userID', [userid]) ]); _meditem = response.documents .map((meditem) => Medications.fromJson(meditem.data)) .toList(); notifyListeners(); } catch (e) { print(e); } } // add medication method addMedication(String medicationname, String userID, int dosages, bool isInjection, bool isTablet, bool isSyrup) async { try { final response = await _databases.createDocument( collectionId: Appconstants.collectionID, data: { 'id': '', 'medicationname': medicationname, 'userID': userID, 'dosages': dosages, 'isInjection': isInjection, 'isTablet': isTablet, 'isSyrup': isSyrup, 'check':false, 'isTrack':false }, databaseId: Appconstants.dbID, documentId: 'unique()', ); final String documentId = response.$id; // update the ID of the medication. await _databases.updateDocument( databaseId: Appconstants.dbID, collectionId: Appconstants.collectionID, documentId: documentId, data: {'id': documentId}); if (response.$id.isNotEmpty) { _isloading = false; } notifyListeners(); } catch (e) { _isloading = false; notifyListeners(); print(e); } } }