mangoapps-ex-sdk-ruby 0.15.2

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 (50) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +506 -0
  3. data/LICENSE +201 -0
  4. data/README.md +2040 -0
  5. data/lib/mangoapps/client.rb +219 -0
  6. data/lib/mangoapps/config.rb +98 -0
  7. data/lib/mangoapps/errors.rb +45 -0
  8. data/lib/mangoapps/modules/attachments/get_folder_files.rb +14 -0
  9. data/lib/mangoapps/modules/attachments/get_folders.rb +14 -0
  10. data/lib/mangoapps/modules/attachments.rb +14 -0
  11. data/lib/mangoapps/modules/feeds/feeds.rb +14 -0
  12. data/lib/mangoapps/modules/feeds.rb +12 -0
  13. data/lib/mangoapps/modules/learn/course_catalog.rb +16 -0
  14. data/lib/mangoapps/modules/learn/course_categories.rb +16 -0
  15. data/lib/mangoapps/modules/learn/course_details.rb +13 -0
  16. data/lib/mangoapps/modules/learn/my_learning.rb +13 -0
  17. data/lib/mangoapps/modules/learn.rb +18 -0
  18. data/lib/mangoapps/modules/libraries/get_libraries.rb +14 -0
  19. data/lib/mangoapps/modules/libraries/get_library_categories.rb +14 -0
  20. data/lib/mangoapps/modules/libraries/get_library_items.rb +14 -0
  21. data/lib/mangoapps/modules/libraries.rb +16 -0
  22. data/lib/mangoapps/modules/notifications/my_priority_items.rb +13 -0
  23. data/lib/mangoapps/modules/notifications/notifications.rb +14 -0
  24. data/lib/mangoapps/modules/notifications.rb +14 -0
  25. data/lib/mangoapps/modules/posts/get_all_posts.rb +14 -0
  26. data/lib/mangoapps/modules/posts/get_post_by_id.rb +13 -0
  27. data/lib/mangoapps/modules/posts.rb +14 -0
  28. data/lib/mangoapps/modules/recognitions/award_categories.rb +14 -0
  29. data/lib/mangoapps/modules/recognitions/core_value_tags.rb +13 -0
  30. data/lib/mangoapps/modules/recognitions/get_award_feeds.rb +14 -0
  31. data/lib/mangoapps/modules/recognitions/get_awards_list.rb +14 -0
  32. data/lib/mangoapps/modules/recognitions/get_profile_awards.rb +13 -0
  33. data/lib/mangoapps/modules/recognitions/get_team_awards.rb +13 -0
  34. data/lib/mangoapps/modules/recognitions/gift_cards.rb +13 -0
  35. data/lib/mangoapps/modules/recognitions/leaderboard_info.rb +13 -0
  36. data/lib/mangoapps/modules/recognitions.rb +26 -0
  37. data/lib/mangoapps/modules/tasks/get_task_details.rb +13 -0
  38. data/lib/mangoapps/modules/tasks/get_tasks.rb +14 -0
  39. data/lib/mangoapps/modules/tasks.rb +14 -0
  40. data/lib/mangoapps/modules/trackers/get_trackers.rb +14 -0
  41. data/lib/mangoapps/modules/trackers.rb +12 -0
  42. data/lib/mangoapps/modules/users.rb +11 -0
  43. data/lib/mangoapps/modules/wikis/get_wiki_details.rb +13 -0
  44. data/lib/mangoapps/modules/wikis/get_wikis.rb +14 -0
  45. data/lib/mangoapps/modules/wikis.rb +14 -0
  46. data/lib/mangoapps/oauth.rb +187 -0
  47. data/lib/mangoapps/response.rb +92 -0
  48. data/lib/mangoapps/version.rb +5 -0
  49. data/lib/mangoapps.rb +34 -0
  50. metadata +181 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6cccec279a1fc70385a5657b014077dca6e721739b282e3096c11ec2467c7e4f
