# HG changeset patch # User Paul Boddie # Date 1416692801 -3600 # Node ID ef0332e672531a32a3f6fe085972aca2b612ae15 # Parent b21332907c04d53bd36e42ecf2f0a82d53304879 Moved dequeuing of requests into the store implementation. diff -r b21332907c04 -r ef0332e67253 imip_manager.py --- a/imip_manager.py Fri Oct 31 16:00:11 2014 +0100 +++ b/imip_manager.py Sat Nov 22 22:46:41 2014 +0100 @@ -139,10 +139,7 @@ # Data management methods. def remove_request(self, uid): - requests = self.store.get_requests(self.user) - if uid in requests: - requests.remove(uid) - self.store.set_requests(self.user, requests) + return self.store.dequeue_request(self.user, uid) # Presentation methods. diff -r b21332907c04 -r ef0332e67253 imip_store.py --- a/imip_store.py Fri Oct 31 16:00:11 2014 +0100 +++ b/imip_store.py Sat Nov 22 22:46:41 2014 +0100 @@ -16,6 +16,12 @@ pass def make_calendar(fragment, method=None): + + """ + Return a complete calendar item wrapping the given 'fragment' and employing + the given 'method', if indicated. + """ + return ("VCALENDAR", {}, (method and [("METHOD", {}, method)] or []) + [("VERSION", {}, "2.0")] + @@ -185,6 +191,20 @@ return False + def dequeue_request(self, user, uid): + + "Dequeue a request for 'user' having the given 'uid'." + + requests = self.get_requests(user) or [] + + try: + requests.remove(uid) + self.set_requests(user, requests) + except ValueError: + return False + else: + return True + class FilePublisher(FileBase): "A publisher of objects."