musora-content-services 2.4.0 → 2.5.1

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 (56) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/docs/ContentOrganization.html +2 -2
  3. package/docs/Gamification.html +2 -2
  4. package/docs/UserManagementSystem.html +26 -2
  5. package/docs/api_types.js.html +2 -2
  6. package/docs/config.js.html +2 -2
  7. package/docs/content-org_content-org.js.html +2 -2
  8. package/docs/content-org_playlists-types.js.html +6 -6
  9. package/docs/content-org_playlists.js.html +220 -18
  10. package/docs/content.js.html +2 -2
  11. package/docs/gamification_awards.js.html +2 -2
  12. package/docs/gamification_gamification.js.html +2 -2
  13. package/docs/gamification_types.js.html +2 -2
  14. package/docs/global.html +14 -23
  15. package/docs/index.html +2 -2
  16. package/docs/module-Awards.html +2 -2
  17. package/docs/module-Config.html +2 -2
  18. package/docs/module-Content-Services-V2.html +2 -2
  19. package/docs/module-Interests.html +1066 -0
  20. package/docs/module-Permissions.html +2 -2
  21. package/docs/module-Playlists.html +1738 -157
  22. package/docs/module-Railcontent-Services.html +823 -3862
  23. package/docs/module-Sanity-Services.html +2 -2
  24. package/docs/module-Sessions.html +2 -2
  25. package/docs/module-User-Activity.html +405 -32
  26. package/docs/module-UserManagement.html +2 -2
  27. package/docs/railcontent.js.html +65 -464
  28. package/docs/sanity.js.html +3 -3
  29. package/docs/userActivity.js.html +176 -42
  30. package/docs/user_interests.js.html +150 -0
  31. package/docs/user_management.js.html +2 -2
  32. package/docs/user_permissions.js.html +2 -2
  33. package/docs/user_sessions.js.html +2 -2
  34. package/docs/user_types.js.html +2 -2
  35. package/docs/user_user-management-system.js.html +3 -2
  36. package/package.json +1 -1
  37. package/src/index.d.ts +15 -0
  38. package/src/index.js +15 -0
  39. package/src/infrastructure/http/HttpClient.ts +0 -0
  40. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  41. package/src/infrastructure/http/index.ts +0 -0
  42. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  43. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  44. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  45. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  46. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  47. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -6
  48. package/src/services/content-org/playlists.js +0 -0
  49. package/src/services/contentAggregator.js +0 -0
  50. package/src/services/contentProgress.js +9 -0
  51. package/src/services/recommendations.js +0 -0
  52. package/src/services/user/interests.js +78 -0
  53. package/src/services/user/user-management-system.js +1 -0
  54. package/test/HttpClient.test.js +0 -0
  55. package/test/content.test.js +0 -0
  56. package/test/sanityQueryService.test.js +0 -0
@@ -29,7 +29,7 @@
29
29
  <nav >
30
30
 
31
31
 
