fetchProducts method
Implementation
void fetchProducts(BuildContext context, String? merchantId) async {
tempItems.clear();
items.clear();
totalQuantity = 0.obs;
totalResults = 0.obs;
totalSold = 0.obs;
try {
isLoading(true);
var request = {
'api_key': await Constants.apiKey(),
'merchant_id': merchantId ?? Storage.getValue(Constants.merchantID)
};
var response = await DioClient().request(
context: context,
api: '/merchant/products/get',
method: Method.POST,
params: request);
GetProductsResponse getProductsResponse =
GetProductsResponse.fromJson(response);
if (getProductsResponse.status == Strings.success) {
tempItems.addAll(getProductsResponse.data!.obs);
items.addAll(tempItems);
totalResults = items.length.obs;
if (items.isNotEmpty) {
items.forEach((val) {
totalQuantity += int.parse(val.quantity!);
});
items.forEach((val) {
totalSold += int.parse(val.numberSold.toString().split(".")[0]);
});
}
} else {
isError(true);
errorMessage.value = response['message'].toString().toTitleCase();
return Utils.showSnackbar(context, Strings.error,
response['message'].toString().toTitleCase(), AppColors.red);
}
} finally {
isLoading(false);
}
update();
}