4
+ data.tar.gz: ed85a35c6f145897ea30fc2896cdedb1d6bb2ee8c56011cbe6d1a8159b7728c8
5
+ SHA512:
6
+ metadata.gz: be17b124f42a6b0c9fd0b4e30c76111265cc384d31c8f4ba3653500660375e885b9912f6c8c74533f558403fdd800f5a50fa6fbe636b76317bfbb7a6b31ebbe5
7
+ data.tar.gz: e2bd7e5d0658323d56314fbff29711f07a8b860f53a2eaf041465340565e77b94d81c2efaaf8ac8edbdd015531a7eac5c104a25082ac3d7ac3f9fa76c76d6a0c
data/CHANGELOG.md ADDED
@@ -0,0 +1,506 @@
1
+ # Changelog
2
+
3
+ All notable changes to the MangoApps Ruby SDK will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.15.1] - 2024-12-19
9
+
10
+ ### Added
11
+ - **Pagination Support** - Optional page and limit parameters for all list APIs
12
+ - Added `page` and `limit` parameters to all list APIs for efficient data retrieval
13
+ - Default pagination values: `page: 1, limit: 20` for most APIs
14
+ - Special defaults: `limit: 5` for tasks, `filter_by: "all"` for posts
15
+ - Maintains backward compatibility with existing `params` parameter
16
+ - Enhanced data retrieval efficiency for large datasets
17
+ - Comprehensive test coverage for pagination functionality
18
+
19
+ - **Enhanced Automatic Detection** - Improved `MangoApps::Config.new` behavior
20
+ - Shows clear feedback about which authentication method is being used
21
+ - Displays domain, API key (masked), and test header for Internal API
22
+ - Displays domain, client ID (masked), and redirect URI for OAuth
23
+ - Works seamlessly with all existing scripts and test frameworks
24
+ - Enhanced user experience with immediate authentication method feedback
25
+
26
+ ### Updated
27
+ - **Documentation** - Comprehensive updates across all documentation
28
+ - Updated README with automatic detection examples and priority system
29
+ - Enhanced DEVELOPER.md with authentication system documentation
30
+ - Updated RAILS_OAUTH_GUIDE.md with Internal API usage examples
31
+ - Updated .cursorrules with automatic detection features
32
+ - Added clear examples of automatic detection behavior
33
+
34
+ ## [0.15.0] - 2024-12-19
35
+
36
+ ### Added
37
+ - **Internal API Authentication** - Alternative authentication method using API keys
38
+ - `Internal-Api-Key` and `Internal-Api-Secret` header authentication
39
+ - Optional `Test` header support for testing environments
40
+ - Automatic header injection for all API requests
41
+ - Server-to-server communication without OAuth flow
42
+ - Clean dot notation access: `response.name`, `response.email`, `response.id`
43
+ - Comprehensive test coverage with internal API validation
44
+ - Enhanced configuration validation supporting both OAuth and Internal API
45
+ - Updated README with internal API authentication examples
46
+
47
+ - **Automatic Authentication Detection** - Smart authentication method detection
48
+ - `MangoApps::Config.new` automatically detects available authentication methods
49
+ - Prioritizes Internal API credentials over OAuth credentials
50
+ - Shows clear feedback about which authentication method is being used
51
+ - Works seamlessly with all existing scripts and test frameworks
52
+ - Enhanced user experience with automatic method selection
53
+ - Updated all documentation with automatic detection examples
54
+
55
+ ## [0.14.0] - 2024-12-19
56
+
57
+ ### Added
58
+ - **OAuth Userinfo API** in OAuth Module
59
+ - `client.get_userinfo` - Get user information from OAuth userinfo endpoint
60
+ - Access to OAuth user data including sub, name, email, and preferred_username
61
+ - Clean dot notation access: `response.name`, `response.email`, `response.preferred_username`
62
+ - Comprehensive test coverage with OAuth userinfo validation
63
+ - Enhanced Rails OAuth guide with userinfo integration
64
+
65
+ ## [0.13.0] - 2024-12-19
66
+
67
+ ### Added
68
+ - **Notifications API** in Notifications Module
69
+ - `client.notifications` - Get user's notifications with unread counts and detailed notification information
70
+ - Access to comprehensive notification data including IDs, sender information, and notification content
71
+ - Access to unread counts including what's new, unread feeds, mentions, and direct messages
72
+ - Access to notification metadata including types, categories, timestamps, and read status
73
+ - Access to mention tags and client metadata for enhanced notification handling
74
+ - Clean dot notation access: `response.notifications` with comprehensive notification data
75
+ - Comprehensive test coverage with real API validation
76
+
77
+ ### Enhanced
78
+ - **Test Coverage** - Added comprehensive test for notifications API (2 total notifications tests)
79
+ - **Documentation** - Updated README with notifications examples and complete workflow
80
+ - **API Completeness** - Notifications module now includes 2 comprehensive endpoints for complete notification management
81
+
82
+ ## [0.12.0] - 2024-12-19
83
+
84
+ ### Removed
85
+ - **Tango Gift Cards API** from Recognitions Module
86
+ - Removed `client.tango_gift_cards` endpoint and related functionality
87
+ - Removed tango gift cards module file and test coverage
88
+ - Updated recognitions module to exclude tango gift cards functionality
89
+ - Updated documentation to remove tango gift cards references
90
+
91
+ ### Enhanced
92
+ - **API Cleanup** - Streamlined recognitions module by removing unused tango gift cards functionality
93
+ - **Documentation** - Updated README and CHANGELOG to reflect tango gift cards removal
94
+ - **Module Efficiency** - Recognitions module now includes 8 focused endpoints for recognition management
95
+
96
+ ## [0.11.0] - 2024-12-19
97
+
98
+ ### Added
99
+ - **Get Award Feeds API** in Recognitions Module
100
+ - `client.get_award_feeds` - Get award feeds with comprehensive recognition data
101
+ - Access to comprehensive award feeds including IDs, types, categories, and recognition points
102
+ - Access to feed properties including titles, labels, image URLs, and status information
103
+ - Access to user information including from users, to users, and feed story users
104
+ - Access to feed interactions including reactions, comments, attachments, and core value tags
105
+ - Access to feed metadata including creation/update dates, platform, and visibility settings
106
+ - Access to unread counts including direct messages, mentions, and notification counts
107
+ - Access to system information including MangoApps version, moderation settings, and mobile pin options
108
+ - Clean dot notation access: `response.feeds` with comprehensive award feed data
109
+ - Comprehensive test coverage with real API validation
110
+
111
+ ### Enhanced
112
+ - **Test Coverage** - Added comprehensive test for get award feeds API (8 total recognitions tests)
113
+ - **Documentation** - Updated README with get award feeds examples and complete workflow
114
+ - **API Completeness** - Recognitions module now includes 8 comprehensive endpoints for complete recognition management
115
+
116
+ ## [0.10.0] - 2024-12-19
117
+
118
+ ### Added
119
+ - **Get Wiki Details API** in Wikis Module
120
+ - `client.get_wiki_details(wiki_id)` - Get detailed information for a specific wiki by ID
121
+ - Access to comprehensive wiki details including IDs, titles, descriptions, and metadata
122
+ - Access to wiki properties including status, platform, creation/update dates, and user information
123
+ - Access to wiki permissions including edit, delete, rename, move, and duplicate capabilities
124
+ - Access to wiki content including descriptions, banner URLs, and icon properties
125
+ - Access to wiki interactions including reactions, comments, attachments, and hashtags
126
+ - Access to wiki structure including TOC, governance, and archival information
127
+ - Clean dot notation access: `response.wiki` with comprehensive wiki details
128
+ - Comprehensive test coverage with real API validation
129
+
130
+ ### Enhanced
131
+ - **Test Coverage** - Added comprehensive test for get wiki details API (2 total wikis tests)
132
+ - **Documentation** - Updated README with get wiki details examples and complete workflow
133
+ - **API Completeness** - Wikis module now includes 2 comprehensive endpoints for complete wiki management
134
+
135
+ ## [0.9.0] - 2024-12-19
136
+
137
+ ### Added
138
+ - **Wikis Module** - New module for wiki management
139
+ - `client.get_wikis(mode: "my", limit: 20, offset: 0)` - Get user's wikis with filtering, pagination, and detailed wiki information
140
+ - Access to comprehensive wiki data including IDs, titles, children counts, and update dates
141
+ - Access to wiki properties including conversation details, edit permissions, and draft status
142
+ - Access to wiki metadata including icon properties, PDF access, and governance settings
143
+ - Access to wiki context including user information, status, and image URLs
144
+ - Clean dot notation access: `response.wikis` with comprehensive wiki data
145
+ - Comprehensive test coverage with real API validation
146
+
147
+ ### Enhanced
148
+ - **Test Coverage** - Added comprehensive test for wikis module (1 total wikis test)
149
+ - **Documentation** - Updated README with wikis examples and complete workflow
150
+ - **Module Architecture** - Added new wikis module following established patterns
151
+ - **Test Runner** - Updated run_tests.sh to include wikis module testing
152
+
153
+ ## [0.8.0] - 2024-12-19
154
+
155
+ ### Added
156
+ - **Get Task Details API** in Tasks Module
157
+ - `client.get_task_details(task_id)` - Get detailed information for a specific task by ID
158
+ - Access to comprehensive task details including IDs, titles, status, assignments, and due dates
159
+ - Access to task properties including overdue status, milestones, projects, and priorities
160
+ - Access to task metadata including reviewers, next actions, attachments, and links
161
+ - Access to task timeline including started, finished, delivered, reopened, and restarted dates
162
+ - Access to task content including task description and notes
163
+ - Clean dot notation access: `response.task` with comprehensive task details
164
+ - Comprehensive test coverage with real API validation
165
+
166
+ ### Enhanced
167
+ - **Test Coverage** - Added comprehensive test for get task details API (2 total tasks tests)
168
+ - **Documentation** - Updated README with get task details examples and complete workflow
169
+ - **API Completeness** - Tasks module now includes 2 comprehensive endpoints for complete task management
170
+
171
+ ## [0.7.0] - 2024-12-19
172
+
173
+ ### Added
174
+ - **Tasks Module** - New module for task management
175
+ - `client.get_tasks(filter: "Pending_Tasks", page: 1, limit: 5)` - Get user's tasks with filtering, pagination, and detailed task information
176
+ - Access to comprehensive task data including IDs, titles, status, assignments, and due dates
177
+ - Access to task properties including overdue status, milestones, projects, and priorities
178
+ - Access to task metadata including reviewers, next actions, attachments, and links
179
+ - Clean dot notation access: `response.tasks.task` with comprehensive task data
180
+ - Comprehensive test coverage with real API validation
181
+
182
+ ### Enhanced
183
+ - **Test Coverage** - Added comprehensive test for tasks module (1 total tasks test)
184
+ - **Documentation** - Updated README with tasks examples and complete workflow
185
+ - **Module Architecture** - Added new tasks module following established patterns
186
+ - **Test Runner** - Updated run_tests.sh to include tasks module testing
187
+
188
+ ## [0.6.0] - 2024-12-19
189
+
190
+ ### Added
191
+ - **Get Folder Files API** in Attachments Module
192
+ - `client.get_folder_files(folder_id, include_folders: "Y")` - Get files and folders inside a specific folder
193
+ - Access to comprehensive file and folder data including names, IDs, sizes, uploaders, and permissions
194
+ - Access to file properties including pinned status, liked status, visibility, and role permissions
195
+ - Access to folder metadata including total counts, role names, and domain suspension status
196
+ - Clean dot notation access: `response.files` with comprehensive file/folder data
197
+ - Comprehensive test coverage with real API validation
198
+
199
+ ### Enhanced
200
+ - **Test Coverage** - Added comprehensive test for get folder files API (2 total attachments tests)
201
+ - **Documentation** - Updated README with get folder files examples and complete workflow
202
+ - **API Completeness** - Attachments module now includes 2 comprehensive endpoints for complete file management
203
+
204
+ ## [0.5.0] - 2024-12-19
205
+
206
+ ### Added
207
+ - **Attachments Module** - New module for file and folder management
208
+ - `client.get_folders` - Get user's file folders with permissions and metadata
209
+ - Access to folder data including names, IDs, paths, child counts, and permissions
210
+ - Access to folder properties including pinned status, virtual folders, and upload/move permissions
211
+ - Clean dot notation access: `response.folders` with comprehensive folder data
212
+ - Comprehensive test coverage with real API validation
213
+
214
+ ### Enhanced
215
+ - **Test Coverage** - Added comprehensive test for attachments module (1 total attachments test)
216
+ - **Documentation** - Updated README with attachments examples and complete workflow
217
+ - **Module Architecture** - Added new attachments module following established patterns
218
+ - **Test Runner** - Updated run_tests.sh to include attachments module testing
219
+
220
+ ## [0.4.0] - 2024-12-19
221
+
222
+ ### Added
223
+ - **Trackers Module** - New module for tracker management
224
+ - `client.get_trackers` - Get user's trackers with submission dates and conversation details
225
+ - Access to tracker data including names, IDs, submission dates, pinned status, and conversation info
226
+ - Access to tracker icon information with color codes and icon URLs
227
+ - Clean dot notation access: `response.trackers` with comprehensive tracker data
228
+ - Comprehensive test coverage with real API validation
229
+
230
+ ### Enhanced
231
+ - **Test Coverage** - Added comprehensive test for trackers module (1 total trackers test)
232
+ - **Documentation** - Updated README with trackers examples and complete workflow
233
+ - **Module Architecture** - Added new trackers module following established patterns
234
+ - **Test Runner** - Updated run_tests.sh to include trackers module testing
235
+
236
+ ## [0.3.2] - 2024-12-19
237
+
238
+ ### Added
239
+ - **Get Library Items API** in Libraries Module
240
+ - `client.get_library_items(library_id, category_id)` - Get library items by library ID and category ID
241
+ - Access to library items including external links and attachments with full metadata
242
+ - Support for different link types (ExternalLink, Attachment) with specific properties
243
+ - Clean dot notation access: `response.library_items` with comprehensive item data
244
+ - Comprehensive test coverage with real API validation
245
+
246
+ ### Enhanced
247
+ - **Test Coverage** - Added comprehensive test for get library items API (3 total libraries tests)
248
+ - **Documentation** - Updated README with get library items examples and complete workflow
249
+ - **API Completeness** - Libraries module now includes 3 comprehensive endpoints for complete library management
250
+
251
+ ## [0.3.1] - 2024-12-19
252
+
253
+ ### Added
254
+ - **Get Library Categories API** in Libraries Module
255
+ - `client.get_library_categories(library_id)` - Get detailed library information and categories by library ID
256
+ - Access to comprehensive library details including properties, metadata, and all categories
257
+ - Clean dot notation access: `response.library` with detailed library data and categories
258
+ - Comprehensive test coverage with real API validation
259
+
260
+ ### Enhanced
261
+ - **Test Coverage** - Added comprehensive test for get library categories API (2 total libraries tests)
262
+ - **Documentation** - Updated README with get library categories examples and complete workflow
263
+ - **API Completeness** - Libraries module now includes 2 comprehensive endpoints for complete library management
264
+
265
+ ## [0.3.0] - 2024-12-19
266
+
267
+ ### Added
268
+ - **Libraries Module** - New module for document library management
269
+ - `client.get_libraries` - Get user's document libraries with categories and items
270
+ - Access to library data including names, types, view modes, descriptions, edit access, and positions
271
+ - Access to library categories with item counts, ranks, and system flags
272
+ - Clean dot notation access: `response.libraries` with comprehensive library data
273
+ - Comprehensive test coverage with real API validation
274
+
275
+ ### Enhanced
276
+ - **Test Coverage** - Added comprehensive test for libraries module (1 total libraries test)
277
+ - **Documentation** - Updated README with libraries examples and complete workflow
278
+ - **Module Architecture** - Added new libraries module following established patterns
279
+ - **Test Runner** - Updated run_tests.sh to include libraries module testing
280
+
281
+ ## [0.2.9] - 2024-12-19
282
+
283
+ ### Added
284
+ - **Get Post By ID API** in Posts Module
285
+ - `client.get_post_by_id(post_id, full_description: "Y")` - Get detailed post information by ID
286
+ - Access to comprehensive post details including creator info, permissions, tiles, and full descriptions
287
+ - Clean dot notation access: `response.post` with detailed post data and metadata
288
+ - Comprehensive test coverage with real API validation
289
+
290
+ ### Enhanced
291
+ - **Test Coverage** - Added comprehensive test for get post by ID API (2 total posts tests)
292
+ - **Documentation** - Updated README with get post by ID examples and complete workflow
293
+ - **API Completeness** - Posts module now includes 2 comprehensive endpoints for complete post management
294
+
295
+ ## [0.2.8] - 2024-12-19
296
+
297
+ ### Added
298
+ - **Posts Module** - New module for post management
299
+ - `client.get_all_posts(filter_by: "all")` - Get all posts with filtering options
300
+ - Access to post data including titles, authors, groups, view counts, comments, and tiles
301
+ - Clean dot notation access: `response.feeds`, `response.post_view_count_visibility`, and `response.post_view_count_link_config`
302
+ - Comprehensive test coverage with real API validation
303
+
304
+ ### Enhanced
305
+ - **Test Coverage** - Added comprehensive test for posts module (1 total posts test)
306
+ - **Documentation** - Updated README with posts examples and complete workflow
307
+ - **Module Architecture** - Added new posts module following established patterns
308
+ - **Test Runner** - Updated run_tests.sh to include posts module testing
309
+
310
+ ## [0.2.7] - 2024-12-19
311
+
312
+ ### Added
313
+ - **Feeds Module** - New module for user activity feeds
314
+ - `client.feeds` - Get user's activity feeds with unread counts and feed details
315
+ - Access to feed data including titles, authors, groups, timestamps, and content
316
+ - Clean dot notation access: `response.feeds`, `response.unread_counts`, and `response.limit`
317
+ - Comprehensive test coverage with real API validation
318
+
319
+ ### Enhanced
320
+ - **Test Coverage** - Added comprehensive test for feeds module (1 total feeds test)
321
+ - **Documentation** - Updated README with feeds examples and complete workflow
322
+ - **Module Architecture** - Added new feeds module following established patterns
323
+ - **Test Runner** - Updated run_tests.sh to include feeds module testing
324
+
325
+ ## [0.2.6] - 2024-12-19
326
+
327
+ ### Added
328
+ - **Notifications Module** - New module for user notifications and priority items
329
+ - `client.my_priority_items` - Get user's priority items including requests, events, quizzes, surveys, tasks, and todos
330
+ - Access to priority item details with counts, action types, icons, and descriptions
331
+ - Clean dot notation access: `response.data`, `response.success`, and `response.display_type`
332
+ - Comprehensive test coverage with real API validation
333
+
334
+ ### Enhanced
335
+ - **Test Coverage** - Added comprehensive test for notifications module (1 total notifications test)
336
+ - **Documentation** - Updated README with notifications examples and complete workflow
337
+ - **Module Architecture** - Added new notifications module following established patterns
338
+ - **Test Runner** - Updated run_tests.sh to include notifications module testing
339
+
340
+ ## [0.2.5] - 2024-12-19
341
+
342
+ ### Added
343
+ - **Get Team Awards API** in Recognitions Module
344
+ - `client.get_team_awards(project_id: id)` - Get team awards for a specific project/team
345
+ - Access to team award feeds, core value tags, and notification counts
346
+ - Clean dot notation access: `response.feeds`, `response.core_value_tags`, and `response.unread_counts`
347
+ - Comprehensive test coverage with real API validation using All Users team
348
+
349
+ ### Enhanced
350
+ - **Test Coverage** - Added comprehensive test for get team awards API (8 total recognitions tests)
351
+ - **Documentation** - Updated README with get team awards examples and complete recognition workflow
352
+ - **API Completeness** - Recognitions module now includes 8 comprehensive endpoints for complete recognition management
353
+
354
+ ## [0.2.4] - 2024-12-19
355
+
356
+ ### Added
357
+ - **Get Awards List API** in Recognitions Module
358
+ - `client.get_awards_list(category_id: id)` - Get awards for a specific category
359
+ - Access to award details including name, description, points, reward points, and attachment URLs
360
+ - Clean dot notation access: `response.get_awards_list` with comprehensive award data
361
+ - Comprehensive test coverage with real API validation using Safety & Quality category
362
+
363
+ ### Enhanced
364
+ - **Test Coverage** - Added comprehensive test for get awards list API (6 total recognitions tests)
365
+ - **Documentation** - Updated README with get awards list examples and complete recognition workflow
366
+ - **API Completeness** - Recognitions module now includes 6 comprehensive endpoints for complete recognition management
367
+
368
+ ## [0.2.3] - 2024-12-19
369
+
370
+ ### Added
371
+ - **Gift Cards API** in Recognitions Module
372
+ - `client.gift_cards` - Get available gift cards for recognition rewards
373
+ - Access to gift card brands, descriptions, and availability status
374
+ - Clean dot notation access: `response.cards` with `brand_name`, `brand_key`, `description`, and `enabled` fields
375
+ - Comprehensive test coverage with real API validation
376
+
377
+ ### Enhanced
378
+ - **Test Coverage** - Added comprehensive test for gift cards API (5 total recognitions tests)
379
+ - **Documentation** - Updated README with gift cards examples and complete recognition management workflow
380
+ - **API Completeness** - Recognitions module now includes 5 comprehensive endpoints
381
+
382
+ ## [0.2.2] - 2024-12-19
383
+
384
+ ### Added
385
+ - **Tango Gift Cards API** in Recognitions Module
386
+ - `client.tango_gift_cards` - Get tango gift cards information and available points
387
+ - Access to gift card terms and available points for recognition rewards
388
+ - Clean dot notation access: `response.tango_cards.available_points` and `response.tango_cards.terms`
389
+ - **Enhanced Test Runner** with module-specific testing
390
+ - `./run_tests.sh [module]` - Run tests for specific modules (learn, users, recognitions)
391
+ - `./run_tests.sh all` - Run all tests (default behavior)
392
+ - `./run_tests.sh help` - Show usage help and available modules
393
+ - Improved error handling and user-friendly output
394
+
395
+ ### Enhanced
396
+ - **Test Coverage** - Added comprehensive test for tango gift cards API
397
+ - **Documentation** - Updated README with tango gift cards examples and new test runner usage
398
+ - **Developer Experience** - Faster development with module-specific testing capabilities
399
+
400
+ ## [0.2.1] - 2024-12-19
401
+
402
+ ### Added
403
+ - **Course Details API** in Learn Module
404
+ - `client.course_details(course_id)` - Get detailed course information by course ID
405
+ - Comprehensive course data including description, instructors, fields, and URLs
406
+ - Support for course metadata like certification details and skill requirements
407
+
408
+ ## [0.2.0] - 2024-12-19
409
+
410
+ ### Added
411
+ - **Recognitions Module** with comprehensive recognition management APIs
412
+ - `client.award_categories` - Get recognition award categories
413
+ - `client.core_value_tags` - Get core value tags for recognition
414
+ - `client.leaderboard_info` - Get user and team leaderboard information
415
+ - **Enhanced Learn Module** with user learning progress tracking
416
+ - `client.my_learning` - Get user's learning progress and course information
417
+ - **Improved Response API** with clean dot notation access for all endpoints
418
+ - **Robust Error Handling** for APIs that may return empty data (e.g., leaderboard)
419
+
420
+ ### Enhanced
421
+ - **Modular Architecture** - Recognitions module uses folder structure like Learn module
422
+ - **Comprehensive Testing** - All new APIs tested with real OAuth integration
423
+ - **Documentation** - Complete README examples for all recognition features
424
+ - **Test Coverage** - 7 comprehensive API tests covering all modules
425
+
426
+ ### Technical Improvements
427
+ - **Folder Structure** - Recognitions module organized with sub-modules for scalability
428
+ - **Error Resilience** - Tests handle both populated and empty API responses gracefully
429
+ - **Clean API Design** - Consistent method naming and response handling across all modules
430
+
431
+ ## [0.1.0] - 2024-12-19
432
+
433
+ ### Added
434
+ - **Initial Release** of MangoApps Ruby SDK
435
+ - **OAuth2/OpenID Connect** authentication with automatic token refresh
436
+ - **Modular Architecture** for easy API organization and extension
437
+ - **Real TDD Testing** with actual MangoApps API integration (no mocking)
438
+ - **Comprehensive Error Handling** with detailed request/response logging
439
+ - **Environment Variable Configuration** for secure credential management
440
+
441
+ ### Features
442
+ - **Users Module**
443
+ - `client.me` - Get current user profile information
444
+ - User authentication validation
445
+ - Detailed error logging for failed requests
446
+
447
+ - **Learn Module**
448
+ - `client.course_catalog` - Get available courses
449
+ - `client.course_categories` - Get course categories
450
+ - `client.course_category(id)` - Get specific category details
451
+
452
+ ### Development Tools
453
+ - **Separated Scripts** for OAuth and testing workflows
454
+ - `./run_auth.sh` - Interactive OAuth token acquisition
455
+ - `./run_tests.sh` - Fast API testing with token validation
456
+ - **Module Generator** (`generate_module.rb`) for automated module creation
457
+ - **Shared Test Helpers** for consistent testing patterns
458
+ - **Development Documentation** (`MODULES.md`)
459
+
460
+ ### Technical Implementation
461
+ - **Faraday HTTP Client** with retry middleware and JSON handling
462
+ - **PKCE Support** for secure OAuth2 flows
463
+ - **Token Management** with automatic refresh capabilities
464
+ - **Structured Error Classes** for different API error scenarios
465
+ - **Request/Response Logging** for debugging failed API calls
466
+
467
+ ### Testing
468
+ - **Real API Integration Tests** using actual MangoApps endpoints
469
+ - **Comprehensive Test Coverage** for all implemented modules
470
+ - **Error Scenario Testing** with detailed logging
471
+ - **OAuth Flow Testing** with token validation
472
+
473
+ ### Documentation
474
+ - **Complete README** with setup instructions and examples
475
+ - **API Documentation** with usage examples for each module
476
+ - **Development Guidelines** for adding new modules
477
+ - **Configuration Examples** for different use cases
478
+
479
+ ### Security
480
+ - **Environment Variable** configuration for sensitive data
481
+ - **PKCE OAuth2** implementation for public clients
482
+ - **Secure Token Storage** and management
483
+ - **Input Validation** and sanitization
484
+
485
+ ---
486
+
487
+ ## Development Notes
488
+
489
+ ### Architecture Decisions
490
+ - **Modular Design**: Each API area (Users, Learn, etc.) is organized into separate modules
491
+ - **Real TDD**: All tests use actual MangoApps API calls for authentic validation
492
+ - **Error Handling**: Comprehensive error logging with full request/response details
493
+ - **Scalability**: Easy to add new modules using the generator script
494
+
495
+ ### Future Roadmap
496
+ - **Files Module**: File upload/download and management
497
+ - **Posts Module**: Social posts and announcements
498
+ - **Groups Module**: User groups and permissions
499
+ - **Projects Module**: Project management features
500
+ - **Tasks Module**: Task tracking and management
501
+ - **Events Module**: Calendar and event management
502
+ - **Documents Module**: Document management
503
+ - **Announcements Module**: Company announcements
504
+
505
+ ### Contributing
506
+ See [MODULES.md](MODULES.md) for guidelines on adding new modules and APIs.