32
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-Awards.html">Awards</a><ul class='methods'><li data-type='method'><a href="module-Awards.html#.fetchAwardsForUser">fetchAwardsForUser</a></li></ul></li><li><a href="module-Config.html">Config</a><ul class='methods'><li data-type='method'><a href="module-Config.html#.initializeService">initializeService</a></li></ul></li><li><a href="module-Content-Services-V2.html">Content-Services-V2</a><ul class='methods'><li data-type='method'><a href="module-Content-Services-V2.html#.getContentRows">getContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getNewAndUpcoming">getNewAndUpcoming</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecent">getRecent</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecommendedForYou">getRecommendedForYou</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getScheduleContentRows">getScheduleContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getTabResults">getTabResults</a></li></ul></li><li><a href="module-Permissions.html">Permissions</a><ul class='methods'><li data-type='method'><a href="module-Permissions.html#.fetchUserPermissions">fetchUserPermissions</a></li><li data-type='method'><a href="module-Permissions.html#.reset">reset</a></li></ul></li><li><a href="module-Playlists.html">Playlists</a><ul class='methods'><li data-type='method'><a href="module-Playlists.html#.addItemToPlaylist">addItemToPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.createPlaylist">createPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchUserPlaylists">fetchUserPlaylists</a></li></ul></li><li><a href="module-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.assignModeratorToComment">assignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.closeComment">closeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.countAssignmentsAndLessons">countAssignmentsAndLessons</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.createComment">createComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deleteComment">deleteComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deletePlaylist">deletePlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deletePlaylistItem">deletePlaylistItem</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deletePlaylistLike">deletePlaylistLike</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.duplicatePlaylist">duplicatePlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.editComment">editComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCarouselCardData">fetchCarouselCardData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeIndexMetadata">fetchChallengeIndexMetadata</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeLessonData">fetchChallengeLessonData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeMetadata">fetchChallengeMetadata</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeUserActiveChallenges">fetchChallengeUserActiveChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCommentRelies">fetchCommentRelies</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComments">fetchComments</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedChallenges">fetchCompletedChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedContent">fetchCompletedContent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedState">fetchCompletedState</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentInProgress">fetchContentInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentPageUserData">fetchContentPageUserData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchNextContentDataForParent">fetchNextContentDataForParent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchOwnedChallenges">fetchOwnedChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchPinnedPlaylists">fetchPinnedPlaylists</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchPlaylist">fetchPlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchPlaylistItem">fetchPlaylistItem</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchPlaylistItems">fetchPlaylistItems</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchTopComment">fetchTopComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserAward">fetchUserAward</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserBadges">fetchUserBadges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserChallengeProgress">fetchUserChallengeProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserPracticeNotes">fetchUserPracticeNotes</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.likeComment">likeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.likePlaylist">likePlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.openComment">openComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.pinPlaylist">pinPlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesCommunityNotification">postChallengesCommunityNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesEnroll">postChallengesEnroll</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesEnrollmentNotification">postChallengesEnrollmentNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesHideCompletedBanner">postChallengesHideCompletedBanner</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesLeave">postChallengesLeave</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesSetStartDate">postChallengesSetStartDate</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesSoloNotification">postChallengesSoloNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesUnlock">postChallengesUnlock</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.replyToComment">replyToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.reportPlaylist">reportPlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.setStudentViewForUser">setStudentViewForUser</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unassignModeratorToComment">unassignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unlikeComment">unlikeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unpinPlaylist">unpinPlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.updatePlaylist">updatePlaylist</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.updatePlaylistItem">updatePlaylistItem</a></li></ul></li><li><a href="module-Sanity-Services.html">Sanity-Services</a><ul class='methods'><li data-type='method'><a href="module-Sanity-Services.html#.fetchAll">fetchAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllFilterOptions">fetchAllFilterOptions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllPacks">fetchAllPacks</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtistLessons">fetchArtistLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtists">fetchArtists</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentId">fetchByRailContentId</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentIds">fetchByRailContentIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByReference">fetchByReference</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCoachLessons">fetchCoachLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchComingSoon">fetchComingSoon</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCommentModContentData">fetchCommentModContentData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchFoundation">fetchFoundation</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchGenreLessons">fetchGenreLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLeaving">fetchLeaving</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonContent">fetchLessonContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonsFeaturingThisContent">fetchLessonsFeaturingThisContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMetadata">fetchMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethod">fetchMethod</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildren">fetchMethodChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildrenIds">fetchMethodChildrenIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodPreviousNextLesson">fetchMethodPreviousNextLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNewReleases">fetchNewReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNextPreviousLesson">fetchNextPreviousLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchOtherSongVersions">fetchOtherSongVersions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackAll">fetchPackAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackData">fetchPackData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentForDownload">fetchParentForDownload</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedLessons">fetchRelatedLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedRecommendedContent">fetchRelatedRecommendedContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedSongs">fetchRelatedSongs</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchReturning">fetchReturning</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSanity">fetchSanity</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchScheduledReleases">fetchScheduledReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchShowsData">fetchShowsData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongArtistCount">fetchSongArtistCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongById">fetchSongById</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchUpcomingEvents">fetchUpcomingEvents</a></li><li data-type='method'><a href="module-Sanity-Services.html#.jumpToContinueContent">jumpToContinueContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#~fetchRelatedByLicense">fetchRelatedByLicense</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getNextAndPreviousQuarterDates">getNextAndPreviousQuarterDates</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getQueryFromPage">getQueryFromPage</a></li><li data-type='method'><a href="module-Sanity-Services.html#~handleCustomFetchAll">handleCustomFetchAll</a></li></ul></li><li><a href="module-Sessions.html">Sessions</a><ul class='methods'><li data-type='method'><a href="module-Sessions.html#.login">login</a></li><li data-type='method'><a href="module-Sessions.html#.logout">logout</a></li></ul></li><li><a href="module-User-Activity.html">User-Activity</a><ul class='methods'><li data-type='method'><a href="module-User-Activity.html#.createPracticeNotes">createPracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.deletePracticeSession">deletePracticeSession</a></li><li data-type='method'><a href="module-User-Activity.html#.getPracticeNotes">getPracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.getPracticeSessions">getPracticeSessions</a></li><li data-type='method'><a href="module-User-Activity.html#.getRecentActivity">getRecentActivity</a></li><li data-type='method'><a href="module-User-Activity.html#.getUserMonthlyStats">getUserMonthlyStats</a></li><li data-type='method'><a href="module-User-Activity.html#.getUserWeeklyStats">getUserWeeklyStats</a></li><li data-type='method'><a href="module-User-Activity.html#.recordUserPractice">recordUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.removeUserPractice">removeUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.restorePracticeSession">restorePracticeSession</a></li><li data-type='method'><a href="module-User-Activity.html#.restoreUserPractice">restoreUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.updatePracticeNotes">updatePracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.updateUserPractice">updateUserPractice</a></li></ul></li><li><a href="module-UserManagement.html">UserManagement</a><ul class='methods'><li data-type='method'><a href="module-UserManagement.html#.blockUser">blockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.unblockUser">unblockUser</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="ContentOrganization.html">ContentOrganization</a></li><li><a href="Gamification.html">Gamification</a></li><li><a href="UserManagementSystem.html">UserManagementSystem</a></li></ul><h3><a href="global.html">Global</a></h3>
32
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-Awards.html">Awards</a><ul class='methods'><li data-type='method'><a href="module-Awards.html#.fetchAwardsForUser">fetchAwardsForUser</a></li></ul></li><li><a href="module-Config.html">Config</a><ul class='methods'><li data-type='method'><a href="module-Config.html#.initializeService">initializeService</a></li></ul></li><li><a href="module-Content-Services-V2.html">Content-Services-V2</a><ul class='methods'><li data-type='method'><a href="module-Content-Services-V2.html#.getContentRows">getContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getNewAndUpcoming">getNewAndUpcoming</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecent">getRecent</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecommendedForYou">getRecommendedForYou</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getScheduleContentRows">getScheduleContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getTabResults">getTabResults</a></li></ul></li><li><a href="module-Interests.html">Interests</a><ul class='methods'><li data-type='method'><a href="module-Interests.html#.fetchInterests">fetchInterests</a></li><li data-type='method'><a href="module-Interests.html#.fetchUninterests">fetchUninterests</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsInterested">markContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsNotInterested">markContentAsNotInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsInterested">removeContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsNotInterested">removeContentAsNotInterested</a></li></ul></li><li><a href="module-Permissions.html">Permissions</a><ul class='methods'><li data-type='method'><a href="module-Permissions.html#.fetchUserPermissions">fetchUserPermissions</a></li><li data-type='method'><a href="module-Permissions.html#.reset">reset</a></li></ul></li><li><a href="module-Playlists.html">Playlists</a><ul class='methods'><li data-type='method'><a href="module-Playlists.html#.addItemToPlaylist">addItemToPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.createPlaylist">createPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.duplicatePlaylist">duplicatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylist">fetchPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylistItems">fetchPlaylistItems</a></li><li data-type='method'><a href="module-Playlists.html#.fetchUserPlaylists">fetchUserPlaylists</a></li><li data-type='method'><a href="module-Playlists.html#.togglePlaylistPrivate">togglePlaylistPrivate</a></li><li data-type='method'><a href="module-Playlists.html#.updatePlaylist">updatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~likePlaylist">likePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~reportPlaylist">reportPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~togglePlaylistPrivate">togglePlaylistPrivate</a></li><li data-type='method'><a href="module-Playlists.html#~unlikePlaylist">unlikePlaylist</a></li></ul></li><li><a href="module-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.assignModeratorToComment">assignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.closeComment">closeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.createComment">createComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deleteComment">deleteComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.editComment">editComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCarouselCardData">fetchCarouselCardData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeIndexMetadata">fetchChallengeIndexMetadata</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeLessonData">fetchChallengeLessonData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeMetadata">fetchChallengeMetadata</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchChallengeUserActiveChallenges">fetchChallengeUserActiveChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCommentRelies">fetchCommentRelies</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComments">fetchComments</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedChallenges">fetchCompletedChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedContent">fetchCompletedContent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedState">fetchCompletedState</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentInProgress">fetchContentInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentPageUserData">fetchContentPageUserData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchNextContentDataForParent">fetchNextContentDataForParent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchOwnedChallenges">fetchOwnedChallenges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchTopComment">fetchTopComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserAward">fetchUserAward</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserBadges">fetchUserBadges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserChallengeProgress">fetchUserChallengeProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserPracticeNotes">fetchUserPracticeNotes</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.likeComment">likeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.openComment">openComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesCommunityNotification">postChallengesCommunityNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesEnroll">postChallengesEnroll</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesEnrollmentNotification">postChallengesEnrollmentNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesHideCompletedBanner">postChallengesHideCompletedBanner</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesLeave">postChallengesLeave</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesSetStartDate">postChallengesSetStartDate</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesSoloNotification">postChallengesSoloNotification</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postChallengesUnlock">postChallengesUnlock</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.replyToComment">replyToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.reportComment">reportComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.setStudentViewForUser">setStudentViewForUser</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unassignModeratorToComment">unassignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unlikeComment">unlikeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#~fetchLastInteractedChild">fetchLastInteractedChild</a></li></ul></li><li><a href="module-Sanity-Services.html">Sanity-Services</a><ul class='methods'><li data-type='method'><a href="module-Sanity-Services.html#.fetchAll">fetchAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllFilterOptions">fetchAllFilterOptions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllPacks">fetchAllPacks</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtistLessons">fetchArtistLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtists">fetchArtists</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentId">fetchByRailContentId</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentIds">fetchByRailContentIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByReference">fetchByReference</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCoachLessons">fetchCoachLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchComingSoon">fetchComingSoon</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCommentModContentData">fetchCommentModContentData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchFoundation">fetchFoundation</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchGenreLessons">fetchGenreLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLeaving">fetchLeaving</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonContent">fetchLessonContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonsFeaturingThisContent">fetchLessonsFeaturingThisContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMetadata">fetchMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethod">fetchMethod</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildren">fetchMethodChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildrenIds">fetchMethodChildrenIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodPreviousNextLesson">fetchMethodPreviousNextLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNewReleases">fetchNewReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNextPreviousLesson">fetchNextPreviousLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchOtherSongVersions">fetchOtherSongVersions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackAll">fetchPackAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackData">fetchPackData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentForDownload">fetchParentForDownload</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedLessons">fetchRelatedLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedRecommendedContent">fetchRelatedRecommendedContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedSongs">fetchRelatedSongs</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchReturning">fetchReturning</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSanity">fetchSanity</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchScheduledReleases">fetchScheduledReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchShowsData">fetchShowsData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongArtistCount">fetchSongArtistCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongById">fetchSongById</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchUpcomingEvents">fetchUpcomingEvents</a></li><li data-type='method'><a href="module-Sanity-Services.html#.jumpToContinueContent">jumpToContinueContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#~fetchRelatedByLicense">fetchRelatedByLicense</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getNextAndPreviousQuarterDates">getNextAndPreviousQuarterDates</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getQueryFromPage">getQueryFromPage</a></li><li data-type='method'><a href="module-Sanity-Services.html#~handleCustomFetchAll">handleCustomFetchAll</a></li></ul></li><li><a href="module-Sessions.html">Sessions</a><ul class='methods'><li data-type='method'><a href="module-Sessions.html#.login">login</a></li><li data-type='method'><a href="module-Sessions.html#.logout">logout</a></li></ul></li><li><a href="module-User-Activity.html">User-Activity</a><ul class='methods'><li data-type='method'><a href="module-User-Activity.html#.calculateLongestStreaks">calculateLongestStreaks</a></li><li data-type='method'><a href="module-User-Activity.html#.createPracticeNotes">createPracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.deletePracticeSession">deletePracticeSession</a></li><li data-type='method'><a href="module-User-Activity.html#.getPracticeNotes">getPracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.getPracticeSessions">getPracticeSessions</a></li><li data-type='method'><a href="module-User-Activity.html#.getRecentActivity">getRecentActivity</a></li><li data-type='method'><a href="module-User-Activity.html#.getUserMonthlyStats">getUserMonthlyStats</a></li><li data-type='method'><a href="module-User-Activity.html#.getUserWeeklyStats">getUserWeeklyStats</a></li><li data-type='method'><a href="module-User-Activity.html#.recordUserPractice">recordUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.removeUserPractice">removeUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.restorePracticeSession">restorePracticeSession</a></li><li data-type='method'><a href="module-User-Activity.html#.restoreUserPractice">restoreUserPractice</a></li><li data-type='method'><a href="module-User-Activity.html#.updatePracticeNotes">updatePracticeNotes</a></li><li data-type='method'><a href="module-User-Activity.html#.updateUserPractice">updateUserPractice</a></li></ul></li><li><a href="module-UserManagement.html">UserManagement</a><ul class='methods'><li data-type='method'><a href="module-UserManagement.html#.blockUser">blockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.unblockUser">unblockUser</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="ContentOrganization.html">ContentOrganization</a></li><li><a href="Gamification.html">Gamification</a></li><li><a href="UserManagementSystem.html">UserManagementSystem</a></li></ul><h3><a href="global.html">Global</a></h3>
33
33
 
