@easyedu/js-lsm-api 1.67.0 → 1.69.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 +12 -0
  2. package/README.md +10 -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/ContentAttemptSettings.d.ts +46 -0
  14. package/dist/esm/models/ContentAttemptSettings.js +54 -0
  15. package/dist/esm/models/GetContent.d.ts +7 -0
  16. package/dist/esm/models/GetContent.js +5 -0
  17. package/dist/esm/models/GetContentAttempts.d.ts +90 -0
  18. package/dist/esm/models/GetContentAttempts.js +84 -0
  19. package/dist/esm/models/GetContentSession.d.ts +12 -0
  20. package/dist/esm/models/GetContentSession.js +8 -0
  21. package/dist/esm/models/GetContentSessionDetail.d.ts +12 -0
  22. package/dist/esm/models/GetContentSessionDetail.js +8 -0
  23. package/dist/esm/models/GetContentSessionListItem.d.ts +24 -0
  24. package/dist/esm/models/GetContentSessionListItem.js +16 -0
  25. package/dist/esm/models/PostContentSession.d.ts +12 -0
  26. package/dist/esm/models/PostContentSession.js +8 -0
  27. package/dist/esm/models/PutContent.d.ts +7 -0
  28. package/dist/esm/models/PutContent.js +3 -0
  29. package/dist/esm/models/PutContentAttemptSettings.d.ts +46 -0
  30. package/dist/esm/models/PutContentAttemptSettings.js +50 -0
  31. package/dist/esm/models/index.d.ts +6 -0
  32. package/dist/esm/models/index.js +6 -0
  33. package/dist/models/ContentAttemptItem.d.ts +69 -0
  34. package/dist/models/ContentAttemptItem.js +75 -0
  35. package/dist/models/ContentAttemptRollupScore.d.ts +38 -0
  36. package/dist/models/ContentAttemptRollupScore.js +54 -0
  37. package/dist/models/ContentAttemptScore.d.ts +50 -0
  38. package/dist/models/ContentAttemptScore.js +54 -0
  39. package/dist/models/ContentAttemptSettings.d.ts +46 -0
  40. package/dist/models/ContentAttemptSettings.js +62 -0
  41. package/dist/models/GetContent.d.ts +7 -0
  42. package/dist/models/GetContent.js +5 -0
  43. package/dist/models/GetContentAttempts.d.ts +90 -0
  44. package/dist/models/GetContentAttempts.js +92 -0
  45. package/dist/models/GetContentSession.d.ts +12 -0
  46. package/dist/models/GetContentSession.js +8 -0
  47. package/dist/models/GetContentSessionDetail.d.ts +12 -0
  48. package/dist/models/GetContentSessionDetail.js +8 -0
  49. package/dist/models/GetContentSessionListItem.d.ts +24 -0
  50. package/dist/models/GetContentSessionListItem.js +16 -0
  51. package/dist/models/PostContentSession.d.ts +12 -0
  52. package/dist/models/PostContentSession.js +8 -0
  53. package/dist/models/PutContent.d.ts +7 -0
  54. package/dist/models/PutContent.js +3 -0
  55. package/dist/models/PutContentAttemptSettings.d.ts +46 -0
  56. package/dist/models/PutContentAttemptSettings.js +58 -0
  57. package/dist/models/index.d.ts +6 -0
  58. package/dist/models/index.js +6 -0
  59. package/docs/ContentApi.md +159 -0
  60. package/docs/ContentAttemptItem.md +47 -0
  61. package/docs/ContentAttemptRollupScore.md +37 -0
  62. package/docs/ContentAttemptScore.md +41 -0
  63. package/docs/ContentAttemptSettings.md +36 -0
  64. package/docs/GetContent.md +2 -0
  65. package/docs/GetContentAttempts.md +51 -0
  66. package/docs/GetContentSession.md +4 -0
  67. package/docs/GetContentSessionDetail.md +4 -0
  68. package/docs/GetContentSessionListItem.md +8 -0
  69. package/docs/PostContentSession.md +4 -0
  70. package/docs/PutContent.md +2 -0
  71. package/docs/PutContentAttemptSettings.md +36 -0
  72. package/package.json +1 -1
  73. package/src/apis/ContentApi.ts +172 -0
  74. package/src/models/ContentAttemptItem.ts +128 -0
  75. package/src/models/ContentAttemptRollupScore.ts +75 -0
  76. package/src/models/ContentAttemptScore.ts +89 -0
  77. package/src/models/ContentAttemptSettings.ts +86 -0
  78. package/src/models/GetContent.ts +16 -0
  79. package/src/models/GetContentAttempts.ts +164 -0
  80. package/src/models/GetContentSession.ts +18 -0
  81. package/src/models/GetContentSessionDetail.ts +18 -0
  82. package/src/models/GetContentSessionListItem.ts +36 -0
  83. package/src/models/PostContentSession.ts +18 -0
  84. package/src/models/PutContent.ts +15 -0
  85. package/src/models/PutContentAttemptSettings.ts +84 -0
  86. package/src/models/index.ts +6 -0
