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.
92 lines
3.0 KiB
Dart
92 lines
3.0 KiB
Dart
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/models/pharmacies_List_request_model.dart';
|
|
import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart';
|
|
import 'package:doctor_app_flutter/util/helpers.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
class MedicineProvider with ChangeNotifier {
|
|
var pharmacyItemsList = [];
|
|
var pharmaciesList = [];
|
|
bool isFinished = false;
|
|
bool hasError = false;
|
|
String errorMsg = '';
|
|
|
|
PharmaciesItemsRequestModel _itemsRequestModel =PharmaciesItemsRequestModel();
|
|
PharmaciesListRequestModel _listRequestModel = PharmaciesListRequestModel();
|
|
|
|
Future<String> getMedicineItem(String itemName) async {
|
|
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;
|
|
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'];
|
|
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<String> getPharmaciesList(int itemId) async {
|
|
try {
|
|
if (await Helpers.checkConnection()) {
|
|
_listRequestModel.itemID = itemId;
|
|
final response = await AppClient.post(PHARMACY_LIST_URL,
|
|
body: json.encode(_listRequestModel.toJson()));
|
|
final int statusCode = response.statusCode;
|
|
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;
|
|
}
|
|
}
|