musora-content-services 2.27.1 → 2.27.3
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/.coderabbit.yaml +0 -0
- package/.editorconfig +0 -0
- package/.github/pull_request_template.md +0 -0
- package/.github/workflows/conventional-commits.yaml +0 -0
- package/.github/workflows/docs.js.yml +0 -0
- package/.github/workflows/node.js.yml +0 -0
- package/.prettierignore +0 -0
- package/.prettierrc +0 -0
- package/.yarnrc.yml +1 -0
- package/CHANGELOG.md +20 -0
- package/README.md +0 -0
- package/babel.config.cjs +0 -0
- package/docs/Content-Organization.html +0 -0
- package/docs/ContentOrganization.html +0 -0
- package/docs/Gamification.html +0 -0
- package/docs/UserManagement.html +0 -0
- package/docs/UserManagementSystem.html +0 -0
- package/docs/api_types.js.html +0 -0
- package/docs/config.js.html +0 -0
- package/docs/content-org_content-org.js.html +0 -0
- package/docs/content-org_playlists-types.js.html +0 -0
- package/docs/content-org_playlists.js.html +0 -0
- package/docs/content.js.html +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- package/docs/gamification_awards.js.html +0 -0
- package/docs/gamification_gamification.js.html +0 -0
- package/docs/gamification_types.js.html +0 -0
- package/docs/global.html +0 -0
- package/docs/global.html#User +0 -0
- package/docs/index.html +0 -0
- package/docs/module-Awards.html +0 -0
- package/docs/module-Config.html +0 -0
- package/docs/module-Content-Services-V2.html +0 -0
- package/docs/module-Interests.html +0 -0
- package/docs/module-Notifications.html +0 -0
- package/docs/module-Permissions.html +0 -0
- package/docs/module-Playlists.html +0 -0
- package/docs/module-Railcontent-Services.html +0 -0
- package/docs/module-Sanity-Services.html +0 -0
- package/docs/module-Session-Management.html +0 -0
- package/docs/module-Sessions.html +0 -0
- package/docs/module-User-Activity.html +0 -0
- package/docs/module-User-Management.html +0 -0
- package/docs/module-User-Permissions.html +0 -0
- package/docs/module-UserActivity.html +0 -0
- package/docs/module-UserChat.html +0 -0
- package/docs/module-UserManagement.html +0 -0
- package/docs/module-UserNotifications.html +0 -0
- package/docs/module-UserProfile.html +0 -0
- package/docs/railcontent.js.html +0 -0
- package/docs/sanity.js.html +0 -0
- package/docs/scripts/collapse.js +0 -0
- package/docs/scripts/commonNav.js +0 -0
- package/docs/scripts/linenumber.js +0 -0
- package/docs/scripts/nav.js +0 -0
- package/docs/scripts/polyfill.js +0 -0
- package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
- package/docs/scripts/prettify/lang-css.js +0 -0
- package/docs/scripts/prettify/prettify.js +0 -0
- package/docs/scripts/search.js +0 -0
- package/docs/styles/jsdoc.css +0 -0
- package/docs/styles/prettify.css +0 -0
- package/docs/types.js.html +0 -0
- package/docs/userActivity.js.html +0 -0
- package/docs/user_chat.js.html +0 -0
- package/docs/user_interests.js.html +0 -0
- package/docs/user_management.js.html +0 -0
- package/docs/user_notifications.js.html +0 -0
- package/docs/user_permissions.js.html +0 -0
- package/docs/user_profile.js.html +0 -0
- package/docs/user_sessions.js.html +0 -0
- package/docs/user_types.js.html +0 -0
- package/docs/user_user-management-system.js.html +0 -0
- package/docs/user_user-management.js.html +0 -0
- package/jest.config.js +0 -0
- package/jsdoc.json +0 -0
- package/package.json +2 -1
- package/src/contentMetaData.js +1 -0
- package/src/contentTypeConfig.js +6 -5
- package/src/filterBuilder.js +0 -0
- package/src/index.d.ts +7 -5
- package/src/index.js +7 -5
- package/src/infrastructure/http/HttpClient.ts +0 -0
- package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
- package/src/infrastructure/http/index.ts +0 -0
- package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
- package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
- package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
- package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
- package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
- package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
- package/src/lib/httpHelper.js +0 -0
- package/src/lib/lastUpdated.js +0 -0
- package/src/services/api/types.js +0 -0
- package/src/services/config.js +0 -0
- package/src/services/content-org/content-org.js +0 -0
- package/src/services/content-org/guided-courses.ts +0 -0
- package/src/services/content-org/playlists-types.js +0 -0
- package/src/services/content-org/playlists.js +0 -0
- package/src/services/content.js +0 -0
- package/src/services/contentAggregator.js +0 -0
- package/src/services/contentLikes.js +0 -0
- package/src/services/contentProgress.js +6 -26
- package/src/services/dataContext.js +0 -0
- package/src/services/dateUtils.js +31 -42
- package/src/services/forum.js +0 -0
- package/src/services/gamification/awards.js +0 -0
- package/src/services/gamification/gamification.js +0 -0
- package/src/services/gamification/types.js +0 -0
- package/src/services/imageSRCBuilder.js +0 -0
- package/src/services/railcontent.js +6 -9
- package/src/services/recommendations.js +0 -0
- package/src/services/sanity.js +7 -1
- package/src/services/types.js +0 -0
- package/src/services/user/account.ts +0 -0
- package/src/services/user/chat.js +0 -0
- package/src/services/user/interests.js +0 -0
- package/src/services/user/management.js +0 -0
- package/src/services/user/notifications.js +0 -0
- package/src/services/user/permissions.js +0 -0
- package/src/services/user/profile.js +0 -0
- package/src/services/user/sessions.js +0 -0
- package/src/services/user/types.js +0 -0
- package/src/services/user/user-management-system.js +0 -0
- package/src/services/userActivity.js +75 -68
- package/test/HttpClient.test.js +0 -0
- package/test/content.test.js +0 -0
- package/test/contentLikes.test.js +0 -0
- package/test/contentProgress.test.js +0 -0
- package/test/dataContext.test.js +0 -0
- package/test/forum.test.js +0 -0
- package/test/imageSRCBuilder.test.js +0 -0
- package/test/imageSRCVerify.test.js +0 -0
- package/test/initializeTests.js +0 -0
- package/test/lib/lastUpdated.test.js +0 -0
- package/test/live/contentProgressLive.test.js +0 -0
- package/test/live/railcontentLive.test.js +0 -0
- package/test/localStorageMock.js +0 -0
- package/test/log.js +0 -0
- package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
- package/test/mockData/mockData_progress_content.json +0 -0
- package/test/mockData/mockData_sanity_progress_content.json +0 -0
- package/test/mockData/mockData_user_practices.json +0 -0
- package/test/notifications.test.js +0 -0
- package/test/progressRows.test.js +0 -0
- package/test/sanityQueryService.test.js +0 -0
- package/test/streakMessage.test.js +0 -0
- package/test/user/permissions.test.js +0 -0
- package/test/userActivity.test.js +0 -0
- package/tools/generate-index.cjs +0 -0
package/.coderabbit.yaml
CHANGED
|
File without changes
|
package/.editorconfig
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/.prettierignore
CHANGED
|
File without changes
|
package/.prettierrc
CHANGED
|
File without changes
|
package/.yarnrc.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodeLinker: node-modules
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
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
|
+
### [2.27.3](https://github.com/railroadmedia/musora-content-services/compare/v2.27.0...v2.27.3) (2025-07-23)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **last-engaged:** add playlist last engaged endpoint ([#361](https://github.com/railroadmedia/musora-content-services/issues/361)) ([3396207](https://github.com/railroadmedia/musora-content-services/commit/33962077500e47ff9cba93fb23fd28b63eb4112a))
|
|
11
|
+
* MU2-710 - Update MCS to use new endpoint to get recent activities tabs with data ([5cfcc27](https://github.com/railroadmedia/musora-content-services/commit/5cfcc27745072907e745a1015350249f6dbccb85))
|
|
12
|
+
* Song Tutorials are showing up in Recent Songs as collections ([68d4559](https://github.com/railroadmedia/musora-content-services/commit/68d4559f8ee528441a8a4bff73796fbd48c8321b))
|
|
13
|
+
* T3PS-266 - Practice tracker meta ([fa3c962](https://github.com/railroadmedia/musora-content-services/commit/fa3c962580978ce6aef4fdf5ad8023852bf92a6d))
|
|
14
|
+
* T3PS-415: progress rows for courses/song tutorials/packs ([4ad26cc](https://github.com/railroadmedia/musora-content-services/commit/4ad26ccbfbf2eade11882ae246d102d72093c1c5))
|
|
15
|
+
* Timezone issue - Migrate native Date to Dayjs ([c37def1](https://github.com/railroadmedia/musora-content-services/commit/c37def12b471fe570e15c7be220ab8d52e1dad88))
|
|
16
|
+
* **Userpractice:** add category_id and instrument_id to userPractice ([2c92c6f](https://github.com/railroadmedia/musora-content-services/commit/2c92c6f6adcb7fac657c3b12e1c3f5e927cff214))
|
|
17
|
+
|
|
18
|
+
### [2.27.2](https://github.com/railroadmedia/musora-content-services/compare/v2.27.1...v2.27.2) (2025-07-21)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **last-engaged:** add playlist last engaged endpoint ([#361](https://github.com/railroadmedia/musora-content-services/issues/361)) ([3396207](https://github.com/railroadmedia/musora-content-services/commit/33962077500e47ff9cba93fb23fd28b63eb4112a))
|
|
24
|
+
|
|
5
25
|
### [2.27.1](https://github.com/railroadmedia/musora-content-services/compare/v2.27.0...v2.27.1) (2025-07-17)
|
|
6
26
|
|
|
7
27
|
|
package/README.md
CHANGED
|
File without changes
|
package/babel.config.cjs
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/Gamification.html
CHANGED
|
File without changes
|
package/docs/UserManagement.html
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/api_types.js.html
CHANGED
|
File without changes
|
package/docs/config.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/content.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/global.html
CHANGED
|
File without changes
|
package/docs/global.html#User
CHANGED
|
File without changes
|
package/docs/index.html
CHANGED
|
File without changes
|
package/docs/module-Awards.html
CHANGED
|
File without changes
|
package/docs/module-Config.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/railcontent.js.html
CHANGED
|
File without changes
|
package/docs/sanity.js.html
CHANGED
|
File without changes
|
package/docs/scripts/collapse.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/scripts/nav.js
CHANGED
|
File without changes
|
package/docs/scripts/polyfill.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/scripts/search.js
CHANGED
|
File without changes
|
package/docs/styles/jsdoc.css
CHANGED
|
File without changes
|
package/docs/styles/prettify.css
CHANGED
|
File without changes
|
package/docs/types.js.html
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/user_chat.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/user_types.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/jest.config.js
CHANGED
|
File without changes
|
package/jsdoc.json
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "musora-content-services",
|
|
3
|
-
"version": "2.27.
|
|
3
|
+
"version": "2.27.3",
|
|
4
4
|
"description": "A package for Musoras content services ",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@babel/preset-env": "^7.25.3",
|
|
33
33
|
"@sanity/client": "^5.4.2",
|
|
34
34
|
"babel-jest": "^29.7.0",
|
|
35
|
+
"dayjs": "^1.11.13",
|
|
35
36
|
"docdash": "^2.0.2",
|
|
36
37
|
"groqd": "^0.15.12"
|
|
37
38
|
}
|
package/src/contentMetaData.js
CHANGED
package/src/contentTypeConfig.js
CHANGED
|
@@ -182,15 +182,16 @@ export const lessonTypesMapping = {
|
|
|
182
182
|
export const getNextLessonLessonParentTypes = ['course', 'guided-course', 'pack', 'pack-bundle', 'song-tutorial'];
|
|
183
183
|
|
|
184
184
|
export const progressTypesMapping = {
|
|
185
|
-
'lesson': [...singleLessonTypes,...practiceAlongsLessonTypes, ...liveArchivesLessonTypes, ...performancesLessonTypes, ...studentArchivesLessonTypes, ...documentariesLessonTypes, 'live'],
|
|
185
|
+
'lesson': [...singleLessonTypes,...practiceAlongsLessonTypes, ...liveArchivesLessonTypes, ...performancesLessonTypes, ...studentArchivesLessonTypes, ...documentariesLessonTypes, 'live', 'pack-bundle-lesson', 'course-part'],
|
|
186
186
|
'course': ['course'],
|
|
187
187
|
'show': showsLessonTypes,
|
|
188
|
-
'song tutorial': tutorialsLessonTypes,
|
|
188
|
+
'song tutorial': [...tutorialsLessonTypes, 'song-tutorial-children'],
|
|
189
189
|
'songs': transcriptionsLessonTypes,
|
|
190
190
|
'play-along': playAlongLessonTypes,
|
|
191
191
|
'guided course': ['guided-course'],
|
|
192
192
|
'pack': ['pack', 'semester-pack'],
|
|
193
|
-
'method': ['learning-path']
|
|
193
|
+
'method': ['learning-path'],
|
|
194
|
+
'jam track': ['jam-track'],
|
|
194
195
|
};
|
|
195
196
|
|
|
196
197
|
export const songs = {
|
|
@@ -207,9 +208,9 @@ export const filterTypes = {
|
|
|
207
208
|
|
|
208
209
|
export const recentTypes = {
|
|
209
210
|
lessons: [...individualLessonsTypes, 'course-part', 'pack-bundle-lesson', 'challenge-part', 'guided-course-part', 'quick-tips'],
|
|
210
|
-
songs: [...
|
|
211
|
+
songs: [...transcriptionsLessonTypes, ...playAlongLessonTypes, 'song-tutorial-children'],
|
|
211
212
|
home: [...individualLessonsTypes, ...tutorialsLessonTypes, ...transcriptionsLessonTypes, ...playAlongLessonTypes,
|
|
212
|
-
'guided-course', 'learning-path', 'live']
|
|
213
|
+
'guided-course', 'learning-path', 'live', 'course', 'pack']
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
export let contentTypeConfig = {
|
package/src/filterBuilder.js
CHANGED
|
File without changes
|
package/src/index.d.ts
CHANGED
|
@@ -55,8 +55,6 @@ import {
|
|
|
55
55
|
} from './services/contentLikes.js';
|
|
56
56
|
|
|
57
57
|
import {
|
|
58
|
-
assignmentStatusCompleted,
|
|
59
|
-
assignmentStatusReset,
|
|
60
58
|
contentStatusCompleted,
|
|
61
59
|
contentStatusReset,
|
|
62
60
|
getAllCompleted,
|
|
@@ -85,7 +83,8 @@ import {
|
|
|
85
83
|
getTimeRemainingUntilLocal,
|
|
86
84
|
getWeekNumber,
|
|
87
85
|
isNextDay,
|
|
88
|
-
isSameDate
|
|
86
|
+
isSameDate,
|
|
87
|
+
toDayjs
|
|
89
88
|
} from './services/dateUtils.js';
|
|
90
89
|
|
|
91
90
|
import {
|
|
@@ -160,6 +159,7 @@ import {
|
|
|
160
159
|
postContentLiked,
|
|
161
160
|
postContentReset,
|
|
162
161
|
postContentUnliked,
|
|
162
|
+
postPlaylistContentEngaged,
|
|
163
163
|
postRecordWatchSession,
|
|
164
164
|
replyToComment,
|
|
165
165
|
reportComment,
|
|
@@ -292,6 +292,7 @@ import {
|
|
|
292
292
|
createPracticeNotes,
|
|
293
293
|
deletePracticeSession,
|
|
294
294
|
deleteUserActivity,
|
|
295
|
+
fetchRecentActivitiesActiveTabs,
|
|
295
296
|
findIncompleteLesson,
|
|
296
297
|
getPracticeNotes,
|
|
297
298
|
getPracticeSessions,
|
|
@@ -318,8 +319,6 @@ declare module 'musora-content-services' {
|
|
|
318
319
|
applyCloudflareWrapper,
|
|
319
320
|
applySanityTransformations,
|
|
320
321
|
assignModeratorToComment,
|
|
321
|
-
assignmentStatusCompleted,
|
|
322
|
-
assignmentStatusReset,
|
|
323
322
|
blockUser,
|
|
324
323
|
buildImageSRC,
|
|
325
324
|
calculateLongestStreaks,
|
|
@@ -403,6 +402,7 @@ declare module 'musora-content-services' {
|
|
|
403
402
|
fetchPlaylist,
|
|
404
403
|
fetchPlaylistItems,
|
|
405
404
|
fetchRecent,
|
|
405
|
+
fetchRecentActivitiesActiveTabs,
|
|
406
406
|
fetchRecentUserActivities,
|
|
407
407
|
fetchRelatedLessons,
|
|
408
408
|
fetchRelatedRecommendedContent,
|
|
@@ -506,6 +506,7 @@ declare module 'musora-content-services' {
|
|
|
506
506
|
postContentLiked,
|
|
507
507
|
postContentReset,
|
|
508
508
|
postContentUnliked,
|
|
509
|
+
postPlaylistContentEngaged,
|
|
509
510
|
postRecordWatchSession,
|
|
510
511
|
rankCategories,
|
|
511
512
|
rankItems,
|
|
@@ -531,6 +532,7 @@ declare module 'musora-content-services' {
|
|
|
531
532
|
setupAccount,
|
|
532
533
|
startLiveEventPolling,
|
|
533
534
|
status,
|
|
535
|
+
toDayjs,
|
|
534
536
|
togglePlaylistPrivate,
|
|
535
537
|
unEnrollUserInGuidedCourse,
|
|
536
538
|
unPinGuidedCourse,
|
package/src/index.js
CHANGED
|
@@ -55,8 +55,6 @@ import {
|
|
|
55
55
|
} from './services/contentLikes.js';
|
|
56
56
|
|
|
57
57
|
import {
|
|
58
|
-
assignmentStatusCompleted,
|
|
59
|
-
assignmentStatusReset,
|
|
60
58
|
contentStatusCompleted,
|
|
61
59
|
contentStatusReset,
|
|
62
60
|
getAllCompleted,
|
|
@@ -85,7 +83,8 @@ import {
|
|
|
85
83
|
getTimeRemainingUntilLocal,
|
|
86
84
|
getWeekNumber,
|
|
87
85
|
isNextDay,
|
|
88
|
-
isSameDate
|
|
86
|
+
isSameDate,
|
|
87
|
+
toDayjs
|
|
89
88
|
} from './services/dateUtils.js';
|
|
90
89
|
|
|
91
90
|
import {
|
|
@@ -160,6 +159,7 @@ import {
|
|
|
160
159
|
postContentLiked,
|
|
161
160
|
postContentReset,
|
|
162
161
|
postContentUnliked,
|
|
162
|
+
postPlaylistContentEngaged,
|
|
163
163
|
postRecordWatchSession,
|
|
164
164
|
replyToComment,
|
|
165
165
|
reportComment,
|
|
@@ -292,6 +292,7 @@ import {
|
|
|
292
292
|
createPracticeNotes,
|
|
293
293
|
deletePracticeSession,
|
|
294
294
|
deleteUserActivity,
|
|
295
|
+
fetchRecentActivitiesActiveTabs,
|
|
295
296
|
findIncompleteLesson,
|
|
296
297
|
getPracticeNotes,
|
|
297
298
|
getPracticeSessions,
|
|
@@ -317,8 +318,6 @@ export {
|
|
|
317
318
|
applyCloudflareWrapper,
|
|
318
319
|
applySanityTransformations,
|
|
319
320
|
assignModeratorToComment,
|
|
320
|
-
assignmentStatusCompleted,
|
|
321
|
-
assignmentStatusReset,
|
|
322
321
|
blockUser,
|
|
323
322
|
buildImageSRC,
|
|
324
323
|
calculateLongestStreaks,
|
|
@@ -402,6 +401,7 @@ export {
|
|
|
402
401
|
fetchPlaylist,
|
|
403
402
|
fetchPlaylistItems,
|
|
404
403
|
fetchRecent,
|
|
404
|
+
fetchRecentActivitiesActiveTabs,
|
|
405
405
|
fetchRecentUserActivities,
|
|
406
406
|
fetchRelatedLessons,
|
|
407
407
|
fetchRelatedRecommendedContent,
|
|
@@ -505,6 +505,7 @@ export {
|
|
|
505
505
|
postContentLiked,
|
|
506
506
|
postContentReset,
|
|
507
507
|
postContentUnliked,
|
|
508
|
+
postPlaylistContentEngaged,
|
|
508
509
|
postRecordWatchSession,
|
|
509
510
|
rankCategories,
|
|
510
511
|
rankItems,
|
|
@@ -530,6 +531,7 @@ export {
|
|
|
530
531
|
setupAccount,
|
|
531
532
|
startLiveEventPolling,
|
|
532
533
|
status,
|
|
534
|
+
toDayjs,
|
|
533
535
|
togglePlaylistPrivate,
|
|
534
536
|
unEnrollUserInGuidedCourse,
|
|
535
537
|
unPinGuidedCourse,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/lib/httpHelper.js
CHANGED
|
File without changes
|
package/src/lib/lastUpdated.js
CHANGED
|
File without changes
|
|
File without changes
|
package/src/services/config.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/services/content.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -15,6 +15,7 @@ const DATA_KEY_STATUS = 's'
|
|
|
15
15
|
const DATA_KEY_PROGRESS = 'p'
|
|
16
16
|
const DATA_KEY_RESUME_TIME = 't'
|
|
17
17
|
const DATA_KEY_LAST_UPDATED_TIME = 'u'
|
|
18
|
+
const DATA_KEY_BRAND = 'b'
|
|
18
19
|
|
|
19
20
|
export let dataContext = new DataContext(ContentProgressVersionKey, fetchContentProgress)
|
|
20
21
|
|
|
@@ -191,7 +192,7 @@ export async function getAllStartedOrCompleted({ limit = null, onlyIds = true, b
|
|
|
191
192
|
const isRecent = item[DATA_KEY_LAST_UPDATED_TIME] >= oneMonthAgoInSeconds
|
|
192
193
|
const isCorrectBrand = !brand || !item.b || item.b === brand
|
|
193
194
|
const isNotExcluded = !excludedSet.has(id)
|
|
194
|
-
return isRelevantStatus &&
|
|
195
|
+
return isRelevantStatus && isCorrectBrand && isNotExcluded
|
|
195
196
|
})
|
|
196
197
|
.sort(([, a], [, b]) => {
|
|
197
198
|
const v1 = a[DATA_KEY_LAST_UPDATED_TIME]
|
|
@@ -256,18 +257,6 @@ export async function getStartedOrCompletedProgressOnly({ brand = null} = {}) {
|
|
|
256
257
|
return result
|
|
257
258
|
}
|
|
258
259
|
|
|
259
|
-
export async function assignmentStatusCompleted(assignmentId, parentContentId) {
|
|
260
|
-
await dataContext.update(
|
|
261
|
-
async function (localContext) {
|
|
262
|
-
let hierarchy = await fetchHierarchy(parentContentId)
|
|
263
|
-
completeStatusInLocalContext(localContext, assignmentId, hierarchy)
|
|
264
|
-
},
|
|
265
|
-
async function () {
|
|
266
|
-
return postContentComplete(assignmentId)
|
|
267
|
-
}
|
|
268
|
-
)
|
|
269
|
-
}
|
|
270
|
-
|
|
271
260
|
export async function contentStatusCompleted(contentId) {
|
|
272
261
|
return await dataContext.update(
|
|
273
262
|
async function (localContext) {
|
|
@@ -324,18 +313,6 @@ function getChildrenToDepth(parentId, hierarchy, depth = 1) {
|
|
|
324
313
|
return allChildrenIds
|
|
325
314
|
}
|
|
326
315
|
|
|
327
|
-
export async function assignmentStatusReset(assignmentId, contentId) {
|
|
328
|
-
await dataContext.update(
|
|
329
|
-
async function (localContext) {
|
|
330
|
-
let hierarchy = await fetchHierarchy(contentId)
|
|
331
|
-
resetStatusInLocalContext(localContext, assignmentId, hierarchy)
|
|
332
|
-
},
|
|
333
|
-
async function () {
|
|
334
|
-
return postContentReset(contentId)
|
|
335
|
-
}
|
|
336
|
-
)
|
|
337
|
-
}
|
|
338
|
-
|
|
339
316
|
export async function contentStatusReset(contentId) {
|
|
340
317
|
await dataContext.update(
|
|
341
318
|
async function (localContext) {
|
|
@@ -395,7 +372,7 @@ export async function recordWatchSession(
|
|
|
395
372
|
//TODO: Good enough for Alpha, Refine in reliability improvements
|
|
396
373
|
sessionData[sessionId] = sessionData[sessionId] || {}
|
|
397
374
|
const secondsSinceLastUpdate = Math.ceil(secondsPlayed - (sessionData[sessionId][contentId] ?? 0))
|
|
398
|
-
await recordUserPractice({ content_id: contentId, duration_seconds: secondsSinceLastUpdate,
|
|
375
|
+
await recordUserPractice({ content_id: contentId, duration_seconds: secondsSinceLastUpdate, instrument_id: instrumentId })
|
|
399
376
|
} catch (error) {
|
|
400
377
|
console.error('Failed to record user practice:', error)
|
|
401
378
|
}
|
|
@@ -462,8 +439,11 @@ function bubbleProgress(hierarchy, contentId, localContext) {
|
|
|
462
439
|
return localContext.data[childId]?.[DATA_KEY_PROGRESS] ?? 0
|
|
463
440
|
})
|
|
464
441
|
let progress = Math.round(childProgress.reduce((a, b) => a + b, 0) / childProgress.length)
|
|
442
|
+
const brand =localContext.data[contentId]?.[DATA_KEY_BRAND] ?? null
|
|
465
443
|
data[DATA_KEY_PROGRESS] = progress
|
|
466
444
|
data[DATA_KEY_STATUS] = progress === 100 ? STATE_COMPLETED : STATE_STARTED
|
|
445
|
+
data[DATA_KEY_LAST_UPDATED_TIME] = Math.round(new Date().getTime() / 1000)
|
|
446
|
+
data[DATA_KEY_BRAND] = brand
|
|
467
447
|
localContext.data[parentId] = data
|
|
468
448
|
bubbleProgress(hierarchy, parentId, localContext)
|
|
469
449
|
}
|
|
File without changes
|