updateArticle<A extends ArticleRawAbstract> method

  1. @action
Future<A> updateArticle<A extends ArticleRawAbstract>(
  1. A articleData, {
  2. bool isInternetAvailable = true,
})

Implementation

@action
Future<A> updateArticle<A extends ArticleRawAbstract>(A articleData,
    {bool isInternetAvailable = true}) async {
  await _articlesService.updateArticleRpc.request(articleData);
  final calibreIndex =
      calibresFull.indexWhere((e) => e.id == articleData.calibreId);
  if (calibreIndex < 0) {
    throw 'error in updateArticle for ${articleData.toString()}';
  }
  final calibre = calibresFull[calibreIndex];
  if (calibre.articles.isEmpty) {
    throw 'error in updateArticle for ${articleData.toString()}';
  }
  final articleIndex =
      calibre.articles.indexWhere((a) => a.id == articleData.id);
  if (articleIndex < 0) {
    throw 'error in updateArticle';
  }
  await _updateCalibreServer(calibre, isInternetAvailable);
  calibresFull[calibreIndex].articles[articleIndex] = articleData;
  // make sur that the function sparks an update in mobx => View
  final temp = calibresFull[calibreIndex];
  calibresFull.removeAt(calibreIndex);
  calibresFull.add(temp);
  return articleData;
}