Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'skashin/jb36134-google-meeting-responses' into 'master'
[buteo-sync-plugins-social] Properly update attendee status and set event organizer. Fixes JB#36134

See merge request mer-core/buteo-sync-plugins-social!31
  • Loading branch information
pvuorela committed Nov 23, 2018
2 parents 6ac4962 + b7fc78f commit 6ebda7f
Showing 1 changed file with 32 additions and 7 deletions.
39 changes: 32 additions & 7 deletions src/google/google-calendars/googlecalendarsyncadaptor.cpp
Expand Up @@ -636,18 +636,18 @@ void extractRecurrence(const QJsonArray &recurrence, KCalCore::Event::Ptr event,

void extractOrganizer(const QJsonObject &creatorObj, const QJsonObject &organizerObj, KCalCore::Event::Ptr event)
{
if (!creatorObj.value(QLatin1String("displayName")).toVariant().toString().isEmpty()
if (!organizerObj.value(QLatin1String("displayName")).toVariant().toString().isEmpty()
|| !organizerObj.value(QLatin1String("email")).toVariant().toString().isEmpty()) {
KCalCore::Person::Ptr organizer(new KCalCore::Person(
organizerObj.value(QLatin1String("displayName")).toVariant().toString(),
organizerObj.value(QLatin1String("email")).toVariant().toString()));
event->setOrganizer(organizer);
} else if (!creatorObj.value(QLatin1String("displayName")).toVariant().toString().isEmpty()
|| !creatorObj.value(QLatin1String("email")).toVariant().toString().isEmpty()) {
KCalCore::Person::Ptr organizer(new KCalCore::Person(
creatorObj.value(QLatin1String("displayName")).toVariant().toString(),
creatorObj.value(QLatin1String("email")).toVariant().toString()));
event->setOrganizer(organizer);
} else if (!organizerObj.value(QLatin1String("displayName")).toVariant().toString().isEmpty()
|| !organizerObj.value(QLatin1String("email")).toVariant().toString().isEmpty()) {
KCalCore::Person::Ptr organizer(new KCalCore::Person(
organizerObj.value(QLatin1String("displayName")).toVariant().toString(),
organizerObj.value(QLatin1String("email")).toVariant().toString()));
event->setOrganizer(organizer);
} else {
KCalCore::Person::Ptr organizer(new KCalCore::Person);
event->setOrganizer(organizer);
Expand All @@ -670,7 +670,32 @@ void extractAttendees(const QJsonArray &attendees, KCalCore::Event::Ptr event)
attendee->setRole(KCalCore::Attendee::ReqParticipant);
}
}
if (attendeeObj.find(QLatin1String("responseStatus")) != attendeeObj.end()) {
const QString &responseValue = attendeeObj.value(QLatin1String("responseStatus")).toVariant().toString();
if (responseValue == "needsAction") {
attendee->setStatus(KCalCore::Attendee::NeedsAction);
} else if (responseValue == "accepted") {
attendee->setStatus(KCalCore::Attendee::Accepted);
} else if (responseValue == "declined") {
attendee->setStatus(KCalCore::Attendee::Declined);
} else {
attendee->setStatus(KCalCore::Attendee::Tentative);
}
}
attendee->setRSVP(true);
event->addAttendee(attendee);
} else {
KCalCore::Person::Ptr calOrganizer = event->organizer();
if (!calOrganizer.isNull() && !calOrganizer->isEmpty()) {
continue;
}
if (!attendeeObj.value(QLatin1String("displayName")).toVariant().toString().isEmpty()
|| !attendeeObj.value(QLatin1String("email")).toVariant().toString().isEmpty()) {
KCalCore::Person::Ptr organizer(new KCalCore::Person(
attendeeObj.value(QLatin1String("displayName")).toVariant().toString(),
attendeeObj.value(QLatin1String("email")).toVariant().toString()));
event->setOrganizer(organizer);
}
}
}
}
Expand Down

0 comments on commit 6ebda7f

Please sign in to comment.