@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.
- package/.openapi-generator/FILES +6 -0
- package/README.md +9 -5
- package/dist/apis/CourseApi.d.ts +30 -2
- package/dist/apis/CourseApi.js +59 -3
- package/dist/apis/CourseShareApi.d.ts +21 -7
- package/dist/apis/CourseShareApi.js +24 -11
- package/dist/apis/PortalApi.d.ts +2 -2
- package/dist/apis/PortalApi.js +2 -2
- package/dist/esm/apis/CourseApi.d.ts +30 -2
- package/dist/esm/apis/CourseApi.js +58 -2
- package/dist/esm/apis/CourseShareApi.d.ts +21 -7
- package/dist/esm/apis/CourseShareApi.js +23 -10
- package/dist/esm/apis/PortalApi.d.ts +2 -2
- package/dist/esm/apis/PortalApi.js +2 -2
- package/dist/esm/models/CourseShare.d.ts +57 -9
- package/dist/esm/models/CourseShare.js +32 -0
- package/dist/esm/models/GetCourseExport.d.ts +6 -0
- package/dist/esm/models/GetCourseExport.js +4 -0
- package/dist/esm/models/GetPortal.d.ts +11 -2
- package/dist/esm/models/GetPortal.js +5 -0
- package/dist/esm/models/GetPublicPortalBranding.d.ts +11 -2
- package/dist/esm/models/GetPublicPortalBranding.js +5 -0
- package/dist/esm/models/PortalBrandColorsV1.d.ts +194 -0
- package/dist/esm/models/PortalBrandColorsV1.js +151 -0
- package/dist/esm/models/PortalBrandThemeV1.d.ts +53 -0
- package/dist/esm/models/PortalBrandThemeV1.js +59 -0
- package/dist/esm/models/PortalBrandTypographyV1.d.ts +80 -0
- package/dist/esm/models/PortalBrandTypographyV1.js +78 -0
- package/dist/esm/models/PostOfferCatalog.d.ts +1 -1
- package/dist/esm/models/PostOfferCourse.d.ts +1 -1
- package/dist/esm/models/PostPortal.d.ts +9 -0
- package/dist/esm/models/PostPortal.js +3 -0
- package/dist/esm/models/PutPortalBranding.d.ts +9 -0
- package/dist/esm/models/PutPortalBranding.js +3 -0
- package/dist/esm/models/index.d.ts +3 -0
- package/dist/esm/models/index.js +3 -0
- package/dist/models/CourseShare.d.ts +57 -9
- package/dist/models/CourseShare.js +32 -0
- package/dist/models/GetCourseExport.d.ts +6 -0
- package/dist/models/GetCourseExport.js +4 -0
- package/dist/models/GetPortal.d.ts +11 -2
- package/dist/models/GetPortal.js +5 -0
- package/dist/models/GetPublicPortalBranding.d.ts +11 -2
- package/dist/models/GetPublicPortalBranding.js +5 -0
- package/dist/models/PortalBrandColorsV1.d.ts +194 -0
- package/dist/models/PortalBrandColorsV1.js +158 -0
- package/dist/models/PortalBrandThemeV1.d.ts +53 -0
- package/dist/models/PortalBrandThemeV1.js +67 -0
- package/dist/models/PortalBrandTypographyV1.d.ts +80 -0
- package/dist/models/PortalBrandTypographyV1.js +86 -0
- package/dist/models/PostOfferCatalog.d.ts +1 -1
- package/dist/models/PostOfferCourse.d.ts +1 -1
- package/dist/models/PostPortal.d.ts +9 -0
- package/dist/models/PostPortal.js +3 -0
- package/dist/models/PutPortalBranding.d.ts +9 -0
- package/dist/models/PutPortalBranding.js +3 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.js +3 -0
- package/docs/CourseApi.md +79 -1
- package/docs/CourseShare.md +19 -3
- package/docs/CourseShareApi.md +20 -9
- package/docs/GetCourseExport.md +2 -0
- package/docs/GetPortal.md +2 -0
- package/docs/GetPublicPortalBranding.md +2 -0
- package/docs/PortalApi.md +2 -2
- package/docs/PortalBrandColorsV1.md +89 -0
- package/docs/PortalBrandThemeV1.md +39 -0
- package/docs/PortalBrandTypographyV1.md +47 -0
- package/docs/PostPortal.md +2 -0
- package/docs/PutPortalBranding.md +2 -0
- package/package.json +1 -1
- package/src/apis/CourseApi.ts +72 -2
- package/src/apis/CourseShareApi.ts +28 -9
- package/src/apis/PortalApi.ts +2 -2
- package/src/models/CourseShare.ts +81 -9
- package/src/models/GetCourseExport.ts +9 -0
- package/src/models/GetPortal.ts +21 -2
- package/src/models/GetPublicPortalBranding.ts +21 -2
- package/src/models/PortalBrandColorsV1.ts +309 -0
- package/src/models/PortalBrandThemeV1.ts +109 -0
- package/src/models/PortalBrandTypographyV1.ts +135 -0
- package/src/models/PostOfferCatalog.ts +1 -1
- package/src/models/PostOfferCourse.ts +1 -1
- package/src/models/PostPortal.ts +18 -0
- package/src/models/PutPortalBranding.ts +18 -0
- 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 -
|
|
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
|
|
package/docs/CourseShare.md
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
|
|
2
2
|
# CourseShare
|
|
3
3
|
|
|
4
|
-
|
|
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` |
|
|
11
|
+
`sourcePortalId` | string
|
|
12
12
|
`sourcePortalName` | string
|
|
13
|
-
`
|
|
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)
|
package/docs/CourseShareApi.md
CHANGED
|
@@ -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
|
|
11
|
-
| [**postOfferCourse**](CourseShareApi.md#postoffercourse) | **POST** /courses/{courseId}/shares | Offer a single course to
|
|
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
|
-
|
|
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
|
|
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
|
-
| **
|
|
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
|
|
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
|
-
| **
|
|
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)
|
package/docs/GetCourseExport.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
+
|
package/docs/PostPortal.md
CHANGED
|
@@ -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
package/src/apis/CourseApi.ts
CHANGED
|
@@ -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 -
|
|
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 -
|
|
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];
|