# HG changeset patch # User Paul Boddie # Date 1441309857 -7200 # Node ID cd46f5585f36f15eb6f204a3e7e8ab71e34eb393 # Parent ff9ee09ea4fe4e6091343a50727486dfe0858405 Added initial support for handling the ADD method. diff -r ff9ee09ea4fe -r cd46f5585f36 imiptools/handlers/person.py --- a/imiptools/handlers/person.py Thu Sep 03 21:41:09 2015 +0200 +++ b/imiptools/handlers/person.py Thu Sep 03 21:50:57 2015 +0200 @@ -28,6 +28,43 @@ "Handling mechanisms specific to people." + def _add(self, queue=True): + + "Add a recurrence for the current object." + + # Obtain valid organiser and attendee details. + + oa = self.require_organiser_and_attendees() + if not oa: + return False + + (organiser, organiser_attr), attendees = oa + + # Ignore unknown objects. + # NOTE: We could issue a REFRESH to get such objects. + + if not self.get_stored_object_version(): + return + + # Record the event as a recurrence of the parent object. + + self.update_recurrenceid() + + # Queue any request, if appropriate. + + if queue: + self.store.queue_request(self.user, self.uid, self.recurrenceid) + + # Update the recipient's record of the organiser's schedule. + + self.update_freebusy_from_organiser(organiser) + + # Set the additional occurrence. + + self.store.set_event(self.user, self.uid, self.recurrenceid, self.obj.to_node()) + + return True + def _record(self, from_organiser=True, queue=False, cancel=False): """ @@ -144,9 +181,10 @@ def add(self): - # NOTE: Queue a suggested modification to any active event. + "Queue a suggested additional recurrence for any active event." - return self.wrap("An addition to an event has been received.", link=False) + if self._add(queue=True): + return self.wrap("An addition to an event has been received.") def cancel(self):