updateCart method

dynamic updateCart()

Implementation

updateCart() async {
  final cartCopy = viewState.value.data?.copyWith();

  if (cartCopy != null) {
    cartUpdateState.value = ViewData.loading();
    isUpdating.value = true;
    update();
    final request = mapCartToUpdateCartRequest(cartCopy);

    await cartService.updateCart(request);

    final response = await cartService.getCart();

    response.fold(
      (error) {
        isUpdating.value = false;
        cartUpdateState.value = ViewData.error(message: error.message);
      },
      (result) {
        viewState.value.data = result.copyWith();
        isUpdating.value = false;
        cartUpdateState.value = ViewData.loaded(data: result);
      },
    );

    update();
  }
}