X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fobjects%2FCalDAV%2FCalDAV.cpp;h=38c5bdb5fc1330c5951c290753fb947198b1837a;hb=6db84a2ded5a6d8f10b341965e303f329588f293;hp=ae416aae8f03ad5ddfa24d27bc46f60f8afae4d5;hpb=a50bc3fa4725718416037d41ad4bf9db6edc362b;p=xestiacalendar%2F.git diff --git a/source/objects/CalDAV/CalDAV.cpp b/source/objects/CalDAV/CalDAV.cpp index ae416aa..38c5bdb 100644 --- a/source/objects/CalDAV/CalDAV.cpp +++ b/source/objects/CalDAV/CalDAV.cpp @@ -476,6 +476,7 @@ CalDAVCalendarList CalDAV::GetCalendars(){ " \n" " \n" " \n" + " \n" " \n" " \n" " \n" @@ -546,6 +547,16 @@ CalDAVCalendarList CalDAV::GetCalendars(){ CalDAVServerResult CalDAV::AddCalendar(string CalendarName){ + CalDAVServerResult ServerResult; + + AddCalendar(&CalendarName, nullptr); + + return ServerResult; + +} + +CalDAVServerResult CalDAV::AddCalendar(string *CalendarName, string *CalendarShortName){ + CalDAVServerResult ServerResult; CalDAVSendData CalendarAddSendData; @@ -565,9 +576,19 @@ CalDAVServerResult CalDAV::AddCalendar(string CalendarName){ // Generate the UUID. - string UUIDValue = GenerateUUID(); - UUIDValue.erase(UUIDValue.end()-1); + string UUIDValue = ""; + + if (CalendarShortName == nullptr){ + + UUIDValue = GenerateUUID(); + UUIDValue.erase(UUIDValue.end()-1); + + } else { + UUIDValue = *CalendarShortName; + + } + string CalendarHomeURL = CalendarHomeURI; CalendarHomeURL.append(UUIDValue); CalendarHomeURL.append("/"); @@ -581,7 +602,7 @@ CalDAVServerResult CalDAV::AddCalendar(string CalendarName){ " \n" " \n" " "; - CalendarAddRequest += CalendarName; + CalendarAddRequest += *CalendarName; CalendarAddRequest += "\n" " \n" " \n" @@ -1057,9 +1078,30 @@ CalDAVServerResult CalDAV::AddEntry(string *CalendarEntryHREF, string *EntryData } +CalDAVServerResult CalDAV::EditEntry(string *CalendarEntryHREF, string *EntryData, string *EntryETag){ + + // Edit an entry in the calendar collection. + + // Add an entry to the calendar collection. + + CalDAVServerResult ServerResult; + CalDAVSendData EntryAddSendData; + + // Build the calendar list address. + + string EntryAddURLAddress = BuildServerAddress(&ConnectionData, (*CalendarEntryHREF)); + + EntryAddSendData.readptr = EntryData; + EntryAddSendData.sizeleft = EntryData->size(); + + string IfMatchHeader = "If-Match: \""; + IfMatchHeader.append(*EntryETag); + IfMatchHeader.append("\""); + struct curl_slist *CalendarRequestHeader = NULL; CalendarRequestHeader = curl_slist_append(CalendarRequestHeader, "Content-Type: text/calendar; charset=utf-8"); + CalendarRequestHeader = curl_slist_append(CalendarRequestHeader, IfMatchHeader.c_str()); curl_easy_setopt(ConnectionHandle, CURLOPT_HTTPHEADER, CalendarRequestHeader); curl_easy_setopt(ConnectionHandle, CURLOPT_URL, EntryAddURLAddress.c_str());