34
34
  </nav>
35
35
 
@@ -84,6 +84,110 @@
84
84
 
85
85
 
86
86
 
87
+ <h4 class="name" id=".calculateLongestStreaks"><span class="type-signature type-signature-static">(static) </span>calculateLongestStreaks<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
88
+
89
+
90
+
91
+
92
+
93
+
94
+ <dl class="details">
95
+
96
+ <dt class="tag-description">Description:</dt>
97
+ <dd class="tag-description"><ul class="dummy"><li>Calculates the longest daily, weekly streaks and totalPracticeSeconds from user practice dates.</li></ul></dd>
98
+
99
+
100
+
101
+ <dt class="tag-source">Source:</dt>
102
+ <dd class="tag-source"><ul class="dummy"><li>
103
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line718">line 718</a>
104
+ </li></ul></dd>
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+ </dl>
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <h5 class="h5-returns">Returns:</h5>
165
+
166
+
167
+
168
+
169
+ <dl class="param-type">
170
+ <dt>
171
+ Type
172
+ </dt>
173
+ <dd>
174
+
175
+ <span class="param-type">Object</span>
176
+
177
+
178
+
179
+ </dd>
180
+ </dl>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
87
191
  <h4 class="name" id=".createPracticeNotes"><span class="type-signature type-signature-static">(static) </span>createPracticeNotes<span class="signature">(payload)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
