musora-content-services 1.0.69 → 1.0.71

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.0.71](https://github.com/railroadmedia/musora-content-services/compare/v1.0.70...v1.0.71) (2024-08-28)
6
+
7
+ ### [1.0.70](https://github.com/railroadmedia/musora-content-services/compare/v1.0.69...v1.0.70) (2024-08-27)
8
+
5
9
  ### [1.0.69](https://github.com/railroadmedia/musora-content-services/compare/v1.0.68...v1.0.69) (2024-08-27)
6
10
 
7
11
  ### [1.0.68](https://github.com/railroadmedia/musora-content-services/compare/v1.0.67...v1.0.68) (2024-08-27)
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -111,7 +111,7 @@ module.exports = {
111
111
  <br class="clear">
112
112
 
113
113
  <footer>
114
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
114
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
115
115
  </footer>
116
116
 
117
117
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -111,7 +111,7 @@ You may need to install jest (npm install --save-dev jest)</p>
111
111
  <br class="clear">
112
112
 
113
113
  <footer>
114
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
114
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
115
115
  </footer>
116
116
 
117
117
  <script>prettyPrint();</script>
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -656,7 +656,7 @@ initializeService({
656
656
  <br class="clear">
657
657
 
658
658
  <footer>
659
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
659
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
660
660
  </footer>
661
661
 
662
662
  <script>prettyPrint();</script>
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -783,7 +783,7 @@
783
783
  <br class="clear">
784
784
 
785
785
  <footer>
786
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
786
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
787
787
  </footer>
788
788
 
789
789
  <script>prettyPrint();</script>
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -593,7 +593,7 @@ The filter options are dynamically generated based on the provided filters, styl
593
593
 
594
594
  <dt class="tag-source">Source:</dt>
595
595
  <dd class="tag-source"><ul class="dummy"><li>
596
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line517">line 517</a>
596
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line519">line 519</a>
597
597
  </li></ul></dd>
598
598
 
599
599
 
@@ -1941,7 +1941,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
1941
1941
 
1942
1942
  <dt class="tag-source">Source:</dt>
1943
1943
  <dd class="tag-source"><ul class="dummy"><li>
1944
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line921">line 921</a>
1944
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line937">line 937</a>
1945
1945
  </li></ul></dd>
1946
1946
 
1947
1947
 
@@ -2090,7 +2090,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2090
2090
 
2091
2091
 
2092
2092
 
2093
- <h4 class="name" id=".fetchChildren"><span class="type-signature type-signature-static">(static) </span>fetchChildren<span class="signature">(railcontentId)</span><span class="type-signature"> &rarr; {Promise.&lt;(Array.&lt;Object>|null)>}</span></h4>
2093
+ <h4 class="name" id=".fetchChildren"><span class="type-signature type-signature-static">(static) </span>fetchChildren<span class="signature">(railcontentId, contentType<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;(Array.&lt;Object>|null)>}</span></h4>
2094
2094
 
2095
2095
 
2096
2096
 
@@ -2106,7 +2106,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2106
2106
 
2107
2107
  <dt class="tag-source">Source:</dt>
2108
2108
  <dd class="tag-source"><ul class="dummy"><li>
2109
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line567">line 567</a>
2109
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line570">line 570</a>
2110
2110
  </li></ul></dd>
2111
2111
 
2112
2112
 
@@ -2166,6 +2166,8 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2166
2166
  <th>Type</th>
2167
2167
 
2168
2168
 
2169
+ <th>Attributes</th>
2170
+
2169
2171
 
2170
2172
 
2171
2173
 
@@ -2192,6 +2194,14 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2192
2194
  </td>
2193
2195
 
2194
2196
 
2197
+ <td class="attributes">
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+ </td>
2204
+
2195
2205
 
2196
2206
 
2197
2207
 
@@ -2199,6 +2209,40 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2199
2209
  </tr>
2200
2210
 
2201
2211
 
2212
+
2213
+ <tr>
2214
+
2215
+ <td class="name"><code>contentType</code></td>
2216
+
2217
+
2218
+ <td class="type">
2219
+
2220
+
2221
+ <span class="param-type">string</span>
2222
+
2223
+
2224
+
2225
+
2226
+ </td>
2227
+
2228
+
2229
+ <td class="attributes">
2230
+
2231
+ &lt;optional><br>
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+ </td>
2238
+
2239
+
2240
+
2241
+
2242
+ <td class="description last">The content type the IDs to add needed fields to the response.</td>
2243
+ </tr>
2244
+
2245
+
2202
2246
  </tbody>
2203
2247
  </table>
2204
2248
 
@@ -2264,7 +2308,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2264
2308
 
2265
2309
  <dt class="tag-source">Source:</dt>
2266
2310
  <dd class="tag-source"><ul class="dummy"><li>
2267
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line829">line 829</a>
2311
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line845">line 845</a>
2268
2312
  </li></ul></dd>
2269
2313
 
2270
2314
 
@@ -2429,7 +2473,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2429
2473
 
2430
2474
  <dt class="tag-source">Source:</dt>
2431
2475
  <dd class="tag-source"><ul class="dummy"><li>
2432
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line742">line 742</a>
2476
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line758">line 758</a>
2433
2477
  </li></ul></dd>
2434
2478
 
2435
2479
 
@@ -2594,7 +2638,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2594
2638
 
2595
2639
  <dt class="tag-source">Source:</dt>
2596
2640
  <dd class="tag-source"><ul class="dummy"><li>
2597
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line615">line 615</a>
2641
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line618">line 618</a>
2598
2642
  </li></ul></dd>
2599
2643
 
2600
2644
 
@@ -2760,6 +2804,164 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2760
2804
 
2761
2805
 
2762
2806
 
2807
+ <h4 class="name" id=".fetchMethodChildren"><span class="type-signature type-signature-static">(static) </span>fetchMethodChildren<span class="signature">(railcontentId)</span><span class="type-signature"> &rarr; {Promise.&lt;(Object|null)>}</span></h4>
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+ <dl class="details">
2815
+
2816
+ <dt class="tag-description">Description:</dt>
2817
+ <dd class="tag-description"><ul class="dummy"><li>Fetch the child courses for a specific method by Railcontent ID.</li></ul></dd>
2818
+
2819
+
2820
+
2821
+ <dt class="tag-source">Source:</dt>
2822
+ <dd class="tag-source"><ul class="dummy"><li>
2823
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line652">line 652</a>
2824
+ </li></ul></dd>
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+
2856
+ </dl>
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+ <h5 class="h5-parameters">Parameters:</h5>
2871
+
2872
+
2873
+ <table class="params">
2874
+ <thead>
2875
+ <tr>
2876
+
2877
+ <th>Name</th>
2878
+
2879
+
2880
+ <th>Type</th>
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+ <th class="last">Description</th>
2887
+ </tr>
2888
+ </thead>
2889
+
2890
+ <tbody>
2891
+
2892
+
2893
+ <tr>
2894
+
2895
+ <td class="name"><code>railcontentId</code></td>
2896
+
2897
+
2898
+ <td class="type">
2899
+
2900
+
2901
+ <span class="param-type">string</span>
2902
+
2903
+
2904
+
2905
+
2906
+ </td>
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+ <td class="description last">The Railcontent ID of the current lesson.</td>
2913
+ </tr>
2914
+
2915
+
2916
+ </tbody>
2917
+ </table>
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+ <h5 class="h5-returns">Returns:</h5>
2935
+
2936
+
2937
+ <div class="param-desc">
2938
+ - The fetched next lesson data or null if not found.
2939
+ </div>
2940
+
2941
+
2942
+
2943
+ <dl class="param-type">
2944
+ <dt>
2945
+ Type
2946
+ </dt>
2947
+ <dd>
2948
+
2949
+ <span class="param-type">Promise.&lt;(Object|null)></span>
2950
+
2951
+
2952
+
2953
+ </dd>
2954
+ </dl>
2955
+
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2763
2965
  <h4 class="name" id=".fetchMethodChildrenIds"><span class="type-signature type-signature-static">(static) </span>fetchMethodChildrenIds<span class="signature">(railcontentId)</span><span class="type-signature"> &rarr; {Promise.&lt;(Array.&lt;Object>|null)>}</span></h4>
2764
2966
 
2765
2967
 
@@ -2776,7 +2978,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2776
2978
 
2777
2979
  <dt class="tag-source">Source:</dt>
2778
2980
  <dd class="tag-source"><ul class="dummy"><li>
2779
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line680">line 680</a>
2981
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line696">line 696</a>
2780
2982
  </li></ul></dd>
2781
2983
 
2782
2984
 
@@ -2934,7 +3136,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
2934
3136
 
2935
3137
  <dt class="tag-source">Source:</dt>
2936
3138
  <dd class="tag-source"><ul class="dummy"><li>
2937
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line646">line 646</a>
3139
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line662">line 662</a>
2938
3140
  </li></ul></dd>
2939
3141
 
2940
3142
 
@@ -3116,7 +3318,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
3116
3318
 
3117
3319
  <dt class="tag-source">Source:</dt>
3118
3320
  <dd class="tag-source"><ul class="dummy"><li>
3119
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line664">line 664</a>
3321
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line680">line 680</a>
3120
3322
  </li></ul></dd>
3121
3323
 
3122
3324
 
@@ -3305,7 +3507,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
3305
3507
 
3306
3508
  <dt class="tag-source">Source:</dt>
3307
3509
  <dd class="tag-source"><ul class="dummy"><li>
3308
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line599">line 599</a>
3510
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line602">line 602</a>
3309
3511
  </li></ul></dd>
3310
3512
 
3311
3513
 
@@ -3621,7 +3823,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
3621
3823
 
3622
3824
  <dt class="tag-source">Source:</dt>
3623
3825
  <dd class="tag-source"><ul class="dummy"><li>
3624
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line716">line 716</a>
3826
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line732">line 732</a>
3625
3827
  </li></ul></dd>
3626
3828
 
3627
3829
 
@@ -3779,7 +3981,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
3779
3981
 
3780
3982
  <dt class="tag-source">Source:</dt>
3781
3983
  <dd class="tag-source"><ul class="dummy"><li>
3782
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line789">line 789</a>
3984
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line805">line 805</a>
3783
3985
  </li></ul></dd>
3784
3986
 
3785
3987
 
@@ -3937,7 +4139,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
3937
4139
 
3938
4140
  <dt class="tag-source">Source:</dt>
3939
4141
  <dd class="tag-source"><ul class="dummy"><li>
3940
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line815">line 815</a>
4142
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line831">line 831</a>
3941
4143
  </li></ul></dd>
3942
4144
 
3943
4145
 
@@ -4099,7 +4301,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
4099
4301
 
4100
4302
  <dt class="tag-source">Source:</dt>
4101
4303
  <dd class="tag-source"><ul class="dummy"><li>
4102
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line582">line 582</a>
4304
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line585">line 585</a>
4103
4305
  </li></ul></dd>
4104
4306
 
4105
4307
 
@@ -4251,7 +4453,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
4251
4453
 
4252
4454
  <dt class="tag-source">Source:</dt>
4253
4455
  <dd class="tag-source"><ul class="dummy"><li>
4254
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line768">line 768</a>
4456
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line784">line 784</a>
4255
4457
  </li></ul></dd>
4256
4458
 
4257
4459
 
@@ -4622,7 +4824,7 @@ It's an ongoing discussion (Aug 2024), but it's been included here if necessary<
4622
4824
 
4623
4825
  <dt class="tag-source">Source:</dt>
4624
4826
  <dd class="tag-source"><ul class="dummy"><li>
4625
- <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line870">line 870</a>
4827
+ <a href="sanity.js.html">sanity.js</a>, <a href="sanity.js.html#line886">line 886</a>
4626
4828
  </li></ul></dd>
4627
4829
 
4628
4830
 
@@ -5789,7 +5991,7 @@ It also includes completion status and progress percentage for each workout by f
5789
5991
  <br class="clear">
5790
5992
 
5791
5993
  <footer>
5792
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
5994
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
5793
5995
  </footer>
5794
5996
 
5795
5997
  <script>prettyPrint();</script>
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -201,7 +201,7 @@ export async function fetchContentInProgress(type="all", brand) {
201
201
  <br class="clear">
202
202
 
203
203
  <footer>
204
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
204
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
205
205
  </footer>
206
206
 
207
207
  <script>prettyPrint();</script>
@@ -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-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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.fetchMethod">fetchMethod</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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
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-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</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#.fetchCurrentSongComplete">fetchCurrentSongComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</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#.fetchAllSongs">fetchAllSongs</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#.fetchCatalogMetadata">fetchCatalogMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchChildren">fetchChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCourseOverview">fetchCourseOverview</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#.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#.fetchMethodNextLesson">fetchMethodNextLesson</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#.fetchMethods">fetchMethods</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#.fetchPackChildren">fetchPackChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchParentByRailContentId">fetchParentByRailContentId</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#.fetchSanity">fetchSanity</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#.fetchSongCount">fetchSongCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongFilterOptions">fetchSongFilterOptions</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#.fetchWorkouts">fetchWorkouts</a></li></ul></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -283,12 +283,12 @@ export async function fetchWorkouts(brand) {
283
283
  "id": railcontent_id,
284
284
  title,
285
285
  "image": thumbnail.asset->url,
286
- ${artistOrInstructor()},
287
- ${artistOrInstructorAsArray()},
286
+ "artist_name": instructor[0]->name,
287
+ "artists": instructor[]->name,
288
288
  difficulty,
289
289
  difficulty_string,
290
290
  length_in_seconds,
291
- published_on,;
291
+ published_on,
292
292
  "type": _type,
293
293
  web_url_path,
294
294
  } | order(published_on desc)[0...5]`
@@ -444,7 +444,9 @@ export async function fetchAll(brand, type, {
444
444
 
445
445
  // Construct the search filter
446
446
  const searchFilter = searchTerm
447
- ? `&amp;&amp; (artist->name match "${searchTerm}*" || title match "${searchTerm}*")`
447
+ ? groupBy !== "" ?
448
+ `&amp;&amp; (^.name match "${searchTerm}*" || title match "${searchTerm}*")`
449
+ : `&amp;&amp; (artist->name match "${searchTerm}*" || instructor[]->name match "${searchTerm}*" || title match "${searchTerm}*")`
448
450
  : "";
449
451
 
450
452
  // Construct the included fields filter, replacing 'difficulty' with 'difficulty_string'
@@ -469,15 +471,15 @@ export async function fetchAll(brand, type, {
469
471
  if (groupBy !== "" &amp;&amp; isGroupByOneToOne) {
470
472
  query = `
471
473
  {
472
- "total": count(*[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ]._id) > 0]),
473
- "entity": *[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ]._id) > 0]
474
+ "total": count(*[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ${searchFilter} ${includedFieldsFilter}]._id) > 0]),
475
+ "entity": *[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ${searchFilter} ${includedFieldsFilter}]._id) > 0]
474
476
  {
475
477
  'id': _id,
476
478
  'type': _type,
477
479
  name,
478
480
  'head_shot_picture_url': thumbnail_url.asset->url,
479
- 'all_lessons_count': count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ]._id),
480
- 'lessons': *[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ]{
481
+ 'all_lessons_count': count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ${searchFilter} ${includedFieldsFilter}]._id),
482
+ 'lessons': *[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id == ${groupBy}._ref ${searchFilter} ${includedFieldsFilter}]{
481
483
  ${fieldsString},
482
484
  ${groupBy}
483
485
  }[0...10]
