import 'dart:convert'; import 'package:doctor_app_flutter/client/app_client.dart'; import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart'; import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:flutter/cupertino.dart'; class MedicineProvider with ChangeNotifier { DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); var pharmacyItemsList = []; var pharmaciesList = []; bool isFinished = true; bool hasError = false; String errorMsg = ''; PharmaciesItemsRequestModel _itemsRequestModel =PharmaciesItemsRequestModel(); PharmaciesListRequestModel _listRequestModel = PharmaciesListRequestModel(); Future getMedicineItem(String itemName) async { resetDefaultValues(); try { if (await Helpers.checkConnection()) { _itemsRequestModel.phrItemName = itemName; final response = await AppClient.post(PHARMACY_ITEMS_URL, body: json.encode(_itemsRequestModel.toJson())); final int statusCode = response.statusCode; isFinished = true; if (statusCode < 200 || statusCode >= 400 || json == null) { isFinished = true; hasError = true; errorMsg = 'Error While Fetching data'; } else { var parsed = json.decode(response.body.toString()); if (parsed['MessageStatus'] == 1) { pharmacyItemsList = parsed['ListPharmcy_Region']; hasError = false; isFinished = true; errorMsg = "Done"; } else { hasError = true; errorMsg = parsed['ErrorMessage'] ?? parsed['ErrorEndUserMessage']; } } } else { isFinished = true; hasError = true; errorMsg = 'Please Check The Internet Connection'; } notifyListeners(); } catch (error) { throw error; } return errorMsg; } Future getPharmaciesList(int itemId) async { String token = await sharedPref.getString(TOKEN); resetDefaultValues(); try { if (await Helpers.checkConnection()) { _listRequestModel.itemID = itemId; _listRequestModel.tokenID = token; final response = await AppClient.post(PHARMACY_LIST_URL, body: json.encode(_listRequestModel.toJson())); final int statusCode = response.statusCode; isFinished = true; if (statusCode < 200 || statusCode >= 400 || json == null) { isFinished = true; hasError = true; errorMsg = 'Error While Fetching data'; } else { var parsed = json.decode(response.body.toString()); if (parsed['MessageStatus'] == 1) { pharmaciesList = parsed['PharmList']; hasError = false; isFinished = true; errorMsg = "Done"; } else { hasError = true; errorMsg = parsed['ErrorMessage'] ?? parsed['ErrorEndUserMessage']; } } } else { isFinished = true; hasError = true; errorMsg = 'Please Check The Internet Connection'; } notifyListeners(); } catch (error) { throw error; } return errorMsg; } resetDefaultValues() { isFinished = false; hasError = false; errorMsg = ''; notifyListeners(); } }