zohoProjects 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +17 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +145 -0
  6. data/Rakefile +2 -0
  7. data/lib/projects/api/API.rb +57 -0
  8. data/lib/projects/api/BugsAPI.rb +135 -0
  9. data/lib/projects/api/DocumentsAPI.rb +145 -0
  10. data/lib/projects/api/EventsAPI.rb +115 -0
  11. data/lib/projects/api/FoldersAPI.rb +111 -0
  12. data/lib/projects/api/ForumsAPI.rb +198 -0
  13. data/lib/projects/api/MilestonesAPI.rb +159 -0
  14. data/lib/projects/api/PortalAPI.rb +41 -0
  15. data/lib/projects/api/ProjectsAPI.rb +203 -0
  16. data/lib/projects/api/TasklistsAPI.rb +113 -0
  17. data/lib/projects/api/TasksAPI.rb +153 -0
  18. data/lib/projects/api/TimesheetsAPI.rb +240 -0
  19. data/lib/projects/api/UsersAPI.rb +48 -0
  20. data/lib/projects/exception/ProjectsException.rb +50 -0
  21. data/lib/projects/model/Activity.rb +173 -0
  22. data/lib/projects/model/Bug.rb +701 -0
  23. data/lib/projects/model/Buglog.rb +56 -0
  24. data/lib/projects/model/Category.rb +70 -0
  25. data/lib/projects/model/Comment.rb +289 -0
  26. data/lib/projects/model/Document.rb +260 -0
  27. data/lib/projects/model/Event.rb +391 -0
  28. data/lib/projects/model/Folder.rb +110 -0
  29. data/lib/projects/model/Forum.rb +320 -0
  30. data/lib/projects/model/Generallog.rb +36 -0
  31. data/lib/projects/model/Log.rb +359 -0
  32. data/lib/projects/model/Milestone.rb +322 -0
  33. data/lib/projects/model/Owner.rb +54 -0
  34. data/lib/projects/model/Participant.rb +54 -0
  35. data/lib/projects/model/Portal.rb +273 -0
  36. data/lib/projects/model/Project.rb +593 -0
  37. data/lib/projects/model/Status.rb +168 -0
  38. data/lib/projects/model/Task.rb +497 -0
  39. data/lib/projects/model/Tasklist.rb +300 -0
  40. data/lib/projects/model/Tasklog.rb +56 -0
  41. data/lib/projects/model/Timelog.rb +134 -0
  42. data/lib/projects/model/TimelogList.rb +54 -0
  43. data/lib/projects/model/User.rb +94 -0
  44. data/lib/projects/model/Version.rb +194 -0
  45. data/lib/projects/parser/BugParser.rb +208 -0
  46. data/lib/projects/parser/DocumentParser.rb +197 -0
  47. data/lib/projects/parser/EventParser.rb +156 -0
  48. data/lib/projects/parser/FolderParser.rb +99 -0
  49. data/lib/projects/parser/ForumParser.rb +253 -0
  50. data/lib/projects/parser/MilestonesParser.rb +129 -0
  51. data/lib/projects/parser/PortalParser.rb +103 -0
  52. data/lib/projects/parser/ProjectParser.rb +318 -0
  53. data/lib/projects/parser/TaskParser.rb +293 -0
  54. data/lib/projects/parser/TasklistParser.rb +127 -0
  55. data/lib/projects/parser/TimesheetParser.rb +390 -0
  56. data/lib/projects/parser/UserParser.rb +63 -0
  57. data/lib/projects/service/ZohoProject.rb +174 -0
  58. data/lib/projects/util/ZohoHTTPClient.rb +205 -0
  59. data/lib/test/ProjectsTest.rb +321 -0
  60. data/lib/zohoProjects.rb +35 -0
  61. data/lib/zohoProjects/version.rb +3 -0
  62. data/zohoProjects.gemspec +86 -0
  63. metadata +135 -0
