@easyedu/js-lsm-api 1.105.0 → 1.107.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 (86) hide show
  1. package/.openapi-generator/FILES +6 -0
  2. package/README.md +9 -5
  3. package/dist/apis/CourseApi.d.ts +30 -2
  4. package/dist/apis/CourseApi.js +59 -3
  5. package/dist/apis/CourseShareApi.d.ts +21 -7
  6. package/dist/apis/CourseShareApi.js +24 -11
  7. package/dist/apis/PortalApi.d.ts +2 -2
  8. package/dist/apis/PortalApi.js +2 -2
  9. package/dist/esm/apis/CourseApi.d.ts +30 -2
  10. package/dist/esm/apis/CourseApi.js +58 -2
  11. package/dist/esm/apis/CourseShareApi.d.ts +21 -7
  12. package/dist/esm/apis/CourseShareApi.js +23 -10
  13. package/dist/esm/apis/PortalApi.d.ts +2 -2
  14. package/dist/esm/apis/PortalApi.js +2 -2
  15. package/dist/esm/models/CourseShare.d.ts +57 -9
  16. package/dist/esm/models/CourseShare.js +32 -0
  17. package/dist/esm/models/GetCourseExport.d.ts +6 -0
  18. package/dist/esm/models/GetCourseExport.js +4 -0
  19. package/dist/esm/models/GetPortal.d.ts +11 -2
  20. package/dist/esm/models/GetPortal.js +5 -0
  21. package/dist/esm/models/GetPublicPortalBranding.d.ts +11 -2
  22. package/dist/esm/models/GetPublicPortalBranding.js +5 -0
  23. package/dist/esm/models/PortalBrandColorsV1.d.ts +194 -0
  24. package/dist/esm/models/PortalBrandColorsV1.js +151 -0
  25. package/dist/esm/models/PortalBrandThemeV1.d.ts +53 -0
  26. package/dist/esm/models/PortalBrandThemeV1.js +59 -0
  27. package/dist/esm/models/PortalBrandTypographyV1.d.ts +80 -0
  28. package/dist/esm/models/PortalBrandTypographyV1.js +78 -0
  29. package/dist/esm/models/PostOfferCatalog.d.ts +1 -1
  30. package/dist/esm/models/PostOfferCourse.d.ts +1 -1
  31. package/dist/esm/models/PostPortal.d.ts +9 -0
  32. package/dist/esm/models/PostPortal.js +3 -0
  33. package/dist/esm/models/PutPortalBranding.d.ts +9 -0
  34. package/dist/esm/models/PutPortalBranding.js +3 -0
  35. package/dist/esm/models/index.d.ts +3 -0
  36. package/dist/esm/models/index.js +3 -0
  37. package/dist/models/CourseShare.d.ts +57 -9
  38. package/dist/models/CourseShare.js +32 -0
  39. package/dist/models/GetCourseExport.d.ts +6 -0
  40. package/dist/models/GetCourseExport.js +4 -0
  41. package/dist/models/GetPortal.d.ts +11 -2
  42. package/dist/models/GetPortal.js +5 -0
  43. package/dist/models/GetPublicPortalBranding.d.ts +11 -2
  44. package/dist/models/GetPublicPortalBranding.js +5 -0
  45. package/dist/models/PortalBrandColorsV1.d.ts +194 -0
  46. package/dist/models/PortalBrandColorsV1.js +158 -0
  47. package/dist/models/PortalBrandThemeV1.d.ts +53 -0
  48. package/dist/models/PortalBrandThemeV1.js +67 -0
  49. package/dist/models/PortalBrandTypographyV1.d.ts +80 -0
  50. package/dist/models/PortalBrandTypographyV1.js +86 -0
  51. package/dist/models/PostOfferCatalog.d.ts +1 -1
  52. package/dist/models/PostOfferCourse.d.ts +1 -1
  53. package/dist/models/PostPortal.d.ts +9 -0
  54. package/dist/models/PostPortal.js +3 -0
  55. package/dist/models/PutPortalBranding.d.ts +9 -0
  56. package/dist/models/PutPortalBranding.js +3 -0
  57. package/dist/models/index.d.ts +3 -0
  58. package/dist/models/index.js +3 -0
  59. package/docs/CourseApi.md +79 -1
  60. package/docs/CourseShare.md +19 -3
  61. package/docs/CourseShareApi.md +20 -9
  62. package/docs/GetCourseExport.md +2 -0
  63. package/docs/GetPortal.md +2 -0
  64. package/docs/GetPublicPortalBranding.md +2 -0
  65. package/docs/PortalApi.md +2 -2
  66. package/docs/PortalBrandColorsV1.md +89 -0
  67. package/docs/PortalBrandThemeV1.md +39 -0
  68. package/docs/PortalBrandTypographyV1.md +47 -0
  69. package/docs/PostPortal.md +2 -0
  70. package/docs/PutPortalBranding.md +2 -0
  71. package/package.json +1 -1
  72. package/src/apis/CourseApi.ts +72 -2
  73. package/src/apis/CourseShareApi.ts +28 -9
  74. package/src/apis/PortalApi.ts +2 -2
  75. package/src/models/CourseShare.ts +81 -9
  76. package/src/models/GetCourseExport.ts +9 -0
  77. package/src/models/GetPortal.ts +21 -2
  78. package/src/models/GetPublicPortalBranding.ts +21 -2
  79. package/src/models/PortalBrandColorsV1.ts +309 -0
  80. package/src/models/PortalBrandThemeV1.ts +109 -0
  81. package/src/models/PortalBrandTypographyV1.ts +135 -0
  82. package/src/models/PostOfferCatalog.ts +1 -1
  83. package/src/models/PostOfferCourse.ts +1 -1
  84. package/src/models/PostPortal.ts +18 -0
  85. package/src/models/PutPortalBranding.ts +18 -0
  86. package/src/models/index.ts +3 -0
