musora-content-services 2.78.0 → 2.79.0
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/.claude/settings.local.json +9 -3
- 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 +12 -0
- package/README.md +0 -0
- package/babel.config.cjs +0 -0
- package/docs/ContentOrganization.html +0 -0
- package/docs/Forums.html +0 -0
- package/docs/Gamification.html +2 -2
- package/docs/TestUser.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_guided-courses.ts.html +0 -0
- package/docs/content-org_learning-paths.ts.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/forums_categories.ts.html +0 -0
- package/docs/forums_discussions.js.html +0 -0
- package/docs/forums_forum.js.html +0 -0
- package/docs/forums_forums.ts.html +0 -0
- package/docs/forums_posts.ts.html +0 -0
- package/docs/forums_threads.ts.html +0 -0
- package/docs/gamification_awards.js.html +0 -0
- package/docs/gamification_awards.ts.html +26 -12
- package/docs/gamification_gamification.js.html +2 -2
- package/docs/gamification_types.js.html +0 -0
- package/docs/global.html +0 -0
- package/docs/index.html +0 -0
- package/docs/liveTesting.ts.html +0 -0
- package/docs/module-Accounts.html +0 -0
- package/docs/module-Awards.html +106 -6
- package/docs/module-Categories.html +0 -0
- package/docs/module-Config.html +0 -0
- package/docs/module-Content-Services-V2.html +0 -0
- package/docs/module-ForumCategories.html +0 -0
- package/docs/module-ForumDiscussions.html +0 -0
- package/docs/module-Forums.html +0 -0
- package/docs/module-GuidedCourses.html +0 -0
- package/docs/module-Interests.html +0 -0
- package/docs/module-LearningPaths.html +0 -0
- package/docs/module-Onboarding.html +0 -0
- package/docs/module-Payments.html +0 -0
- package/docs/module-Permissions.html +0 -0
- package/docs/module-Playlists.html +0 -0
- package/docs/module-ProgressRow.html +0 -0
- package/docs/module-Railcontent-Services.html +0 -0
- package/docs/module-Sanity-Services.html +0 -0
- package/docs/module-Sessions.html +0 -0
- package/docs/module-Threads.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-UserMemberships.html +0 -0
- package/docs/module-UserNotifications.html +0 -0
- package/docs/module-UserProfile.html +0 -0
- package/docs/progress-row_method-card.js.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/userActivity.js.html +0 -0
- package/docs/user_account.ts.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_memberships.js.html +0 -0
- package/docs/user_memberships.ts.html +0 -0
- package/docs/user_notifications.js.html +0 -0
- package/docs/user_onboarding.ts.html +0 -0
- package/docs/user_payments.ts.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/jest.config.js +0 -0
- package/jsdoc.json +0 -0
- package/package.json +1 -1
- package/src/contentMetaData.js +0 -0
- package/src/filterBuilder.js +0 -0
- package/src/index.d.ts +0 -0
- package/src/index.js +0 -0
- 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/api/types.ts +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/learning-paths.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 +8 -5
- package/src/services/contentLikes.js +0 -0
- package/src/services/contentProgress.js +0 -0
- package/src/services/dataContext.js +0 -0
- package/src/services/dateUtils.js +0 -0
- package/src/services/eventsAPI.js +0 -0
- package/src/services/forums/categories.ts +1 -1
- package/src/services/forums/forums.ts +0 -0
- package/src/services/forums/posts.ts +0 -0
- package/src/services/forums/threads.ts +0 -0
- package/src/services/forums/types.ts +0 -0
- package/src/services/gamification/awards.ts +24 -10
- package/src/services/gamification/gamification.js +0 -0
- package/src/services/imageSRCBuilder.js +0 -0
- package/src/services/imageSRCVerify.js +0 -0
- package/src/services/liveTesting.ts +0 -0
- package/src/services/progress-row/method-card.js +0 -0
- package/src/services/railcontent.js +0 -0
- package/src/services/recommendations.js +0 -0
- 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/memberships.ts +0 -0
- package/src/services/user/notifications.js +0 -0
- package/src/services/user/onboarding.ts +0 -0
- package/src/services/user/payments.ts +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 +0 -0
- 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/learningPaths.test.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
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -11,8 +11,16 @@ const baseUrl = `/api/gamification`
|
|
|
11
11
|
export interface Award {
|
|
12
12
|
id: number
|
|
13
13
|
user_id: number
|
|
14
|
-
completed_at: string
|
|
15
|
-
completion_data:
|
|
14
|
+
completed_at: string // ISO-8601 timestamp
|
|
15
|
+
completion_data: {
|
|
16
|
+
message?: string
|
|
17
|
+
message_certificate?: string
|
|
18
|
+
content_title?: string
|
|
19
|
+
completed_at?: Date
|
|
20
|
+
days_user_practiced?: number
|
|
21
|
+
practice_minutes?: number
|
|
22
|
+
[key: string]: any
|
|
23
|
+
}
|
|
16
24
|
award_id: number
|
|
17
25
|
type: string
|
|
18
26
|
title: string
|
|
@@ -23,7 +31,7 @@ export interface Certificate {
|
|
|
23
31
|
id: number
|
|
24
32
|
user_name: string
|
|
25
33
|
user_id: number
|
|
26
|
-
completed_at: string
|
|
34
|
+
completed_at: string // ISO-8601 timestamp
|
|
27
35
|
message: string
|
|
28
36
|
award_id: number
|
|
29
37
|
type: string
|
|
@@ -42,6 +50,7 @@ export interface Certificate {
|
|
|
42
50
|
instructor_signature?: string
|
|
43
51
|
instructor_signature_64?: string
|
|
44
52
|
}
|
|
53
|
+
|
|
45
54
|
/**
|
|
46
55
|
* Get awards for a specific user.
|
|
47
56
|
*
|
|
@@ -49,18 +58,23 @@ export interface Certificate {
|
|
|
49
58
|
* (Alexandre: I'm doing it in a different branch/PR: https://github.com/railroadmedia/musora-content-services/pull/349)
|
|
50
59
|
* NOTE: This function still expects brand because FE passes the argument. It is ignored for now
|
|
51
60
|
*
|
|
52
|
-
* @param {number} userId - The user ID. If not provided, the authenticated user is used instead.
|
|
53
|
-
* @param {string} _brand - The brand to fetch the awards for.
|
|
61
|
+
* @param {number|null} [userId] - The user ID. If not provided, the authenticated user is used instead.
|
|
62
|
+
* @param {string|null} [_brand] - The brand to fetch the awards for.
|
|
54
63
|
* @param {number|null} [page=1] - Page attribute for pagination
|
|
55
64
|
* @param {number|null} [limit=5] - Limit how many items to return
|
|
56
65
|
* @returns {Promise<PaginatedResponse<Award>>} - The awards for the user.
|
|
66
|
+
* @throws {HttpError} - If the HTTP request fails.
|
|
57
67
|
*/
|
|
58
68
|
export async function fetchAwardsForUser(
|
|
59
|
-
userId
|
|
60
|
-
_brand
|
|
69
|
+
userId?: number,
|
|
70
|
+
_brand?: string,
|
|
61
71
|
page: number = 1,
|
|
62
72
|
limit: number = 5
|
|
63
73
|
): Promise<PaginatedResponse<Award>> {
|
|
74
|
+
if (!userId) {
|
|
75
|
+
userId = Number.parseInt(globalConfig.sessionConfig.userId)
|
|
76
|
+
}
|
|
77
|
+
|
|
64
78
|
const httpClient = new HttpClient(globalConfig.baseUrl, globalConfig.sessionConfig.token)
|
|
65
79
|
const response = await httpClient.get<PaginatedResponse<Award>>(
|
|
66
80
|
`${baseUrl}/v1/users/${userId}/awards?limit=${limit}&page=${page}`
|
|
@@ -78,10 +92,9 @@ export async function fetchAwardsForUser(
|
|
|
78
92
|
*
|
|
79
93
|
* @param {number} guidedCourseLessonId - The guided course lesson Id
|
|
80
94
|
* @returns {Promise<Award>} - The award data for a given award and given user.
|
|
95
|
+
* @throws {HttpError} - If the HTTP request fails.
|
|
81
96
|
*/
|
|
82
|
-
export async function getAwardDataForGuidedContent(
|
|
83
|
-
guidedCourseLessonId,
|
|
84
|
-
): Promise<Award> {
|
|
97
|
+
export async function getAwardDataForGuidedContent(guidedCourseLessonId: number): Promise<Award> {
|
|
85
98
|
const httpClient = new HttpClient(globalConfig.baseUrl, globalConfig.sessionConfig.token)
|
|
86
99
|
const response = await httpClient.get<Award>(
|
|
87
100
|
`${baseUrl}/v1/users/guided_course_award/${guidedCourseLessonId}`
|
|
@@ -99,6 +112,7 @@ export async function getAwardDataForGuidedContent(
|
|
|
99
112
|
*
|
|
100
113
|
* @param {number} userAwardId - The user award progress id
|
|
101
114
|
* @returns {Promise<Certificate>} - The certificate data for the completed user award.
|
|
115
|
+
* @throws {HttpError} - If the HTTP request fails.
|
|
102
116
|
*/
|
|
103
117
|
export async function fetchCertificate(userAwardId: number): Promise<Certificate> {
|
|
104
118
|
const httpClient = new HttpClient(globalConfig.baseUrl, globalConfig.sessionConfig.token)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/services/types.js
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
|
package/test/HttpClient.test.js
CHANGED
|
File without changes
|
package/test/content.test.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/dataContext.test.js
CHANGED
|
File without changes
|
package/test/forum.test.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/initializeTests.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/localStorageMock.js
CHANGED
|
File without changes
|
package/test/log.js
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
|
package/tools/generate-index.cjs
CHANGED
|
File without changes
|