@easyedu/js-lsm-api 1.89.0 → 1.90.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 (50) hide show
  1. package/.openapi-generator/FILES +8 -0
  2. package/README.md +11 -2
  3. package/dist/apis/ContentLibraryApi.d.ts +19 -0
  4. package/dist/apis/ContentLibraryApi.js +47 -0
  5. package/dist/apis/PlayerApi.d.ts +73 -0
  6. package/dist/apis/PlayerApi.js +188 -0
  7. package/dist/esm/apis/ContentLibraryApi.d.ts +19 -0
  8. package/dist/esm/apis/ContentLibraryApi.js +47 -0
  9. package/dist/esm/apis/PlayerApi.d.ts +73 -0
  10. package/dist/esm/apis/PlayerApi.js +188 -0
  11. package/dist/esm/models/GetCourseVersionItemSession.d.ts +7 -0
  12. package/dist/esm/models/GetCourseVersionItemSession.js +5 -0
  13. package/dist/esm/models/GetResourceSession.d.ts +161 -0
  14. package/dist/esm/models/GetResourceSession.js +112 -0
  15. package/dist/esm/models/GetResourceSessionList.d.ts +57 -0
  16. package/dist/esm/models/GetResourceSessionList.js +60 -0
  17. package/dist/esm/models/PostResourceVersionSession.d.ts +32 -0
  18. package/dist/esm/models/PostResourceVersionSession.js +41 -0
  19. package/dist/esm/models/ResourceSessionEnvironment.d.ts +25 -0
  20. package/dist/esm/models/ResourceSessionEnvironment.js +43 -0
  21. package/dist/esm/models/index.d.ts +4 -0
  22. package/dist/esm/models/index.js +4 -0
  23. package/dist/models/GetCourseVersionItemSession.d.ts +7 -0
  24. package/dist/models/GetCourseVersionItemSession.js +5 -0
  25. package/dist/models/GetResourceSession.d.ts +161 -0
  26. package/dist/models/GetResourceSession.js +119 -0
  27. package/dist/models/GetResourceSessionList.d.ts +57 -0
  28. package/dist/models/GetResourceSessionList.js +67 -0
  29. package/dist/models/PostResourceVersionSession.d.ts +32 -0
  30. package/dist/models/PostResourceVersionSession.js +48 -0
  31. package/dist/models/ResourceSessionEnvironment.d.ts +25 -0
  32. package/dist/models/ResourceSessionEnvironment.js +51 -0
  33. package/dist/models/index.d.ts +4 -0
  34. package/dist/models/index.js +4 -0
  35. package/docs/ContentLibraryApi.md +73 -0
  36. package/docs/GetCourseVersionItemSession.md +2 -0
  37. package/docs/GetResourceSession.md +77 -0
  38. package/docs/GetResourceSessionList.md +43 -0
  39. package/docs/PlayerApi.md +296 -0
  40. package/docs/PostResourceVersionSession.md +35 -0
  41. package/docs/ResourceSessionEnvironment.md +33 -0
  42. package/package.json +1 -1
  43. package/src/apis/ContentLibraryApi.ts +72 -0
  44. package/src/apis/PlayerApi.ts +261 -0
  45. package/src/models/GetCourseVersionItemSession.ts +16 -0
  46. package/src/models/GetResourceSession.ts +270 -0
  47. package/src/models/GetResourceSessionList.ts +110 -0
  48. package/src/models/PostResourceVersionSession.ts +65 -0
  49. package/src/models/ResourceSessionEnvironment.ts +53 -0
  50. package/src/models/index.ts +4 -0
@@ -13,6 +13,21 @@
13
13
  */
14
14
 
15
15
  import * as runtime from '../runtime';
