int process_organizer(icalcomponent *comp, xmlNode *xml_node);
int process_required_attendees(icalcomponent *comp, xmlNode *xml_node);
+int process_optional_attendees(icalcomponent *comp, xmlNode *xml_node);
int process_start(icalcomponent *comp, xmlNode *xml_node, icaltimezone *zone);
int process_end(icalcomponent *comp, xmlNode *xml_node, icaltimezone *zone);
int process_location(icalcomponent *comp, xmlNode *xml_node);
process_organizer(comp, xml_node);
else if (!strcmp((char *)xml_node->name, "RequiredAttendees"))
process_required_attendees(comp, xml_node);
+ else if (!strcmp((char *)xml_node->name, "OptionalAttendees"))
+ process_optional_attendees(comp, xml_node);
else if (!strcmp((char *)xml_node->name, "Start"))
process_start(comp, xml_node, icaltz);
else if (!strcmp((char *)xml_node->name, "End"))
return 0;
}
-int process_required_attendee(icalcomponent *comp, xmlNode *xml_node)
+int process_attendee(icalcomponent *comp, xmlNode *xml_node, icalparameter_role role)
{
icalproperty *prop;
icalparameter *param;
asprintf(&mailtoname, "mailto:%s", email);
- prop = icalproperty_new_organizer(mailtoname);
+ prop = icalproperty_new_attendee(mailtoname);
free(mailtoname);
param = icalparameter_new_cn(name);
icalproperty_add_parameter(prop, param);
- param = icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT);
+ param = icalparameter_new_role(role);
icalproperty_add_parameter(prop, param);
icalcomponent_add_property(comp, prop);
}
if (xml_node->type != XML_ELEMENT_NODE)
continue;
if (!strcmp((char *)xml_node->name, "Attendee")) {
- if (process_required_attendee(comp, xml_node))
+ if (process_attendee(comp, xml_node,
+ ICAL_ROLE_REQPARTICIPANT))
+ { }
+ }
+ }
+ return 0;
+}
+
+int process_optional_attendees(icalcomponent *comp, xmlNode *xml_node)
+{
+ for (xml_node = xml_node->children; xml_node; xml_node = xml_node->next) {
+ if (xml_node->type != XML_ELEMENT_NODE)
+ continue;
+ if (!strcmp((char *)xml_node->name, "Attendee")) {
+ if (process_attendee(comp, xml_node,
+ ICAL_ROLE_OPTPARTICIPANT))
{ }
}
}