1 '''
2 Copyright 2012 Alexey Kravets <mr.kayrick@gmail.com>
3
4 This file is part of PythonMindmeister.
5
6 PythonMindmeister is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 PythonMindmeister is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with PythonMindmeister. If not, see <http://www.gnu.org/licenses/>.
18
19 This file contains MindMeister API calls for folder. Additional information
20 can be found by this URL:
21 http://www.mindmeister.com/developers/explore
22
23 This product uses the MindMeister API but is not endorsed or certified
24 by MindMeister.
25 '''
26
27
28 import common
29 import parser
30 from objects import Folder
31 from diagnostic import MindException
32
33 -def add (token, name, **args):
34 '''
35 Adds a folder.
36
37 Arguments:
38 name
39 Optional (keyword) Arguments:
40 is_open
41 parent_id
42
43 This function calls mm.folders.add MindMeister API method
44 More documentation can be found by this URL:
45 http://www.mindmeister.com/developers/explore_method?method=mm.folders.add
46 '''
47 rawResult = common.performRequest ("rest", token, method="mm.folders.add", name = name, **args)
48
49 root = parser.parse (rawResult)
50 if root.attrib['stat'] != "ok":
51 raise MindException ('mm.folders.add', root[0])
52 else:
53 return Folder(root[0])
54
56 '''
57 Deletes a folder.
58
59 Arguments:
60 folder_id
61 Optional (keyword) Arguments:
62
63 This function calls mm.folders.delete MindMeister API method
64 More documentation can be found by this URL:
65 http://www.mindmeister.com/developers/explore_method?method=mm.folders.delete
66 '''
67 rawResult = common.performRequest ("rest", token, method="mm.folders.delete", folder_id = folder_id)
68
69 root = parser.parse (rawResult)
70 if root.attrib['stat'] != "ok":
71 raise MindException ('mm.folders.delete', root[0])
72
74 '''
75 List all folders for the current user.
76
77 Arguments:
78 Optional (keyword) Arguments:
79
80 This function calls mm.folders.getList MindMeister API method
81 More documentation can be found by this URL:
82 http://www.mindmeister.com/developers/explore_method?method=mm.folders.getList
83 '''
84 rawResult = common.performRequest ("rest", token, method="mm.folders.getList")
85
86 root = parser.parse (rawResult)
87 if root.attrib['stat'] != "ok":
88 raise MindException ('mm.folders.getList', root[0])
89 else:
90 return map (lambda curr: Folder (curr), root[0])
91
92 -def move (token, folder_id, parent_id = None):
93 '''
94 Moves a folder.
95
96 Arguments:
97 folder_id
98 Optional (keyword) Arguments:
99 parent_id
100
101 This function calls mm.folders.move MindMeister API method
102 More documentation can be found by this URL:
103 http://www.mindmeister.com/developers/explore_method?method=mm.folders.move
104 '''
105 rawResult = common.performRequest ("rest", token, method="mm.folders.move", folder_id = folder_id, parent_id = parent_id)
106
107 root = parser.parse (rawResult)
108 if root.attrib['stat'] != "ok":
109 raise MindException ('mm.folders.move', root[0])
110 else:
111 return Folder (root[0])
112
113 -def rename (token, folder_id, name):
114 '''
115 Renames a folder.
116
117 Arguments:
118 folder_id
119 name
120 Optional (keyword) Arguments:
121
122 This function calls mm.folders.rename MindMeister API method
123 More documentation can be found by this URL:
124 http://www.mindmeister.com/developers/explore_method?method=mm.folders.rename
125 '''
126 rawResult = common.performRequest ("rest", token, method="mm.folders.rename", folder_id = folder_id, name = name)
127
128 root = parser.parse (rawResult)
129 if root.attrib['stat'] != "ok":
130 raise MindException ('mm.folders.rename', root[0])
131 else:
132 return Folder (root[0])
133