88
192
 
89
193
 
@@ -100,7 +204,7 @@
100
204
 
101
205
  <dt class="tag-source">Source:</dt>
102
206
  <dd class="tag-source"><ul class="dummy"><li>
103
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line517">line 517</a>
207
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line567">line 567</a>
104
208
  </li></ul></dd>
105
209
 
106
210
 
@@ -342,7 +446,7 @@ to remove them from the server. It also updates the local context to reflect the
342
446
 
343
447
  <dt class="tag-source">Source:</dt>
344
448
  <dd class="tag-source"><ul class="dummy"><li>
345
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line359">line 359</a>
449
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line395">line 395</a>
346
450
  </li></ul></dd>
347
451
 
348
452
 
@@ -506,7 +610,7 @@ deletePracticeSession("2025-04-10")
506
610
 
507
611
  <dt class="tag-source">Source:</dt>
508
612
  <dd class="tag-source"><ul class="dummy"><li>
509
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line481">line 481</a>
613
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line531">line 531</a>
510
614
  </li></ul></dd>
511
615
 
512
616
 
@@ -656,7 +760,7 @@ getPracticeNotes("2025-04-10")
656
760
 
657
761
 
658
762
 
659
- <h4 class="name" id=".getPracticeSessions"><span class="type-signature type-signature-static">(static) </span>getPracticeSessions<span class="signature">(day)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
763
+ <h4 class="name" id=".getPracticeSessions"><span class="type-signature type-signature-static">(static) </span>getPracticeSessions<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
660
764
 