@@ -0,0 +1,69 @@
1
+ /**
2
+ * LMS API
3
+ * LMS API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { ContentAttemptScore } from './ContentAttemptScore';
13
+ /**
14
+ * A single learner attempt for a content item
15
+ * @export
16
+ * @interface ContentAttemptItem
17
+ */
18
+ export interface ContentAttemptItem {
19
+ /**
20
+ * Content session UUID for this attempt
21
+ * @type {string}
22
+ * @memberof ContentAttemptItem
23
+ */
24
+ sessionId: string;
25
+ /**
26
+ * Learner attempt number for this content item
27
+ * @type {number}
28
+ * @memberof ContentAttemptItem
29
+ */
30
+ attemptNumber: number;
31
+ /**
32
+ * Completion status for this attempt
33
+ * @type {string}
34
+ * @memberof ContentAttemptItem
35
+ */
36
+ completionStatus: string;
37
+ /**
38
+ * Grade status for this attempt
39
+ * @type {string}
40
+ * @memberof ContentAttemptItem
41
+ */
42
+ gradeStatus: string;
43
+ /**
44
+ *
45
+ * @type {ContentAttemptScore}
46
+ * @memberof ContentAttemptItem
47
+ */
48
+ score: ContentAttemptScore | null;
49
+ /**
50
+ * Attempt creation time as a Unix timestamp in seconds
51
+ * @type {number}
52
+ * @memberof ContentAttemptItem
53
+ */
54
+ createdAt: number;
55
+ /**
56
+ * Attempt update time as a Unix timestamp in seconds
57
+ * @type {number}
58
+ * @memberof ContentAttemptItem
59
+ */
60
+ updatedAt: number;
61
+ }
62
+ /**
63
+ * Check if a given object implements the ContentAttemptItem interface.
64
+ */
65
+ export declare function instanceOfContentAttemptItem(value: object): value is ContentAttemptItem;
66
+ export declare function ContentAttemptItemFromJSON(json: any): ContentAttemptItem;
67
+ export declare function ContentAttemptItemFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContentAttemptItem;
68
+ export declare function ContentAttemptItemToJSON(json: any): ContentAttemptItem;
69
+ export declare function ContentAttemptItemToJSONTyped(value?: ContentAttemptItem | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,68 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { ContentAttemptScoreFromJSON, ContentAttemptScoreToJSON, } from './ContentAttemptScore';
15
+ /**
16
+ * Check if a given object implements the ContentAttemptItem interface.
17
+ */
18
+ export function instanceOfContentAttemptItem(value) {
19
+ if (!('sessionId' in value) || value['sessionId'] === undefined)
20
+ return false;
21
+ if (!('attemptNumber' in value) || value['attemptNumber'] === undefined)
22
+ return false;
23
+ if (!('completionStatus' in value) || value['completionStatus'] === undefined)
24
+ return false;
25
+ if (!('gradeStatus' in value) || value['gradeStatus'] === undefined)
26
+ return false;
27
+ if (!('score' in value) || value['score'] === undefined)
28
+ return false;
29
+ if (!('createdAt' in value) || value['createdAt'] === undefined)
30
+ return false;
31
+ if (!('updatedAt' in value) || value['updatedAt'] === undefined)
32
+ return false;
33
+ return true;
34
+ }
35
+ export function ContentAttemptItemFromJSON(json) {
36
+ return ContentAttemptItemFromJSONTyped(json, false);
37
+ }
38
+ export function ContentAttemptItemFromJSONTyped(json, ignoreDiscriminator) {
39
+ if (json == null) {
40
+ return json;
41
+ }
42
+ return {
43
+ 'sessionId': json['session_id'],
44
+ 'attemptNumber': json['attempt_number'],
45
+ 'completionStatus': json['completion_status'],
46
+ 'gradeStatus': json['grade_status'],
47
+ 'score': ContentAttemptScoreFromJSON(json['score']),
48
+ 'createdAt': json['created_at'],
49
+ 'updatedAt': json['updated_at'],
50
+ };
51
+ }
52
+ export function ContentAttemptItemToJSON(json) {
53
+ return ContentAttemptItemToJSONTyped(json, false);
54
+ }
55
+ export function ContentAttemptItemToJSONTyped(value, ignoreDiscriminator = false) {
56
+ if (value == null) {
57
+ return value;
58
+ }
59
+ return {
60
+ 'session_id': value['sessionId'],
61
+ 'attempt_number': value['attemptNumber'],
62
+ 'completion_status': value['completionStatus'],
63
+ 'grade_status': value['gradeStatus'],
64
+ 'score': ContentAttemptScoreToJSON(value['score']),
65
+ 'created_at': value['createdAt'],
66
+ 'updated_at': value['updatedAt'],
67
+ };
68
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * LMS API
3
+ * LMS API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Rolled-up score for a content item
14
+ * @export
15
+ * @interface ContentAttemptRollupScore
16
+ */
17
+ export interface ContentAttemptRollupScore {
18
+ /**
19
+ * Rolled-up score normalized to a 0-100 percentage
20
+ * @type {number}
21
+ * @memberof ContentAttemptRollupScore
22
+ */
23
+ percentage: number;
24
+ /**
25
+ * Attempt number that supplied the rolled-up score
26
+ * @type {number}
27
+ * @memberof ContentAttemptRollupScore
28
+ */
29
+ sourceAttemptNumber: number;
30
+ }
31
+ /**
32
+ * Check if a given object implements the ContentAttemptRollupScore interface.
33
+ */
34
+ export declare function instanceOfContentAttemptRollupScore(value: object): value is ContentAttemptRollupScore;
35
+ export declare function ContentAttemptRollupScoreFromJSON(json: any): ContentAttemptRollupScore;
36
+ export declare function ContentAttemptRollupScoreFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContentAttemptRollupScore;
37
+ export declare function ContentAttemptRollupScoreToJSON(json: any): ContentAttemptRollupScore;
38
+ export declare function ContentAttemptRollupScoreToJSONTyped(value?: ContentAttemptRollupScore | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the ContentAttemptRollupScore interface.
16
+ */
17
+ export function instanceOfContentAttemptRollupScore(value) {
18
+ if (!('percentage' in value) || value['percentage'] === undefined)
19
+ return false;
20
+ if (!('sourceAttemptNumber' in value) || value['sourceAttemptNumber'] === undefined)
21
+ return false;
22
+ return true;
23
+ }
24
+ export function ContentAttemptRollupScoreFromJSON(json) {
25
+ return ContentAttemptRollupScoreFromJSONTyped(json, false);
26
+ }
27
+ export function ContentAttemptRollupScoreFromJSONTyped(json, ignoreDiscriminator) {
28
+ if (json == null) {
29
+ return json;
30
+ }
31
+ return {
32
+ 'percentage': json['percentage'],
33
+ 'sourceAttemptNumber': json['source_attempt_number'],
34
+ };
35
+ }
36
+ export function ContentAttemptRollupScoreToJSON(json) {
37
+ return ContentAttemptRollupScoreToJSONTyped(json, false);
38
+ }
39
+ export function ContentAttemptRollupScoreToJSONTyped(value, ignoreDiscriminator = false) {
40
+ if (value == null) {
41
+ return value;
42
+ }
43
+ return {
44
+ 'percentage': value['percentage'],
45
+ 'source_attempt_number': value['sourceAttemptNumber'],
46
+ };
47
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * LMS API
3
+ * LMS API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Normalized score data for a content attempt
14
+ * @export
15
+ * @interface ContentAttemptScore
16
+ */
17
+ export interface ContentAttemptScore {
18
+ /**
19
+ * Raw score reported by the content, if available
20
+ * @type {number}
21
+ * @memberof ContentAttemptScore
22
+ */
23
+ raw?: number | null;
24
+ /**
25
+ * Minimum possible score, if available
26
+ * @type {number}
27
+ * @memberof ContentAttemptScore
28
+ */
29
+ min?: number | null;
30
+ /**
31
+ * Maximum possible score, if available
32
+ * @type {number}
33
+ * @memberof ContentAttemptScore
34
+ */
35
+ max?: number | null;
36
+ /**
37
+ * Score normalized to a 0-100 percentage, if available
38
+ * @type {number}
39
+ * @memberof ContentAttemptScore
40
+ */
41
+ percentage?: number | null;
42
+ }
43
+ /**
44
+ * Check if a given object implements the ContentAttemptScore interface.
45
+ */
46
+ export declare function instanceOfContentAttemptScore(value: object): value is ContentAttemptScore;
47
+ export declare function ContentAttemptScoreFromJSON(json: any): ContentAttemptScore;
48
+ export declare function ContentAttemptScoreFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContentAttemptScore;
49
+ export declare function ContentAttemptScoreToJSON(json: any): ContentAttemptScore;
50
+ export declare function ContentAttemptScoreToJSONTyped(value?: ContentAttemptScore | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the ContentAttemptScore interface.
16
+ */
17
+ export function instanceOfContentAttemptScore(value) {
18
+ return true;
19
+ }
20
+ export function ContentAttemptScoreFromJSON(json) {
21
+ return ContentAttemptScoreFromJSONTyped(json, false);
22
+ }
23
+ export function ContentAttemptScoreFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'raw': json['raw'] == null ? undefined : json['raw'],
29
+ 'min': json['min'] == null ? undefined : json['min'],
30
+ 'max': json['max'] == null ? undefined : json['max'],
31
+ 'percentage': json['percentage'] == null ? undefined : json['percentage'],
32
+ };
33
+ }
34
+ export function ContentAttemptScoreToJSON(json) {
35
+ return ContentAttemptScoreToJSONTyped(json, false);
36
+ }
37
+ export function ContentAttemptScoreToJSONTyped(value, ignoreDiscriminator = false) {
38
+ if (value == null) {
39
+ return value;
40
+ }
41
+ return {
42
+ 'raw': value['raw'],
43
+ 'min': value['min'],
44
+ 'max': value['max'],
45
+ 'percentage': value['percentage'],
46
+ };
47
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * LMS API
3
+ * LMS API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface ContentAttemptSettings
16
+ */
17
+ export interface ContentAttemptSettings {
18
+ /**
19
+ * Maximum allowed attempts for this content
20
+ * @type {number}
21
+ * @memberof ContentAttemptSettings
22
+ */
23
+ maxAttempts: number;
24
+ /**
25
+ * Strategy used to calculate the content rollup score
26
+ * @type {ContentAttemptSettingsScoreRollupStrategyEnum}
27
+ * @memberof ContentAttemptSettings
28
+ */
29
+ scoreRollupStrategy: ContentAttemptSettingsScoreRollupStrategyEnum;
30
+ }
31
+ /**
32
+ * @export
33
+ */
34
+ export declare const ContentAttemptSettingsScoreRollupStrategyEnum: {
35
+ readonly Latest: "Latest";
36
+ readonly Best: "Best";
37
+ };
38
+ export type ContentAttemptSettingsScoreRollupStrategyEnum = typeof ContentAttemptSettingsScoreRollupStrategyEnum[keyof typeof ContentAttemptSettingsScoreRollupStrategyEnum];
39
+ /**
40
+ * Check if a given object implements the ContentAttemptSettings interface.
41
+ */
42
+ export declare function instanceOfContentAttemptSettings(value: object): value is ContentAttemptSettings;
43
+ export declare function ContentAttemptSettingsFromJSON(json: any): ContentAttemptSettings;
44
+ export declare function ContentAttemptSettingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContentAttemptSettings;
45
+ export declare function ContentAttemptSettingsToJSON(json: any): ContentAttemptSettings;
46
+ export declare function ContentAttemptSettingsToJSONTyped(value?: ContentAttemptSettings | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,54 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const ContentAttemptSettingsScoreRollupStrategyEnum = {
18
+ Latest: 'Latest',
19
+ Best: 'Best'
20
+ };
21
+ /**
22
+ * Check if a given object implements the ContentAttemptSettings interface.
23
+ */
24
+ export function instanceOfContentAttemptSettings(value) {
25
+ if (!('maxAttempts' in value) || value['maxAttempts'] === undefined)
26
+ return false;
27
+ if (!('scoreRollupStrategy' in value) || value['scoreRollupStrategy'] === undefined)
28
+ return false;
29
+ return true;
30
+ }
31
+ export function ContentAttemptSettingsFromJSON(json) {
32
+ return ContentAttemptSettingsFromJSONTyped(json, false);
33
+ }
34
+ export function ContentAttemptSettingsFromJSONTyped(json, ignoreDiscriminator) {
35
+ if (json == null) {
36
+ return json;
37
+ }
38
+ return {
39
+ 'maxAttempts': json['max_attempts'],
40
+ 'scoreRollupStrategy': json['score_rollup_strategy'],
41
+ };
42
+ }
43
+ export function ContentAttemptSettingsToJSON(json) {
44
+ return ContentAttemptSettingsToJSONTyped(json, false);
45
+ }
46
+ export function ContentAttemptSettingsToJSONTyped(value, ignoreDiscriminator = false) {
47
+ if (value == null) {
48
+ return value;
49
+ }
50
+ return {
51
+ 'max_attempts': value['maxAttempts'],
52
+ 'score_rollup_strategy': value['scoreRollupStrategy'],
53
+ };
54
+ }
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { GetContentContentData } from './GetContentContentData';
13
+ import type { ContentAttemptSettings } from './ContentAttemptSettings';
13
14
  import type { ContentLaunchMode } from './ContentLaunchMode';
14
15
  /**
15
16
  *
@@ -53,6 +54,12 @@ export interface GetContent {
53
54
  * @memberof GetContent
54
55
  */
55
56
  launchMode: ContentLaunchMode;
57
+ /**
58
+ *
59
+ * @type {ContentAttemptSettings}
60
+ * @memberof GetContent
61
+ */
62
+ attemptSettings: ContentAttemptSettings;
56
63
  /**
57
64
  *
58
65
  * @type {GetContentContentData}
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { GetContentContentDataFromJSON, GetContentContentDataToJSON, } from './GetContentContentData';
15
+ import { ContentAttemptSettingsFromJSON, ContentAttemptSettingsToJSON, } from './ContentAttemptSettings';
15
16
  import { ContentLaunchModeFromJSON, ContentLaunchModeToJSON, } from './ContentLaunchMode';
16
17
  /**
17
18
  * @export
@@ -39,6 +40,8 @@ export function instanceOfGetContent(value) {
39
40
  return false;
40
41
  if (!('launchMode' in value) || value['launchMode'] === undefined)
41
42
  return false;
43
+ if (!('attemptSettings' in value) || value['attemptSettings'] === undefined)
44
+ return false;
42
45
  if (!('contentData' in value) || value['contentData'] === undefined)
43
46
  return false;
44
47
  if (!('published' in value) || value['published'] === undefined)
@@ -59,6 +62,7 @@ export function GetContentFromJSONTyped(json, ignoreDiscriminator) {
59
62
  'description': json['description'] == null ? undefined : json['description'],
60
63
  'contentType': json['content_type'],
61
64
  'launchMode': ContentLaunchModeFromJSON(json['launch_mode']),
65
+ 'attemptSettings': ContentAttemptSettingsFromJSON(json['attempt_settings']),
62
66
  'contentData': GetContentContentDataFromJSON(json['content_data']),
63
67
  'order': json['order'] == null ? undefined : json['order'],
64
68
  'published': json['published'],
@@ -82,6 +86,7 @@ export function GetContentToJSONTyped(value, ignoreDiscriminator = false) {
82
86
  'description': value['description'],
83
87
  'content_type': value['contentType'],
84
88
  'launch_mode': ContentLaunchModeToJSON(value['launchMode']),
89
+ 'attempt_settings': ContentAttemptSettingsToJSON(value['attemptSettings']),
85
90
  'content_data': GetContentContentDataToJSON(value['contentData']),
86
91
  'order': value['order'],
87
92
  'published': value['published'],
@@ -0,0 +1,90 @@
1
+ /**
2
+ * LMS API
3
+ * LMS API
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { ContentAttemptRollupScore } from './ContentAttemptRollupScore';
13
+ import type { ContentAttemptItem } from './ContentAttemptItem';
14
+ /**
15
+ * Learner attempt history and rollup for a content item
16
+ * @export
17
+ * @interface GetContentAttempts
18
+ */
19
+ export interface GetContentAttempts {
20
+ /**
21
+ * Content external ID
22
+ * @type {string}
23
+ * @memberof GetContentAttempts
24
+ */
25
+ contentId: string;
26
+ /**
27
+ * User ID these attempts belong to
28
+ * @type {string}
29
+ * @memberof GetContentAttempts
30
+ */
31
+ userId: string;
32
+ /**
33
+ * Maximum content sessions allowed for this learner/content pair
34
+ * @type {number}
35
+ * @memberof GetContentAttempts
36
+ */
37
+ maxAttempts: number;
38
+ /**
39
+ * Number of attempts already created
40
+ * @type {number}
41
+ * @memberof GetContentAttempts
42
+ */
43
+ attemptsUsed: number;
44
+ /**
45
+ * Number of additional attempts that can be created
46
+ * @type {number}
47
+ * @memberof GetContentAttempts
48
+ */
49
+ attemptsRemaining: number;
50
+ /**
51
+ * Whether another attempt may be started under the current policy
52
+ * @type {boolean}
53
+ * @memberof GetContentAttempts
54
+ */
55
+ canStartNewAttempt: boolean;
56
+ /**
57
+ * Strategy used to compute rollup_score from attempts
58
+ * @type {GetContentAttemptsScoreRollupStrategyEnum}
59
+ * @memberof GetContentAttempts
60
+ */
61
+ scoreRollupStrategy: GetContentAttemptsScoreRollupStrategyEnum;
62
+ /**
63
+ *
64
+ * @type {ContentAttemptRollupScore}
65
+ * @memberof GetContentAttempts
66
+ */
67
+ rollupScore: ContentAttemptRollupScore | null;
68
+ /**
69
+ *
70
+ * @type {Array<ContentAttemptItem>}
71
+ * @memberof GetContentAttempts
72
+ */
73
+ attempts: Array<ContentAttemptItem>;
74
+ }
75
+ /**
76
+ * @export
77
+ */
78
+ export declare const GetContentAttemptsScoreRollupStrategyEnum: {
79
+ readonly Latest: "Latest";
80
+ readonly Best: "Best";
81
+ };
82
+ export type GetContentAttemptsScoreRollupStrategyEnum = typeof GetContentAttemptsScoreRollupStrategyEnum[keyof typeof GetContentAttemptsScoreRollupStrategyEnum];
83
+ /**
84
+ * Check if a given object implements the GetContentAttempts interface.
85
+ */
86
+ export declare function instanceOfGetContentAttempts(value: object): value is GetContentAttempts;
87
+ export declare function GetContentAttemptsFromJSON(json: any): GetContentAttempts;
88
+ export declare function GetContentAttemptsFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetContentAttempts;
89
+ export declare function GetContentAttemptsToJSON(json: any): GetContentAttempts;
90
+ export declare function GetContentAttemptsToJSONTyped(value?: GetContentAttempts | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,84 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { ContentAttemptRollupScoreFromJSON, ContentAttemptRollupScoreToJSON, } from './ContentAttemptRollupScore';
15
+ import { ContentAttemptItemFromJSON, ContentAttemptItemToJSON, } from './ContentAttemptItem';
16
+ /**
17
+ * @export
18
+ */
19
+ export const GetContentAttemptsScoreRollupStrategyEnum = {
20
+ Latest: 'Latest',
21
+ Best: 'Best'
22
+ };
23
+ /**
24
+ * Check if a given object implements the GetContentAttempts interface.
25
+ */
26
+ export function instanceOfGetContentAttempts(value) {
27
+ if (!('contentId' in value) || value['contentId'] === undefined)
28
+ return false;
29
+ if (!('userId' in value) || value['userId'] === undefined)
30
+ return false;
31
+ if (!('maxAttempts' in value) || value['maxAttempts'] === undefined)
32
+ return false;
33
+ if (!('attemptsUsed' in value) || value['attemptsUsed'] === undefined)
34
+ return false;
35
+ if (!('attemptsRemaining' in value) || value['attemptsRemaining'] === undefined)
36
+ return false;
37
+ if (!('canStartNewAttempt' in value) || value['canStartNewAttempt'] === undefined)
38
+ return false;
39
+ if (!('scoreRollupStrategy' in value) || value['scoreRollupStrategy'] === undefined)
40
+ return false;
41
+ if (!('rollupScore' in value) || value['rollupScore'] === undefined)
42
+ return false;
43
+ if (!('attempts' in value) || value['attempts'] === undefined)
44
+ return false;
45
+ return true;
46
+ }
47
+ export function GetContentAttemptsFromJSON(json) {
48
+ return GetContentAttemptsFromJSONTyped(json, false);
49
+ }
50
+ export function GetContentAttemptsFromJSONTyped(json, ignoreDiscriminator) {
51
+ if (json == null) {
52
+ return json;
53
+ }
54
+ return {
55
+ 'contentId': json['content_id'],
56
+ 'userId': json['user_id'],
57
+ 'maxAttempts': json['max_attempts'],
58
+ 'attemptsUsed': json['attempts_used'],
59
+ 'attemptsRemaining': json['attempts_remaining'],
60
+ 'canStartNewAttempt': json['can_start_new_attempt'],
61
+ 'scoreRollupStrategy': json['score_rollup_strategy'],
62
+ 'rollupScore': ContentAttemptRollupScoreFromJSON(json['rollup_score']),
63
+ 'attempts': (json['attempts'].map(ContentAttemptItemFromJSON)),
64
+ };
65
+ }
66
+ export function GetContentAttemptsToJSON(json) {
67
+ return GetContentAttemptsToJSONTyped(json, false);
68
+ }
69
+ export function GetContentAttemptsToJSONTyped(value, ignoreDiscriminator = false) {
70
+ if (value == null) {
71
+ return value;
72
+ }
73
+ return {
74
+ 'content_id': value['contentId'],
75
+ 'user_id': value['userId'],
76
+ 'max_attempts': value['maxAttempts'],
77
+ 'attempts_used': value['attemptsUsed'],
78
+ 'attempts_remaining': value['attemptsRemaining'],
79
+ 'can_start_new_attempt': value['canStartNewAttempt'],
80
+ 'score_rollup_strategy': value['scoreRollupStrategy'],
81
+ 'rollup_score': ContentAttemptRollupScoreToJSON(value['rollupScore']),
82
+ 'attempts': (value['attempts'].map(ContentAttemptItemToJSON)),
83
+ };
84
+ }
@@ -51,6 +51,18 @@ export interface GetContentSession {
51
51
  * @memberof GetContentSession
52
52
  */
53
53
  gradeStatus: string;
54
+ /**
55
+ * The learner attempt number for this content session
56
+ * @type {number}
57
+ * @memberof GetContentSession
58
+ */
59
+ attemptNumber: number;
60
+ /**
61
+ * Whether this is the current attempt used for learner progress display
62
+ * @type {boolean}
63
+ * @memberof GetContentSession
64
+ */
65
+ isCurrent: boolean;
54
66
  }
55
67
  /**
56
68
  * Check if a given object implements the GetContentSession interface.