@@ -488,15 +490,15 @@ export async function fetchAll(brand, type, {
488
490
  } else if (groupBy !== "") {
489
491
  query = `
490
492
  {
491
- "total": count(*[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref]._id)>0]),
492
- "entity": *[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref]._id) > 0]
493
+ "total": count(*[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ${searchFilter} ${includedFieldsFilter}]._id) > 0]),
494
+ "entity": *[_type == '${groupBy}' &amp;&amp; count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ${searchFilter} ${includedFieldsFilter}]._id) > 0]
493
495
  {
494
496
  'id': _id,
495
497
  'type': _type,
496
498
  name,
497
499
  'head_shot_picture_url': thumbnail_url.asset->url,
498
- 'all_lessons_count': count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ]._id),
499
- 'lessons': *[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ]{
500
+ 'all_lessons_count': count(*[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ${searchFilter} ${includedFieldsFilter}]._id),
501
+ 'lessons': *[_type == '${type}' &amp;&amp; brand == '${brand}' &amp;&amp; ^._id in ${groupBy}[]._ref ${searchFilter} ${includedFieldsFilter}]{
500
502
  ${fieldsString},
501
503
  ${groupBy}
502
504
  }[0...10]
@@ -609,12 +611,13 @@ export async function fetchAllFilterOptions(
609
611
  /**
610
612
  * Fetch children content by Railcontent ID.
611
613
  * @param {string} railcontentId - The Railcontent ID of the parent content.
614
+ * @param {string} [contentType] - The content type the IDs to add needed fields to the response.
612
615
  * @returns {Promise&lt;Array&lt;Object>|null>} - The fetched children content data or [] if not found.
613
616
  */
614
- export async function fetchChildren(railcontentId) {
617
+ export async function fetchChildren(railcontentId, contentType) {
615
618
  const query = `*[railcontent_id == ${railcontentId}]{
616
619
  'children': child[]->{
617
- ${getFieldsForContentType()}
620
+ ${getFieldsForContentType(contentType)}
618
621
  },
619
622
  }[0..1]`;
620
623
  let parent = await fetchSanity(query, true);
@@ -647,8 +650,8 @@ export async function fetchMethods(brand) {
647
650
  //TODOS
648
651
  //ADD INSTRUCTORS AND POSITION
649
652
  const query = `*[_type == 'learning-path' &amp;&amp; brand == '${brand}'] {
650
- ${getFieldsForContentType('method')}
651
- "position": count(*[_type == 'learning-path' &amp;&amp; brand == '${brand}' &amp;&amp; (published_on &lt; ^.published_on || (published_on == ^.published_on &amp;&amp; _id &lt; ^._id))]) + 1,
653
+ ${ getFieldsForContentType() },
654
+ "position": count(*[_type == 'learning-path' &amp;&amp; brand == '${brand}' &amp;&amp; (published_on &lt; ^.published_on || (published_on == ^.published_on &amp;&amp; _id &lt; ^._id))]) + 1
652
655
  } | order(published_on asc)`
653
656
  return fetchSanity(query, true);
654
657
  }
@@ -675,15 +678,28 @@ export async function fetchMethod(brand, slug) {
675
678
  {
676
679
  "id": railcontent_id,
677
680
  published_on,
681
+ difficulty,
678
682
  "thumbnail_url": thumbnail.asset->url,
679
683
  "instructor": instructor[]->{name},
680
684
  title,
685
+ "type": _type,
681
686
  "description": description[0].children[0].text,
687
+ "url": web_url_path,
688
+ xp,
682
689
  }
683
690
  } | order(published_on asc)`
684
691
  return fetchSanity(query, false);
685
692
  }
686
693
 
694
+ /**
695
+ * Fetch the child courses for a specific method by Railcontent ID.
696
+ * @param {string} railcontentId - The Railcontent ID of the current lesson.
697
+ * @returns {Promise&lt;Object|null>} - The fetched next lesson data or null if not found.
698
+ */
699
+ export async function fetchMethodChildren(railcontentId) {
700
+ return fetchChildren(railcontentId, 'method');
701
+ }
702
+
687
703
  /**
688
704
  * Fetch the next lesson for a specific method by Railcontent ID.
689
705
  * @param {string} railcontentId - The Railcontent ID of the current lesson.
@@ -1024,7 +1040,7 @@ function checkSanityConfig(config) {
1024
1040
  <br class="clear">
1025
1041
 
1026
1042
  <footer>
1027
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Aug 26 2024 20:15:19 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1043
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Tue Aug 27 2024 20:09:43 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1028
1044
  </footer>
1029
1045
 
1030
1046
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "1.0.69",
3
+ "version": "1.0.71",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -62,7 +62,6 @@ let contentTypeConfig = {
62
62
  },
63
63
  'student-focus': {
64
64
  'fields': [
65
- 'length_in_seconds',
66
65
  '"instructors": instructor[]->name'
67
66
  ]
68
67
  },
@@ -86,9 +85,13 @@ let contentTypeConfig = {
86
85
  'xp',
87
86
  ]
88
87
  },
88
+ 'workout': {
89
+ 'fields': [
90
+ artistOrInstructorNameAsArray(),
91
+ ]
92
+ },
89
93
  'quick-tips': {
90
94
  'fields': [
91
- 'length_in_seconds',
92
95
  '"instructors": instructor[]->name'
93
96
  ]
94
97
  },
@@ -99,134 +102,112 @@ let contentTypeConfig = {
99
102
  },
100
103
  'drum-fest-international-aa2022': {
101
104
  'fields': [
102
- 'length_in_seconds',
103
105
  '"instructors": instructor[]->name'
104
106
  ]
105
107
  },
106
108
  'spotlight': {
107
109
  'fields': [
108
- 'length_in_seconds',
109
110
  '"instructors": instructor[]->name'
110
111
  ]
111
112
  },
112
113
  'the-history-of-electronic-drums': {
113
114
  'fields': [
114
- 'length_in_seconds',
115
115
  '"instructors": instructor[]->name'
116
116
  ]
117
117
  },
118
118
  'backstage-secrets': {
119
119
  'fields': [
120
- 'length_in_seconds',
121
120
  '"instructors": instructor[]->name'
122
121
  ]
123
122
  },
124
123
  'question-and-answer': {
125
124
  'fields': [
126
- 'length_in_seconds',
127
125
  '"instructors": instructor[]->name'
128
126
  ]
129
127
  },
130
128
  'student-collaborations': {
131
129
  'fields': [
132
- 'length_in_seconds',
133
130
  '"instructors": instructor[]->name'
134
131
  ]
135
132
  },
136
133
  'live': {
137
134
  'fields': [
138
- 'length_in_seconds',
139
135
  '"instructors": instructor[]->name'
140
136
  ]
141
137
  },
142
138
  'podcasts': {
143
139
  'fields': [
144
140
  'sort',
145
- 'length_in_seconds',
146
141
  ]
147
142
  },
148
143
  'solos': {
149
144
  'fields': [
150
- 'length_in_seconds',
151
145
  '"instructors": instructor[]->name'
152
146
  ]
153
147
  },
154
148
  'boot-camps': {
155
149
  'fields': [
156
- 'length_in_seconds',
157
150
  '"instructors": instructor[]->name'
158
151
  ]
159
152
  },
160
153
  'gear-guids': {
161
154
  'fields': [
162
- 'length_in_seconds',
163
155
  '"instructors": instructor[]->name'
164
156
  ]
165
157
  },
166
158
  'performances': {
167
159
  'fields': [
168
- 'length_in_seconds',
169
160
  '"instructors": instructor[]->name'
170
161
  ]
171
162
  },
172
163
  'in-rhythm': {
173
164
  'fields': [
174
165
  'sort',
175
- 'length_in_seconds',
176
166
  ]
177
167
  },
178
168
  'challenges': {
179
169
  'fields': [
180
- 'length_in_seconds',
181
170
  '"instructors": instructor[]->name'
182
171
  ]
183
172
  },
184
173
  'on-the-road': {
185
174
  'fields': [
186
- 'length_in_seconds',
187
175
  '"instructors": instructor[]->name'
188
176
  ]
189
177
  },
190
178
  'diy-drum-experiments': {
191
179
  'fields': [
192
180
  'sort',
193
- 'length_in_seconds',
194
181
  ]
195
182
  },
196
183
  'rhythmic-adventures-of-captain-carson': {
197
184
  'fields': [
198
185
  'sort',
199
- 'length_in_seconds',
200
186
  ]
201
187
  },
202
188
  'study-the-greats': {
203
189
  'fields': [
204
190
  'sort',
205
- 'length_in_seconds',
206
191
  ]
207
192
  },
208
193
  'rhythms-from-another-planet': {
209
194
  'fields': [
210
195
  'sort',
211
- 'length_in_seconds',
212
196
  ]
213
197
  },
214
198
  'paiste-cymbals': {
215
199
  'fields': [
216
- 'length_in_seconds',
217
200
  '"instructors": instructor[]->name'
218
201
  ]
219
202
  },
220
203
  'behind-the-scenes': {
221
204
  'fields': [
222
205
  'sort',
223
- 'length_in_seconds',
224
206
  ]
225
207
  },
226
208
  'exploring-beats': {
227
209
  'fields': [
228
210
  'sort',
229
- 'length_in_seconds',
230
211
  ]
231
212
  },
232
213
  'play-along': {
@@ -244,6 +225,7 @@ let contentTypeConfig = {
244
225
  '"lesson_count": child_count',
245
226
  'xp',
246
227
  `"description": ${descriptionField}`,
228
+ '"instructors": instructor[]->name'
247
229
  ],
248
230
  }
249
231
  }
@@ -261,12 +243,37 @@ function getFieldsForContentType(contentType, asQueryString=true) {
261
243
  const fields = contentType ? DEFAULT_FIELDS.concat(contentTypeConfig?.[contentType]?.fields ?? []) : DEFAULT_FIELDS;
262
244
  return asQueryString ? fields.toString() + ',' : fields;
263
245
  }
246
+ /**
247
+ * Takes the included fields array and returns a string that can be used in a groq query.
248
+ * @param {Array<string>} filters - An array of strings that represent applied filters. This should be in the format of a key,value array. eg. ['difficulty,Intermediate', 'genre,rock']
249
+ * @returns {string} - A string that can be used in a groq query
250
+ */
251
+ function filtersToGroq(filters) {
252
+ const groq = filters.map(field => {
253
+ let [key, value] = field.split(',');
254
+ switch (key) {
255
+ case 'difficulty':
256
+ return `&& difficulty_string == "${value}"`;
257
+ case 'genre':
258
+ return `&& genre[]->name match "${value}"`;
259
+ case 'topic':
260
+ return `&& topic[]->name match "${value}"`;
261
+ case 'instrumentless':
262
+ return `&& instrumentless == ${value}`;
263
+ default:
264
+ return `&& ${key} == "${value}"`;
265
+ }
266
+ }).join(' ');
267
+ return groq;
268
+ }
264
269
 
265
270
  module.exports = {
266
271
  contentTypeConfig,
272
+ descriptionField,
267
273
  artistOrInstructorName,
268
274
  artistOrInstructorNameAsArray,
269
275
  getFieldsForContentType,
270
276
  DEFAULT_FIELDS,
271
- assignmentsField
277
+ assignmentsField,
278
+ filtersToGroq,
272
279
  }
package/src/index.js CHANGED
@@ -29,6 +29,7 @@ import {
29
29
  fetchChildren,
30
30
  fetchParentByRailContentId,
31
31
  fetchMethodPreviousNextLesson,
32
+ fetchLiveEvent,
32
33
  } from './services/sanity.js';
33
34
 
34
35
  import {
@@ -71,4 +72,5 @@ export {
71
72
  fetchChildren,
72
73
  fetchParentByRailContentId,
73
74
  fetchMethodPreviousNextLesson,
75
+ fetchLiveEvent,
74
76
  }
@@ -1,7 +1,16 @@
1
1
  /**
2
2
  * @module Sanity-Services
3
3
  */
4
- import {assignmentsField, contentTypeConfig, DEFAULT_FIELDS, getFieldsForContentType} from "../contentTypeConfig";
4
+ import {
5
+ artistOrInstructorName,
6
+ artistOrInstructorNameAsArray,
7
+ assignmentsField,
8
+ descriptionField,
9
+ contentTypeConfig,
10
+ DEFAULT_FIELDS,
11
+ getFieldsForContentType,
12
+ filtersToGroq
13
+ } from "../contentTypeConfig";
5
14
  import {globalConfig} from "./config";
6
15
 
7
16
  import { fetchAllCompletedStates, fetchCurrentSongComplete } from './railcontent.js';
@@ -232,18 +241,9 @@ export async function fetchSongCount(brand) {
232
241
  * .catch(error => console.error(error));
233
242
  */
234
243
  export async function fetchWorkouts(brand) {
244
+ const fields = getFieldsForContentType('workout');
235
245
  const query = `*[_type == 'workout' && brand == '${brand}'] [0...5] {
236
- "id": railcontent_id,
237
- title,
238
- "image": thumbnail.asset->url,
239
- "artist_name": instructor[0]->name,
240
- "artists": instructor[]->name,
241
- difficulty,
242
- difficulty_string,
243
- length_in_seconds,
244
- published_on,
245
- "type": _type,
246
- web_url_path,
246
+ ${fields.toString()}
247
247
  } | order(published_on desc)[0...5]`
248
248
  return fetchSanity(query, true);
249
249
  }
@@ -301,8 +301,7 @@ export async function fetchUpcomingEvents(brand) {
301
301
  };
302
302
  const typesString = arrayJoinWithQuotes(liveTypes[brand] ?? liveTypes['default']);
303
303
  const now = getSanityDate(new Date());
304
- //TODO: status = 'scheduled' is this handled in sanity?
305
- const query = `*[_type in [${typesString}] && brand == '${brand}' && published_on > '${now}']{
304
+ const query = `*[_type in [${typesString}] && brand == '${brand}' && published_on > '${now}' && status == 'scheduled']{
306
305
  "id": railcontent_id,
307
306
  title,
308
307
  "image": thumbnail.asset->url,
@@ -404,13 +403,7 @@ export async function fetchAll(brand, type, {
404
403
 
405
404
  // Construct the included fields filter, replacing 'difficulty' with 'difficulty_string'
406
405
  const includedFieldsFilter = includedFields.length > 0
407
- ? includedFields.map(field => {
408
- let [key, value] = field.split(',');
409
- if (key === 'difficulty') {
410
- key = 'difficulty_string';
411
- }
412
- return `&& ${key} == "${value}"`;
413
- }).join(' ')
406
+ ? filtersToGroq(includedFields)
414
407
  : "";
415
408
 
416
409
  // Determine the sort order
@@ -524,16 +517,9 @@ export async function fetchAllFilterOptions(
524
517
  contentType,
525
518
  term
526
519
  ) {
527
- const filtersToGroq = filters?.length > 0 ? filters.map(field => {
528
- let [key, value] = field.split(',');
529
- if (key === 'difficulty') {
530
- key = 'difficulty_string';
531
- }
532
- return `&& ${key} == "${value}"`;
533
- }).join(' ')
534
- : undefined;
520
+ const includedFieldsFilter = filters?.length > 0 ? filtersToGroq(filters) : undefined;
535
521
 
536
- const commonFilter = `_type == '${contentType}' && brand == "${brand}"${style ? ` && '${style}' in genre[]->name` : ''}${artist ? ` && artist->name == '${artist}'` : ''} ${filtersToGroq ? filtersToGroq : ''}`;
522
+ const commonFilter = `_type == '${contentType}' && brand == "${brand}"${style ? ` && '${style}' in genre[]->name` : ''}${artist ? ` && artist->name == '${artist}'` : ''} ${includedFieldsFilter ? includedFieldsFilter : ''}`;
537
523
  const query = `
538
524
  {
539
525
  "meta": {
@@ -569,6 +555,8 @@ export async function fetchAllFilterOptions(
569
555
  */
570
556
  export async function fetchChildren(railcontentId, contentType) {
571
557
  const query = `*[railcontent_id == ${railcontentId}]{
558
+ title,
559
+
572
560
  'children': child[]->{
573
561
  ${getFieldsForContentType(contentType)}
574
562
  },
@@ -600,11 +588,8 @@ export async function fetchParentByRailContentId(railcontentId) {
600
588
  * @returns {Promise<Object|null>} - The fetched methods data or null if not found.
601
589
  */
602
590
  export async function fetchMethods(brand) {
603
- //TODOS
604
- //ADD INSTRUCTORS AND POSITION
605
591
  const query = `*[_type == 'learning-path' && brand == '${brand}'] {
606
- ${ getFieldsForContentType() },
607
- "position": count(*[_type == 'learning-path' && brand == '${brand}' && (published_on < ^.published_on || (published_on == ^.published_on && _id < ^._id))]) + 1
592
+ ${ getFieldsForContentType() }
608
593
  } | order(published_on asc)`
609
594
  return fetchSanity(query, true);
610
595
  }
@@ -617,7 +602,7 @@ export async function fetchMethods(brand) {
617
602
  */
618
603
  export async function fetchMethod(brand, slug) {
619
604
  const query = `*[_type == 'learning-path' && brand == "${brand}" && slug.current == "${slug}"] {
620
- "description": description[0].children[0].text,
605
+ "description": ${descriptionField},
621
606
  "instructors":instructor[]->name,
622
607
  published_on,
623
608
  "id": railcontent_id,
@@ -631,12 +616,14 @@ export async function fetchMethod(brand, slug) {
631
616
  {
632
617
  "id": railcontent_id,
633
618
  published_on,
619
+ child_count,
634
620
  difficulty,
621
+ difficulty_string,
635
622
  "thumbnail_url": thumbnail.asset->url,
636
623
  "instructor": instructor[]->{name},
637
624
  title,
638
625
  "type": _type,
639
- "description": description[0].children[0].text,
626
+ "description": ${descriptionField},
640
627
  "url": web_url_path,
641
628
  xp,
642
629
  }
@@ -650,7 +637,16 @@ return fetchSanity(query, false);
650
637
  * @returns {Promise<Object|null>} - The fetched next lesson data or null if not found.
651
638
  */
652
639
  export async function fetchMethodChildren(railcontentId) {
653
- return fetchChildren(railcontentId, 'method');
640
+ const query = `*[railcontent_id == ${railcontentId}]{
641
+ child_count,
642
+ "description": ${descriptionField},
643
+ title,
644
+ xp,
645
+ 'children': child[]->{
646
+ ${getFieldsForContentType('method')}
647
+ },
648
+ }[0..1]`;
649
+ return fetchSanity(query, true);
654
650
  }
655
651
 
656
652
  /**
@@ -756,8 +752,23 @@ export async function fetchNextPreviousLesson(railcontentId) {
756
752
  * .catch(error => console.error(error));
757
753
  */
758
754
  export async function fetchLessonContent(railContentId) {
759
- const query = `*[railcontent_id == ${railContentId} ]
760
- {title, published_on,"type":_type, "resources": resource, difficulty, difficulty_string, brand, soundslice, instrumentless, railcontent_id, "id":railcontent_id, slug, artist->,"thumbnail_url":thumbnail.asset->url, "url": web_url_path, soundslice_slug,description,
755
+ const query = `*[railcontent_id == ${railContentId} ]{
756
+ title,
757
+ published_on,
758
+ "type":_type,
759
+ "resources": resource,
760
+ difficulty,
761
+ difficulty_string,
762
+ brand,
763
+ soundslice,
764
+ instrumentless,
765
+ railcontent_id,
766
+ "id":railcontent_id,
767
+ slug, artist->,
768
+ "thumbnail_url":thumbnail.asset->url,
769
+ "url": web_url_path,
770
+ soundslice_slug,
771
+ description,
761
772
  "chapters": chapter[]{
762
773
  chapter_description,
763
774
  chapter_timecode,
@@ -818,6 +829,46 @@ export async function fetchPackAll(railcontentId) {
818
829
  return fetchSanity(query, true);
819
830
  }
820
831
 
832
+ export async function fetchLiveEvent(brand) {
833
+ //calendarIDs taken from addevent.php
834
+ // TODO import instructor calendars to Sanity
835
+ let defaultCalendarID = '';
836
+ switch(brand) {
837
+ case ('drumeo'):
838
+ defaultCalendarID = 'GP142387';
839
+ break;
840
+ case ('pianote'):
841
+ defaultCalendarID = 'be142408';
842
+ break;
843
+ case ('guitareo'):
844
+ defaultCalendarID = 'IJ142407';
845
+ break;
846
+ case ('singeo'):
847
+ defaultCalendarID = 'bk354284';
848
+ break;
849
+ default:
850
+ break;
851
+ }
852
+ let dateTemp = new Date();
853
+ dateTemp.setDate(dateTemp.getDate() - 1);
854
+
855
+ // See LiveStreamEventService.getCurrentOrNextLiveEvent for some nice complicated logic which I don't think is actually importart
856
+ // this has some +- on times
857
+ // But this query just finds the first scheduled event (sorted by start_time) that ends after now()
858
+ const query = `*[status == 'scheduled' && defined(live_event_start_time) && published_on > '${getSanityDate(dateTemp)}' && live_event_end_time >= '${getSanityDate(new Date())}']{
859
+ 'slug': slug.current,
860
+ 'id': railcontent_id,
861
+ live_event_start_time,
862
+ live_event_end_time,
863
+ railcontent_id,
864
+ published_on,
865
+ 'event_coach_url' : instructor[0]->web_url_path,
866
+ 'event_coach_calendar_id': coalesce(calendar_id, '${defaultCalendarID}'),
867
+ 'videoId': coalesce(live_event_youtube_id, video.external_id),
868
+ } | order(live_event_start_time)[0...1]`;
869
+ return await fetchSanity(query, false);
870
+ }
871
+
821
872
  /**
822
873
  * Fetch all children of a specific pack by Railcontent ID.
823
874
  * @param {string} railcontentId - The Railcontent ID of the pack.