Organizer.fromICalString constructor
Organizer.fromICalString(
- String icalString
Implementation
factory Organizer.fromICalString(String icalString) {
final separatorIndex = icalString.indexOf(':');
if (separatorIndex < 0) {
throw FormatException('Invalid iCalendar string for Organizer');
}
final colonIndex = icalString.indexOf(':');
final semiColonIndex = icalString.indexOf(';');
final delimiterIndex = (semiColonIndex >= 0 && semiColonIndex < colonIndex)
? semiColonIndex
: colonIndex;
if (delimiterIndex < 0) {
throw FormatException('Invalid iCalendar string for Organizer');
}
final mailtoIndex = icalString.indexOf('mailto:', delimiterIndex);
if (mailtoIndex < 0) {
throw FormatException('Invalid iCalendar string for Organizer');
}
final nameAndEmail = icalString.substring(delimiterIndex + 1, mailtoIndex);
final parts = nameAndEmail.split('=');
String name = (parts.length == 2 && parts[0] == 'CN')
? parts[1].replaceAll('"', '')
: '';
String email = icalString.substring(mailtoIndex + 'mailto:'.length).trim();
name = name.replaceAll(RegExp(r'[:;]$'), '');
email = email.replaceAll(RegExp(r'[:;]$'), '');
return Organizer(
name: name,
email: email,
);
}