createPartnerWebhook method

Future<NeuerWebhook> createPartnerWebhook({
  1. required String url,
  2. required List<String> events,
  3. String? beschreibung,
  4. bool? aktiv,
})

Legt einen Webhook-Endpunkt an. Hoechstens kWebhookLimit je Partner (webhook_limit).

Das Secret in der Antwort ist der einzige Weg dazu. Es sofort dorthin schreiben, wo der Empfaenger es liest -- nicht in ein Protokoll.

Implementation

Future<NeuerWebhook> createPartnerWebhook({
  required String url,
  required List<String> events,
  String? beschreibung,
  bool? aktiv,
}) async {
  final adresse = _pflicht(url, 'createPartnerWebhook', 'url');
  if (events.isEmpty) {
    throw const KasseneckValidationError(
      'createPartnerWebhook',
      'events ist leer -- ein Endpunkt ohne Ereignis bekaeme nie etwas',
      'request',
    );
  }
  final d = await _t.rufen(Aufrufe.createPartnerWebhook, params: <String, dynamic>{
    'url': adresse,
    'events': events,
    'description': beschreibung,
    'active': aktiv,
  });
  final secret = alsTextOderNull(d['secret']);
  if (secret == null || secret.isEmpty) {
    throw const KasseneckValidationError(
      'createPartnerWebhook',
      'Antwort enthaelt kein secret -- ohne es laesst sich keine Zustellung pruefen',
      'response',
    );
  }
  return NeuerWebhook(webhook: PartnerWebhook.aus(alsMap(d['webhook'])), secret: secret);
}