addToCart method
Implementation
void addToCart(String itemId, int quantity, AddToCart addToCart) async {
addToCart.onLoading();
final url = "https://api.plentrasphere.com/v2/client/index.php";
final body = {
'class': 'cart',
"appKey": appKey,
"action": "addToCart",
"itemId": itemId,
"quantity": quantity.toString(),
};
try {
final response = await http.post(
Uri.parse(url),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization': 'Bearer $token'
},
body: body,
);
final data = json.decode(response.body);
int code = data['response']['code'];
String status = data['response']['status'];
if (code == 400) {
if (status == "variants-found") {
addToCart.onVariants(data['variants']);
addToCart.onLoadfinished();
return;
}
if (status == "session-expired" || status == "please-login") {
addToCart.onNotLoggedIn();
addToCart.onLoadfinished();
return;
}
if (status == "app-expired") {
addToCart.onAppNotActive(data['info']['appName']);
addToCart.onLoadfinished();
return;
}
if (status == "item-already-added") {
addToCart.onItemAlreadyAdded();
addToCart.onLoadfinished();
return;
}
if (status == "not-in-stock") {
addToCart.onItemNotInStock();
addToCart.onLoadfinished();
return;
}
if (status == "cart-max-limit-reached") {
addToCart.onCartMaxLimitReached();
addToCart.onLoadfinished();
return;
}
addToCart.onError(status);
addToCart.onLoadfinished();
return;
}
addToCart.onSuccess(status);
addToCart.onLoadfinished();
} catch (e) {
addToCart.onError(e.toString());
addToCart.onLoadfinished();
}
}