call method

Future<Map<String, dynamic>> call(
  1. String name, {
  2. Map<String, dynamic> params = const {},
  3. Duration? timeout,
})

Einen Endpunkt rufen. params kommt zur Kasse dazu; null-Werte fallen weg, damit das Backend „nicht gesetzt" nicht als ausdrückliche Angabe missversteht.

timeout überschreibt die Vorgabe für diesen einen Aufruf – der Abschluss eines Belegs darf länger warten als eine Belegliste.

Fehler tragen outcome: bei ErrorOutcome.unknown nie wiederholen, sondern nachlesen (siehe v3Post).

Implementation

Future<Map<String, dynamic>> call(
  String name, {
  Map<String, dynamic> params = const {},
  Duration? timeout,
}) async {
  final antwort = await callRaw(name, params: params, timeout: timeout);
  // Fehlendes `data` ist erlaubt — nicht jeder Aufruf hat eine Nutzlast.
  // Ein `data`, das da ist und **kein Objekt** ist (Array, Zahl, Text), ist
  // dagegen kaputt und darf nicht als leeres Objekt durchgehen: aus dem
  // wurde weiter oben ein voller Standardsatz Einstellungen, und der
  // Bildschirm meldete „der Betrieb hat nichts eingestellt". Dieselbe
  // Grenze wie bei den Listen: leer ist etwas anderes als kaputt.
  return envelopeData(name, kassenErfolgsHuelle(name, antwort), antwort.statusCode);
}