661
765
 
662
766
 
@@ -672,7 +776,7 @@ getPracticeNotes("2025-04-10")
672
776
 
673
777
  <dt class="tag-source">Source:</dt>
674
778
  <dd class="tag-source"><ul class="dummy"><li>
675
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line426">line 426</a>
779
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line472">line 472</a>
676
780
  </li></ul></dd>
677
781
 
678
782
 
@@ -717,10 +821,15 @@ getPracticeNotes("2025-04-10")
717
821
 
718
822
 
719
823
 
720
- <h5 class="h5-examples">Example</h5>
824
+ <h5 class="h5-examples">Examples</h5>
721
825
 
722
- <pre class="prettyprint"><code>// Get practice sessions for a specific day
723
- getPracticeSessions("2025-03-31")
826
+ <pre class="prettyprint"><code>// Get practice sessions for the current user on a specific day
827
+ getPracticeSessions({ day: "2025-03-31" })
828
+ .then(response => console.log(response))
829
+ .catch(error => console.error(error));</code></pre>
830
+
831
+ <pre class="prettyprint"><code>// Get practice sessions for another user
832
+ getPracticeSessions({ day: "2025-03-31", userId: 456 })
724
833
  .then(response => console.log(response))
725
834
  .catch(error => console.error(error));</code></pre>
726
835
 
@@ -743,6 +852,53 @@ getPracticeSessions("2025-03-31")
743
852
 
744
853
 
