@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.
Files changed (62) hide show
  1. package/.openapi-generator/FILES +8 -0
  2. package/README.md +8 -2
  3. package/dist/apis/ContentApi.d.ts +56 -0
  4. package/dist/apis/ContentApi.js +121 -1
  5. package/dist/esm/apis/ContentApi.d.ts +56 -0
  6. package/dist/esm/apis/ContentApi.js +120 -0
  7. package/dist/esm/models/ContentAttemptItem.d.ts +69 -0
  8. package/dist/esm/models/ContentAttemptItem.js +68 -0
  9. package/dist/esm/models/ContentAttemptRollupScore.d.ts +38 -0
  10. package/dist/esm/models/ContentAttemptRollupScore.js +47 -0
  11. package/dist/esm/models/ContentAttemptScore.d.ts +50 -0
  12. package/dist/esm/models/ContentAttemptScore.js +47 -0
  13. package/dist/esm/models/GetContentAttempts.d.ts +90 -0
  14. package/dist/esm/models/GetContentAttempts.js +84 -0
  15. package/dist/esm/models/GetContentSession.d.ts +12 -0
  16. package/dist/esm/models/GetContentSession.js +8 -0
  17. package/dist/esm/models/GetContentSessionDetail.d.ts +12 -0
  18. package/dist/esm/models/GetContentSessionDetail.js +8 -0
  19. package/dist/esm/models/GetContentSessionListItem.d.ts +24 -0
  20. package/dist/esm/models/GetContentSessionListItem.js +16 -0
  21. package/dist/esm/models/PostContentSession.d.ts +12 -0
  22. package/dist/esm/models/PostContentSession.js +8 -0
  23. package/dist/esm/models/index.d.ts +4 -0
  24. package/dist/esm/models/index.js +4 -0
  25. package/dist/models/ContentAttemptItem.d.ts +69 -0
  26. package/dist/models/ContentAttemptItem.js +75 -0
  27. package/dist/models/ContentAttemptRollupScore.d.ts +38 -0
  28. package/dist/models/ContentAttemptRollupScore.js +54 -0
  29. package/dist/models/ContentAttemptScore.d.ts +50 -0
  30. package/dist/models/ContentAttemptScore.js +54 -0
  31. package/dist/models/GetContentAttempts.d.ts +90 -0
  32. package/dist/models/GetContentAttempts.js +92 -0
  33. package/dist/models/GetContentSession.d.ts +12 -0
  34. package/dist/models/GetContentSession.js +8 -0
  35. package/dist/models/GetContentSessionDetail.d.ts +12 -0
  36. package/dist/models/GetContentSessionDetail.js +8 -0
  37. package/dist/models/GetContentSessionListItem.d.ts +24 -0
  38. package/dist/models/GetContentSessionListItem.js +16 -0
  39. package/dist/models/PostContentSession.d.ts +12 -0
  40. package/dist/models/PostContentSession.js +8 -0
  41. package/dist/models/index.d.ts +4 -0
  42. package/dist/models/index.js +4 -0
  43. package/docs/ContentApi.md +159 -0
  44. package/docs/ContentAttemptItem.md +47 -0
  45. package/docs/ContentAttemptRollupScore.md +37 -0
  46. package/docs/ContentAttemptScore.md +41 -0
  47. package/docs/GetContentAttempts.md +51 -0
  48. package/docs/GetContentSession.md +4 -0
  49. package/docs/GetContentSessionDetail.md +4 -0
  50. package/docs/GetContentSessionListItem.md +8 -0
  51. package/docs/PostContentSession.md +4 -0
  52. package/package.json +1 -1
  53. package/src/apis/ContentApi.ts +172 -0
  54. package/src/models/ContentAttemptItem.ts +128 -0
  55. package/src/models/ContentAttemptRollupScore.ts +75 -0
  56. package/src/models/ContentAttemptScore.ts +89 -0
  57. package/src/models/GetContentAttempts.ts +164 -0
  58. package/src/models/GetContentSession.ts +18 -0
  59. package/src/models/GetContentSessionDetail.ts +18 -0
  60. package/src/models/GetContentSessionListItem.ts +36 -0
  61. package/src/models/PostContentSession.ts +18 -0
  62. 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
  }
@@ -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';
@@ -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);
@@ -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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyedu/js-lsm-api",
3
- "version": "1.67.0",
3
+ "version": "1.68.0",
4
4
  "description": "OpenAPI client for @easyedu/js-lsm-api",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {