submit method

  1. @override
Future<void> submit(
  1. FeedbackEntry entry
)
override

Sends entry to the backend.

Throw any Exception on failure. QueuedBackend intercepts backend exceptions and enqueues the entry for retry.

Implementation

@override
Future<void> submit(FeedbackEntry entry) async {
  final payload = payloadBuilder?.call(entry) ?? _defaultPayload(entry);

  final response = await _client
      .post(
        Uri.parse(url),
        headers: {'Content-Type': 'application/json', ...headers},
        body: jsonEncode(payload),
      )
      .timeout(timeout);

  if (response.statusCode < 200 || response.statusCode >= 300) {
    throw WebhookException(
      'Webhook failed with status ${response.statusCode}',
    );
  }
}