745
854
 
855
+ <th class="last">Description</th>
856
+ </tr>
857
+ </thead>
858
+
859
+ <tbody>
860
+
861
+
862
+ <tr>
863
+
864
+ <td class="name"><code>params</code></td>
865
+
866
+
867
+ <td class="type">
868
+
869
+
870
+ <span class="param-type">Object</span>
871
+
872
+
873
+
874
+
875
+ </td>
876
+
877
+
878
+
879
+
880
+
881
+ <td class="description last">Parameters for fetching practice sessions.
882
+ <h6>Properties</h6>
883
+
884
+
885
+ <table class="params">
886
+ <thead>
887
+ <tr>
888
+
889
+ <th>Name</th>
890
+
891
+
892
+ <th>Type</th>
893
+
894
+
895
+ <th>Attributes</th>
896
+
897
+
898
+
899
+ <th>Default</th>
900
+
901
+
746
902
  <th class="last">Description</th>
747
903
  </tr>
748
904
  </thead>
@@ -766,13 +922,72 @@ getPracticeSessions("2025-03-31")
766
922
  </td>
767
923
 
768
924
 
925
+ <td class="attributes">
926
+
927
+
928
+
929
+
930
+
931
+ </td>
932
+
769
933
 
770
934
 
935
+ <td class="default">
936
+
937
+ </td>
938
+
771
939
 
772
940
  <td class="description last">The date for which practice sessions should be retrieved (format: YYYY-MM-DD).</td>
773
941
  </tr>
774
942
 
775
943
 
944
+
945
+ <tr>
946
+
947
+ <td class="name"><code>userId</code></td>
948
+
949
+
950
+ <td class="type">
951
+
952
+
953
+ <span class="param-type">number</span>
954
+
955
+
956
+
957
+
958
+ </td>
959
+
960
+
961
+ <td class="attributes">
962
+
963
+ &lt;optional><br>
964
+
965
+
966
+
967
+
968
+
969
+ </td>
970
+
971
+
972
+
973
+ <td class="default">
974
+
975
+ <code>globalConfig.sessionConfig.userId</code>
976
+
977
+ </td>
978
+
979
+
980
+ <td class="description last">Optional user ID to retrieve sessions for a specific user. Defaults to the logged-in user.</td>
981
+ </tr>
982
+
983
+
984
+ </tbody>
985
+ </table>
986
+
987
+ </td>
988
+ </tr>
989
+
990
+
776
991
  </tbody>
777
992
  </table>
778
993
 
@@ -795,7 +1010,9 @@ getPracticeSessions("2025-03-31")
795
1010
 
796
1011
 
797
1012
  <div class="param-desc">
798
- - A promise that resolves to an object containing the practice sessions and total practice duration.
1013
+ - A promise that resolves to an object containing:
1014
+ - `practices`: An array of formatted practice session data.
1015
+ - `practiceDuration`: Total practice duration (in seconds) for the given day.
799
1016
  </div>
800
1017
 
801
1018
 
@@ -840,7 +1057,7 @@ Returns an object containing recent practice activity.</li></ul></dd>
840
1057
 
841
1058
  <dt class="tag-source">Source:</dt>
842
1059
  <dd class="tag-source"><ul class="dummy"><li>
843
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line500">line 500</a>
1060
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line550">line 550</a>
844
1061
  </li></ul></dd>
845
1062
 
846
1063
 
@@ -940,7 +1157,7 @@ getRecentActivity()
940
1157
 
941
1158
 
942
1159
 