package/docs/CourseApi.md CHANGED
@@ -23,6 +23,7 @@ All URIs are relative to *https://sbzw93t49b.execute-api.us-east-2.amazonaws.com
23
23
  | [**getCourseVersionItemLaunch**](CourseApi.md#getcourseversionitemlaunch) | **GET** /courses/{courseId}/versions/{courseVersionId}/items/{itemId}/launch | Resolve the exact immutable resource launch selected by a course version |
24
24
  | [**getCourseVersionList**](CourseApi.md#getcourseversionlist) | **GET** /courses/{courseId}/versions | List immutable course versions and the current draft |
25
25
  | [**getCourseVersionProgression**](CourseApi.md#getcourseversionprogression) | **GET** /courses/{courseId}/versions/{courseVersionId}/progression | Get learner-specific completion and section lock state |
26
+ | [**getPortalCourseExports**](CourseApi.md#getportalcourseexports) | **GET** /course-exports | List SCORM exports owned by the current portal |
26
27
  | [**postCourse**](CourseApi.md#postcourse) | **POST** /courses | Post a new course |
27
28
  | [**postCourseDraft**](CourseApi.md#postcoursedraft) | **POST** /courses/{courseId}/draft | Create or return the single editable course draft |
28
29
  | [**postCourseDraftResourceUpdateAll**](CourseApi.md#postcoursedraftresourceupdateall) | **POST** /courses/{courseId}/draft/resources/update-all | Update all draft resource placements to their latest published versions |
@@ -1391,6 +1392,83 @@ No authorization required
1391
1392
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
1392
1393
 
1393
1394
 
1395
+ ## getPortalCourseExports
1396
+
1397
+ > GetCourseExportList getPortalCourseExports(page, pageSize, courseId, status)
1398
+
1399
+ List SCORM exports owned by the current portal
1400
+
1401
+ ### Example
1402
+
1403
+ ```ts
1404
+ import {
1405
+ Configuration,
1406
+ CourseApi,
1407
+ } from '@easyedu/js-lsm-api';
1408
+ import type { GetPortalCourseExportsRequest } from '@easyedu/js-lsm-api';
1409
+
1410
+ async function example() {
1411
+ console.log("🚀 Testing @easyedu/js-lsm-api SDK...");
1412
+ const api = new CourseApi();
1413
+
1414
+ const body = {
1415
+ // number (optional)
1416
+ page: 56,
1417
+ // number (optional)
1418
+ pageSize: 56,
1419
+ // string | Filter by an owned course external ID (optional)
1420
+ courseId: courseId_example,
1421
+ // 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | Filter by export status (optional)
1422
+ status: status_example,
1423
+ } satisfies GetPortalCourseExportsRequest;
1424
+
1425
+ try {
1426
+ const data = await api.getPortalCourseExports(body);
1427
+ console.log(data);
1428
+ } catch (error) {
1429
+ console.error(error);
1430
+ }
1431
+ }
1432
+
1433
+ // Run the test
1434
+ example().catch(console.error);
1435
+ ```
1436
+
1437
+ ### Parameters
1438
+
1439
+
1440
+ | Name | Type | Description | Notes |
1441
+ |------------- | ------------- | ------------- | -------------|
1442
+ | **page** | `number` | | [Optional] [Defaults to `1`] |
1443
+ | **pageSize** | `number` | | [Optional] [Defaults to `20`] |
1444
+ | **courseId** | `string` | Filter by an owned course external ID | [Optional] [Defaults to `undefined`] |
1445
+ | **status** | `PENDING`, `PROCESSING`, `COMPLETED`, `FAILED` | Filter by export status | [Optional] [Defaults to `undefined`] [Enum: PENDING, PROCESSING, COMPLETED, FAILED] |
1446
+
1447
+ ### Return type
1448
+
1449
+ [**GetCourseExportList**](GetCourseExportList.md)
1450
+
1451
+ ### Authorization
1452
+
1453
+ No authorization required
1454
+
1455
+ ### HTTP request headers
1456
+
1457
+ - **Content-Type**: Not defined
1458
+ - **Accept**: `application/json`
1459
+
1460
+
1461
+ ### HTTP response details
1462
+ | Status code | Description | Response headers |
1463
+ |-------------|-------------|------------------|
1464
+ | **200** | Portal-owned course exports | - |
1465
+ | **400** | Invalid pagination or filter | - |
1466
+ | **401** | Unauthorized | - |
1467
+ | **403** | Forbidden | - |
1468
+
1469
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
1470
+
1471
+
1394
1472
  ## postCourse
1395
1473
 
1396
1474
  > GetCourse postCourse(postCourse)
@@ -1734,7 +1812,7 @@ No authorization required
1734
1812
 
1735
1813
  Create a new SCORM export for a course
1736
1814
 
1737
- Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Actual SCORM package generation is not yet implemented (TODO) - Export metadata should be persisted to a database table (TODO) - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1815
+ Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1738
1816
 
1739
1817
  ### Example
1740
1818
 
@@ -1,20 +1,28 @@
1
1
 
2
2
  # CourseShare
3
3
 
4
- Shape returned by `GET /course-shares/offered-to-me`. Includes joined source portal name and course name so the child portal can render an inbox without follow-up requests.
4
+ Shared shape returned by the incoming and outgoing course-share lists. All resource identifiers are public external IDs so clients can link to the related course, portal, and catalog without exposing database keys.
5
5
 
6
6
  ## Properties
7
7
 
8
8
  Name | Type
9
9
  ------------ | -------------
10
10
  `id` | string
11
- `sourcePortalId` | number
11
+ `sourcePortalId` | string
12
12
  `sourcePortalName` | string
13
- `courseId` | number
13
+ `targetPortalId` | string
14
+ `targetPortalName` | string
15
+ `courseId` | string
14
16
  `courseName` | string
15
17
  `allowedMode` | string
16
18
  `state` | string
17
19
  `allowResharing` | boolean
20
+ `seatLimit` | number
21
+ `originCatalogId` | string
22
+ `originCatalogName` | string
23
+ `offeredAt` | Date
24
+ `respondedAt` | Date
25
+ `revokedAt` | Date
18
26
 
19
27
  ## Example
20
28
 
@@ -26,11 +34,19 @@ const example = {
26
34
  "id": null,
27
35
  "sourcePortalId": null,
28
36
  "sourcePortalName": null,
37
+ "targetPortalId": null,
38
+ "targetPortalName": null,
29
39
  "courseId": null,
30
40
  "courseName": null,
31
41
  "allowedMode": null,
32
42
  "state": null,
33
43
  "allowResharing": null,
44
+ "seatLimit": null,
45
+ "originCatalogId": null,
46
+ "originCatalogName": null,
47
+ "offeredAt": null,
48
+ "respondedAt": null,
49
+ "revokedAt": null,
34
50
  } satisfies CourseShare
35
51
 
36
52
  console.log(example)
@@ -7,8 +7,8 @@ All URIs are relative to *https://sbzw93t49b.execute-api.us-east-2.amazonaws.com
7
7
  | [**deleteCourseShare**](CourseShareApi.md#deletecourseshare) | **DELETE** /course-shares/{shareId} | Revoke a share |
8
8
  | [**getCourseSharesOfferedByMe**](CourseShareApi.md#getcoursesharesofferedbyme) | **GET** /course-shares/offered-by-me | List shares the current portal has offered out |
9
9
  | [**getCourseSharesOfferedToMe**](CourseShareApi.md#getcoursesharesofferedtome) | **GET** /course-shares/offered-to-me | List shares offered to the current portal |
10
- | [**postOfferCatalog**](CourseShareApi.md#postoffercatalog) | **POST** /catalogs/{catalogId}/shares | Offer every course in a catalog to a descendant portal |
11
- | [**postOfferCourse**](CourseShareApi.md#postoffercourse) | **POST** /courses/{courseId}/shares | Offer a single course to a descendant portal |
10
+ | [**postOfferCatalog**](CourseShareApi.md#postoffercatalog) | **POST** /catalogs/{catalogId}/shares | Offer every course in a catalog to another portal |
11
+ | [**postOfferCourse**](CourseShareApi.md#postoffercourse) | **POST** /courses/{courseId}/shares | Offer a single course to another portal |
12
12
  | [**postUnrevokeShare**](CourseShareApi.md#postunrevokeshare) | **POST** /course-shares/{shareId}/unrevoke | Restore a previously revoked share |
13
13
  | [**putAcceptClone**](CourseShareApi.md#putacceptclone) | **PUT** /course-shares/{shareId}/accept-clone | Accept an offer as a clone (deep copy into your portal) |
14
14
  | [**putAcceptMirror**](CourseShareApi.md#putacceptmirror) | **PUT** /course-shares/{shareId}/accept-mirror | Accept an offer as a mirror (no copy, live link to source) |
@@ -87,7 +87,7 @@ No authorization required
87
87
 
88
88
  ## getCourseSharesOfferedByMe
89
89
 
90
- > Array<CourseShare> getCourseSharesOfferedByMe()
90
+ > Array<CourseShare> getCourseSharesOfferedByMe(state)
91
91
 
92
92
  List shares the current portal has offered out
93
93
 
@@ -104,8 +104,13 @@ async function example() {
104
104
  console.log("🚀 Testing @easyedu/js-lsm-api SDK...");
105
105
  const api = new CourseShareApi();
106
106
 
107
+ const body = {
108
+ // 'offered' | 'accepted_mirror' | 'accepted_clone' | 'declined' | 'revoked' | Filter by share state (case-insensitive) (optional)
109
+ state: state_example,
110
+ } satisfies GetCourseSharesOfferedByMeRequest;
111
+
107
112
  try {
108
- const data = await api.getCourseSharesOfferedByMe();
113
+ const data = await api.getCourseSharesOfferedByMe(body);
109
114
  console.log(data);
110
115
  } catch (error) {
111
116
  console.error(error);
@@ -118,7 +123,10 @@ example().catch(console.error);
118
123
 
119
124
  ### Parameters
120
125
 
121
- This endpoint does not need any parameter.
126
+
127
+ | Name | Type | Description | Notes |
128
+ |------------- | ------------- | ------------- | -------------|
129
+ | **state** | `offered`, `accepted_mirror`, `accepted_clone`, `declined`, `revoked` | Filter by share state (case-insensitive) | [Optional] [Defaults to `undefined`] [Enum: offered, accepted_mirror, accepted_clone, declined, revoked] |
122
130
 
123
131
  ### Return type
124
132
 
@@ -138,6 +146,7 @@ No authorization required
138
146
  | Status code | Description | Response headers |
139
147
  |-------------|-------------|------------------|
140
148
  | **200** | Shares | - |
149
+ | **400** | Invalid state filter | - |
141
150
 
142
151
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
143
152
 
@@ -214,7 +223,7 @@ No authorization required
214
223
 
215
224
  > PostOfferCatalogResponse postOfferCatalog(catalogId, postOfferCatalog)
216
225
 
217
- Offer every course in a catalog to a descendant portal
226
+ Offer every course in a catalog to another portal
218
227
 
219
228
  Fans out one `course_share` per catalog member. Duplicates are silently skipped. The catalog link is preserved on each generated share via `origin_catalog_id`.
220
229
 
@@ -276,7 +285,8 @@ No authorization required
276
285
  | Status code | Description | Response headers |
277
286
  |-------------|-------------|------------------|
278
287
  | **201** | Catalog offered | - |
279
- | **403** | Catalog not owned by your portal, or target is not a descendant | - |
288
+ | **400** | Target portal is the current portal | - |
289
+ | **403** | Catalog not owned by your portal | - |
280
290
  | **404** | Catalog or target portal not found | - |
281
291
 
282
292
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
@@ -286,7 +296,7 @@ No authorization required
286
296
 
287
297
  > PostOfferCourseResponse postOfferCourse(courseId, postOfferCourse)
288
298
 
289
- Offer a single course to a descendant portal
299
+ Offer a single course to another portal
290
300
 
291
301
  ### Example
292
302
 
@@ -346,7 +356,8 @@ No authorization required
346
356
  | Status code | Description | Response headers |
347
357
  |-------------|-------------|------------------|
348
358
  | **201** | Share created | - |
349
- | **403** | Course not owned by your portal, or target is not a descendant | - |
359
+ | **400** | Target portal is the current portal | - |
360
+ | **403** | Course not owned by your portal | - |
350
361
  | **404** | Course or target portal not found | - |
351
362
 
352
363
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
@@ -9,6 +9,7 @@ Name | Type
9
9
  ------------ | -------------
10
10
  `id` | string
11
11
  `courseId` | string
12
+ `courseName` | string
12
13
  `courseVersionId` | string
13
14
  `exportType` | string
14
15
  `sectionIds` | Array<string>
@@ -28,6 +29,7 @@ import type { GetCourseExport } from '@easyedu/js-lsm-api'
28
29
  const example = {
29
30
  "id": null,
30
31
  "courseId": null,
32
+ "courseName": null,
31
33
  "courseVersionId": null,
32
34
  "exportType": null,
33
35
  "sectionIds": null,
package/docs/GetPortal.md CHANGED
@@ -15,6 +15,7 @@ Name | Type
15
15
  `faviconUrl` | string
16
16
  `headerBackgroundColor` | string
17
17
  `headerTextColor` | string
18
+ `brandingTheme` | [PortalBrandThemeV1](PortalBrandThemeV1.md)
18
19
  `baseType` | string
19
20
 
20
21
  ## Example
@@ -33,6 +34,7 @@ const example = {
33
34
  "faviconUrl": null,
34
35
  "headerBackgroundColor": null,
35
36
  "headerTextColor": null,
37
+ "brandingTheme": null,
36
38
  "baseType": null,
37
39
  } satisfies GetPortal
38
40
 
@@ -14,6 +14,7 @@ Name | Type
14
14
  `faviconUrl` | string
15
15
  `headerBackgroundColor` | string
16
16
  `headerTextColor` | string
17
+ `brandingTheme` | [PortalBrandThemeV1](PortalBrandThemeV1.md)
17
18
 
18
19
  ## Example
19
20
 
@@ -29,6 +30,7 @@ const example = {
29
30
  "faviconUrl": null,
30
31
  "headerBackgroundColor": null,
31
32
  "headerTextColor": null,
33
+ "brandingTheme": null,
32
34
  } satisfies GetPublicPortalBranding
33
35
 
34
36
  console.log(example)
package/docs/PortalApi.md CHANGED
@@ -20,7 +20,7 @@ All URIs are relative to *https://sbzw93t49b.execute-api.us-east-2.amazonaws.com
20
20
  | [**postPortal**](PortalApi.md#postportal) | **POST** /portals | Create a new portal as a child of the current selected portal |
21
21
  | [**postPortalFaviconUpload**](PortalApi.md#postportalfaviconupload) | **POST** /portals/{portalId}/branding/favicon | Upload a favicon image for portal branding |
22
22
  | [**postPortalLogoUpload**](PortalApi.md#postportallogoupload) | **POST** /portals/{portalId}/branding/logo | Upload a logo image for portal branding |
23
- | [**putPortalBranding**](PortalApi.md#putportalbranding) | **PUT** /portals/{portalId} | Update portal branding (name, background color, text color) |
23
+ | [**putPortalBranding**](PortalApi.md#putportalbranding) | **PUT** /portals/{portalId} | Update portal branding and complete application theme |
24
24
  | [**putPortalUserFieldConfig**](PortalApi.md#putportaluserfieldconfig) | **PUT** /portals/{portalId}/user-field-config | Replace portal user field configuration |
25
25
  | [**putPortalUserFieldValues**](PortalApi.md#putportaluserfieldvalues) | **PUT** /portals/{portalId}/users/{userId}/user-field-values | Bulk upsert a user\'s portal field values |
26
26
  | [**removePortalUser**](PortalApi.md#removeportaluser) | **DELETE** /portals/{portalId}/users/{userId} | Remove a user from a portal |
@@ -1096,7 +1096,7 @@ No authorization required
1096
1096
 
1097
1097
  > GetPortal putPortalBranding(portalId, putPortalBranding)
1098
1098
 
1099
- Update portal branding (name, background color, text color)
1099
+ Update portal branding and complete application theme
1100
1100
 
1101
1101
  ### Example
1102
1102
 
@@ -0,0 +1,89 @@
1
+
2
+ # PortalBrandColorsV1
3
+
4
+ Semantic colors for a portal-owned light application theme. Every value is an opaque hexadecimal color.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `headerBackground` | string
11
+ `headerForeground` | string
12
+ `navigationBackground` | string
13
+ `navigationForeground` | string
14
+ `primaryAction` | string
15
+ `onPrimaryAction` | string
16
+ `secondaryAction` | string
17
+ `onSecondaryAction` | string
18
+ `pageBackground` | string
19
+ `surfaceBackground` | string
20
+ `textPrimary` | string
21
+ `textSecondary` | string
22
+ `divider` | string
23
+ `link` | string
24
+ `linkHover` | string
25
+ `active` | string
26
+ `onActive` | string
27
+ `focusRing` | string
28
+ `progress` | string
29
+ `progressTrack` | string
30
+ `success` | string
31
+ `onSuccess` | string
32
+ `warning` | string
33
+ `onWarning` | string
34
+ `error` | string
35
+ `onError` | string
36
+ `info` | string
37
+ `onInfo` | string
38
+
39
+ ## Example
40
+
41
+ ```typescript
42
+ import type { PortalBrandColorsV1 } from '@easyedu/js-lsm-api'
43
+
44
+ // TODO: Update the object below with actual values
45
+ const example = {
46
+ "headerBackground": null,
47
+ "headerForeground": null,
48
+ "navigationBackground": null,
49
+ "navigationForeground": null,
50
+ "primaryAction": null,
51
+ "onPrimaryAction": null,
52
+ "secondaryAction": null,
53
+ "onSecondaryAction": null,
54
+ "pageBackground": null,
55
+ "surfaceBackground": null,
56
+ "textPrimary": null,
57
+ "textSecondary": null,
58
+ "divider": null,
59
+ "link": null,
60
+ "linkHover": null,
61
+ "active": null,
62
+ "onActive": null,
63
+ "focusRing": null,
64
+ "progress": null,
65
+ "progressTrack": null,
66
+ "success": null,
67
+ "onSuccess": null,
68
+ "warning": null,
69
+ "onWarning": null,
70
+ "error": null,
71
+ "onError": null,
72
+ "info": null,
73
+ "onInfo": null,
74
+ } satisfies PortalBrandColorsV1
75
+
76
+ console.log(example)
77
+
78
+ // Convert the instance to a JSON string
79
+ const exampleJSON: string = JSON.stringify(example)
80
+ console.log(exampleJSON)
81
+
82
+ // Parse the JSON string back to an object
83
+ const exampleParsed = JSON.parse(exampleJSON) as PortalBrandColorsV1
84
+ console.log(exampleParsed)
85
+ ```
86
+
87
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
88
+
89
+
@@ -0,0 +1,39 @@
1
+
2
+ # PortalBrandThemeV1
3
+
4
+ Complete version 1 portal application theme. Updates replace this object as a whole.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `schemaVersion` | string
11
+ `typography` | [PortalBrandTypographyV1](PortalBrandTypographyV1.md)
12
+ `colors` | [PortalBrandColorsV1](PortalBrandColorsV1.md)
13
+
14
+ ## Example
15
+
16
+ ```typescript
17
+ import type { PortalBrandThemeV1 } from '@easyedu/js-lsm-api'
18
+
19
+ // TODO: Update the object below with actual values
20
+ const example = {
21
+ "schemaVersion": null,
22
+ "typography": null,
23
+ "colors": null,
24
+ } satisfies PortalBrandThemeV1
25
+
26
+ console.log(example)
27
+
28
+ // Convert the instance to a JSON string
29
+ const exampleJSON: string = JSON.stringify(example)
30
+ console.log(exampleJSON)
31
+
32
+ // Parse the JSON string back to an object
33
+ const exampleParsed = JSON.parse(exampleJSON) as PortalBrandThemeV1
34
+ console.log(exampleParsed)
35
+ ```
36
+
37
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
38
+
39
+
@@ -0,0 +1,47 @@
1
+
2
+ # PortalBrandTypographyV1
3
+
4
+ Typography settings for a portal-owned light application theme.
5
+
6
+ ## Properties
7
+
8
+ Name | Type
9
+ ------------ | -------------
10
+ `fontFamily` | string
11
+ `baseFontSizePx` | number
12
+ `fontWeightRegular` | number
13
+ `fontWeightMedium` | number
14
+ `fontWeightBold` | number
15
+ `lineHeight` | number
16
+ `letterSpacingEm` | number
17
+
18
+ ## Example
19
+
20
+ ```typescript
21
+ import type { PortalBrandTypographyV1 } from '@easyedu/js-lsm-api'
22
+
23
+ // TODO: Update the object below with actual values
24
+ const example = {
25
+ "fontFamily": null,
26
+ "baseFontSizePx": null,
27
+ "fontWeightRegular": null,
28
+ "fontWeightMedium": null,
29
+ "fontWeightBold": null,
30
+ "lineHeight": null,
31
+ "letterSpacingEm": null,
32
+ } satisfies PortalBrandTypographyV1
33
+
34
+ console.log(example)
35
+
36
+ // Convert the instance to a JSON string
37
+ const exampleJSON: string = JSON.stringify(example)
38
+ console.log(exampleJSON)
39
+
40
+ // Parse the JSON string back to an object
41
+ const exampleParsed = JSON.parse(exampleJSON) as PortalBrandTypographyV1
42
+ console.log(exampleParsed)
43
+ ```
44
+
45
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
46
+
47
+
@@ -9,6 +9,7 @@ Name | Type
9
9
  `name` | string
10
10
  `headerBackgroundColor` | string
11
11
  `headerTextColor` | string
12
+ `brandingTheme` | [PortalBrandThemeV1](PortalBrandThemeV1.md)
12
13
  `slug` | string
13
14
  `clientDomain` | string
14
15
 
@@ -22,6 +23,7 @@ const example = {
22
23
  "name": null,
23
24
  "headerBackgroundColor": null,
24
25
  "headerTextColor": null,
26
+ "brandingTheme": null,
25
27
  "slug": null,
26
28
  "clientDomain": null,
27
29
  } satisfies PostPortal
@@ -9,6 +9,7 @@ Name | Type
9
9
  `name` | string
10
10
  `headerBackgroundColor` | string
11
11
  `headerTextColor` | string
12
+ `brandingTheme` | [PortalBrandThemeV1](PortalBrandThemeV1.md)
12
13
  `slug` | string
13
14
  `clientDomain` | string
14
15
 
@@ -22,6 +23,7 @@ const example = {
22
23
  "name": null,
23
24
  "headerBackgroundColor": null,
24
25
  "headerTextColor": null,
26
+ "brandingTheme": null,
25
27
  "slug": null,
26
28
  "clientDomain": null,
27
29
  } satisfies PutPortalBranding
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyedu/js-lsm-api",
3
- "version": "1.105.0",
3
+ "version": "1.107.0",
4
4
  "description": "OpenAPI client for @easyedu/js-lsm-api",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -299,6 +299,13 @@ export interface GetCourseVersionProgressionRequest {
299
299
  preview?: boolean;
300
300
  }
301
301
 
302
+ export interface GetPortalCourseExportsRequest {
303
+ page?: number;
304
+ pageSize?: number;
305
+ courseId?: string;
306
+ status?: GetPortalCourseExportsStatusEnum;
307
+ }
308
+
302
309
  export interface PostCourseRequest {
303
310
  postCourse: PostCourse;
304
311
  }
@@ -1445,6 +1452,59 @@ export class CourseApi extends runtime.BaseAPI {
1445
1452
  return await response.value();
1446
1453
  }
1447
1454
 
1455
+ /**
1456
+ * Creates request options for getPortalCourseExports without sending the request
1457
+ */
1458
+ async getPortalCourseExportsRequestOpts(requestParameters: GetPortalCourseExportsRequest): Promise<runtime.RequestOpts> {
1459
+ const queryParameters: any = {};
1460
+
1461
+ if (requestParameters['page'] != null) {
1462
+ queryParameters['page'] = requestParameters['page'];
1463
+ }
1464
+
1465
+ if (requestParameters['pageSize'] != null) {
1466
+ queryParameters['page_size'] = requestParameters['pageSize'];
1467
+ }
1468
+
1469
+ if (requestParameters['courseId'] != null) {
1470
+ queryParameters['course_id'] = requestParameters['courseId'];
1471
+ }
1472
+
1473
+ if (requestParameters['status'] != null) {
1474
+ queryParameters['status'] = requestParameters['status'];
1475
+ }
1476
+
1477
+ const headerParameters: runtime.HTTPHeaders = {};
1478
+
1479
+
1480
+ let urlPath = `/course-exports`;
1481
+
1482
+ return {
1483
+ path: urlPath,
1484
+ method: 'GET',
1485
+ headers: headerParameters,
1486
+ query: queryParameters,
1487
+ };
1488
+ }
1489
+
1490
+ /**
1491
+ * List SCORM exports owned by the current portal
1492
+ */
1493
+ async getPortalCourseExportsRaw(requestParameters: GetPortalCourseExportsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetCourseExportList>> {
1494
+ const requestOptions = await this.getPortalCourseExportsRequestOpts(requestParameters);
1495
+ const response = await this.request(requestOptions, initOverrides);
1496
+
1497
+ return new runtime.JSONApiResponse(response, (jsonValue) => GetCourseExportListFromJSON(jsonValue));
1498
+ }
1499
+
1500
+ /**
1501
+ * List SCORM exports owned by the current portal
1502
+ */
1503
+ async getPortalCourseExports(requestParameters: GetPortalCourseExportsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetCourseExportList> {
1504
+ const response = await this.getPortalCourseExportsRaw(requestParameters, initOverrides);
1505
+ return await response.value();
1506
+ }
1507
+
1448
1508
  /**
1449
1509
  * Creates request options for postCourse without sending the request
1450
1510
  */
@@ -1728,7 +1788,7 @@ export class CourseApi extends runtime.BaseAPI {
1728
1788
  }
1729
1789
 
1730
1790
  /**
1731
- * Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Actual SCORM package generation is not yet implemented (TODO) - Export metadata should be persisted to a database table (TODO) - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1791
+ * Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1732
1792
  * Create a new SCORM export for a course
1733
1793
  */
1734
1794
  async postCourseExportRaw(requestParameters: PostCourseExportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetCourseExport>> {
@@ -1739,7 +1799,7 @@ export class CourseApi extends runtime.BaseAPI {
1739
1799
  }
1740
1800
 
1741
1801
  /**
1742
- * Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Actual SCORM package generation is not yet implemented (TODO) - Export metadata should be persisted to a database table (TODO) - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1802
+ * Enqueues a job to generate a SCORM export package for the course. Returns immediately with PENDING status. **NOTES:** - This endpoint enqueues a background job to generate the SCORM package - Poll GET /courses/{courseId}/exports/{exportId} to check status - Download URL will be available when status becomes COMPLETED
1743
1803
  * Create a new SCORM export for a course
1744
1804
  */
1745
1805
  async postCourseExport(requestParameters: PostCourseExportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetCourseExport> {
@@ -2702,3 +2762,13 @@ export const GetCourseEnrollmentsTypeEnum = {
2702
2762
  Instructor: 'instructor'
2703
2763
  } as const;
2704
2764
  export type GetCourseEnrollmentsTypeEnum = typeof GetCourseEnrollmentsTypeEnum[keyof typeof GetCourseEnrollmentsTypeEnum];
2765
+ /**
2766
+ * @export
2767
+ */
2768
+ export const GetPortalCourseExportsStatusEnum = {
2769
+ Pending: 'PENDING',
2770
+ Processing: 'PROCESSING',
2771
+ Completed: 'COMPLETED',
2772
+ Failed: 'FAILED'
2773
+ } as const;
2774
+ export type GetPortalCourseExportsStatusEnum = typeof GetPortalCourseExportsStatusEnum[keyof typeof GetPortalCourseExportsStatusEnum];