eventsFromXml function

List<String>? eventsFromXml(
  1. XmlElement? xml
)

The events of a notification configuration are one <Event> element per event, directly under the configuration. A server that writes them as the text of a single <Events> element is read as well.

Implementation

List<String>? eventsFromXml(XmlElement? xml) {
  if (xml == null) return null;
  final events = <String>[];
  for (final event in xml.findElements('Event')) {
    events.add(event.text);
  }
  if (events.isEmpty) {
    final wrapper = getProp(xml, 'Events');
    if (wrapper != null) {
      for (final event in wrapper.findElements('Event')) {
        events.add(event.text);
      }
      if (events.isEmpty) {
        final text = wrapper.text.trim();
        if (text.isNotEmpty) {
          events.add(text);
        }
      }
    }
  }
  return events;
}