musora-content-services 1.0.230 → 1.0.232

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 (49) hide show
  1. package/.github/workflows/node.js.yml +0 -0
  2. package/CHANGELOG.md +4 -0
  3. package/README.md +0 -0
  4. package/babel.config.js +0 -0
  5. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  6. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  7. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  8. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  9. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  10. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  11. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  12. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  13. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  14. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  15. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  16. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  17. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  18. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  19. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  20. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  21. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  22. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  23. package/docs/scripts/collapse.js +0 -0
  24. package/docs/scripts/commonNav.js +0 -0
  25. package/docs/scripts/linenumber.js +0 -0
  26. package/docs/scripts/nav.js +0 -0
  27. package/docs/scripts/polyfill.js +0 -0
  28. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  29. package/docs/scripts/prettify/lang-css.js +0 -0
  30. package/docs/scripts/prettify/prettify.js +0 -0
  31. package/docs/scripts/search.js +0 -0
  32. package/docs/styles/jsdoc.css +0 -0
  33. package/docs/styles/prettify.css +0 -0
  34. package/jest.config.js +0 -0
  35. package/jsdoc.json +0 -0
  36. package/package.json +1 -1
  37. package/src/contentTypeConfig.js +4 -1
  38. package/src/filterBuilder.js +10 -3
  39. package/src/services/contentLikes.js +0 -0
  40. package/src/services/lastUpdated.js +0 -0
  41. package/src/services/sanity.js +11 -5
  42. package/src/services/userPermissions.js +0 -0
  43. package/test/contentLikes.test.js +0 -0
  44. package/test/initializeTests.js +0 -0
  45. package/test/lastUpdated.test.js +0 -0
  46. package/test/localStorageMock.js +0 -0
  47. package/test/log.js +0 -0
  48. package/test/userPermissions.test.js +0 -0
  49. package/tools/generate-index.js +0 -0
