caldav::CalDAV instproc sync-collection (public)
<instance of caldav::CalDAV> sync-collection root extraXMLvar
Defined in /var/www/openacs.org/packages/caldav/tcl/caldav-procs.tcl
sync
- Parameters:
- root (required)
- extraXMLvar (required)
- Testcases:
- REPORT_ios
Source code: upvar $extraXMLvar extraXML set props [$root selectNodes -namespaces {d DAV:} "//d:prop"] #set sync_level_node [$root selectNodes -namespaces {d DAV:} "//d:sync-level"] set sync_token_node [$root selectNodes -namespaces {d DAV:} "//d:sync-token"] if {$sync_token_node ne ""} { set sync_token [$sync_token_node text] } else { set sync_token "" } :debug "received sync-token <$sync_token>" # # Calculate a new sync token and return this as extraXML # set new_sync_token [:calcSyncToken ${:user_id}] set extraXML <d:sync-token>$new_sync_token</d:sync-token> if {$sync_token eq ""} { # # return all cal_items # set ics_set [calendars get_calitems -user_id ${:user_id}] } elseif {$sync_token ne $new_sync_token} { # # return cal_items since last sync_token # set ics_set [calendars get_calitems -user_id ${:user_id} -start_date [ns_fmttime $sync_token "%Y-%m-%d 00:00"] -end_date [ns_fmttime $new_sync_token "%Y-%m-%d 00:00"]] } else { # # return cal_items since the day of the sync_token # set ics_set [calendars get_calitems -user_id ${:user_id} -start_date [ns_fmttime $sync_token "%Y-%m-%d 00:00"]] } return $ics_setXQL Not present: Generic, PostgreSQL, Oracle