16
+ import {
17
+ type GetResourceSession,
18
+ GetResourceSessionFromJSON,
19
+ GetResourceSessionToJSON,
20
+ } from '../models/GetResourceSession';
21
+ import {
22
+ type GetResourceSessionList,
23
+ GetResourceSessionListFromJSON,
24
+ GetResourceSessionListToJSON,
25
+ } from '../models/GetResourceSessionList';
26
+ import {
27
+ type ResourceSessionEnvironment,
28
+ ResourceSessionEnvironmentFromJSON,
29
+ ResourceSessionEnvironmentToJSON,
30
+ } from '../models/ResourceSessionEnvironment';
16
31
  import {
17
32
  type ScormGetValueResponse,
18
33
  ScormGetValueResponseFromJSON,
@@ -72,6 +87,28 @@ export interface GetResourceScormValueRequest {
72
87
  key: string;
73
88
  }
74
89
 
90
+ export interface GetResourceSessionRequest {
91
+ sessionId: string;
92
+ }
93
+
94
+ export interface GetResourceSessionAssetRequest {
95
+ sessionId: string;
96
+ assetPath: string;
97
+ }
98
+
99
+ export interface GetResourceSessionListRequest {
100
+ userId?: string;
101
+ resourceId?: string;
102
+ versionId?: string;
103
+ courseId?: string;
104
+ environment?: ResourceSessionEnvironment;
105
+ completionStatus?: string;
106
+ createdFrom?: number;
107
+ createdTo?: number;
108
+ page?: number;
109
+ pageSize?: number;
110
+ }
111
+
75
112
  export interface GetResourceSessionPlayerRequest {
76
113
  sessionId: string;
77
114
  }
@@ -97,6 +134,10 @@ export interface InitializeResourceScormSessionRequest {
97
134
  sessionId: string;
98
135
  }
99
136
 
137
+ export interface PostResourceSessionCompleteRequest {
138
+ sessionId: string;
139
+ }
140
+
100
141
  export interface SetResourceScormValueRequest {
101
142
  sessionId: string;
102
143
  scormSetValueRequest: ScormSetValueRequest;
@@ -580,6 +621,181 @@ export class PlayerApi extends runtime.BaseAPI {
580
621
  return await response.value();
581
622
  }
582
623
 
624
+ /**
625
+ * Creates request options for getResourceSession without sending the request
626
+ */
627
+ async getResourceSessionRequestOpts(requestParameters: GetResourceSessionRequest): Promise<runtime.RequestOpts> {
628
+ if (requestParameters['sessionId'] == null) {
629
+ throw new runtime.RequiredError(
630
+ 'sessionId',
631
+ 'Required parameter "sessionId" was null or undefined when calling getResourceSession().'
632
+ );
633
+ }
634
+
635
+ const queryParameters: any = {};
636
+
637
+ const headerParameters: runtime.HTTPHeaders = {};
638
+
639
+
640
+ let urlPath = `/resource/sessions/{sessionId}`;
641
+ urlPath = urlPath.replace('{sessionId}', encodeURIComponent(String(requestParameters['sessionId'])));
642
+
643
+ return {
644
+ path: urlPath,
645
+ method: 'GET',
646
+ headers: headerParameters,
647
+ query: queryParameters,
648
+ };
649
+ }
650
+
651
+ /**
652
+ * Get a resource session
653
+ */
654
+ async getResourceSessionRaw(requestParameters: GetResourceSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetResourceSession>> {
655
+ const requestOptions = await this.getResourceSessionRequestOpts(requestParameters);
656
+ const response = await this.request(requestOptions, initOverrides);
657
+
658
+ return new runtime.JSONApiResponse(response, (jsonValue) => GetResourceSessionFromJSON(jsonValue));
659
+ }
660
+
661
+ /**
662
+ * Get a resource session
663
+ */
664
+ async getResourceSession(requestParameters: GetResourceSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetResourceSession> {
665
+ const response = await this.getResourceSessionRaw(requestParameters, initOverrides);
666
+ return await response.value();
667
+ }
668
+
669
+ /**
670
+ * Creates request options for getResourceSessionAsset without sending the request
671
+ */
672
+ async getResourceSessionAssetRequestOpts(requestParameters: GetResourceSessionAssetRequest): Promise<runtime.RequestOpts> {
673
+ if (requestParameters['sessionId'] == null) {
674
+ throw new runtime.RequiredError(
675
+ 'sessionId',
676
+ 'Required parameter "sessionId" was null or undefined when calling getResourceSessionAsset().'
677
+ );
678
+ }
679
+
680
+ if (requestParameters['assetPath'] == null) {
681
+ throw new runtime.RequiredError(
682
+ 'assetPath',
683
+ 'Required parameter "assetPath" was null or undefined when calling getResourceSessionAsset().'
684
+ );
685
+ }
686
+
687
+ const queryParameters: any = {};
688
+
689
+ const headerParameters: runtime.HTTPHeaders = {};
690
+
691
+
692
+ let urlPath = `/resource/sessions/{sessionId}/asset/{assetPath}`;
693
+ urlPath = urlPath.replace('{sessionId}', encodeURIComponent(String(requestParameters['sessionId'])));
694
+ urlPath = urlPath.replace('{assetPath}', encodeURIComponent(String(requestParameters['assetPath'])));
695
+
696
+ return {
697
+ path: urlPath,
698
+ method: 'GET',
699
+ headers: headerParameters,
700
+ query: queryParameters,
701
+ };
702
+ }
703
+
704
+ /**
705
+ * Stream an asset pinned to a resource session
706
+ */
707
+ async getResourceSessionAssetRaw(requestParameters: GetResourceSessionAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {
708
+ const requestOptions = await this.getResourceSessionAssetRequestOpts(requestParameters);
709
+ const response = await this.request(requestOptions, initOverrides);
710
+
711
+ return new runtime.BlobApiResponse(response);
712
+ }
713
+
714
+ /**
715
+ * Stream an asset pinned to a resource session
716
+ */
717
+ async getResourceSessionAsset(requestParameters: GetResourceSessionAssetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {
718
+ const response = await this.getResourceSessionAssetRaw(requestParameters, initOverrides);
719
+ return await response.value();
720
+ }
721
+
722
+ /**
723
+ * Creates request options for getResourceSessionList without sending the request
724
+ */
725
+ async getResourceSessionListRequestOpts(requestParameters: GetResourceSessionListRequest): Promise<runtime.RequestOpts> {
726
+ const queryParameters: any = {};
727
+
728
+ if (requestParameters['userId'] != null) {
729
+ queryParameters['user_id'] = requestParameters['userId'];
730
+ }
731
+
732
+ if (requestParameters['resourceId'] != null) {
733
+ queryParameters['resource_id'] = requestParameters['resourceId'];
734
+ }
735
+
736
+ if (requestParameters['versionId'] != null) {
737
+ queryParameters['version_id'] = requestParameters['versionId'];
738
+ }
739
+
740
+ if (requestParameters['courseId'] != null) {
741
+ queryParameters['course_id'] = requestParameters['courseId'];
742
+ }
743
+
744
+ if (requestParameters['environment'] != null) {
745
+ queryParameters['environment'] = requestParameters['environment'];
746
+ }
747
+
748
+ if (requestParameters['completionStatus'] != null) {
749
+ queryParameters['completion_status'] = requestParameters['completionStatus'];
750
+ }
751
+
752
+ if (requestParameters['createdFrom'] != null) {
753
+ queryParameters['created_from'] = requestParameters['createdFrom'];
754
+ }
755
+
756
+ if (requestParameters['createdTo'] != null) {
757
+ queryParameters['created_to'] = requestParameters['createdTo'];
758
+ }
759
+
760
+ if (requestParameters['page'] != null) {
761
+ queryParameters['page'] = requestParameters['page'];
762
+ }
763
+
764
+ if (requestParameters['pageSize'] != null) {
765
+ queryParameters['pageSize'] = requestParameters['pageSize'];
766
+ }
767
+
768
+ const headerParameters: runtime.HTTPHeaders = {};
769
+
770
+
771
+ let urlPath = `/resource/sessions`;
772
+
773
+ return {
774
+ path: urlPath,
775
+ method: 'GET',
776
+ headers: headerParameters,
777
+ query: queryParameters,
778
+ };
779
+ }
780
+
781
+ /**
782
+ * List resource sessions for the selected portal
783
+ */
784
+ async getResourceSessionListRaw(requestParameters: GetResourceSessionListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetResourceSessionList>> {
785
+ const requestOptions = await this.getResourceSessionListRequestOpts(requestParameters);
786
+ const response = await this.request(requestOptions, initOverrides);
787
+
788
+ return new runtime.JSONApiResponse(response, (jsonValue) => GetResourceSessionListFromJSON(jsonValue));
789
+ }
790
+
791
+ /**
792
+ * List resource sessions for the selected portal
793
+ */
794
+ async getResourceSessionList(requestParameters: GetResourceSessionListRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetResourceSessionList> {
795
+ const response = await this.getResourceSessionListRaw(requestParameters, initOverrides);
796
+ return await response.value();
797
+ }
798
+
583
799
  /**
584
800
  * Creates request options for getResourceSessionPlayer without sending the request
585
801
  */
@@ -857,6 +1073,51 @@ export class PlayerApi extends runtime.BaseAPI {
857
1073
  await this.initializeResourceScormSessionRaw(requestParameters, initOverrides);
858
1074
  }
859
1075
 
1076
+ /**
1077
+ * Creates request options for postResourceSessionComplete without sending the request
1078
+ */
1079
+ async postResourceSessionCompleteRequestOpts(requestParameters: PostResourceSessionCompleteRequest): Promise<runtime.RequestOpts> {
1080
+ if (requestParameters['sessionId'] == null) {
1081
+ throw new runtime.RequiredError(
1082
+ 'sessionId',
1083
+ 'Required parameter "sessionId" was null or undefined when calling postResourceSessionComplete().'
1084
+ );
1085
+ }
1086
+
1087
+ const queryParameters: any = {};
1088
+
1089
+ const headerParameters: runtime.HTTPHeaders = {};
1090
+
1091
+
1092
+ let urlPath = `/resource/sessions/{sessionId}/complete`;
1093
+ urlPath = urlPath.replace('{sessionId}', encodeURIComponent(String(requestParameters['sessionId'])));
1094
+
1095
+ return {
1096
+ path: urlPath,
1097
+ method: 'POST',
1098
+ headers: headerParameters,
1099
+ query: queryParameters,
1100
+ };
1101
+ }
1102
+
1103
+ /**
1104
+ * Complete a non-SCORM resource session
1105
+ */
1106
+ async postResourceSessionCompleteRaw(requestParameters: PostResourceSessionCompleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<GetResourceSession>> {
1107
+ const requestOptions = await this.postResourceSessionCompleteRequestOpts(requestParameters);
1108
+ const response = await this.request(requestOptions, initOverrides);
1109
+
1110
+ return new runtime.JSONApiResponse(response, (jsonValue) => GetResourceSessionFromJSON(jsonValue));
1111
+ }
1112
+
1113
+ /**
1114
+ * Complete a non-SCORM resource session
1115
+ */
1116
+ async postResourceSessionComplete(requestParameters: PostResourceSessionCompleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetResourceSession> {
1117
+ const response = await this.postResourceSessionCompleteRaw(requestParameters, initOverrides);
1118
+ return await response.value();
1119
+ }
1120
+
860
1121
  /**
861
1122
  * Creates request options for setResourceScormValue without sending the request
862
1123
  */
@@ -13,6 +13,13 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
+ import type { ResourceSessionEnvironment } from './ResourceSessionEnvironment';
17
+ import {
18
+ ResourceSessionEnvironmentFromJSON,
19
+ ResourceSessionEnvironmentFromJSONTyped,
20
+ ResourceSessionEnvironmentToJSON,
21
+ ResourceSessionEnvironmentToJSONTyped,
22
+ } from './ResourceSessionEnvironment';
16
23
  import type { ResourceType } from './ResourceType';
17
24
  import {
18
25
  ResourceTypeFromJSON,
@@ -40,6 +47,12 @@ export interface GetCourseVersionItemSession {
40
47
  * @memberof GetCourseVersionItemSession
41
48
  */
42
49
  id: string;
50
+ /**
51
+ *
52
+ * @type {ResourceSessionEnvironment}
53
+ * @memberof GetCourseVersionItemSession
54
+ */
55
+ environment: ResourceSessionEnvironment;
43
56
  /**
44
57
  *
45
58
  * @type {string}
@@ -139,6 +152,7 @@ export interface GetCourseVersionItemSession {
139
152
  */
140
153
  export function instanceOfGetCourseVersionItemSession(value: object): value is GetCourseVersionItemSession {
141
154
  if (!('id' in value) || value['id'] === undefined) return false;
155
+ if (!('environment' in value) || value['environment'] === undefined) return false;
142
156
  if (!('courseVersionId' in value) || value['courseVersionId'] === undefined) return false;
143
157
  if (!('itemId' in value) || value['itemId'] === undefined) return false;
144
158
  if (!('contentLibraryItemId' in value) || value['contentLibraryItemId'] === undefined) return false;
@@ -166,6 +180,7 @@ export function GetCourseVersionItemSessionFromJSONTyped(json: any, ignoreDiscri
166
180
  return {
167
181
 
168
182
  'id': json['id'],
183
+ 'environment': ResourceSessionEnvironmentFromJSON(json['environment']),
169
184
  'courseVersionId': json['course_version_id'],
170
185
  'itemId': json['item_id'],
171
186
  'contentLibraryItemId': json['content_library_item_id'],
@@ -196,6 +211,7 @@ export function GetCourseVersionItemSessionToJSONTyped(value?: GetCourseVersionI
196
211
  return {
197
212
 
198
213
  'id': value['id'],
214
+ 'environment': ResourceSessionEnvironmentToJSON(value['environment']),
199
215
  'course_version_id': value['courseVersionId'],
200
216
  'item_id': value['itemId'],
201
217
  'content_library_item_id': value['contentLibraryItemId'],
@@ -0,0 +1,270 @@
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
+ import { mapValues } from '../runtime';
16
+ import type { ResourceSessionEnvironment } from './ResourceSessionEnvironment';
17
+ import {
18
+ ResourceSessionEnvironmentFromJSON,
19
+ ResourceSessionEnvironmentFromJSONTyped,
20
+ ResourceSessionEnvironmentToJSON,
21
+ ResourceSessionEnvironmentToJSONTyped,
22
+ } from './ResourceSessionEnvironment';
23
+ import type { ResourceType } from './ResourceType';
24
+ import {
25
+ ResourceTypeFromJSON,
26
+ ResourceTypeFromJSONTyped,
27
+ ResourceTypeToJSON,
28
+ ResourceTypeToJSONTyped,
29
+ } from './ResourceType';
30
+ import type { ContentLaunchMode } from './ContentLaunchMode';
31
+ import {
32
+ ContentLaunchModeFromJSON,
33
+ ContentLaunchModeFromJSONTyped,
34
+ ContentLaunchModeToJSON,
35
+ ContentLaunchModeToJSONTyped,
36
+ } from './ContentLaunchMode';
37
+
38
+ /**
39
+ * A user-owned session pinned to an immutable Content Library resource version.
40
+ * @export
41
+ * @interface GetResourceSession
42
+ */
43
+ export interface GetResourceSession {
44
+ /**
45
+ *
46
+ * @type {string}
47
+ * @memberof GetResourceSession
48
+ */
49
+ id: string;
50
+ /**
51
+ *
52
+ * @type {string}
53
+ * @memberof GetResourceSession
54
+ */
55
+ userId: string;
56
+ /**
57
+ *
58
+ * @type {ResourceSessionEnvironment}
59
+ * @memberof GetResourceSession
60
+ */
61
+ environment: ResourceSessionEnvironment;
62
+ /**
63
+ *
64
+ * @type {string}
65
+ * @memberof GetResourceSession
66
+ */
67
+ courseId?: string | null;
68
+ /**
69
+ *
70
+ * @type {string}
71
+ * @memberof GetResourceSession
72
+ */
73
+ courseVersionId?: string | null;
74
+ /**
75
+ *
76
+ * @type {string}
77
+ * @memberof GetResourceSession
78
+ */
79
+ itemId?: string | null;
80
+ /**
81
+ *
82
+ * @type {string}
83
+ * @memberof GetResourceSession
84
+ */
85
+ contentLibraryItemId: string;
86
+ /**
87
+ *
88
+ * @type {string}
89
+ * @memberof GetResourceSession
90
+ */
91
+ contentLibraryVersionId: string;
92
+ /**
93
+ *
94
+ * @type {string}
95
+ * @memberof GetResourceSession
96
+ */
97
+ resourceName: string;
98
+ /**
99
+ *
100
+ * @type {ResourceType}
101
+ * @memberof GetResourceSession
102
+ */
103
+ resourceType: ResourceType;
104
+ /**
105
+ *
106
+ * @type {ContentLaunchMode}
107
+ * @memberof GetResourceSession
108
+ */
109
+ launchMode?: ContentLaunchMode | null;
110
+ /**
111
+ *
112
+ * @type {string}
113
+ * @memberof GetResourceSession
114
+ */
115
+ launchUrl?: string | null;
116
+ /**
117
+ *
118
+ * @type {number}
119
+ * @memberof GetResourceSession
120
+ */
121
+ attemptNumber: number;
122
+ /**
123
+ *
124
+ * @type {boolean}
125
+ * @memberof GetResourceSession
126
+ */
127
+ isCurrent: boolean;
128
+ /**
129
+ *
130
+ * @type {string}
131
+ * @memberof GetResourceSession
132
+ */
133
+ completionStatus: string;
134
+ /**
135
+ *
136
+ * @type {string}
137
+ * @memberof GetResourceSession
138
+ */
139
+ gradeStatus: string;
140
+ /**
141
+ *
142
+ * @type {number}
143
+ * @memberof GetResourceSession
144
+ */
145
+ scoreRaw?: number | null;
146
+ /**
147
+ *
148
+ * @type {number}
149
+ * @memberof GetResourceSession
150
+ */
151
+ initializedAt?: number | null;
152
+ /**
153
+ *
154
+ * @type {number}
155
+ * @memberof GetResourceSession
156
+ */
157
+ terminatedAt?: number | null;
158
+ /**
159
+ *
160
+ * @type {number}
161
+ * @memberof GetResourceSession
162
+ */
163
+ createdAt: number;
164
+ /**
165
+ *
166
+ * @type {number}
167
+ * @memberof GetResourceSession
168
+ */
169
+ updatedAt: number;
170
+ /**
171
+ *
172
+ * @type {number}
173
+ * @memberof GetResourceSession
174
+ */
175
+ completedAt?: number | null;
176
+ }
177
+
178
+
179
+
180
+ /**
181
+ * Check if a given object implements the GetResourceSession interface.
182
+ */
183
+ export function instanceOfGetResourceSession(value: object): value is GetResourceSession {
184
+ if (!('id' in value) || value['id'] === undefined) return false;
185
+ if (!('userId' in value) || value['userId'] === undefined) return false;
186
+ if (!('environment' in value) || value['environment'] === undefined) return false;
187
+ if (!('contentLibraryItemId' in value) || value['contentLibraryItemId'] === undefined) return false;
188
+ if (!('contentLibraryVersionId' in value) || value['contentLibraryVersionId'] === undefined) return false;
189
+ if (!('resourceName' in value) || value['resourceName'] === undefined) return false;
190
+ if (!('resourceType' in value) || value['resourceType'] === undefined) return false;
191
+ if (!('attemptNumber' in value) || value['attemptNumber'] === undefined) return false;
192
+ if (!('isCurrent' in value) || value['isCurrent'] === undefined) return false;
193
+ if (!('completionStatus' in value) || value['completionStatus'] === undefined) return false;
194
+ if (!('gradeStatus' in value) || value['gradeStatus'] === undefined) return false;
195
+ if (!('createdAt' in value) || value['createdAt'] === undefined) return false;
196
+ if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;
197
+ return true;
198
+ }
199
+
200
+ export function GetResourceSessionFromJSON(json: any): GetResourceSession {
201
+ return GetResourceSessionFromJSONTyped(json, false);
202
+ }
203
+
204
+ export function GetResourceSessionFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetResourceSession {
205
+ if (json == null) {
206
+ return json;
207
+ }
208
+ return {
209
+
210
+ 'id': json['id'],
211
+ 'userId': json['user_id'],
212
+ 'environment': ResourceSessionEnvironmentFromJSON(json['environment']),
213
+ 'courseId': json['course_id'] == null ? undefined : json['course_id'],
214
+ 'courseVersionId': json['course_version_id'] == null ? undefined : json['course_version_id'],
215
+ 'itemId': json['item_id'] == null ? undefined : json['item_id'],
216
+ 'contentLibraryItemId': json['content_library_item_id'],
217
+ 'contentLibraryVersionId': json['content_library_version_id'],
218
+ 'resourceName': json['resource_name'],
219
+ 'resourceType': ResourceTypeFromJSON(json['resource_type']),
220
+ 'launchMode': json['launch_mode'] == null ? undefined : ContentLaunchModeFromJSON(json['launch_mode']),
221
+ 'launchUrl': json['launch_url'] == null ? undefined : json['launch_url'],
222
+ 'attemptNumber': json['attempt_number'],
223
+ 'isCurrent': json['is_current'],
224
+ 'completionStatus': json['completion_status'],
225
+ 'gradeStatus': json['grade_status'],
226
+ 'scoreRaw': json['score_raw'] == null ? undefined : json['score_raw'],
227
+ 'initializedAt': json['initialized_at'] == null ? undefined : json['initialized_at'],
228
+ 'terminatedAt': json['terminated_at'] == null ? undefined : json['terminated_at'],
229
+ 'createdAt': json['created_at'],
230
+ 'updatedAt': json['updated_at'],
231
+ 'completedAt': json['completed_at'] == null ? undefined : json['completed_at'],
232
+ };
233
+ }
234
+
235
+ export function GetResourceSessionToJSON(json: any): GetResourceSession {
236
+ return GetResourceSessionToJSONTyped(json, false);
237
+ }
238
+
239
+ export function GetResourceSessionToJSONTyped(value?: GetResourceSession | null, ignoreDiscriminator: boolean = false): any {
240
+ if (value == null) {
241
+ return value;
242
+ }
243
+
244
+ return {
245
+
246
+ 'id': value['id'],
247
+ 'user_id': value['userId'],
248
+ 'environment': ResourceSessionEnvironmentToJSON(value['environment']),
249
+ 'course_id': value['courseId'],
250
+ 'course_version_id': value['courseVersionId'],
251
+ 'item_id': value['itemId'],
252
+ 'content_library_item_id': value['contentLibraryItemId'],
253
+ 'content_library_version_id': value['contentLibraryVersionId'],
254
+ 'resource_name': value['resourceName'],
255
+ 'resource_type': ResourceTypeToJSON(value['resourceType']),
256
+ 'launch_mode': ContentLaunchModeToJSON(value['launchMode']),
257
+ 'launch_url': value['launchUrl'],
258
+ 'attempt_number': value['attemptNumber'],
259
+ 'is_current': value['isCurrent'],
260
+ 'completion_status': value['completionStatus'],
261
+ 'grade_status': value['gradeStatus'],
262
+ 'score_raw': value['scoreRaw'],
263
+ 'initialized_at': value['initializedAt'],
264
+ 'terminated_at': value['terminatedAt'],
265
+ 'created_at': value['createdAt'],
266
+ 'updated_at': value['updatedAt'],
267
+ 'completed_at': value['completedAt'],
268
+ };
269
+ }
270
+