editProduct method
Implementation
void editProduct(
BuildContext context, String prodId) async {
FocusScope.of(context).requestFocus(FocusNode());
if (formKey.currentState!.validate()) {
FocusScope.of(context).unfocus();
try {
isLoading(true);
var request = {
'merchant_id': Storage.getValue(Constants.merchantID),
'api_key': await Constants.apiKey(),
'name': productName.text.toString(),
'price': productPrice.text.toString(),
'description': productDetails.text.toString(),
'quantity': productQuantity.text.toString(),
'category_id': productType.toString(),
'type': productType.toString(),
'tax': enterTax.text.toString(),
'shipping_fee': extraFee.text.toString(),
'asset_ids': selectedImagePaths,
'meta': {"items_left": productQuantity.text.toString()}
};
var response = await DioClient().request(
context: context,
api: '/merchant/products/update/$prodId',
method: Method.FORM,
payloadObj: request);
// ProductResponse productResponse = ProductResponse.fromJson(response);
Map<String, dynamic> respJson = Map<String, dynamic>.from(response);
final String status = respJson['status'] as String;
final String message = respJson['message'] as String;
if (status == Strings.success) {
Utils.navigationReplace(
context,
SuccessfulMgs(
successTitle: Strings.productUpdated,
successMessage: Strings.productUpdatedSuccessfully,
));
productsController.fetchProducts(
context, Storage.getValue(Constants.merchantID));
} else {
return Utils.showSnackbar(context, Strings.error,
message.toString().toTitleCase(), AppColors.red);
}
} catch (e) {
return Utils.showSnackbar(
context, Strings.error, e.toString(), AppColors.red);
} finally {
selectedImagePaths.clear();
isLoading(false);
}
update();
}
}