From 2a6063a9cc2078eba87068337a42c5e865995d56 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 17 Apr 2009 20:17:02 -0500 Subject: [PATCH] Added project editing api to backends --- src/file_backend.py | 19 +++++++++++++++++++ src/null_backend.py | 9 +++++++++ src/rtm_backend.py | 26 ++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/src/file_backend.py b/src/file_backend.py index 584480e..9fdbd44 100644 --- a/src/file_backend.py +++ b/src/file_backend.py @@ -11,6 +11,25 @@ class FileManager(object): self._items = {} self._locations = {} + def add_project(self, name): + projId = uuid.uuid4() + projDetails = { + "name": name, + "id": projId, + "isVisible": True, + "isMeta": False, + } + assert projId not in self._projects, "How did uuid %r repeat?" % projId + self._projects[projId] = projDetails + + def set_project_name(self, projId, name): + projDetails = self._projects[projId] + projDetails["name"] = name + + def set_project_visibility(self, projId, visibility): + projDetails = self._projects[projId] + projDetails["isVisible"] = visibility + def get_projects(self): return (projectDetails for projectDetails in self._projects.itervalues()) diff --git a/src/null_backend.py b/src/null_backend.py index 84c4fe0..5997d13 100644 --- a/src/null_backend.py +++ b/src/null_backend.py @@ -3,6 +3,15 @@ class NullManager(object): def __init__(self, username, password, token=None): pass + def add_project(self, name): + raise NotImplementedError("Not logged in to any ToDo system") + + def set_project_name(self, projId, name): + raise NotImplementedError("Not logged in to any ToDo system") + + def set_project_visibility(self, projId, visibility): + raise NotImplementedError("Not logged in to any ToDo system") + def get_projects(self): return [] diff --git a/src/rtm_backend.py b/src/rtm_backend.py index 8b7549c..9d7cb5f 100644 --- a/src/rtm_backend.py +++ b/src/rtm_backend.py @@ -39,6 +39,32 @@ class RtMilkManager(object): self._timeline = resp.timeline self._lists = [] + def add_project(self, name): + rsp = self._rtm.lists.add( + timeline=self._timeline, + name=name, + ) + assert rsp.stat == "ok", "Bad response: %r" % (rsp, ) + self._lists = [] + + def set_project_name(self, projId, name): + rsp = self._rtm.lists.setName( + timeline=self._timeline, + list_id=projId, + name=name, + ) + assert rsp.stat == "ok", "Bad response: %r" % (rsp, ) + self._lists = [] + + def set_project_visibility(self, projId, visibility): + action = self._rtm.lists.unarchive if visibility else self._rtm.lists.archive + rsp = action( + timeline=self._timeline, + list_id=projId, + ) + assert rsp.stat == "ok", "Bad response: %r" % (rsp, ) + self._lists = [] + def get_projects(self): if len(self._lists) == 0: self._populate_projects() -- 1.7.9.5