@easyedu/js-lsm-api 1.67.0 → 1.68.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 +8 -0
- package/README.md +8 -2
- package/dist/apis/ContentApi.d.ts +56 -0
- package/dist/apis/ContentApi.js +121 -1
- package/dist/esm/apis/ContentApi.d.ts +56 -0
- package/dist/esm/apis/ContentApi.js +120 -0
- package/dist/esm/models/ContentAttemptItem.d.ts +69 -0
- package/dist/esm/models/ContentAttemptItem.js +68 -0
- package/dist/esm/models/ContentAttemptRollupScore.d.ts +38 -0
- package/dist/esm/models/ContentAttemptRollupScore.js +47 -0
- package/dist/esm/models/ContentAttemptScore.d.ts +50 -0
- package/dist/esm/models/ContentAttemptScore.js +47 -0
- package/dist/esm/models/GetContentAttempts.d.ts +90 -0
- package/dist/esm/models/GetContentAttempts.js +84 -0
- package/dist/esm/models/GetContentSession.d.ts +12 -0
- package/dist/esm/models/GetContentSession.js +8 -0
- package/dist/esm/models/GetContentSessionDetail.d.ts +12 -0
- package/dist/esm/models/GetContentSessionDetail.js +8 -0
- package/dist/esm/models/GetContentSessionListItem.d.ts +24 -0
- package/dist/esm/models/GetContentSessionListItem.js +16 -0
- package/dist/esm/models/PostContentSession.d.ts +12 -0
- package/dist/esm/models/PostContentSession.js +8 -0
- package/dist/esm/models/index.d.ts +4 -0
- package/dist/esm/models/index.js +4 -0
- package/dist/models/ContentAttemptItem.d.ts +69 -0
- package/dist/models/ContentAttemptItem.js +75 -0
- package/dist/models/ContentAttemptRollupScore.d.ts +38 -0
- package/dist/models/ContentAttemptRollupScore.js +54 -0
- package/dist/models/ContentAttemptScore.d.ts +50 -0
- package/dist/models/ContentAttemptScore.js +54 -0
- package/dist/models/GetContentAttempts.d.ts +90 -0
- package/dist/models/GetContentAttempts.js +92 -0
- package/dist/models/GetContentSession.d.ts +12 -0
- package/dist/models/GetContentSession.js +8 -0
- package/dist/models/GetContentSessionDetail.d.ts +12 -0
- package/dist/models/GetContentSessionDetail.js +8 -0
- package/dist/models/GetContentSessionListItem.d.ts +24 -0
- package/dist/models/GetContentSessionListItem.js +16 -0
- package/dist/models/PostContentSession.d.ts +12 -0
- package/dist/models/PostContentSession.js +8 -0
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.js +4 -0
- package/docs/ContentApi.md +159 -0
- package/docs/ContentAttemptItem.md +47 -0
- package/docs/ContentAttemptRollupScore.md +37 -0
- package/docs/ContentAttemptScore.md +41 -0
- package/docs/GetContentAttempts.md +51 -0
- package/docs/GetContentSession.md +4 -0
- package/docs/GetContentSessionDetail.md +4 -0
- package/docs/GetContentSessionListItem.md +8 -0
- package/docs/PostContentSession.md +4 -0
- package/package.json +1 -1
- package/src/apis/ContentApi.ts +172 -0
- package/src/models/ContentAttemptItem.ts +128 -0
- package/src/models/ContentAttemptRollupScore.ts +75 -0
- package/src/models/ContentAttemptScore.ts +89 -0
- package/src/models/GetContentAttempts.ts +164 -0
- package/src/models/GetContentSession.ts +18 -0
- package/src/models/GetContentSessionDetail.ts +18 -0
- package/src/models/GetContentSessionListItem.ts +36 -0
- package/src/models/PostContentSession.ts +18 -0
- package/src/models/index.ts +4 -0
|
@@ -32,6 +32,14 @@ function instanceOfGetContentSessionListItem(value) {
|
|
|
32
32
|
return false;
|
|
33
33
|
if (!('contentId' in value) || value['contentId'] === undefined)
|
|
34
34
|
return false;
|
|
35
|
+
if (!('completionStatus' in value) || value['completionStatus'] === undefined)
|
|
36
|
+
return false;
|
|
37
|
+
if (!('gradeStatus' in value) || value['gradeStatus'] === undefined)
|
|
38
|
+
return false;
|
|
39
|
+
if (!('attemptNumber' in value) || value['attemptNumber'] === undefined)
|
|
40
|
+
return false;
|
|
41
|
+
if (!('isCurrent' in value) || value['isCurrent'] === undefined)
|
|
42
|
+
return false;
|
|
35
43
|
if (!('userData' in value) || value['userData'] === undefined)
|
|
36
44
|
return false;
|
|
37
45
|
if (!('scormSessionData' in value) || value['scormSessionData'] === undefined)
|
|
@@ -50,6 +58,10 @@ function GetContentSessionListItemFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
50
58
|
'createdAt': json['created_at'],
|
|
51
59
|
'updatedAt': json['updated_at'],
|
|
52
60
|
'contentId': json['content_id'],
|
|
61
|
+
'completionStatus': json['completion_status'],
|
|
62
|
+
'gradeStatus': json['grade_status'],
|
|
63
|
+
'attemptNumber': json['attempt_number'],
|
|
64
|
+
'isCurrent': json['is_current'],
|
|
53
65
|
'userData': (0, GetContentSessionDetailUserData_1.GetContentSessionDetailUserDataFromJSON)(json['user_data']),
|
|
54
66
|
'scormSessionData': (0, GetContentSessionListItemScormSessionData_1.GetContentSessionListItemScormSessionDataFromJSON)(json['scorm_session_data']),
|
|
55
67
|
};
|
|
@@ -66,6 +78,10 @@ function GetContentSessionListItemToJSONTyped(value, ignoreDiscriminator = false
|
|
|
66
78
|
'created_at': value['createdAt'],
|
|
67
79
|
'updated_at': value['updatedAt'],
|
|
68
80
|
'content_id': value['contentId'],
|
|
81
|
+
'completion_status': value['completionStatus'],
|
|
82
|
+
'grade_status': value['gradeStatus'],
|
|
83
|
+
'attempt_number': value['attemptNumber'],
|
|
84
|
+
'is_current': value['isCurrent'],
|
|
69
85
|
'user_data': (0, GetContentSessionDetailUserData_1.GetContentSessionDetailUserDataToJSON)(value['userData']),
|
|
70
86
|
'scorm_session_data': (0, GetContentSessionListItemScormSessionData_1.GetContentSessionListItemScormSessionDataToJSON)(value['scormSessionData']),
|
|
71
87
|
};
|
|
@@ -52,6 +52,18 @@ export interface PostContentSession {
|
|
|
52
52
|
* @memberof PostContentSession
|
|
53
53
|
*/
|
|
54
54
|
playerSessionId?: string | null;
|
|
55
|
+
/**
|
|
56
|
+
* The learner attempt number for this content session
|
|
57
|
+
* @type {number}
|
|
58
|
+
* @memberof PostContentSession
|
|
59
|
+
*/
|
|
60
|
+
attemptNumber: number;
|
|
61
|
+
/**
|
|
62
|
+
* Whether this is the current attempt used for learner progress display
|
|
63
|
+
* @type {boolean}
|
|
64
|
+
* @memberof PostContentSession
|
|
65
|
+
*/
|
|
66
|
+
isCurrent: boolean;
|
|
55
67
|
}
|
|
56
68
|
/**
|
|
57
69
|
* Check if a given object implements the PostContentSession interface.
|
|
@@ -33,6 +33,10 @@ function instanceOfPostContentSession(value) {
|
|
|
33
33
|
return false;
|
|
34
34
|
if (!('createdAt' in value) || value['createdAt'] === undefined)
|
|
35
35
|
return false;
|
|
36
|
+
if (!('attemptNumber' in value) || value['attemptNumber'] === undefined)
|
|
37
|
+
return false;
|
|
38
|
+
if (!('isCurrent' in value) || value['isCurrent'] === undefined)
|
|
39
|
+
return false;
|
|
36
40
|
return true;
|
|
37
41
|
}
|
|
38
42
|
function PostContentSessionFromJSON(json) {
|
|
@@ -49,6 +53,8 @@ function PostContentSessionFromJSONTyped(json, ignoreDiscriminator) {
|
|
|
49
53
|
'launchMode': (0, ContentLaunchMode_1.ContentLaunchModeFromJSON)(json['launch_mode']),
|
|
50
54
|
'createdAt': json['created_at'],
|
|
51
55
|
'playerSessionId': json['player_session_id'] == null ? undefined : json['player_session_id'],
|
|
56
|
+
'attemptNumber': json['attempt_number'],
|
|
57
|
+
'isCurrent': json['is_current'],
|
|
52
58
|
};
|
|
53
59
|
}
|
|
54
60
|
function PostContentSessionToJSON(json) {
|
|
@@ -65,5 +71,7 @@ function PostContentSessionToJSONTyped(value, ignoreDiscriminator = false) {
|
|
|
65
71
|
'launch_mode': (0, ContentLaunchMode_1.ContentLaunchModeToJSON)(value['launchMode']),
|
|
66
72
|
'created_at': value['createdAt'],
|
|
67
73
|
'player_session_id': value['playerSessionId'],
|
|
74
|
+
'attempt_number': value['attemptNumber'],
|
|
75
|
+
'is_current': value['isCurrent'],
|
|
68
76
|
};
|
|
69
77
|
}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './Certificate';
|
|
2
2
|
export * from './CertificateConfig';
|
|
3
3
|
export * from './CertificatePublic';
|
|
4
|
+
export * from './ContentAttemptItem';
|
|
5
|
+
export * from './ContentAttemptRollupScore';
|
|
6
|
+
export * from './ContentAttemptScore';
|
|
4
7
|
export * from './ContentLaunchMode';
|
|
5
8
|
export * from './CourseCatalog';
|
|
6
9
|
export * from './CourseShare';
|
|
@@ -16,6 +19,7 @@ export * from './GetCertificateConfigList';
|
|
|
16
19
|
export * from './GetCertificateList';
|
|
17
20
|
export * from './GetChatMessage';
|
|
18
21
|
export * from './GetContent';
|
|
22
|
+
export * from './GetContentAttempts';
|
|
19
23
|
export * from './GetContentContentData';
|
|
20
24
|
export * from './GetContentGradeDetail';
|
|
21
25
|
export * from './GetContentGrades';
|
package/dist/models/index.js
CHANGED
|
@@ -19,6 +19,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
__exportStar(require("./Certificate"), exports);
|
|
20
20
|
__exportStar(require("./CertificateConfig"), exports);
|
|
21
21
|
__exportStar(require("./CertificatePublic"), exports);
|
|
22
|
+
__exportStar(require("./ContentAttemptItem"), exports);
|
|
23
|
+
__exportStar(require("./ContentAttemptRollupScore"), exports);
|
|
24
|
+
__exportStar(require("./ContentAttemptScore"), exports);
|
|
22
25
|
__exportStar(require("./ContentLaunchMode"), exports);
|
|
23
26
|
__exportStar(require("./CourseCatalog"), exports);
|
|
24
27
|
__exportStar(require("./CourseShare"), exports);
|
|
@@ -34,6 +37,7 @@ __exportStar(require("./GetCertificateConfigList"), exports);
|
|
|
34
37
|
__exportStar(require("./GetCertificateList"), exports);
|
|
35
38
|
__exportStar(require("./GetChatMessage"), exports);
|
|
36
39
|
__exportStar(require("./GetContent"), exports);
|
|
40
|
+
__exportStar(require("./GetContentAttempts"), exports);
|
|
37
41
|
__exportStar(require("./GetContentContentData"), exports);
|
|
38
42
|
__exportStar(require("./GetContentGradeDetail"), exports);
|
|
39
43
|
__exportStar(require("./GetContentGrades"), exports);
|
package/docs/ContentApi.md
CHANGED
|
@@ -8,6 +8,7 @@ All URIs are relative to *https://sbzw93t49b.execute-api.us-east-2.amazonaws.com
|
|
|
8
8
|
| [**deleteContent**](ContentApi.md#deletecontent) | **DELETE** /courses/{courseId}/modules/{moduleId}/contents/{contentId} | Delete content by id |
|
|
9
9
|
| [**deleteContentVersion**](ContentApi.md#deletecontentversion) | **DELETE** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/versions/{versionId} | Delete an inactive content version |
|
|
10
10
|
| [**getContent**](ContentApi.md#getcontent) | **GET** /courses/{courseId}/modules/{moduleId}/contents/{contentId} | get content |
|
|
11
|
+
| [**getContentAttempts**](ContentApi.md#getcontentattempts) | **GET** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/attempts | Get content attempts |
|
|
11
12
|
| [**getContentList**](ContentApi.md#getcontentlist) | **GET** /courses/{courseId}/modules/{moduleId}/contents | get content list |
|
|
12
13
|
| [**getContentSession**](ContentApi.md#getcontentsession) | **GET** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/session | get content session |
|
|
13
14
|
| [**getContentSessionDetail**](ContentApi.md#getcontentsessiondetail) | **GET** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/sessions/{sessionId} | Get content session details (instructor only) |
|
|
@@ -23,6 +24,7 @@ All URIs are relative to *https://sbzw93t49b.execute-api.us-east-2.amazonaws.com
|
|
|
23
24
|
| [**postContentProcess**](ContentApi.md#postcontentprocess) | **POST** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/process | Post a new content process |
|
|
24
25
|
| [**postContentQuiz**](ContentApi.md#postcontentquiz) | **POST** /courses/{courseId}/modules/{moduleId}/contents/quiz | Create a new quiz content |
|
|
25
26
|
| [**postContentSession**](ContentApi.md#postcontentsession) | **POST** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/session | Post a new content session |
|
|
27
|
+
| [**postContentSessionRetake**](ContentApi.md#postcontentsessionretake) | **POST** /courses/{courseId}/modules/{moduleId}/contents/{contentId}/session/retake | Create a new retake content session |
|
|
26
28
|
| [**postContentUpload**](ContentApi.md#postcontentupload) | **POST** /courses/{courseId}/modules/{moduleId}/contents/upload | Post a new content upload |
|
|
27
29
|
| [**putContent**](ContentApi.md#putcontent) | **PUT** /courses/{courseId}/modules/{moduleId}/contents/{contentId} | Update content by id |
|
|
28
30
|
| [**putContentReorder**](ContentApi.md#putcontentreorder) | **PUT** /courses/{courseId}/modules/{moduleId}/contents/reorder | Reorder content in a module |
|
|
@@ -327,6 +329,88 @@ No authorization required
|
|
|
327
329
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
328
330
|
|
|
329
331
|
|
|
332
|
+
## getContentAttempts
|
|
333
|
+
|
|
334
|
+
> GetContentAttempts getContentAttempts(contentId, moduleId, courseId, userId, environment)
|
|
335
|
+
|
|
336
|
+
Get content attempts
|
|
337
|
+
|
|
338
|
+
Lists content attempts and score rollup for the current learner. Instructors may pass user_id to inspect another learner.
|
|
339
|
+
|
|
340
|
+
### Example
|
|
341
|
+
|
|
342
|
+
```ts
|
|
343
|
+
import {
|
|
344
|
+
Configuration,
|
|
345
|
+
ContentApi,
|
|
346
|
+
} from '@easyedu/js-lsm-api';
|
|
347
|
+
import type { GetContentAttemptsRequest } from '@easyedu/js-lsm-api';
|
|
348
|
+
|
|
349
|
+
async function example() {
|
|
350
|
+
console.log("🚀 Testing @easyedu/js-lsm-api SDK...");
|
|
351
|
+
const api = new ContentApi();
|
|
352
|
+
|
|
353
|
+
const body = {
|
|
354
|
+
// string
|
|
355
|
+
contentId: contentId_example,
|
|
356
|
+
// string
|
|
357
|
+
moduleId: moduleId_example,
|
|
358
|
+
// string
|
|
359
|
+
courseId: courseId_example,
|
|
360
|
+
// number | Internal user ID to inspect. Defaults to the authenticated user. (optional)
|
|
361
|
+
userId: 56,
|
|
362
|
+
// 'sandbox' | 'live' | Environment type for the attempts list (defaults to live) (optional)
|
|
363
|
+
environment: environment_example,
|
|
364
|
+
} satisfies GetContentAttemptsRequest;
|
|
365
|
+
|
|
366
|
+
try {
|
|
367
|
+
const data = await api.getContentAttempts(body);
|
|
368
|
+
console.log(data);
|
|
369
|
+
} catch (error) {
|
|
370
|
+
console.error(error);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Run the test
|
|
375
|
+
example().catch(console.error);
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### Parameters
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
| Name | Type | Description | Notes |
|
|
382
|
+
|------------- | ------------- | ------------- | -------------|
|
|
383
|
+
| **contentId** | `string` | | [Defaults to `undefined`] |
|
|
384
|
+
| **moduleId** | `string` | | [Defaults to `undefined`] |
|
|
385
|
+
| **courseId** | `string` | | [Defaults to `undefined`] |
|
|
386
|
+
| **userId** | `number` | Internal user ID to inspect. Defaults to the authenticated user. | [Optional] [Defaults to `undefined`] |
|
|
387
|
+
| **environment** | `sandbox`, `live` | Environment type for the attempts list (defaults to live) | [Optional] [Defaults to `'live'`] [Enum: sandbox, live] |
|
|
388
|
+
|
|
389
|
+
### Return type
|
|
390
|
+
|
|
391
|
+
[**GetContentAttempts**](GetContentAttempts.md)
|
|
392
|
+
|
|
393
|
+
### Authorization
|
|
394
|
+
|
|
395
|
+
No authorization required
|
|
396
|
+
|
|
397
|
+
### HTTP request headers
|
|
398
|
+
|
|
399
|
+
- **Content-Type**: Not defined
|
|
400
|
+
- **Accept**: `application/json`
|
|
401
|
+
|
|
402
|
+
|
|
403
|
+
### HTTP response details
|
|
404
|
+
| Status code | Description | Response headers |
|
|
405
|
+
|-------------|-------------|------------------|
|
|
406
|
+
| **200** | Content attempts response OK | - |
|
|
407
|
+
| **401** | Unauthorized | - |
|
|
408
|
+
| **403** | Forbidden | - |
|
|
409
|
+
| **404** | Content not found | - |
|
|
410
|
+
|
|
411
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
412
|
+
|
|
413
|
+
|
|
330
414
|
## getContentList
|
|
331
415
|
|
|
332
416
|
> GetContentList getContentList(moduleId, courseId)
|
|
@@ -1442,6 +1526,81 @@ No authorization required
|
|
|
1442
1526
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1443
1527
|
|
|
1444
1528
|
|
|
1529
|
+
## postContentSessionRetake
|
|
1530
|
+
|
|
1531
|
+
> PostContentSession postContentSessionRetake(contentId, moduleId, courseId, environment)
|
|
1532
|
+
|
|
1533
|
+
Create a new retake content session
|
|
1534
|
+
|
|
1535
|
+
### Example
|
|
1536
|
+
|
|
1537
|
+
```ts
|
|
1538
|
+
import {
|
|
1539
|
+
Configuration,
|
|
1540
|
+
ContentApi,
|
|
1541
|
+
} from '@easyedu/js-lsm-api';
|
|
1542
|
+
import type { PostContentSessionRetakeRequest } from '@easyedu/js-lsm-api';
|
|
1543
|
+
|
|
1544
|
+
async function example() {
|
|
1545
|
+
console.log("🚀 Testing @easyedu/js-lsm-api SDK...");
|
|
1546
|
+
const api = new ContentApi();
|
|
1547
|
+
|
|
1548
|
+
const body = {
|
|
1549
|
+
// string
|
|
1550
|
+
contentId: contentId_example,
|
|
1551
|
+
// string
|
|
1552
|
+
moduleId: moduleId_example,
|
|
1553
|
+
// string
|
|
1554
|
+
courseId: courseId_example,
|
|
1555
|
+
// 'sandbox' | 'live' | Environment type for the session (defaults to live) (optional)
|
|
1556
|
+
environment: environment_example,
|
|
1557
|
+
} satisfies PostContentSessionRetakeRequest;
|
|
1558
|
+
|
|
1559
|
+
try {
|
|
1560
|
+
const data = await api.postContentSessionRetake(body);
|
|
1561
|
+
console.log(data);
|
|
1562
|
+
} catch (error) {
|
|
1563
|
+
console.error(error);
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
|
|
1567
|
+
// Run the test
|
|
1568
|
+
example().catch(console.error);
|
|
1569
|
+
```
|
|
1570
|
+
|
|
1571
|
+
### Parameters
|
|
1572
|
+
|
|
1573
|
+
|
|
1574
|
+
| Name | Type | Description | Notes |
|
|
1575
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1576
|
+
| **contentId** | `string` | | [Defaults to `undefined`] |
|
|
1577
|
+
| **moduleId** | `string` | | [Defaults to `undefined`] |
|
|
1578
|
+
| **courseId** | `string` | | [Defaults to `undefined`] |
|
|
1579
|
+
| **environment** | `sandbox`, `live` | Environment type for the session (defaults to live) | [Optional] [Defaults to `'live'`] [Enum: sandbox, live] |
|
|
1580
|
+
|
|
1581
|
+
### Return type
|
|
1582
|
+
|
|
1583
|
+
[**PostContentSession**](PostContentSession.md)
|
|
1584
|
+
|
|
1585
|
+
### Authorization
|
|
1586
|
+
|
|
1587
|
+
No authorization required
|
|
1588
|
+
|
|
1589
|
+
### HTTP request headers
|
|
1590
|
+
|
|
1591
|
+
- **Content-Type**: Not defined
|
|
1592
|
+
- **Accept**: `application/json`
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
### HTTP response details
|
|
1596
|
+
| Status code | Description | Response headers |
|
|
1597
|
+
|-------------|-------------|------------------|
|
|
1598
|
+
| **200** | post retake session response OK | - |
|
|
1599
|
+
| **409** | Maximum attempts reached for this content | - |
|
|
1600
|
+
|
|
1601
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1602
|
+
|
|
1603
|
+
|
|
1445
1604
|
## postContentUpload
|
|
1446
1605
|
|
|
1447
1606
|
> GetContentUpload postContentUpload(moduleId, courseId, postContentUpload)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
# ContentAttemptItem
|
|
3
|
+
|
|
4
|
+
A single learner attempt for a content item
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
Name | Type
|
|
9
|
+
------------ | -------------
|
|
10
|
+
`sessionId` | string
|
|
11
|
+
`attemptNumber` | number
|
|
12
|
+
`completionStatus` | string
|
|
13
|
+
`gradeStatus` | string
|
|
14
|
+
`score` | [ContentAttemptScore](ContentAttemptScore.md)
|
|
15
|
+
`createdAt` | number
|
|
16
|
+
`updatedAt` | number
|
|
17
|
+
|
|
18
|
+
## Example
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import type { ContentAttemptItem } from '@easyedu/js-lsm-api'
|
|
22
|
+
|
|
23
|
+
// TODO: Update the object below with actual values
|
|
24
|
+
const example = {
|
|
25
|
+
"sessionId": null,
|
|
26
|
+
"attemptNumber": null,
|
|
27
|
+
"completionStatus": null,
|
|
28
|
+
"gradeStatus": null,
|
|
29
|
+
"score": null,
|
|
30
|
+
"createdAt": null,
|
|
31
|
+
"updatedAt": null,
|
|
32
|
+
} satisfies ContentAttemptItem
|
|
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 ContentAttemptItem
|
|
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
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
# ContentAttemptRollupScore
|
|
3
|
+
|
|
4
|
+
Rolled-up score for a content item
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
Name | Type
|
|
9
|
+
------------ | -------------
|
|
10
|
+
`percentage` | number
|
|
11
|
+
`sourceAttemptNumber` | number
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import type { ContentAttemptRollupScore } from '@easyedu/js-lsm-api'
|
|
17
|
+
|
|
18
|
+
// TODO: Update the object below with actual values
|
|
19
|
+
const example = {
|
|
20
|
+
"percentage": null,
|
|
21
|
+
"sourceAttemptNumber": null,
|
|
22
|
+
} satisfies ContentAttemptRollupScore
|
|
23
|
+
|
|
24
|
+
console.log(example)
|
|
25
|
+
|
|
26
|
+
// Convert the instance to a JSON string
|
|
27
|
+
const exampleJSON: string = JSON.stringify(example)
|
|
28
|
+
console.log(exampleJSON)
|
|
29
|
+
|
|
30
|
+
// Parse the JSON string back to an object
|
|
31
|
+
const exampleParsed = JSON.parse(exampleJSON) as ContentAttemptRollupScore
|
|
32
|
+
console.log(exampleParsed)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
# ContentAttemptScore
|
|
3
|
+
|
|
4
|
+
Normalized score data for a content attempt
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
Name | Type
|
|
9
|
+
------------ | -------------
|
|
10
|
+
`raw` | number
|
|
11
|
+
`min` | number
|
|
12
|
+
`max` | number
|
|
13
|
+
`percentage` | number
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import type { ContentAttemptScore } from '@easyedu/js-lsm-api'
|
|
19
|
+
|
|
20
|
+
// TODO: Update the object below with actual values
|
|
21
|
+
const example = {
|
|
22
|
+
"raw": null,
|
|
23
|
+
"min": null,
|
|
24
|
+
"max": null,
|
|
25
|
+
"percentage": null,
|
|
26
|
+
} satisfies ContentAttemptScore
|
|
27
|
+
|
|
28
|
+
console.log(example)
|
|
29
|
+
|
|
30
|
+
// Convert the instance to a JSON string
|
|
31
|
+
const exampleJSON: string = JSON.stringify(example)
|
|
32
|
+
console.log(exampleJSON)
|
|
33
|
+
|
|
34
|
+
// Parse the JSON string back to an object
|
|
35
|
+
const exampleParsed = JSON.parse(exampleJSON) as ContentAttemptScore
|
|
36
|
+
console.log(exampleParsed)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
40
|
+
|
|
41
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
|
|
2
|
+
# GetContentAttempts
|
|
3
|
+
|
|
4
|
+
Learner attempt history and rollup for a content item
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
Name | Type
|
|
9
|
+
------------ | -------------
|
|
10
|
+
`contentId` | string
|
|
11
|
+
`userId` | string
|
|
12
|
+
`maxAttempts` | number
|
|
13
|
+
`attemptsUsed` | number
|
|
14
|
+
`attemptsRemaining` | number
|
|
15
|
+
`canStartNewAttempt` | boolean
|
|
16
|
+
`scoreRollupStrategy` | string
|
|
17
|
+
`rollupScore` | [ContentAttemptRollupScore](ContentAttemptRollupScore.md)
|
|
18
|
+
`attempts` | [Array<ContentAttemptItem>](ContentAttemptItem.md)
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import type { GetContentAttempts } from '@easyedu/js-lsm-api'
|
|
24
|
+
|
|
25
|
+
// TODO: Update the object below with actual values
|
|
26
|
+
const example = {
|
|
27
|
+
"contentId": null,
|
|
28
|
+
"userId": null,
|
|
29
|
+
"maxAttempts": null,
|
|
30
|
+
"attemptsUsed": null,
|
|
31
|
+
"attemptsRemaining": null,
|
|
32
|
+
"canStartNewAttempt": null,
|
|
33
|
+
"scoreRollupStrategy": null,
|
|
34
|
+
"rollupScore": null,
|
|
35
|
+
"attempts": null,
|
|
36
|
+
} satisfies GetContentAttempts
|
|
37
|
+
|
|
38
|
+
console.log(example)
|
|
39
|
+
|
|
40
|
+
// Convert the instance to a JSON string
|
|
41
|
+
const exampleJSON: string = JSON.stringify(example)
|
|
42
|
+
console.log(exampleJSON)
|
|
43
|
+
|
|
44
|
+
// Parse the JSON string back to an object
|
|
45
|
+
const exampleParsed = JSON.parse(exampleJSON) as GetContentAttempts
|
|
46
|
+
console.log(exampleParsed)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
50
|
+
|
|
51
|
+
|
|
@@ -13,6 +13,8 @@ Name | Type
|
|
|
13
13
|
`updatedAt` | number
|
|
14
14
|
`completionStatus` | string
|
|
15
15
|
`gradeStatus` | string
|
|
16
|
+
`attemptNumber` | number
|
|
17
|
+
`isCurrent` | boolean
|
|
16
18
|
|
|
17
19
|
## Example
|
|
18
20
|
|
|
@@ -27,6 +29,8 @@ const example = {
|
|
|
27
29
|
"updatedAt": null,
|
|
28
30
|
"completionStatus": null,
|
|
29
31
|
"gradeStatus": null,
|
|
32
|
+
"attemptNumber": null,
|
|
33
|
+
"isCurrent": null,
|
|
30
34
|
} satisfies GetContentSession
|
|
31
35
|
|
|
32
36
|
console.log(example)
|
|
@@ -14,6 +14,8 @@ Name | Type
|
|
|
14
14
|
`completionStatus` | string
|
|
15
15
|
`gradeStatus` | string
|
|
16
16
|
`durationInSeconds` | number
|
|
17
|
+
`attemptNumber` | number
|
|
18
|
+
`isCurrent` | boolean
|
|
17
19
|
`userData` | [GetContentSessionDetailUserData](GetContentSessionDetailUserData.md)
|
|
18
20
|
`scormSessionData` | [Array<GetContentSessionDetailScormSessionDataInner>](GetContentSessionDetailScormSessionDataInner.md)
|
|
19
21
|
|
|
@@ -31,6 +33,8 @@ const example = {
|
|
|
31
33
|
"completionStatus": null,
|
|
32
34
|
"gradeStatus": null,
|
|
33
35
|
"durationInSeconds": null,
|
|
36
|
+
"attemptNumber": null,
|
|
37
|
+
"isCurrent": null,
|
|
34
38
|
"userData": null,
|
|
35
39
|
"scormSessionData": null,
|
|
36
40
|
} satisfies GetContentSessionDetail
|
|
@@ -11,6 +11,10 @@ Name | Type
|
|
|
11
11
|
`createdAt` | number
|
|
12
12
|
`updatedAt` | number
|
|
13
13
|
`contentId` | string
|
|
14
|
+
`completionStatus` | string
|
|
15
|
+
`gradeStatus` | string
|
|
16
|
+
`attemptNumber` | number
|
|
17
|
+
`isCurrent` | boolean
|
|
14
18
|
`userData` | [GetContentSessionDetailUserData](GetContentSessionDetailUserData.md)
|
|
15
19
|
`scormSessionData` | [GetContentSessionListItemScormSessionData](GetContentSessionListItemScormSessionData.md)
|
|
16
20
|
|
|
@@ -25,6 +29,10 @@ const example = {
|
|
|
25
29
|
"createdAt": null,
|
|
26
30
|
"updatedAt": null,
|
|
27
31
|
"contentId": null,
|
|
32
|
+
"completionStatus": null,
|
|
33
|
+
"gradeStatus": null,
|
|
34
|
+
"attemptNumber": null,
|
|
35
|
+
"isCurrent": null,
|
|
28
36
|
"userData": null,
|
|
29
37
|
"scormSessionData": null,
|
|
30
38
|
} satisfies GetContentSessionListItem
|
|
@@ -13,6 +13,8 @@ Name | Type
|
|
|
13
13
|
`launchMode` | [ContentLaunchMode](ContentLaunchMode.md)
|
|
14
14
|
`createdAt` | number
|
|
15
15
|
`playerSessionId` | string
|
|
16
|
+
`attemptNumber` | number
|
|
17
|
+
`isCurrent` | boolean
|
|
16
18
|
|
|
17
19
|
## Example
|
|
18
20
|
|
|
@@ -27,6 +29,8 @@ const example = {
|
|
|
27
29
|
"launchMode": null,
|
|
28
30
|
"createdAt": null,
|
|
29
31
|
"playerSessionId": null,
|
|
32
|
+
"attemptNumber": null,
|
|
33
|
+
"isCurrent": null,
|
|
30
34
|
} satisfies PostContentSession
|
|
31
35
|
|
|
32
36
|
console.log(example)
|