musora-content-services 1.3.21 → 2.0.5

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 (96) hide show
  1. package/.editorconfig +16 -0
  2. package/.github/workflows/node.js.yml +0 -0
  3. package/.prettierignore +0 -0
  4. package/.prettierrc +0 -0
  5. package/CHANGELOG.md +4 -4
  6. package/README.md +0 -0
  7. package/babel.config.cjs +0 -0
  8. package/docs/Content-Organization.html +245 -0
  9. package/docs/Playlists.html +192 -0
  10. package/docs/config.js.html +14 -5
  11. package/docs/content-org_playlists-types.js.html +109 -0
  12. package/docs/content-org_playlists.js.html +194 -0
  13. package/docs/content-org_types.js.html +112 -0
  14. package/docs/content.js.html +443 -0
  15. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  16. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  17. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  18. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  19. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  20. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  21. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  22. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  23. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  24. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  25. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  26. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  27. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  28. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  29. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  30. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  31. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  32. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  33. package/docs/global.html +3878 -0
  34. package/docs/index.html +2 -2
  35. package/docs/module-Config.html +60 -7
  36. package/docs/module-Content-Organization-Playlists.html +194 -0
  37. package/docs/module-Content-Organization.html +976 -0
  38. package/docs/module-Content-Services-V2.html +2433 -0
  39. package/docs/module-Playlists.html +969 -0
  40. package/docs/module-Railcontent-Services.html +3052 -1991
  41. package/docs/module-Sanity-Services.html +57 -43
  42. package/docs/module-Session-Management.html +575 -0
  43. package/docs/module-User-Permissions.html +406 -0
  44. package/docs/module-playlists.html +1878 -0
  45. package/docs/module-playlists_.html +108 -0
  46. package/docs/railcontent.js.html +149 -112
  47. package/docs/sanity.js.html +297 -109
  48. package/docs/scripts/collapse.js +0 -0
  49. package/docs/scripts/commonNav.js +0 -0
  50. package/docs/scripts/linenumber.js +0 -0
  51. package/docs/scripts/nav.js +0 -0
  52. package/docs/scripts/polyfill.js +0 -0
  53. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  54. package/docs/scripts/prettify/lang-css.js +0 -0
  55. package/docs/scripts/prettify/prettify.js +0 -0
  56. package/docs/scripts/search.js +0 -0
  57. package/docs/styles/jsdoc.css +0 -0
  58. package/docs/styles/prettify.css +0 -0
  59. package/docs/user_permissions.js.html +110 -0
  60. package/docs/user_sessions.js.html +139 -0
  61. package/docs/user_types.js.html +188 -0
  62. package/jest.config.js +0 -0
  63. package/jsdoc.json +3 -0
  64. package/package.json +1 -1
  65. package/publish.sh +2 -2
  66. package/src/contentMetaData.js +307 -1088
  67. package/src/contentTypeConfig.js +108 -4
  68. package/src/filterBuilder.js +6 -6
  69. package/src/index.d.ts +67 -9
  70. package/src/index.js +67 -9
  71. package/src/{services → lib}/lastUpdated.js +17 -1
  72. package/src/services/content-org/playlists-types.js +37 -0
  73. package/src/services/content-org/playlists.js +122 -0
  74. package/src/services/content.js +371 -0
  75. package/src/services/contentLikes.js +0 -0
  76. package/src/services/contentProgress.js +0 -0
  77. package/src/services/forum.js +57 -0
  78. package/src/services/railcontent.js +122 -122
  79. package/src/services/recommendations.js +19 -0
  80. package/src/services/sanity.js +278 -104
  81. package/src/services/{userPermissions.js → user/permissions.js} +16 -2
  82. package/src/services/user/sessions.js +67 -0
  83. package/src/services/user/types.js +116 -0
  84. package/src/services/userActivity.js +32 -0
  85. package/test/content.test.js +116 -0
  86. package/test/contentProgress.test.js +83 -5
  87. package/test/forum.test.js +18 -0
  88. package/test/initializeTests.js +6 -1
  89. package/test/{lastUpdated.test.js → lib/lastUpdated.test.js} +2 -5
  90. package/test/live/contentProgressLive.test.js +0 -0
  91. package/test/live/railcontentLive.test.js +0 -0
  92. package/test/localStorageMock.js +0 -0
  93. package/test/log.js +0 -0
  94. package/test/sanityQueryService.test.js +66 -18
  95. package/test/{userPermissions.test.js → user/permissions.test.js} +3 -3
  96. package/tools/generate-index.cjs +16 -3
