1.1 --- a/imip_store.py Wed Oct 22 14:06:26 2014 +0200
1.2 +++ b/imip_store.py Wed Oct 22 14:20:59 2014 +0200
1.3 @@ -34,17 +34,24 @@
1.4 pathname = join(base, *parts)
1.5 return check_dir(base, pathname) and pathname or None
1.6
1.7 - def get_object_for_user(self, user, uid):
1.8 - dir = self.get_file_object(self.store_dir, user)
1.9 - if not dir:
1.10 - return False
1.11 + def get_object_in_store(self, *parts):
1.12 +
1.13 + """
1.14 + Return the name of any valid object stored within a hierarchy specified
1.15 + by the given 'parts'.
1.16 + """
1.17 +
1.18 + parent = expected = self.store_dir
1.19
1.20 - filename = self.get_file_object(dir, uid)
1.21 - if not filename:
1.22 - return False
1.23 + for part in parts:
1.24 + filename = self.get_file_object(expected, part)
1.25 + if not filename:
1.26 + return False
1.27 + parent = expected
1.28 + expected = filename
1.29
1.30 - if not exists(dir):
1.31 - makedirs(dir)
1.32 + if not exists(parent):
1.33 + makedirs(parent)
1.34
1.35 return filename
1.36
1.37 @@ -56,7 +63,7 @@
1.38
1.39 "Get the event for the given 'user' with the given 'uid'."
1.40
1.41 - filename = self.get_object_for_user(user, uid)
1.42 + filename = self.get_object_in_store(user, uid)
1.43 if not filename or not exists(filename):
1.44 return None
1.45
1.46 @@ -66,7 +73,7 @@
1.47
1.48 "Set an event for 'user' having the given 'uid' and 'node'."
1.49
1.50 - filename = self.get_object_for_user(user, uid)
1.51 + filename = self.get_object_in_store(user, uid)
1.52 if not filename:
1.53 return False
1.54
1.55 @@ -82,7 +89,7 @@
1.56
1.57 "Get free/busy details for the given 'user'."
1.58
1.59 - filename = self.get_object_for_user(user, "freebusy")
1.60 + filename = self.get_object_in_store(user, "freebusy")
1.61 if not filename or not exists(filename):
1.62 return None
1.63
1.64 @@ -99,7 +106,7 @@
1.65
1.66 "For the given 'user', set 'freebusy' details."
1.67
1.68 - filename = self.get_object_for_user(user, "freebusy")
1.69 + filename = self.get_object_in_store(user, "freebusy")
1.70 if not filename:
1.71 return False
1.72
1.73 @@ -123,7 +130,7 @@
1.74
1.75 "For the given 'user', set 'freebusy' details."
1.76
1.77 - filename = self.get_object_for_user(user, "freebusy")
1.78 + filename = self.get_object_in_store(user, "freebusy")
1.79 if not filename:
1.80 return False
1.81