updateEventAttempt static method

Future<void> updateEventAttempt(
  1. String eventId
)

Updates the attempt counter of an event

Implementation

static Future<void> updateEventAttempt(String eventId) async {
  try {
    final events = _getAllEventsMap();
    final eventData = events[eventId];

    if (eventData != null) {
      final event = PendingEvent.fromJson(
        Map<String, dynamic>.from(eventData),
      );
      final updatedEvent = event.copyWith(
        attemptCount: event.attemptCount + 1,
        lastAttempt: DateTime.now(),
      );

      // If already attempted 3 times, remove the event
      if (updatedEvent.attemptCount >= 3) {
        events.remove(eventId);
        log('Event removed after 3 attempts: $eventId');
      } else {
        events[eventId] = updatedEvent.toJson();
        log(
          'Attempt updated for event: $eventId (${updatedEvent.attemptCount}/3)',
        );
      }

      await _storage?.write(_storageKey, events);
    }
  } catch (e) {
    log('Error updating event attempt: $e');
  }
}