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.
doctor_app_flutter/lib/providers/medicine_provider.dart

110 lines
3.5 KiB
Dart

import 'dart:convert';
import 'package:doctor_app_flutter/client/app_client.dart';
import 'package:doctor_app_flutter/config/config.dart';
4 years ago
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
5 years ago
import 'package:doctor_app_flutter/models/pharmacies_List_request_model.dart';
import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart';
4 years ago
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
5 years ago
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:flutter/cupertino.dart';
class MedicineProvider with ChangeNotifier {
4 years ago
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
5 years ago
var pharmacyItemsList = [];
var pharmaciesList = [];
4 years ago
bool isFinished = true;
5 years ago
bool hasError = false;
String errorMsg = '';
5 years ago
PharmaciesItemsRequestModel _itemsRequestModel =PharmaciesItemsRequestModel();
PharmaciesListRequestModel _listRequestModel = PharmaciesListRequestModel();
Future<String> getMedicineItem(String itemName) async {
4 years ago
resetDefaultValues();
try {
5 years ago
if (await Helpers.checkConnection()) {
_itemsRequestModel.phrItemName = itemName;
4 years ago
5 years ago
final response = await AppClient.post(PHARMACY_ITEMS_URL,
body: json.encode(_itemsRequestModel.toJson()));
final int statusCode = response.statusCode;
4 years ago
isFinished = true;
5 years ago
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) {
4 years ago
pharmacyItemsList = parsed['ListPharmcy_Region'];
5 years ago
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();
5 years ago
} catch (error) {
throw error;
}
5 years ago
return errorMsg;
}
5 years ago
5 years ago
Future<String> getPharmaciesList(int itemId) async {
4 years ago
String token = await sharedPref.getString(TOKEN);
resetDefaultValues();
5 years ago
try {
5 years ago
if (await Helpers.checkConnection()) {
_listRequestModel.itemID = itemId;
4 years ago
_listRequestModel.tokenID = token;
5 years ago
final response = await AppClient.post(PHARMACY_LIST_URL,
body: json.encode(_listRequestModel.toJson()));
final int statusCode = response.statusCode;
4 years ago
isFinished = true;
5 years ago
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;
}
5 years ago
return errorMsg;
}
4 years ago
resetDefaultValues() {
isFinished = false;
hasError = false;
errorMsg = '';
notifyListeners();
}
}