File without changes
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.232](https://github.com/railroadmedia/musora-content-services/compare/v1.0.231...v1.0.232) (2024-12-11)
6
+
7
+ ### [1.0.231](https://github.com/railroadmedia/musora-content-services/compare/v1.0.230...v1.0.231) (2024-12-10)
8
+
5
9
  ### [1.0.230](https://github.com/railroadmedia/musora-content-services/compare/v1.0.229...v1.0.230) (2024-12-10)
6
10
 
7
11
  ### [1.0.229](https://github.com/railroadmedia/musora-content-services/compare/v1.0.228...v1.0.229) (2024-12-09)
package/README.md CHANGED
File without changes
package/babel.config.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
File without changes
File without changes
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": "1.0.230",
3
+ "version": "1.0.232",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -391,6 +391,8 @@ let contentTypeConfig = {
391
391
  'sonor': contentWithSortField,
392
392
  }
393
393
 
394
+ const songAccessMembership = 94;
395
+
394
396
  function getNewReleasesTypes(brand) {
395
397
  const baseNewTypes = ["student-review", "student-review", "student-focus", "coach-stream", "live", "question-and-answer", "boot-camps", "quick-tips", "workout", "challenge", "challenge-part", "podcasts", "pack", "song", "learning-path-level", "play-along", "course", "unit"];
396
398
  switch (brand) {
@@ -535,5 +537,6 @@ module.exports = {
535
537
  getNewReleasesTypes,
536
538
  getUpcomingEventsTypes,
537
539
  showsTypes,
538
- coachLessonsTypes
540
+ coachLessonsTypes,
541
+ songAccessMembership
539
542
  }
@@ -1,5 +1,7 @@
1
1
  import {fetchUserPermissions} from "./services/userPermissions";
2
-
2
+ import {
3
+ songAccessMembership
4
+ } from "./contentTypeConfig";
3
5
 
4
6
  export class FilterBuilder {
5
7
 
@@ -19,7 +21,8 @@ export class FilterBuilder {
19
21
  getFutureScheduledContentsOnly = false,
20
22
  bypassStatuses = false,
21
23
  bypassPublishedDateRestriction = false,
22
- isSingle = false
24
+ isSingle = false,
25
+ allowsPullSongsContent = true
23
26
  } = {}) {
24
27
  this.availableContentStatuses = availableContentStatuses;
25
28
  this.bypassPermissions = bypassPermissions;
@@ -29,6 +32,7 @@ export class FilterBuilder {
29
32
  this.getFutureContentOnly = getFutureContentOnly;
30
33
  this.getFutureScheduledContentsOnly = getFutureScheduledContentsOnly;
31
34
  this.isSingle = isSingle;
35
+ this.allowsPullSongsContent = allowsPullSongsContent;
32
36
  this.filter = filter;
33
37
  // this.debug = process.env.DEBUG === 'true' || false;
34
38
  this.debug = false;
@@ -87,7 +91,10 @@ export class FilterBuilder {
87
91
 
88
92
  _applyPermissions() {
89
93
  if (this.bypassPermissions || this.userData.isAdmin) return this;
90
- const requiredPermissions = this._getUserPermissions();
94
+ let requiredPermissions = this._getUserPermissions();
95
+ if(this.userData.isABasicMember && this.allowsPullSongsContent){
96
+ requiredPermissions = [...requiredPermissions, songAccessMembership];
97
+ }
91
98
  this._andWhere(`(!defined(permission) || references(*[_type == 'permission' && railcontent_id in ${arrayToRawRepresentation(requiredPermissions)}]._id))`);
92
99
  return this;
93
100
  }
File without changes
File without changes
@@ -291,7 +291,7 @@ export async function fetchNewReleases(brand, {page = 1, limit = 20, sort = "-pu
291
291
  const start = (page - 1) * limit;
292
292
  const end = start + limit;
293
293
  const sortOrder = getSortOrder(sort, brand);
294
- const filter = `_type in ${typesString} && brand == '${brand}'`;
294
+ const filter = `_type in ${typesString} && brand == '${brand}' && show_in_new_feed == true`;
295
295
  const fields = `
296
296
  "id": railcontent_id,
297
297
  title,
@@ -306,7 +306,7 @@ export async function fetchNewReleases(brand, {page = 1, limit = 20, sort = "-pu
306
306
  web_url_path,
307
307
  "permission_id": permission[]->railcontent_id,
308
308
  `;
309
- const filterParams = {};
309
+ const filterParams = {allowsPullSongsContent: false};
310
310
  const query = await buildQuery(
311
311
  filter,
312
312
  filterParams,
@@ -1767,17 +1767,23 @@ export async function fetchSanity(query,
1767
1767
  console.log("fetchSanity Query:", query);
1768
1768
  }
1769
1769
  const perspective = globalConfig.sanityConfig.perspective ?? 'published';
1770
- const encodedQuery = encodeURIComponent(query);
1771
1770
  const api = globalConfig.sanityConfig.useCachedAPI ? 'apicdn' : 'api';
1772
- const url = `https://${globalConfig.sanityConfig.projectId}.${api}.sanity.io/v${globalConfig.sanityConfig.version}/data/query/${globalConfig.sanityConfig.dataset}?perspective=${perspective}&query=${encodedQuery}`;
1771
+ const url = `https://${globalConfig.sanityConfig.projectId}.${api}.sanity.io/v${globalConfig.sanityConfig.version}/data/query/${globalConfig.sanityConfig.dataset}?perspective=${perspective}`;
1773
1772
  const headers = {
1774
1773
  'Authorization': `Bearer ${globalConfig.sanityConfig.token}`,
1775
1774
  'Content-Type': 'application/json'
1776
1775
  };
1777
1776
 
1778
1777
  try {
1778
+ const method = 'post';
1779
+ const options = {
1780
+ method,
1781
+ headers,
1782
+ body: JSON.stringify({'query': query})
1783
+ };
1784
+
1779
1785
  let promisesResult = await Promise.all([
1780
- fetch(url, {headers}),
1786
+ fetch(url, options),
1781
1787
  processNeedAccess ? fetchUserPermissions() : null
1782
1788
  ]);
1783
1789
  const response = promisesResult[0];
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