943
- <h4 class="name" id=".getUserMonthlyStats"><span class="type-signature type-signature-static">(static) </span>getUserMonthlyStats<span class="signature">(year<span class="signature-attributes">opt</span>, month<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
1160
+ <h4 class="name" id=".getUserMonthlyStats"><span class="type-signature type-signature-static">(static) </span>getUserMonthlyStats<span class="signature">(params<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;Object>}</span></h4>
944
1161
 
945
1162
 
946
1163
 
@@ -950,13 +1167,14 @@ getRecentActivity()
950
1167
  <dl class="details">
951
1168
 
952
1169
  <dt class="tag-description">Description:</dt>
953
- <dd class="tag-description"><ul class="dummy"><li>Retrieves user activity statistics for a specified month, including daily and weekly activity data.</li></ul></dd>
1170
+ <dd class="tag-description"><ul class="dummy"><li>Retrieves user activity statistics for a specified month and user, including daily and weekly activity data.
1171
+ If no parameters are provided, defaults to the current year, current month, and the logged-in user.</li></ul></dd>
954
1172
 
955
1173
 
956
1174
 
957
1175
  <dt class="tag-source">Source:</dt>
958
1176
  <dd class="tag-source"><ul class="dummy"><li>
959
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line103">line 103</a>
1177
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line115">line 115</a>
960
1178
  </li></ul></dd>
961
1179
 
962
1180
 
@@ -1003,15 +1221,14 @@ getRecentActivity()
1003
1221
 
1004
1222
  <h5 class="h5-examples">Examples</h5>
1005
1223
 
1006
- <pre class="prettyprint"><code>// Retrieve user activity statistics for the current month
1007
- getUserMonthlyStats()
1008
- .then(stats => console.log(stats))
1009
- .catch(error => console.error(error));</code></pre>
1224
+ <pre class="prettyprint"><code>// Get stats for current user and month
1225
+ getUserMonthlyStats().then(console.log);</code></pre>
1010
1226
 
1011
- <pre class="prettyprint"><code>// Retrieve user activity statistics for March 2024
1012
- getUserMonthlyStats(2024, 2)
1013
- .then(stats => console.log(stats))
1014
- .catch(error => console.error(error));</code></pre>
1227
+ <pre class="prettyprint"><code>// Get stats for March 2024
1228
+ getUserMonthlyStats({ year: 2024, month: 2 }).then(console.log);</code></pre>
1229
+
1230
+ <pre class="prettyprint"><code>// Get stats for another user
1231
+ getUserMonthlyStats({ userId: 123 }).then(console.log);</code></pre>
1015
1232
 
1016
1233
 
1017
1234
 
@@ -1033,6 +1250,69 @@ getUserMonthlyStats(2024, 2)
1033
1250
 
1034
1251
 
1035
1252
 
1253
+ <th>Default</th>
1254
+
1255
+
1256
+ <th class="last">Description</th>
1257
+ </tr>
1258
+ </thead>
1259
+
1260
+ <tbody>
1261
+
1262
+
1263
+ <tr>
1264
+
1265
+ <td class="name"><code>params</code></td>
1266
+
1267
+
1268
+ <td class="type">
1269
+
1270
+
1271
+ <span class="param-type">Object</span>
1272
+
1273
+
1274
+
1275
+
1276
+ </td>
1277
+
1278
+
1279
+ <td class="attributes">
1280
+
1281
+ &lt;optional><br>
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+ </td>
1288
+
1289
+
1290
+
1291
+ <td class="default">
1292
+
1293
+ <code>{}</code>
1294
+
1295
+ </td>
1296
+
1297
+
1298
+ <td class="description last">Parameters for fetching user statistics.
1299
+ <h6>Properties</h6>
1300
+
1301
+
1302
+ <table class="params">
1303
+ <thead>
1304
+ <tr>
1305
+
1306
+ <th>Name</th>
1307
+
1308
+
1309
+ <th>Type</th>
1310
+
1311
+
1312
+ <th>Attributes</th>
1313
+
1314
+
1315
+
1036
1316
  <th>Default</th>
1037
1317
 
1038
1318
 
@@ -1118,7 +1398,94 @@ getUserMonthlyStats(2024, 2)
1118
1398
  </td>
1119
1399
 
1120
1400
 
1121
- <td class="description last">The month (0-indexed) for which to retrieve the statistics.</td>
1401
+ <td class="description last">The 0-based month index (0 = January).</td>
1402
+ </tr>
1403
+
1404
+
1405
+
1406
+ <tr>
1407
+
1408
+ <td class="name"><code>day</code></td>
1409
+
1410
+
1411
+ <td class="type">
1412
+
1413
+
1414
+ <span class="param-type">number</span>
1415
+
1416
+
1417
+
1418
+
1419
+ </td>
1420
+
1421
+
1422
+ <td class="attributes">
1423
+
1424
+ &lt;optional><br>
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+ </td>
1431
+
1432
+
1433
+
1434
+ <td class="default">
1435
+
1436
+ <code>1</code>
1437
+
1438
+ </td>
1439
+
1440
+
1441
+ <td class="description last">The starting day (not used for grid calc, but kept for flexibility).</td>
1442
+ </tr>
1443
+
1444
+
1445
+
1446
+ <tr>
1447
+
1448
+ <td class="name"><code>userId</code></td>
1449
+
1450
+
1451
+ <td class="type">
1452
+
1453
+
1454
+ <span class="param-type">number</span>
1455
+
1456
+
1457
+
1458
+
1459
+ </td>
1460
+
1461
+
1462
+ <td class="attributes">
1463
+
1464
+ &lt;optional><br>
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+ </td>
1471
+
1472
+
1473
+
1474
+ <td class="default">
1475
+
1476
+ <code>globalConfig.sessionConfig.userId</code>
1477
+
1478
+ </td>
1479
+
1480
+
1481
+ <td class="description last">The user ID for whom to retrieve stats.</td>
1482
+ </tr>
1483
+
1484
+
1485
+ </tbody>
1486
+ </table>
1487
+
1488
+ </td>
1122
1489
  </tr>
1123
1490
 
1124
1491
 
@@ -1144,7 +1511,13 @@ getUserMonthlyStats(2024, 2)
1144
1511
 
1145
1512
 
1146
1513
  <div class="param-desc">
1147
- - A promise that resolves to an object containing user activity statistics.
1514
+ A promise that resolves to an object containing:
1515
+ - `dailyActiveStats`: Array of daily activity data for the calendar grid.
1516
+ - `weeklyActiveStats`: Array of weekly streak summaries.
1517
+ - `practiceDuration`: Total number of seconds practiced in the month.
1518
+ - `currentDailyStreak`: Count of consecutive active days.
1519
+ - `currentWeeklyStreak`: Count of consecutive active weeks.
1520
+ - `daysPracticed`: Total number of active days in the month.
1148
1521
  </div>
1149
1522
 
1150
1523
 
@@ -1187,7 +1560,7 @@ getUserMonthlyStats(2024, 2)
1187
1560
 
1188
1561
  <dt class="tag-source">Source:</dt>
1189
1562
  <dd class="tag-source"><ul class="dummy"><li>
1190
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line58">line 58</a>
1563
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line59">line 59</a>
1191
1564
  </li></ul></dd>
1192
1565
 
1193
1566
 
@@ -1303,7 +1676,7 @@ getUserWeeklyStats()
1303
1676
 
1304
1677
  <dt class="tag-source">Source:</dt>
1305
1678
  <dd class="tag-source"><ul class="dummy"><li>
1306
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line221">line 221</a>
1679
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line257">line 257</a>
1307
1680
  </li></ul></dd>
1308
1681
 
1309
1682
 
@@ -1738,7 +2111,7 @@ recordUserPractice({
1738
2111
 
1739
2112
  <dt class="tag-source">Source:</dt>
1740
2113
  <dd class="tag-source"><ul class="dummy"><li>
1741
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line294">line 294</a>
2114
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line330">line 330</a>
1742
2115
  </li></ul></dd>
1743
2116
 
1744
2117
 
@@ -1907,7 +2280,7 @@ If restored practices are returned, they are added back into the local context.<
1907
2280
 
1908
2281
  <dt class="tag-source">Source:</dt>
1909
2282
  <dd class="tag-source"><ul class="dummy"><li>
1910
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line392">line 392</a>
2283
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line428">line 428</a>
1911
2284
  </li></ul></dd>
1912
2285
 
1913
2286
 
@@ -2073,7 +2446,7 @@ restorePracticeSession("2025-04-10")
2073
2446
 
2074
2447
  <dt class="tag-source">Source:</dt>
2075
2448
  <dd class="tag-source"><ul class="dummy"><li>
2076
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line324">line 324</a>
2449
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line360">line 360</a>
2077
2450
  </li></ul></dd>
2078
2451
 
2079
2452
 
@@ -2239,7 +2612,7 @@ restoreUserPractice(123)
2239
2612
 
2240
2613
  <dt class="tag-source">Source:</dt>
2241
2614
  <dd class="tag-source"><ul class="dummy"><li>
2242
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line535">line 535</a>
2615
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line585">line 585</a>
2243
2616
  </li></ul></dd>
2244
2617
 
2245
2618
 
@@ -2478,7 +2851,7 @@ restoreUserPractice(123)
2478
2851
 
2479
2852
  <dt class="tag-source">Source:</dt>
2480
2853
  <dd class="tag-source"><ul class="dummy"><li>
2481
- <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line277">line 277</a>
2854
+ <a href="userActivity.js.html">userActivity.js</a>, <a href="userActivity.js.html#line313">line 313</a>
2482
2855
  </li></ul></dd>
2483
2856
 
2484
2857
 
@@ -2836,7 +3209,7 @@ updateUserPractice(456, { auto: false, category_id: 8 })
2836
3209
  <br class="clear">
2837
3210
 
2838
3211
  <footer>
2839
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Fri Apr 11 2025 17:26:43 GMT+0300 (Eastern European Summer Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
3212
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Wed May 14 2025 19:23:31 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
2840
3213
  </footer>
2841
3214
 
2842
3215
  <script>prettyPrint();</script>