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.
Files changed (199) hide show
  1. package/.claude/settings.local.json +9 -3
  2. package/.coderabbit.yaml +0 -0
  3. package/.editorconfig +0 -0
  4. package/.github/pull_request_template.md +0 -0
  5. package/.github/workflows/conventional-commits.yaml +0 -0
  6. package/.github/workflows/docs.js.yml +0 -0
  7. package/.github/workflows/node.js.yml +0 -0
  8. package/.prettierignore +0 -0
  9. package/.prettierrc +0 -0
  10. package/.yarnrc.yml +1 -0
  11. package/CHANGELOG.md +12 -0
  12. package/README.md +0 -0
  13. package/babel.config.cjs +0 -0
  14. package/docs/ContentOrganization.html +0 -0
  15. package/docs/Forums.html +0 -0
  16. package/docs/Gamification.html +2 -2
  17. package/docs/TestUser.html +0 -0
  18. package/docs/UserManagementSystem.html +0 -0
  19. package/docs/api_types.js.html +0 -0
  20. package/docs/config.js.html +0 -0
  21. package/docs/content-org_content-org.js.html +0 -0
  22. package/docs/content-org_guided-courses.ts.html +0 -0
  23. package/docs/content-org_learning-paths.ts.html +0 -0
  24. package/docs/content-org_playlists-types.js.html +0 -0
  25. package/docs/content-org_playlists.js.html +0 -0
  26. package/docs/content.js.html +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  29. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  31. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  32. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  33. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  34. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  42. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  43. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  44. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  45. package/docs/forums_categories.ts.html +0 -0
  46. package/docs/forums_discussions.js.html +0 -0
  47. package/docs/forums_forum.js.html +0 -0
  48. package/docs/forums_forums.ts.html +0 -0
  49. package/docs/forums_posts.ts.html +0 -0
  50. package/docs/forums_threads.ts.html +0 -0
  51. package/docs/gamification_awards.js.html +0 -0
  52. package/docs/gamification_awards.ts.html +26 -12
  53. package/docs/gamification_gamification.js.html +2 -2
  54. package/docs/gamification_types.js.html +0 -0
  55. package/docs/global.html +0 -0
  56. package/docs/index.html +0 -0
  57. package/docs/liveTesting.ts.html +0 -0
  58. package/docs/module-Accounts.html +0 -0
  59. package/docs/module-Awards.html +106 -6
  60. package/docs/module-Categories.html +0 -0
  61. package/docs/module-Config.html +0 -0
  62. package/docs/module-Content-Services-V2.html +0 -0
  63. package/docs/module-ForumCategories.html +0 -0
  64. package/docs/module-ForumDiscussions.html +0 -0
  65. package/docs/module-Forums.html +0 -0
  66. package/docs/module-GuidedCourses.html +0 -0
  67. package/docs/module-Interests.html +0 -0
  68. package/docs/module-LearningPaths.html +0 -0
  69. package/docs/module-Onboarding.html +0 -0
  70. package/docs/module-Payments.html +0 -0
  71. package/docs/module-Permissions.html +0 -0
  72. package/docs/module-Playlists.html +0 -0
  73. package/docs/module-ProgressRow.html +0 -0
  74. package/docs/module-Railcontent-Services.html +0 -0
  75. package/docs/module-Sanity-Services.html +0 -0
  76. package/docs/module-Sessions.html +0 -0
  77. package/docs/module-Threads.html +0 -0
  78. package/docs/module-UserActivity.html +0 -0
  79. package/docs/module-UserChat.html +0 -0
  80. package/docs/module-UserManagement.html +0 -0
  81. package/docs/module-UserMemberships.html +0 -0
  82. package/docs/module-UserNotifications.html +0 -0
  83. package/docs/module-UserProfile.html +0 -0
  84. package/docs/progress-row_method-card.js.html +0 -0
  85. package/docs/railcontent.js.html +0 -0
  86. package/docs/sanity.js.html +0 -0
  87. package/docs/scripts/collapse.js +0 -0
  88. package/docs/scripts/commonNav.js +0 -0
  89. package/docs/scripts/linenumber.js +0 -0
  90. package/docs/scripts/nav.js +0 -0
  91. package/docs/scripts/polyfill.js +0 -0
  92. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  93. package/docs/scripts/prettify/lang-css.js +0 -0
  94. package/docs/scripts/prettify/prettify.js +0 -0
  95. package/docs/scripts/search.js +0 -0
  96. package/docs/styles/jsdoc.css +0 -0
  97. package/docs/styles/prettify.css +0 -0
  98. package/docs/userActivity.js.html +0 -0
  99. package/docs/user_account.ts.html +0 -0
  100. package/docs/user_chat.js.html +0 -0
  101. package/docs/user_interests.js.html +0 -0
  102. package/docs/user_management.js.html +0 -0
  103. package/docs/user_memberships.js.html +0 -0
  104. package/docs/user_memberships.ts.html +0 -0
  105. package/docs/user_notifications.js.html +0 -0
  106. package/docs/user_onboarding.ts.html +0 -0
  107. package/docs/user_payments.ts.html +0 -0
  108. package/docs/user_permissions.js.html +0 -0
  109. package/docs/user_profile.js.html +0 -0
  110. package/docs/user_sessions.js.html +0 -0
  111. package/docs/user_types.js.html +0 -0
  112. package/docs/user_user-management-system.js.html +0 -0
  113. package/jest.config.js +0 -0
  114. package/jsdoc.json +0 -0
  115. package/package.json +1 -1
  116. package/src/contentMetaData.js +0 -0
  117. package/src/filterBuilder.js +0 -0
  118. package/src/index.d.ts +0 -0
  119. package/src/index.js +0 -0
  120. package/src/infrastructure/http/HttpClient.ts +0 -0
  121. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  122. package/src/infrastructure/http/index.ts +0 -0
  123. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  124. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  125. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  126. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  127. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  128. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  129. package/src/lib/httpHelper.js +0 -0
  130. package/src/lib/lastUpdated.js +0 -0
  131. package/src/services/api/types.js +0 -0
  132. package/src/services/api/types.ts +0 -0
  133. package/src/services/config.js +0 -0
  134. package/src/services/content-org/content-org.js +0 -0
  135. package/src/services/content-org/guided-courses.ts +0 -0
  136. package/src/services/content-org/learning-paths.ts +0 -0
  137. package/src/services/content-org/playlists-types.js +0 -0
  138. package/src/services/content-org/playlists.js +0 -0
  139. package/src/services/content.js +0 -0
  140. package/src/services/contentAggregator.js +8 -5
  141. package/src/services/contentLikes.js +0 -0
  142. package/src/services/contentProgress.js +0 -0
  143. package/src/services/dataContext.js +0 -0
  144. package/src/services/dateUtils.js +0 -0
  145. package/src/services/eventsAPI.js +0 -0
  146. package/src/services/forums/categories.ts +1 -1
  147. package/src/services/forums/forums.ts +0 -0
  148. package/src/services/forums/posts.ts +0 -0
  149. package/src/services/forums/threads.ts +0 -0
  150. package/src/services/forums/types.ts +0 -0
  151. package/src/services/gamification/awards.ts +24 -10
  152. package/src/services/gamification/gamification.js +0 -0
  153. package/src/services/imageSRCBuilder.js +0 -0
  154. package/src/services/imageSRCVerify.js +0 -0
  155. package/src/services/liveTesting.ts +0 -0
  156. package/src/services/progress-row/method-card.js +0 -0
  157. package/src/services/railcontent.js +0 -0
  158. package/src/services/recommendations.js +0 -0
  159. package/src/services/types.js +0 -0
  160. package/src/services/user/account.ts +0 -0
  161. package/src/services/user/chat.js +0 -0
  162. package/src/services/user/interests.js +0 -0
  163. package/src/services/user/management.js +0 -0
  164. package/src/services/user/memberships.ts +0 -0
  165. package/src/services/user/notifications.js +0 -0
  166. package/src/services/user/onboarding.ts +0 -0
  167. package/src/services/user/payments.ts +0 -0
  168. package/src/services/user/permissions.js +0 -0
  169. package/src/services/user/profile.js +0 -0
  170. package/src/services/user/sessions.js +0 -0
  171. package/src/services/user/types.js +0 -0
  172. package/src/services/user/user-management-system.js +0 -0
  173. package/src/services/userActivity.js +0 -0
  174. package/test/HttpClient.test.js +0 -0
  175. package/test/content.test.js +0 -0
  176. package/test/contentLikes.test.js +0 -0
  177. package/test/contentProgress.test.js +0 -0
  178. package/test/dataContext.test.js +0 -0
  179. package/test/forum.test.js +0 -0
  180. package/test/imageSRCBuilder.test.js +0 -0
  181. package/test/imageSRCVerify.test.js +0 -0
  182. package/test/initializeTests.js +0 -0
  183. package/test/learningPaths.test.js +0 -0
  184. package/test/lib/lastUpdated.test.js +0 -0
  185. package/test/live/contentProgressLive.test.js +0 -0
  186. package/test/live/railcontentLive.test.js +0 -0
  187. package/test/localStorageMock.js +0 -0
  188. package/test/log.js +0 -0
  189. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  190. package/test/mockData/mockData_progress_content.json +0 -0
  191. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  192. package/test/mockData/mockData_user_practices.json +0 -0
  193. package/test/notifications.test.js +0 -0
  194. package/test/progressRows.test.js +0 -0
  195. package/test/sanityQueryService.test.js +0 -0
  196. package/test/streakMessage.test.js +0 -0
  197. package/test/user/permissions.test.js +0 -0
  198. package/test/userActivity.test.js +0 -0
  199. package/tools/generate-index.cjs +0 -0
@@ -43,7 +43,7 @@ export async function createForumCategory(
43
43
 
44
44
  export interface UpdateForumCategoryParams {
45
45
  id: number
46
- brand: number
46
+ brand: string
47
47
  name: string
48
48
  weight: number
49
49
  description?: string
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 // ISO-8601 timestamp
15
- completion_data: Object
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 // ISO-8601 timestamp
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: number,
60
- _brand: string,
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
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