@@ -0,0 +1,253 @@
1
+ # $Id$
2
+ module Projects
3
+ module Parser
4
+
5
+ require 'json'
6
+ require File.dirname(__FILE__).chomp("/projects/parser") + '/projects/model/Forum'
7
+ require File.dirname(__FILE__).chomp("/projects/parser") + '/projects/model/Category'
8
+ require File.dirname(__FILE__).chomp("/projects/parser") + '/projects/model/Comment'
9
+
10
+ #* Parse the JSON response into respective objects.
11
+
12
+ class ForumParser
13
+ include Projects::Model
14
+ # * Parse the JSON response and make it into List of Forum object.
15
+ #
16
+ # ==== Parameters
17
+ #
18
+ # * response:: - This JSON response contains the details fo forums.
19
+ #
20
+ # ==== Returns
21
+ #
22
+ # * List of Forum object.
23
+
24
+ def getForums(response)
25
+ forums_all_json = JSON.parse response
26
+ forums_all_array = forums_all_json["forums"]
27
+ forums_class_array = Array.new
28
+ for i in 0...forums_all_array.length
29
+ forums_class_array.push(jsonToForum(forums_all_array[i]))
30
+ end
31
+ return forums_class_array
32
+ end
33
+
34
+ # * Parse the JSON response and make it into Forum object.
35
+ #
36
+ # ==== Parameters
37
+ #
38
+ # * response:: - This JSON response contains the details of a forum.
39
+ #
40
+ # ==== Returns
41
+ #
42
+ # * Forum object.
43
+
44
+ def getForum(response)
45
+ forum_json = JSON.parse response
46
+ forum_array = forum_json["forums"]
47
+ return jsonToForum(forum_array[0])
48
+ end
49
+
50
+ # * Parse the JSONObject into Forum object.
51
+ #
52
+ # ==== Parameters
53
+ #
54
+ # * jsonObject:: - JSONObject contains the details of a forum.
55
+ #
56
+ # ==== Returns
57
+ #
58
+ # * Forum object.
59
+
60
+ def jsonToForum(jsonObject)
61
+ forum = Forum.new
62
+
63
+ if jsonObject.has_key?("id")
64
+ forum.setId(jsonObject["id"])
65
+ end
66
+ if jsonObject.has_key?("name")
67
+ forum.setName(jsonObject["name"])
68
+ end
69
+ if jsonObject.has_key?("content")
70
+ forum.setContent(jsonObject["content"])
71
+ end
72
+ if jsonObject.has_key?("is_sticky_post")
73
+ forum.setIsStickyPost(jsonObject["is_sticky_post"])
74
+ end
75
+ if jsonObject.has_key?("is_announcement_post")
76
+ forum.setIsAnnouncementPost(jsonObject["is_announcement_post"])
77
+ end
78
+ if jsonObject.has_key?("posted_by")
79
+ forum.setPostedBy(jsonObject["posted_by"])
80
+ end
81
+ if jsonObject.has_key?("posted_person")
82
+ forum.setPostedPerson(jsonObject["posted_person"])
83
+ end
84
+ if jsonObject.has_key?("post_date")
85
+ forum.setPostDate(jsonObject["post_date"])
86
+ end
87
+ if jsonObject.has_key?("post_date_format")
88
+ forum.setPostDateFormat(jsonObject["post_date_format"])
89
+ end
90
+ if jsonObject.has_key?("post_date_long")
91
+ forum.setPostDateLong(jsonObject["post_date_long"])
92
+ end
93
+
94
+ if jsonObject.has_key?("link")
95
+ link = jsonObject["link"]
96
+
97
+ if link.has_key?("self")
98
+ forum.setURL(link["self"]["url"])
99
+ end
100
+ end
101
+
102
+ return forum
103
+ end
104
+
105
+ # * Parse the JSON response and get the success message.
106
+ #
107
+ # ==== Parameters
108
+ #
109
+ # * response:: - This JSON response contains the success message.
110
+ #
111
+ # ==== Returns
112
+ #
113
+ # * String object.
114
+
115
+ def getResult(response)
116
+ jsonObject = JSON.parse response
117
+ result = jsonObject["response"]
118
+ return result
119
+ end
120
+
121
+ # * Parse the JSON response and make it into List of Category object.
122
+ #
123
+ # ==== Parameters
124
+ #
125
+ # * response:: - This JSON response contains the details of categories.
126
+ #
127
+ # ==== Returns
128
+ #
129
+ # * List of Category object.
130
+
131
+ def getCategories(response)
132
+ categories_all_json = JSON.parse response
133
+ categories_all_array = categories_all_json["categories"]
134
+ categories_class_array = Array.new
135
+ for i in 0...categories_all_array.length
136
+ categories_class_array.push(jsonToCategory(categories_all_array[i]))
137
+ end
138
+ return categories_class_array
139
+ end
140
+
141
+ # * Parse the JSON response and make it into Category object.
142
+ #
143
+ # ==== Parameters
144
+ #
145
+ # * response:: - This JSON response contains the details of a category.
146
+ #
147
+ # ==== Returns
148
+ #
149
+ # * Category object.
150
+
151
+ def getCategory(response)
152
+ category_json = JSON.parse response
153
+ category_array = category_json["categories"]
154
+ return jsonToCategory(category_array[0])
155
+ end
156
+
157
+ # * Parse the JSONObject into Category object.
158
+ #
159
+ # * jsonObject:: - JSONObject contains the details of a category.
160
+ #
161
+ # ==== Returns
162
+ #
163
+ # * Category object.
164
+
165
+ def jsonToCategory(jsonObject)
166
+ category = Category.new
167
+
168
+ if jsonObject.has_key?("id")
169
+ category.setId(jsonObject["id"])
170
+ end
171
+ if jsonObject.has_key?("name")
172
+ category.setName(jsonObject["name"])
173
+ end
174
+
175
+ return category
176
+ end
177
+
178
+ # * Parse the JSON response and make it into List of Comment object.
179
+ #
180
+ # ==== Parameters
181
+ #
182
+ # * response:: - This JSON response contains the details of comments.
183
+ #
184
+ # ==== Returns
185
+ #
186
+ # * List of Comment object.
187
+
188
+ def getComments(response)
189
+ comments_all_json = JSON.parse response
190
+ comments_all_array = comments_all_json["comments"]
191
+ comments_class_array = Array.new
192
+ for i in 0...comments_all_array.length
193
+ comments_class_array.push(jsonToComment(comments_all_array[i]))
194
+ end
195
+ return comments_class_array
196
+ end
197
+
198
+ # * Parse the JSON response and make it into Comment object.
199
+ #
200
+ # ==== Parameters
201
+ #
202
+ # * response:: - This JSON response contains the details of a comment.
203
+ #
204
+ # ==== Returns
205
+ #
206
+ # * Comment object.
207
+
208
+ def getComment(response)
209
+ comment_json = JSON.parse response
210
+ comment_array = comment_json["comments"]
211
+ return jsonToComment(comment_array[0])
212
+ end
213
+
214
+ # * Parse the JSONObject into Comment object.
215
+ #
216
+ # ==== Parameters
217
+ #
218
+ # * jsonObject:: - JSONObject contains the details of a comment.
219
+ #
220
+ # ==== Returns
221
+ #
222
+ # * Comment object.
223
+
224
+ def jsonToComment(jsonObject)
225
+ comment = Comment.new
226
+
227
+ if jsonObject.has_key?("id")
228
+ comment.setId(jsonObject["id"])
229
+ end
230
+ if jsonObject.has_key?("content")
231
+ comment.setContent(jsonObject["content"])
232
+ end
233
+ if jsonObject.has_key?("posted_by")
234
+ comment.setPostedBy(jsonObject["posted_by"])
235
+ end
236
+ if jsonObject.has_key?("posted_person")
237
+ comment.setPostedPerson(jsonObject["posted_person"])
238
+ end
239
+ if jsonObject.has_key?("post_date")
240
+ comment.setPostDate(jsonObject["post_date"])
241
+ end
242
+ if jsonObject.has_key?("post_date_format")
243
+ comment.setPostDateFormat(jsonObject["post_date_format"])
244
+ end
245
+ if jsonObject.has_key?("post_date_long")
246
+ comment.setPostDateLong(jsonObject["post_date_long"])
247
+ end
248
+
249
+ return comment
250
+ end
251
+ end
252
+ end
253
+ end
@@ -0,0 +1,129 @@
1
+ # $Id$
2
+ module Projects
3
+ module Parser
4
+
5
+ require 'json'
6
+ require File.dirname(__FILE__).chomp("/projects/parser") + '/projects/model/Milestone'
7
+
8
+ # * Parse the JSON response into respective objects.
9
+
10
+ class MilestonesParser
11
+ include Projects::Model
12
+ # * Parse the JSON response and make it into List of Milestone object.
13
+ #
14
+ # ==== Parameters
15
+ #
16
+ # * response:: - This JSON response contains the details of milestones.
17
+ #
18
+ # ==== Returns
19
+ #
20
+ # * List of Milestone object.
21
+
22
+ def getMilestones(response)
23
+ milestones_all_json = JSON.parse response
24
+ milestones_all_array = milestones_all_json["milestones"]
25
+ milestones_class_array = Array.new
26
+ for i in 0...milestones_all_array.length
27
+ milestones_class_array.push(jsonToMilestone(milestones_all_array[i]))
28
+ end
29
+ return milestones_class_array
30
+ end
31
+
32
+ # * Parse the JSON response and make it into Milestone object.
33
+ #
34
+ # ==== Parameters
35
+ #
36
+ # * response:: - This JSON response contains the details of a milestone.
37
+ #
38
+ # ==== Returns
39
+ #
40
+ # * Milestone object.
41
+
42
+ def getMilestone(response)
43
+ milestones_json = JSON.parse response
44
+ milestones_array = milestones_json["milestones"]
45
+ return jsonToMilestone(milestones_array[0])
46
+ end
47
+
48
+ # * Parse the JSONObject into Milestone object.
49
+ #
50
+ # ==== Parameters
51
+ #
52
+ # * jsonObject:: - JSONObject contains the details of a milestone.
53
+ #
54
+ # ==== Returns
55
+ #
56
+ # * Milestone object.
57
+
58
+ def jsonToMilestone(jsonObject)
59
+ milestone = Milestone.new
60
+
61
+ if jsonObject.has_key?("id")
62
+ milestone.setId(jsonObject["id"])
63
+ end
64
+ if jsonObject.has_key?("name")
65
+ milestone.setName(jsonObject["name"])
66
+ end
67
+ if jsonObject.has_key?("start_date")
68
+ milestone.setStartDate(jsonObject["start_date"])
69
+ end
70
+ if jsonObject.has_key?("start_date_format")
71
+ milestone.setStartDateFormat(jsonObject["start_date_format"])
72
+ end
73
+ if jsonObject.has_key?("start_date_long")
74
+ milestone.setStartDateLong(jsonObject["start_date_long"])
75
+ end
76
+ if jsonObject.has_key?("end_date")
77
+ milestone.setEndDate(jsonObject["end_date"])
78
+ end
79
+ if jsonObject.has_key?("end_date_format")
80
+ milestone.setEndDateFormat(jsonObject["end_date_format"])
81
+ end
82
+ if jsonObject.has_key?("end_date_long")
83
+ milestone.setEndDateLong(jsonObject["end_date_long"])
84
+ end
85
+ if jsonObject.has_key?("status")
86
+ milestone.setStatus(jsonObject["status"])
87
+ end
88
+ if jsonObject.has_key?("flag")
89
+ milestone.setFlag(jsonObject["flag"])
90
+ end
91
+ if jsonObject.has_key?("owner_id")
92
+ milestone.setOwnerId(jsonObject["owner_id"])
93
+ end
94
+ if jsonObject.has_key?("owner_name")
95
+ milestone.setOwnerName(jsonObject["owner_name"])
96
+ end
97
+
98
+ if jsonObject.has_key?("link")
99
+ link = jsonObject["link"]
100
+
101
+ if link.has_key?("self")
102
+ milestone.setURL(link["self"]["url"])
103
+ end
104
+ if link.has_key?("status")
105
+ milestone.setStatusURL(link["status"]["url"])
106
+ end
107
+ end
108
+
109
+ return milestone
110
+ end
111
+
112
+ # * Parse the JSON response and get the success message.
113
+ #
114
+ # ==== Parameters
115
+ #
116
+ # * response:: - This JSON response contains the success message.
117
+ #
118
+ # ==== Returns
119
+ #
120
+ # * String object.
121
+
122
+ def getResult(response)
123
+ jsonObject = JSON.parse response
124
+ result = jsonObject["response"]
125
+ return result
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,103 @@
1
+ # $Id$
2
+ module Projects
3
+ module Parser
4
+
5
+ require 'json'
6
+ require File.dirname(__FILE__).chomp("/projects/parser") + '/projects/model/Portal'
7
+
8
+ # * Parse the JSON response into respective objects.
9
+
10
+ class PortalParser
11
+ include Projects::Model
12
+ # * Parse the JSON response and make it into List of Portal object.
13
+ #
14
+ # ==== Parameters
15
+ #
16
+ # * response:: - This JSON response contains the details of portals.
17
+ #
18
+ # ==== Returns
19
+ #
20
+ # * List of Portal object.
21
+
22
+ def getPortals(response)
23
+ portals_all_json = JSON.parse response
24
+ portals_all_array = portals_all_json["portals"]
25
+ portal_class_array = Array.new
26
+ for i in 0...portals_all_array.length
27
+ portal_class_array.push(getPortal(portals_all_array[i]))
28
+ end
29
+ return portal_class_array
30
+ end
31
+
32
+ # * Parse the JSONObject into Portal object.
33
+ #
34
+ # ==== Parameters
35
+ #
36
+ # * jsonObject:: - JSONObject contains the details of a Portal.
37
+ #
38
+ # ==== Returns
39
+ #
40
+ # * Portal object.
41
+
42
+ def getPortal(jsonObject)
43
+ portal = Projects::Model::Portal.new
44
+ if jsonObject.has_key?("id")
45
+ portal.setId(jsonObject["id"])
46
+ end
47
+ if jsonObject.has_key?("name")
48
+ portal.setName(jsonObject["name"])
49
+ end
50
+ if jsonObject.has_key?("default")
51
+ portal.setDefault(jsonObject["default"])
52
+ end
53
+ if jsonObject.has_key?("gmt_time_zone")
54
+ portal.setGmtTimeZone(jsonObject["gmt_time_zone"])
55
+ end
56
+ if jsonObject.has_key?("role")
57
+ portal.setRole(jsonObject["role"])
58
+ end
59
+
60
+ if jsonObject.has_key?("settings")
61
+ settings = jsonObject["settings"]
62
+ if settings.has_key?("company_name")
63
+ portal.setCompanyName(settings["company_name"])
64
+ end
65
+ if settings.has_key?("website_url")
66
+ portal.setWebsiteURL(settings["website_url"])
67
+ end
68
+ if settings.has_key?("time_zone")
69
+ portal.setTimeZone(settings["time_zone"])
70
+ end
71
+ if settings.has_key?("date_format")
72
+ portal.setDateFormat(settings["date_format"])
73
+ end
74
+ end
75
+
76
+
77
+ if jsonObject.has_key?("locale")
78
+ locale = jsonObject["locale"]
79
+ if locale.has_key?("code")
80
+ portal.setCode(locale["code"])
81
+ end
82
+ if locale.has_key?("language")
83
+ portal.setLanguage(locale["language"])
84
+ end
85
+ if locale.has_key?("country")
86
+ portal.setCountry(locale["country"])
87
+ end
88
+ end
89
+
90
+ if jsonObject.has_key?("link")
91
+ link = jsonObject["link"]
92
+ if link.has_key?("projects")
93
+ project = link["project"]
94
+ if project.has_key?("url")
95
+ portal.setProjectURL(project["url"])
96
+ end
97
+ end
98
+ end
99
+ return portal
100
+ end
101
+ end
102
+ end
103
+ end