updateEventDetails function

Future updateEventDetails(
  1. dynamic acterEvent,
  2. dynamic rsvp,
  3. dynamic localEvent
)

Implementation

@visibleForTesting
Future<Event> updateEventDetails(
  CalendarEvent acterEvent,
  RsvpStatusTag? rsvp,
  Event localEvent,
) async {
  localEvent.title = acterEvent.title();
  localEvent.description = acterEvent.description()?.body();
  localEvent.start = TZDateTime.from(
    toDartDatetime(acterEvent.utcStart()),
    UTC,
  );
  localEvent.end = TZDateTime.from(toDartDatetime(acterEvent.utcEnd()), UTC);
  final (status, reminders) = switch (rsvp) {
    RsvpStatusTag.Yes => (EventStatus.Confirmed, [Reminder(minutes: 10)]),
    RsvpStatusTag.Maybe => (EventStatus.Tentative, [Reminder(minutes: 10)]),
    RsvpStatusTag.No => (EventStatus.Canceled, null),
    null => (EventStatus.None, null),
  };

  localEvent.status = status;
  localEvent.reminders = reminders;
  return localEvent;
}