updateArticle method

Future<Article> updateArticle(
  1. UpdateArticleRequest request
)

Aendert nur die genannten Felder eines Artikels; UpdateArticleRequest.clear leert Felder.

Implementation

Future<Article> updateArticle(UpdateArticleRequest request) async {
  const name = Aufrufe.updateArticle;
  final p = request.toJson();
  _schreiben(name, p);
  kennung(name, 'articleId', p['articleId']);
  final fremd = request.clear.difference(leerbareArtikelfelder);
  if (fremd.isNotEmpty) throw anfragefehler(name, 'clear nennt Felder, die sich nicht leeren lassen: ${fremd.join(', ')}');
  final doppelt = request.clear.where((f) => p[f] != null).toList();
  if (doppelt.isNotEmpty) throw anfragefehler(name, 'zugleich gesetzt und geleert: ${doppelt.join(', ')}');
  if (p.keys.every((k) => k == 'idempotencyKey' || k == 'articleId')) {
    throw anfragefehler(name, 'die Aenderung nennt kein Feld');
  }
  return _artikel(name, await _transport.call(name, p));
}