@@ -0,0 +1,976 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+
5
+ <meta charset="utf-8">
6
+ <title>Content-Organization - Documentation</title>
7
+
8
+
9
+ <script src="scripts/prettify/prettify.js"></script>
10
+ <script src="scripts/prettify/lang-css.js"></script>
11
+ <!--[if lt IE 9]>
12
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
13
+ <![endif]-->
14
+ <link type="text/css" rel="stylesheet" href="styles/prettify.css">
15
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
16
+ <script src="scripts/nav.js" defer></script>
17
+
18
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
19
+ </head>
20
+ <body>
21
+
22
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
23
+ <label for="nav-trigger" class="navicon-button x">
24
+ <div class="navicon"></div>
25
+ </label>
26
+
27
+ <label for="nav-trigger" class="overlay"></label>
28
+
29
+ <nav >
30
+
31
+
32
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><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-Organization.html">Content-Organization</a><ul class='methods'><li data-type='method'><a href="module-Content-Organization.html#.addItemToPlaylist">addItemToPlaylist</a></li><li data-type='method'><a href="module-Content-Organization.html#.createPlaylist">createPlaylist</a></li><li data-type='method'><a href="module-Content-Organization.html#.fetchUserPlaylists">fetchUserPlaylists</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-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#.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#.postChallengesCompleteLesson">postChallengesCompleteLesson</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#.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#.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#.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#~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-Session-Management.html">Session-Management</a><ul class='methods'><li data-type='method'><a href="module-Session-Management.html#.login">login</a></li><li data-type='method'><a href="module-Session-Management.html#.logout">logout</a></li></ul></li><li><a href="module-User-Permissions.html">User-Permissions</a><ul class='methods'><li data-type='method'><a href="module-User-Permissions.html#.fetchUserPermissions">fetchUserPermissions</a></li><li data-type='method'><a href="module-User-Permissions.html#.reset">reset</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="module-Content-Organization-Playlists.html">Playlists</a></li></ul><h3><a href="global.html">Global</a></h3>
33
+
34
+ </nav>
35
+
36
+ <div id="main">
37
+
38
+ <h1 class="page-title">Content-Organization</h1>
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+ <section>
47
+
48
+ <header>
49
+
50
+
51
+
52
+ </header>
53
+
54
+ <article>
55
+
56
+ <div class="container-overview">
57
+
58
+
59
+
60
+
61
+
62
+ </div>
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+ <h3 class="subsection-title">Namespaces</h3>
77
+
78
+ <dl>
79
+ <dt><a href="module-Content-Organization-Playlists.html">Playlists</a></dt>
80
+ <dd></dd>
81
+ </dl>
82
+
83
+
84
+
85
+ <h3 class="subsection-title">Members</h3>
86
+
87
+
88
+
89
+ <h4 class="name" id="~excludeFromGeneratedIndex"><span class="type-signature type-signature-inner, constant">(inner, constant) </span>excludeFromGeneratedIndex<span class="type-signature"> :Array.&lt;string></span></h4>
90
+
91
+
92
+
93
+
94
+
95
+ <dl class="details">
96
+
97
+ <dt class="tag-description">Description:</dt>
98
+ <dd class="tag-description"><ul class="dummy"><li>Exported functions that are excluded from index generation.</li></ul></dd>
99
+
100
+
101
+
102
+ <dt class="tag-source">Source:</dt>
103
+ <dd class="tag-source"><ul class="dummy"><li>
104
+ <a href="content-org_playlists.js.html">content-org/playlists.js</a>, <a href="content-org_playlists.js.html#line16">line 16</a>
105
+ </li></ul></dd>
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
+
137
+ </dl>
138
+
139
+
140
+
141
+
142
+
143
+ <div class="description usertext">
144
+ Exported functions that are excluded from index generation.
145
+ </div>
146
+
147
+
148
+
149
+ <h5 class="h5-types">Type:</h5>
150
+ <ul>
151
+ <li>
152
+
153
+ <span class="param-type">Array.&lt;string></span>
154
+
155
+
156
+
157
+ </li>
158
+ </ul>
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+ <h3 class="subsection-title">Methods</h3>
170
+
171
+
172
+
173
+
174
+
175
+
176
+ <h4 class="name" id=".addItemToPlaylist"><span class="type-signature type-signature-static">(static) </span>addItemToPlaylist<span class="signature">(payload)</span><span class="type-signature"> &rarr; {Promise.&lt;(Object|null)>}</span></h4>
177
+
178
+
179
+
180
+
181
+
182
+
183
+ <dl class="details">
184
+
185
+ <dt class="tag-description">Description:</dt>
186
+ <dd class="tag-description"><ul class="dummy"><li>Adds an item to one or more playlists by making a POST request to the `/playlists/add-item` endpoint.</li></ul></dd>
187
+
188
+
189
+
190
+ <dt class="tag-source">Source:</dt>
191
+ <dd class="tag-source"><ul class="dummy"><li>
192
+ <a href="content-org_playlists.js.html">content-org/playlists.js</a>, <a href="content-org_playlists.js.html#line118">line 118</a>
193
+ </li></ul></dd>
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ </dl>
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+ <h5 class="h5-examples">Example</h5>
238
+
239
+ <pre class="prettyprint"><code>const payload = {
240
+ content_id: 123,
241
+ playlist_id: [1, 2, 3],
242
+ import_all_assignments: true
243
+ };
244
+
245
+ addItemToPlaylist(payload)
246
+ .then(response => {
247
+ if (response?.success) {
248
+ console.log("Item(s) added to playlist successfully");
249
+ }
250
+ if (response?.limit_excedeed) {
251
+ console.warn("Some playlists exceeded the item limit:", response.limit_excedeed);
252
+ }
253
+ })
254
+ .catch(error => {
255
+ console.error("Error adding item to playlist:", error);
256
+ });</code></pre>
257
+
258
+
259
+
260
+
261
+ <h5 class="h5-parameters">Parameters:</h5>
262
+
263
+
264
+ <table class="params">
265
+ <thead>
266
+ <tr>
267
+
268
+ <th>Name</th>
269
+
270
+
271
+ <th>Type</th>
272
+
273
+
274
+
275
+
276
+
277
+ <th class="last">Description</th>
278
+ </tr>
279
+ </thead>
280
+
281
+ <tbody>
282
+
283
+
284
+ <tr>
285
+
286
+ <td class="name"><code>payload</code></td>
287
+
288
+
289
+ <td class="type">
290
+
291
+
292
+ <span class="param-type"><a href="global.html#AddItemToPlaylistDTO">AddItemToPlaylistDTO</a></span>
293
+
294
+
295
+
296
+
297
+ </td>
298
+
299
+
300
+
301
+
302
+
303
+ <td class="description last">The request payload containing necessary parameters.</td>
304
+ </tr>
305
+
306
+
307
+ </tbody>
308
+ </table>
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+ <h5 class="h5-throws">Throws:</h5>
324
+
325
+
326
+
327
+ <dl>
328
+ <dt>
329
+ <div class="param-desc usertext">
330
+ - Throws an error if the request encounters issues during the operation.
331
+ </div>
332
+ </dt>
333
+ <dd></dd>
334
+ <dt>
335
+ <dl class="param-type">
336
+ <dt>
337
+ Type
338
+ </dt>
339
+ <dd>
340
+
341
+ <span class="param-type">Error</span>
342
+
343
+
344
+
345
+ </dd>
346
+ </dl>
347
+ </dt>
348
+ <dd></dd>
349
+ </dl>
350
+
351
+
352
+
353
+
354
+
355
+ <h5 class="h5-returns">Returns:</h5>
356
+
357
+
358
+ <div class="param-desc">
359
+ - A promise that resolves to an object with the response data, including:
360
+ - `success` (boolean): Indicates if the items were added successfully (`true` on success).
361
+ - `limit_excedeed` (Array): A list of playlists where the item limit was exceeded, if any.
362
+ - `successful` (Array): A list of successfully added items (empty if none).
363
+
364
+ Resolves to `null` if the request fails.
365
+ </div>
366
+
367
+
368
+
369
+ <dl class="param-type">
370
+ <dt>
371
+ Type
372
+ </dt>
373
+ <dd>
374
+
375
+ <span class="param-type">Promise.&lt;(Object|null)></span>
376
+
377
+
378
+
379
+ </dd>
380
+ </dl>
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+ <h4 class="name" id=".createPlaylist"><span class="type-signature type-signature-static">(static) </span>createPlaylist<span class="signature">(playlistData)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="global.html#Playlist">Playlist</a>>}</span></h4>
392
+
393
+
394
+
395
+
396
+
397
+
398
+ <dl class="details">
399
+
400
+ <dt class="tag-description">Description:</dt>
401
+ <dd class="tag-description"><ul class="dummy"><li>Creates a new user playlist by sending a POST request with playlist data to the API.
402
+
403
+ This function calls the `/playlists/playlist` endpoint, where the server validates the incoming data and associates
404
+ the new playlist with the authenticated user. The `name` field is required, while other fields are optional.</li></ul></dd>
405
+
406
+
407
+
408
+ <dt class="tag-source">Source:</dt>
409
+ <dd class="tag-source"><ul class="dummy"><li>
410
+ <a href="content-org_playlists.js.html">content-org/playlists.js</a>, <a href="content-org_playlists.js.html#line80">line 80</a>
411
+ </li></ul></dd>
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+ </dl>
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+ <h5 class="h5-examples">Example</h5>
456
+
457
+ <pre class="prettyprint"><code>createPlaylist({ name: "My Playlist", description: "A cool playlist", private: true })
458
+ .then(response => console.log(response.message))
459
+ .catch(error => console.error('Error creating playlist:', error));</code></pre>
460
+
461
+
462
+
463
+
464
+ <h5 class="h5-parameters">Parameters:</h5>
465
+
466
+
467
+ <table class="params">
468
+ <thead>
469
+ <tr>
470
+
471
+ <th>Name</th>
472
+
473
+
474
+ <th>Type</th>
475
+
476
+
477
+
478
+
479
+
480
+ <th class="last">Description</th>
481
+ </tr>
482
+ </thead>
483
+
484
+ <tbody>
485
+
486
+
487
+ <tr>
488
+
489
+ <td class="name"><code>playlistData</code></td>
490
+
491
+
492
+ <td class="type">
493
+
494
+
495
+ <span class="param-type"><a href="global.html#CreatePlaylistDTO">CreatePlaylistDTO</a></span>
496
+
497
+
498
+
499
+
500
+ </td>
501
+
502
+
503
+
504
+
505
+
506
+ <td class="description last">An object containing data to create the playlist. The fields include:
507
+ - `name` (string): The name of the new playlist (required, max 255 characters).
508
+ - `description` (string): A description of the playlist (optional, max 1000 characters).
509
+ - `category` (string): The category of the playlist.
510
+ - `thumbnail_url` (string): The URL of the playlist thumbnail (optional, must be a valid URL).
511
+ - `private` (boolean): Whether the playlist is private (optional, defaults to true).
512
+ - `brand` (string): Brand identifier for the playlist.</td>
513
+ </tr>
514
+
515
+
516
+ </tbody>
517
+ </table>
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+ <h5 class="h5-returns">Returns:</h5>
535
+
536
+
537
+ <div class="param-desc">
538
+ - A promise that resolves to the created playlist data if successful, or an error response if validation fails.
539
+
540
+ The server response includes:
541
+ - `message`: Success message indicating playlist creation (e.g., "Playlist created successfully").
542
+ - `playlist`: The data for the created playlist, including the `user_id` of the authenticated user.
543
+ </div>
544
+
545
+
546
+
547
+ <dl class="param-type">
548
+ <dt>
549
+ Type
550
+ </dt>
551
+ <dd>
552
+
553
+ <span class="param-type">Promise.&lt;<a href="global.html#Playlist">Playlist</a>></span>
554
+
555
+
556
+
557
+ </dd>
558
+ </dl>
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+ <h4 class="name" id=".fetchUserPlaylists"><span class="type-signature type-signature-static">(static) </span>fetchUserPlaylists<span class="signature">(brand)</span><span class="type-signature"> &rarr; {Promise.&lt;(Object|null)>}</span></h4>
570
+
571
+
572
+
573
+
574
+
575
+
576
+ <dl class="details">
577
+
578
+ <dt class="tag-description">Description:</dt>
579
+ <dd class="tag-description"><ul class="dummy"><li>Fetches user playlists for a specific brand.
580
+
581
+ Allows optional pagination, sorting, and search parameters to control the result set.</li></ul></dd>
582
+
583
+
584
+
585
+ <dt class="tag-source">Source:</dt>
586
+ <dd class="tag-source"><ul class="dummy"><li>
587
+ <a href="content-org_playlists.js.html">content-org/playlists.js</a>, <a href="content-org_playlists.js.html#line39">line 39</a>
588
+ </li></ul></dd>
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+ </dl>
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+ <h5 class="h5-examples">Example</h5>
633
+
634
+ <pre class="prettyprint"><code>fetchUserPlaylists('drumeo', { page: 1, sort: 'name', searchTerm: 'rock' })
635
+ .then(playlists => console.log(playlists))
636
+ .catch(error => console.error(error));</code></pre>
637
+
638
+
639
+
640
+
641
+ <h5 class="h5-parameters">Parameters:</h5>
642
+
643
+
644
+ <table class="params">
645
+ <thead>
646
+ <tr>
647
+
648
+ <th>Name</th>
649
+
650
+
651
+ <th>Type</th>
652
+
653
+
654
+ <th>Attributes</th>
655
+
656
+
657
+
658
+ <th>Default</th>
659
+
660
+
661
+ <th class="last">Description</th>
662
+ </tr>
663
+ </thead>
664
+
665
+ <tbody>
666
+
667
+
668
+ <tr>
669
+
670
+ <td class="name"><code>brand</code></td>
671
+
672
+
673
+ <td class="type">
674
+
675
+
676
+ <span class="param-type">string</span>
677
+
678
+
679
+
680
+
681
+ </td>
682
+
683
+
684
+ <td class="attributes">
685
+
686
+
687
+
688
+
689
+
690
+ </td>
691
+
692
+
693
+
694
+ <td class="default">
695
+
696
+ </td>
697
+
698
+
699
+ <td class="description last">The brand identifier for which playlists are being fetched.</td>
700
+ </tr>
701
+
702
+
703
+
704
+ <tr>
705
+
706
+ <td class="name"><code>params.limit</code></td>
707
+
708
+
709
+ <td class="type">
710
+
711
+
712
+ <span class="param-type">number</span>
713
+
714
+
715
+
716
+
717
+ </td>
718
+
719
+
720
+ <td class="attributes">
721
+
722
+ &lt;optional><br>
723
+
724
+
725
+
726
+
727
+
728
+ </td>
729
+
730
+
731
+
732
+ <td class="default">
733
+
734
+ <code>10</code>
735
+
736
+ </td>
737
+
738
+
739
+ <td class="description last">The maximum number of playlists to return per page (default is 10).</td>
740
+ </tr>
741
+
742
+
743
+
744
+ <tr>
745
+
746
+ <td class="name"><code>params.page</code></td>
747
+
748
+
749
+ <td class="type">
750
+
751
+
752
+ <span class="param-type">number</span>
753
+
754
+
755
+
756
+
757
+ </td>
758
+
759
+
760
+ <td class="attributes">
761
+
762
+ &lt;optional><br>
763
+
764
+
765
+
766
+
767
+
768
+ </td>
769
+
770
+
771
+
772
+ <td class="default">
773
+
774
+ <code>1</code>
775
+
776
+ </td>
777
+
778
+
779
+ <td class="description last">The page number for pagination.</td>
780
+ </tr>
781
+
782
+
783
+
784
+ <tr>
785
+
786
+ <td class="name"><code>params.sort</code></td>
787
+
788
+
789
+ <td class="type">
790
+
791
+
792
+ <span class="param-type">string</span>
793
+
794
+
795
+
796
+
797
+ </td>
798
+
799
+
800
+ <td class="attributes">
801
+
802
+ &lt;optional><br>
803
+
804
+
805
+
806
+
807
+
808
+ </td>
809
+
810
+
811
+
812
+ <td class="default">
813
+
814
+ <code>'-created_at'</code>
815
+
816
+ </td>
817
+
818
+
819
+ <td class="description last">The sorting order for the playlists (default is by created_at in descending order).</td>
820
+ </tr>
821
+
822
+
823
+
824
+ <tr>
825
+
826
+ <td class="name"><code>params.searchTerm</code></td>
827
+
828
+
829
+ <td class="type">
830
+
831
+
832
+ <span class="param-type">string</span>
833
+
834
+
835
+
836
+
837
+ </td>
838
+
839
+
840
+ <td class="attributes">
841
+
842
+ &lt;optional><br>
843
+
844
+
845
+
846
+
847
+
848
+ </td>
849
+
850
+
851
+
852
+ <td class="default">
853
+
854
+ </td>
855
+
856
+
857
+ <td class="description last">A search term to filter playlists by name.</td>
858
+ </tr>
859
+
860
+
861
+
862
+ <tr>
863
+
864
+ <td class="name"><code>params.content_id</code></td>
865
+
866
+
867
+ <td class="type">
868
+
869
+
870
+ <span class="param-type">int</span>
871
+ |
872
+
873
+ <span class="param-type">string</span>
874
+
875
+
876
+
877
+
878
+ </td>
879
+
880
+
881
+ <td class="attributes">
882
+
883
+ &lt;optional><br>
884
+
885
+
886
+
887
+
888
+
889
+ </td>
890
+
891
+
892
+
893
+ <td class="default">
894
+
895
+ </td>
896
+
897
+
898
+ <td class="description last">If content_id exists, the endpoint checks in each playlist if we have the content in the items.</td>
899
+ </tr>
900
+
901
+
902
+ </tbody>
903
+ </table>
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+ <h5 class="h5-returns">Returns:</h5>
921
+
922
+
923
+ <div class="param-desc">
924
+ - A promise that resolves to the response from the API, containing the user playlists data.
925
+ </div>
926
+
927
+
928
+
929
+ <dl class="param-type">
930
+ <dt>
931
+ Type
932
+ </dt>
933
+ <dd>
934
+
935
+ <span class="param-type">Promise.&lt;(Object|null)></span>
936
+
937
+
938
+
939
+ </dd>
940
+ </dl>
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+ </article>
953
+
954
+ </section>
955
+
956
+
957
+
958
+
959
+
960
+
961
+ </div>
962
+
963
+ <br class="clear">
964
+
965
+ <footer>
966
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Thu Mar 20 2025 21:59:08 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
967
+ </footer>
968
+
969
+ <script>prettyPrint();</script>
970
+ <script src="scripts/polyfill.js"></script>
971
+ <script src="scripts/linenumber.js"></script>
972
+
973
+
974
+
975
+ </body>
976
+ </html>