@instructure/athena-api-client 3.10.1 → 3.11.1

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/README.md CHANGED
@@ -113,6 +113,7 @@ All URIs are relative to *http://localhost:3000*
113
113
  *QuizSessionsApi* | [**createQuizSession**](docs/QuizSessionsApi.md#createquizsession) | **POST** /api/v1/quizzes/{quizId}/sessions | Create a quiz session
114
114
  *QuizSessionsApi* | [**getQuizSessionSummary**](docs/QuizSessionsApi.md#getquizsessionsummary) | **GET** /api/v1/quiz-sessions/{sessionId}/summary | Get quiz session summary
115
115
  *QuizSessionsApi* | [**listQuizSessions**](docs/QuizSessionsApi.md#listquizsessions) | **GET** /api/v1/quiz-sessions | List user quiz sessions
116
+ *QuizSessionsApi* | [**recordQuizQuestionView**](docs/QuizSessionsApi.md#recordquizquestionviewoperation) | **POST** /api/v1/quiz-sessions/{sessionId}/views | Record a question view
116
117
  *QuizSessionsApi* | [**submitQuizResponse**](docs/QuizSessionsApi.md#submitquizresponseoperation) | **POST** /api/v1/quiz-sessions/{sessionId}/responses | Submit a quiz response
117
118
  *QuizSessionsApi* | [**updateQuizSession**](docs/QuizSessionsApi.md#updatequizsessionoperation) | **PATCH** /api/v1/quiz-sessions/{sessionId} | Update quiz session status
118
119
  *QuizzesApi* | [**getQuiz**](docs/QuizzesApi.md#getquiz) | **GET** /api/v1/quizzes/{quizId} | Get quiz with questions
@@ -244,12 +245,14 @@ All URIs are relative to *http://localhost:3000*
244
245
  - [Quiz](docs/Quiz.md)
245
246
  - [QuizListItem](docs/QuizListItem.md)
246
247
  - [QuizQuestion](docs/QuizQuestion.md)
248
+ - [QuizQuestionView](docs/QuizQuestionView.md)
247
249
  - [QuizResponse](docs/QuizResponse.md)
248
250
  - [QuizSession](docs/QuizSession.md)
249
251
  - [QuizSessionListItem](docs/QuizSessionListItem.md)
250
252
  - [QuizSessionScore](docs/QuizSessionScore.md)
251
253
  - [QuizSessionSummary](docs/QuizSessionSummary.md)
252
254
  - [QuizWithQuestions](docs/QuizWithQuestions.md)
255
+ - [RecordQuizQuestionViewRequest](docs/RecordQuizQuestionViewRequest.md)
253
256
  - [Score](docs/Score.md)
254
257
  - [ScoreByTypeValue](docs/ScoreByTypeValue.md)
255
258
  - [ServiceToken](docs/ServiceToken.md)
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { PaginatedQuizSessions, QuizResponse, QuizSession, QuizSessionSummary, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
13
+ import type { PaginatedQuizSessions, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
14
14
  export interface CreateQuizSessionRequest {
15
15
  quizId: string;
16
16
  xUserId: string;
@@ -26,6 +26,11 @@ export interface ListQuizSessionsRequest {
26
26
  mode?: ListQuizSessionsModeEnum;
27
27
  status?: ListQuizSessionsStatusEnum;
28
28
  }
29
+ export interface RecordQuizQuestionViewOperationRequest {
30
+ sessionId: string;
31
+ xUserId: string;
32
+ recordQuizQuestionViewRequest: RecordQuizQuestionViewRequest;
33
+ }
29
34
  export interface SubmitQuizResponseOperationRequest {
30
35
  sessionId: string;
31
36
  xUserId: string;
@@ -70,6 +75,16 @@ export declare class QuizSessionsApi extends runtime.BaseAPI {
70
75
  * List user quiz sessions
71
76
  */
72
77
  listQuizSessions(requestParameters: ListQuizSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedQuizSessions>;
78
+ /**
79
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
80
+ * Record a question view
81
+ */
82
+ recordQuizQuestionViewRaw(requestParameters: RecordQuizQuestionViewOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuizQuestionView>>;
83
+ /**
84
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
85
+ * Record a question view
86
+ */
87
+ recordQuizQuestionView(requestParameters: RecordQuizQuestionViewOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizQuestionView>;
73
88
  /**
74
89
  * Submits an answer for a question within a quiz session.
75
90
  * Submit a quiz response
@@ -160,6 +160,52 @@ class QuizSessionsApi extends runtime.BaseAPI {
160
160
  return yield response.value();
161
161
  });
162
162
  }
163
+ /**
164
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
165
+ * Record a question view
166
+ */
167
+ recordQuizQuestionViewRaw(requestParameters, initOverrides) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ if (requestParameters['sessionId'] == null) {
170
+ throw new runtime.RequiredError('sessionId', 'Required parameter "sessionId" was null or undefined when calling recordQuizQuestionView().');
171
+ }
172
+ if (requestParameters['xUserId'] == null) {
173
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling recordQuizQuestionView().');
174
+ }
175
+ if (requestParameters['recordQuizQuestionViewRequest'] == null) {
176
+ throw new runtime.RequiredError('recordQuizQuestionViewRequest', 'Required parameter "recordQuizQuestionViewRequest" was null or undefined when calling recordQuizQuestionView().');
177
+ }
178
+ const queryParameters = {};
179
+ const headerParameters = {};
180
+ headerParameters['Content-Type'] = 'application/json';
181
+ if (requestParameters['xUserId'] != null) {
182
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
183
+ }
184
+ if (this.configuration && this.configuration.apiKey) {
185
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
186
+ }
187
+ let urlPath = `/api/v1/quiz-sessions/{sessionId}/views`;
188
+ urlPath = urlPath.replace(`{${"sessionId"}}`, encodeURIComponent(String(requestParameters['sessionId'])));
189
+ const response = yield this.request({
190
+ path: urlPath,
191
+ method: 'POST',
192
+ headers: headerParameters,
193
+ query: queryParameters,
194
+ body: (0, index_1.RecordQuizQuestionViewRequestToJSON)(requestParameters['recordQuizQuestionViewRequest']),
195
+ }, initOverrides);
196
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.QuizQuestionViewFromJSON)(jsonValue));
197
+ });
198
+ }
199
+ /**
200
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
201
+ * Record a question view
202
+ */
203
+ recordQuizQuestionView(requestParameters, initOverrides) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const response = yield this.recordQuizQuestionViewRaw(requestParameters, initOverrides);
206
+ return yield response.value();
207
+ });
208
+ }
163
209
  /**
164
210
  * Submits an answer for a question within a quiz session.
165
211
  * Submit a quiz response
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { PaginatedQuizSessions, QuizResponse, QuizSession, QuizSessionSummary, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
13
+ import type { PaginatedQuizSessions, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
14
14
  export interface CreateQuizSessionRequest {
15
15
  quizId: string;
16
16
  xUserId: string;
@@ -26,6 +26,11 @@ export interface ListQuizSessionsRequest {
26
26
  mode?: ListQuizSessionsModeEnum;
27
27
  status?: ListQuizSessionsStatusEnum;
28
28
  }
29
+ export interface RecordQuizQuestionViewOperationRequest {
30
+ sessionId: string;
31
+ xUserId: string;
32
+ recordQuizQuestionViewRequest: RecordQuizQuestionViewRequest;
33
+ }
29
34
  export interface SubmitQuizResponseOperationRequest {
30
35
  sessionId: string;
31
36
  xUserId: string;
@@ -70,6 +75,16 @@ export declare class QuizSessionsApi extends runtime.BaseAPI {
70
75
  * List user quiz sessions
71
76
  */
72
77
  listQuizSessions(requestParameters: ListQuizSessionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PaginatedQuizSessions>;
78
+ /**
79
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
80
+ * Record a question view
81
+ */
82
+ recordQuizQuestionViewRaw(requestParameters: RecordQuizQuestionViewOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuizQuestionView>>;
83
+ /**
84
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
85
+ * Record a question view
86
+ */
87
+ recordQuizQuestionView(requestParameters: RecordQuizQuestionViewOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizQuestionView>;
73
88
  /**
74
89
  * Submits an answer for a question within a quiz session.
75
90
  * Submit a quiz response
@@ -21,7 +21,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
21
  });
22
22
  };
23
23
  import * as runtime from '../runtime';
24
- import { PaginatedQuizSessionsFromJSON, QuizResponseFromJSON, QuizSessionFromJSON, QuizSessionSummaryFromJSON, SubmitQuizResponseRequestToJSON, UpdateQuizSessionRequestToJSON, } from '../models/index';
24
+ import { PaginatedQuizSessionsFromJSON, QuizQuestionViewFromJSON, QuizResponseFromJSON, QuizSessionFromJSON, QuizSessionSummaryFromJSON, RecordQuizQuestionViewRequestToJSON, SubmitQuizResponseRequestToJSON, UpdateQuizSessionRequestToJSON, } from '../models/index';
25
25
  /**
26
26
  *
27
27
  */
@@ -157,6 +157,52 @@ export class QuizSessionsApi extends runtime.BaseAPI {
157
157
  return yield response.value();
158
158
  });
159
159
  }
160
+ /**
161
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
162
+ * Record a question view
163
+ */
164
+ recordQuizQuestionViewRaw(requestParameters, initOverrides) {
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ if (requestParameters['sessionId'] == null) {
167
+ throw new runtime.RequiredError('sessionId', 'Required parameter "sessionId" was null or undefined when calling recordQuizQuestionView().');
168
+ }
169
+ if (requestParameters['xUserId'] == null) {
170
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling recordQuizQuestionView().');
171
+ }
172
+ if (requestParameters['recordQuizQuestionViewRequest'] == null) {
173
+ throw new runtime.RequiredError('recordQuizQuestionViewRequest', 'Required parameter "recordQuizQuestionViewRequest" was null or undefined when calling recordQuizQuestionView().');
174
+ }
175
+ const queryParameters = {};
176
+ const headerParameters = {};
177
+ headerParameters['Content-Type'] = 'application/json';
178
+ if (requestParameters['xUserId'] != null) {
179
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
180
+ }
181
+ if (this.configuration && this.configuration.apiKey) {
182
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
183
+ }
184
+ let urlPath = `/api/v1/quiz-sessions/{sessionId}/views`;
185
+ urlPath = urlPath.replace(`{${"sessionId"}}`, encodeURIComponent(String(requestParameters['sessionId'])));
186
+ const response = yield this.request({
187
+ path: urlPath,
188
+ method: 'POST',
189
+ headers: headerParameters,
190
+ query: queryParameters,
191
+ body: RecordQuizQuestionViewRequestToJSON(requestParameters['recordQuizQuestionViewRequest']),
192
+ }, initOverrides);
193
+ return new runtime.JSONApiResponse(response, (jsonValue) => QuizQuestionViewFromJSON(jsonValue));
194
+ });
195
+ }
196
+ /**
197
+ * Increments the view count for a question within a quiz session. Records passive exposure (e.g. a flashcard the user saw or flipped) independently of whether they submitted an answer. The view count aggregates across all sessions of the question\'s quiz.
198
+ * Record a question view
199
+ */
200
+ recordQuizQuestionView(requestParameters, initOverrides) {
201
+ return __awaiter(this, void 0, void 0, function* () {
202
+ const response = yield this.recordQuizQuestionViewRaw(requestParameters, initOverrides);
203
+ return yield response.value();
204
+ });
205
+ }
160
206
  /**
161
207
  * Submits an answer for a question within a quiz session.
162
208
  * Submit a quiz response
@@ -33,6 +33,12 @@ export interface AdminQuizSessionScore {
33
33
  * @memberof AdminQuizSessionScore
34
34
  */
35
35
  answeredCount: number;
36
+ /**
37
+ * Number of questions in this quiz that have been viewed at least once
38
+ * @type {number}
39
+ * @memberof AdminQuizSessionScore
40
+ */
41
+ viewedCount: number;
36
42
  }
37
43
  /**
38
44
  * Check if a given object implements the AdminQuizSessionScore interface.
@@ -21,6 +21,8 @@ export function instanceOfAdminQuizSessionScore(value) {
21
21
  return false;
22
22
  if (!('answeredCount' in value) || value['answeredCount'] === undefined)
23
23
  return false;
24
+ if (!('viewedCount' in value) || value['viewedCount'] === undefined)
25
+ return false;
24
26
  return true;
25
27
  }
26
28
  export function AdminQuizSessionScoreFromJSON(json) {
@@ -34,6 +36,7 @@ export function AdminQuizSessionScoreFromJSONTyped(json, ignoreDiscriminator) {
34
36
  'totalCorrect': json['totalCorrect'],
35
37
  'totalQuestions': json['totalQuestions'],
36
38
  'answeredCount': json['answeredCount'],
39
+ 'viewedCount': json['viewedCount'],
37
40
  };
38
41
  }
39
42
  export function AdminQuizSessionScoreToJSON(json) {
@@ -47,5 +50,6 @@ export function AdminQuizSessionScoreToJSONTyped(value, ignoreDiscriminator = fa
47
50
  'totalCorrect': value['totalCorrect'],
48
51
  'totalQuestions': value['totalQuestions'],
49
52
  'answeredCount': value['answeredCount'],
53
+ 'viewedCount': value['viewedCount'],
50
54
  };
51
55
  }
@@ -75,6 +75,12 @@ export interface QuizQuestion {
75
75
  * @memberof QuizQuestion
76
76
  */
77
77
  topic: string | null;
78
+ /**
79
+ * Total number of times this question has been viewed
80
+ * @type {number}
81
+ * @memberof QuizQuestion
82
+ */
83
+ viewCount: number;
78
84
  /**
79
85
  *
80
86
  * @type {Date}
@@ -45,6 +45,8 @@ export function instanceOfQuizQuestion(value) {
45
45
  return false;
46
46
  if (!('topic' in value) || value['topic'] === undefined)
47
47
  return false;
48
+ if (!('viewCount' in value) || value['viewCount'] === undefined)
49
+ return false;
48
50
  if (!('createdAt' in value) || value['createdAt'] === undefined)
49
51
  return false;
50
52
  return true;
@@ -67,6 +69,7 @@ export function QuizQuestionFromJSONTyped(json, ignoreDiscriminator) {
67
69
  'correctAnswer': json['correctAnswer'],
68
70
  'explanation': json['explanation'],
69
71
  'topic': json['topic'],
72
+ 'viewCount': json['viewCount'],
70
73
  'createdAt': (new Date(json['createdAt'])),
71
74
  };
72
75
  }
@@ -88,6 +91,7 @@ export function QuizQuestionToJSONTyped(value, ignoreDiscriminator = false) {
88
91
  'correctAnswer': value['correctAnswer'],
89
92
  'explanation': value['explanation'],
90
93
  'topic': value['topic'],
94
+ 'viewCount': value['viewCount'],
91
95
  'createdAt': value['createdAt'].toISOString(),
92
96
  };
93
97
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
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 QuizQuestionView
16
+ */
17
+ export interface QuizQuestionView {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof QuizQuestionView
22
+ */
23
+ questionId: string;
24
+ /**
25
+ * Total number of times this question has been viewed
26
+ * @type {number}
27
+ * @memberof QuizQuestionView
28
+ */
29
+ viewCount: number;
30
+ }
31
+ /**
32
+ * Check if a given object implements the QuizQuestionView interface.
33
+ */
34
+ export declare function instanceOfQuizQuestionView(value: object): value is QuizQuestionView;
35
+ export declare function QuizQuestionViewFromJSON(json: any): QuizQuestionView;
36
+ export declare function QuizQuestionViewFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizQuestionView;
37
+ export declare function QuizQuestionViewToJSON(json: any): QuizQuestionView;
38
+ export declare function QuizQuestionViewToJSONTyped(value?: QuizQuestionView | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Athena API
5
+ * REST API for the Athena system
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 QuizQuestionView interface.
16
+ */
17
+ export function instanceOfQuizQuestionView(value) {
18
+ if (!('questionId' in value) || value['questionId'] === undefined)
19
+ return false;
20
+ if (!('viewCount' in value) || value['viewCount'] === undefined)
21
+ return false;
22
+ return true;
23
+ }
24
+ export function QuizQuestionViewFromJSON(json) {
25
+ return QuizQuestionViewFromJSONTyped(json, false);
26
+ }
27
+ export function QuizQuestionViewFromJSONTyped(json, ignoreDiscriminator) {
28
+ if (json == null) {
29
+ return json;
30
+ }
31
+ return {
32
+ 'questionId': json['questionId'],
33
+ 'viewCount': json['viewCount'],
34
+ };
35
+ }
36
+ export function QuizQuestionViewToJSON(json) {
37
+ return QuizQuestionViewToJSONTyped(json, false);
38
+ }
39
+ export function QuizQuestionViewToJSONTyped(value, ignoreDiscriminator = false) {
40
+ if (value == null) {
41
+ return value;
42
+ }
43
+ return {
44
+ 'questionId': value['questionId'],
45
+ 'viewCount': value['viewCount'],
46
+ };
47
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
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 RecordQuizQuestionViewRequest
16
+ */
17
+ export interface RecordQuizQuestionViewRequest {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof RecordQuizQuestionViewRequest
22
+ */
23
+ questionId: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the RecordQuizQuestionViewRequest interface.
27
+ */
28
+ export declare function instanceOfRecordQuizQuestionViewRequest(value: object): value is RecordQuizQuestionViewRequest;
29
+ export declare function RecordQuizQuestionViewRequestFromJSON(json: any): RecordQuizQuestionViewRequest;
30
+ export declare function RecordQuizQuestionViewRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecordQuizQuestionViewRequest;
31
+ export declare function RecordQuizQuestionViewRequestToJSON(json: any): RecordQuizQuestionViewRequest;
32
+ export declare function RecordQuizQuestionViewRequestToJSONTyped(value?: RecordQuizQuestionViewRequest | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,43 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Athena API
5
+ * REST API for the Athena system
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 RecordQuizQuestionViewRequest interface.
16
+ */
17
+ export function instanceOfRecordQuizQuestionViewRequest(value) {
18
+ if (!('questionId' in value) || value['questionId'] === undefined)
19
+ return false;
20
+ return true;
21
+ }
22
+ export function RecordQuizQuestionViewRequestFromJSON(json) {
23
+ return RecordQuizQuestionViewRequestFromJSONTyped(json, false);
24
+ }
25
+ export function RecordQuizQuestionViewRequestFromJSONTyped(json, ignoreDiscriminator) {
26
+ if (json == null) {
27
+ return json;
28
+ }
29
+ return {
30
+ 'questionId': json['questionId'],
31
+ };
32
+ }
33
+ export function RecordQuizQuestionViewRequestToJSON(json) {
34
+ return RecordQuizQuestionViewRequestToJSONTyped(json, false);
35
+ }
36
+ export function RecordQuizQuestionViewRequestToJSONTyped(value, ignoreDiscriminator = false) {
37
+ if (value == null) {
38
+ return value;
39
+ }
40
+ return {
41
+ 'questionId': value['questionId'],
42
+ };
43
+ }
@@ -78,12 +78,14 @@ export * from './PracticeQuizStatusList';
78
78
  export * from './Quiz';
79
79
  export * from './QuizListItem';
80
80
  export * from './QuizQuestion';
81
+ export * from './QuizQuestionView';
81
82
  export * from './QuizResponse';
82
83
  export * from './QuizSession';
83
84
  export * from './QuizSessionListItem';
84
85
  export * from './QuizSessionScore';
85
86
  export * from './QuizSessionSummary';
86
87
  export * from './QuizWithQuestions';
88
+ export * from './RecordQuizQuestionViewRequest';
87
89
  export * from './Score';
88
90
  export * from './ScoreByTypeValue';
89
91
  export * from './ServiceToken';
@@ -80,12 +80,14 @@ export * from './PracticeQuizStatusList';
80
80
  export * from './Quiz';
81
81
  export * from './QuizListItem';
82
82
  export * from './QuizQuestion';
83
+ export * from './QuizQuestionView';
83
84
  export * from './QuizResponse';
84
85
  export * from './QuizSession';
85
86
  export * from './QuizSessionListItem';
86
87
  export * from './QuizSessionScore';
87
88
  export * from './QuizSessionSummary';
88
89
  export * from './QuizWithQuestions';
90
+ export * from './RecordQuizQuestionViewRequest';
89
91
  export * from './Score';
90
92
  export * from './ScoreByTypeValue';
91
93
  export * from './ServiceToken';
@@ -33,6 +33,12 @@ export interface AdminQuizSessionScore {
33
33
  * @memberof AdminQuizSessionScore
34
34
  */
35
35
  answeredCount: number;
36
+ /**
37
+ * Number of questions in this quiz that have been viewed at least once
38
+ * @type {number}
39
+ * @memberof AdminQuizSessionScore
40
+ */
41
+ viewedCount: number;
36
42
  }
37
43
  /**
38
44
  * Check if a given object implements the AdminQuizSessionScore interface.
@@ -28,6 +28,8 @@ function instanceOfAdminQuizSessionScore(value) {
28
28
  return false;
29
29
  if (!('answeredCount' in value) || value['answeredCount'] === undefined)
30
30
  return false;
31
+ if (!('viewedCount' in value) || value['viewedCount'] === undefined)
32
+ return false;
31
33
  return true;
32
34
  }
33
35
  function AdminQuizSessionScoreFromJSON(json) {
@@ -41,6 +43,7 @@ function AdminQuizSessionScoreFromJSONTyped(json, ignoreDiscriminator) {
41
43
  'totalCorrect': json['totalCorrect'],
42
44
  'totalQuestions': json['totalQuestions'],
43
45
  'answeredCount': json['answeredCount'],
46
+ 'viewedCount': json['viewedCount'],
44
47
  };
45
48
  }
46
49
  function AdminQuizSessionScoreToJSON(json) {
@@ -54,5 +57,6 @@ function AdminQuizSessionScoreToJSONTyped(value, ignoreDiscriminator = false) {
54
57
  'totalCorrect': value['totalCorrect'],
55
58
  'totalQuestions': value['totalQuestions'],
56
59
  'answeredCount': value['answeredCount'],
60
+ 'viewedCount': value['viewedCount'],
57
61
  };
58
62
  }
@@ -75,6 +75,12 @@ export interface QuizQuestion {
75
75
  * @memberof QuizQuestion
76
76
  */
77
77
  topic: string | null;
78
+ /**
79
+ * Total number of times this question has been viewed
80
+ * @type {number}
81
+ * @memberof QuizQuestion
82
+ */
83
+ viewCount: number;
78
84
  /**
79
85
  *
80
86
  * @type {Date}
@@ -53,6 +53,8 @@ function instanceOfQuizQuestion(value) {
53
53
  return false;
54
54
  if (!('topic' in value) || value['topic'] === undefined)
55
55
  return false;
56
+ if (!('viewCount' in value) || value['viewCount'] === undefined)
57
+ return false;
56
58
  if (!('createdAt' in value) || value['createdAt'] === undefined)
57
59
  return false;
58
60
  return true;
@@ -75,6 +77,7 @@ function QuizQuestionFromJSONTyped(json, ignoreDiscriminator) {
75
77
  'correctAnswer': json['correctAnswer'],
76
78
  'explanation': json['explanation'],
77
79
  'topic': json['topic'],
80
+ 'viewCount': json['viewCount'],
78
81
  'createdAt': (new Date(json['createdAt'])),
79
82
  };
80
83
  }
@@ -96,6 +99,7 @@ function QuizQuestionToJSONTyped(value, ignoreDiscriminator = false) {
96
99
  'correctAnswer': value['correctAnswer'],
97
100
  'explanation': value['explanation'],
98
101
  'topic': value['topic'],
102
+ 'viewCount': value['viewCount'],
99
103
  'createdAt': value['createdAt'].toISOString(),
100
104
  };
101
105
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
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 QuizQuestionView
16
+ */
17
+ export interface QuizQuestionView {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof QuizQuestionView
22
+ */
23
+ questionId: string;
24
+ /**
25
+ * Total number of times this question has been viewed
26
+ * @type {number}
27
+ * @memberof QuizQuestionView
28
+ */
29
+ viewCount: number;
30
+ }
31
+ /**
32
+ * Check if a given object implements the QuizQuestionView interface.
33
+ */
34
+ export declare function instanceOfQuizQuestionView(value: object): value is QuizQuestionView;
35
+ export declare function QuizQuestionViewFromJSON(json: any): QuizQuestionView;
36
+ export declare function QuizQuestionViewFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizQuestionView;
37
+ export declare function QuizQuestionViewToJSON(json: any): QuizQuestionView;
38
+ export declare function QuizQuestionViewToJSONTyped(value?: QuizQuestionView | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Athena API
6
+ * REST API for the Athena system
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfQuizQuestionView = instanceOfQuizQuestionView;
17
+ exports.QuizQuestionViewFromJSON = QuizQuestionViewFromJSON;
18
+ exports.QuizQuestionViewFromJSONTyped = QuizQuestionViewFromJSONTyped;
19
+ exports.QuizQuestionViewToJSON = QuizQuestionViewToJSON;
20
+ exports.QuizQuestionViewToJSONTyped = QuizQuestionViewToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the QuizQuestionView interface.
23
+ */
24
+ function instanceOfQuizQuestionView(value) {
25
+ if (!('questionId' in value) || value['questionId'] === undefined)
26
+ return false;
27
+ if (!('viewCount' in value) || value['viewCount'] === undefined)
28
+ return false;
29
+ return true;
30
+ }
31
+ function QuizQuestionViewFromJSON(json) {
32
+ return QuizQuestionViewFromJSONTyped(json, false);
33
+ }
34
+ function QuizQuestionViewFromJSONTyped(json, ignoreDiscriminator) {
35
+ if (json == null) {
36
+ return json;
37
+ }
38
+ return {
39
+ 'questionId': json['questionId'],
40
+ 'viewCount': json['viewCount'],
41
+ };
42
+ }
43
+ function QuizQuestionViewToJSON(json) {
44
+ return QuizQuestionViewToJSONTyped(json, false);
45
+ }
46
+ function QuizQuestionViewToJSONTyped(value, ignoreDiscriminator = false) {
47
+ if (value == null) {
48
+ return value;
49
+ }
50
+ return {
51
+ 'questionId': value['questionId'],
52
+ 'viewCount': value['viewCount'],
53
+ };
54
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
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 RecordQuizQuestionViewRequest
16
+ */
17
+ export interface RecordQuizQuestionViewRequest {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof RecordQuizQuestionViewRequest
22
+ */
23
+ questionId: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the RecordQuizQuestionViewRequest interface.
27
+ */
28
+ export declare function instanceOfRecordQuizQuestionViewRequest(value: object): value is RecordQuizQuestionViewRequest;
29
+ export declare function RecordQuizQuestionViewRequestFromJSON(json: any): RecordQuizQuestionViewRequest;
30
+ export declare function RecordQuizQuestionViewRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RecordQuizQuestionViewRequest;
31
+ export declare function RecordQuizQuestionViewRequestToJSON(json: any): RecordQuizQuestionViewRequest;
32
+ export declare function RecordQuizQuestionViewRequestToJSONTyped(value?: RecordQuizQuestionViewRequest | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Athena API
6
+ * REST API for the Athena system
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfRecordQuizQuestionViewRequest = instanceOfRecordQuizQuestionViewRequest;
17
+ exports.RecordQuizQuestionViewRequestFromJSON = RecordQuizQuestionViewRequestFromJSON;
18
+ exports.RecordQuizQuestionViewRequestFromJSONTyped = RecordQuizQuestionViewRequestFromJSONTyped;
19
+ exports.RecordQuizQuestionViewRequestToJSON = RecordQuizQuestionViewRequestToJSON;
20
+ exports.RecordQuizQuestionViewRequestToJSONTyped = RecordQuizQuestionViewRequestToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the RecordQuizQuestionViewRequest interface.
23
+ */
24
+ function instanceOfRecordQuizQuestionViewRequest(value) {
25
+ if (!('questionId' in value) || value['questionId'] === undefined)
26
+ return false;
27
+ return true;
28
+ }
29
+ function RecordQuizQuestionViewRequestFromJSON(json) {
30
+ return RecordQuizQuestionViewRequestFromJSONTyped(json, false);
31
+ }
32
+ function RecordQuizQuestionViewRequestFromJSONTyped(json, ignoreDiscriminator) {
33
+ if (json == null) {
34
+ return json;
35
+ }
36
+ return {
37
+ 'questionId': json['questionId'],
38
+ };
39
+ }
40
+ function RecordQuizQuestionViewRequestToJSON(json) {
41
+ return RecordQuizQuestionViewRequestToJSONTyped(json, false);
42
+ }
43
+ function RecordQuizQuestionViewRequestToJSONTyped(value, ignoreDiscriminator = false) {
44
+ if (value == null) {
45
+ return value;
46
+ }
47
+ return {
48
+ 'questionId': value['questionId'],
49
+ };
50
+ }
@@ -78,12 +78,14 @@ export * from './PracticeQuizStatusList';
78
78
  export * from './Quiz';
79
79
  export * from './QuizListItem';
80
80
  export * from './QuizQuestion';
81
+ export * from './QuizQuestionView';
81
82
  export * from './QuizResponse';
82
83
  export * from './QuizSession';
83
84
  export * from './QuizSessionListItem';
84
85
  export * from './QuizSessionScore';
85
86
  export * from './QuizSessionSummary';
86
87
  export * from './QuizWithQuestions';
88
+ export * from './RecordQuizQuestionViewRequest';
87
89
  export * from './Score';
88
90
  export * from './ScoreByTypeValue';
89
91
  export * from './ServiceToken';
@@ -96,12 +96,14 @@ __exportStar(require("./PracticeQuizStatusList"), exports);
96
96
  __exportStar(require("./Quiz"), exports);
97
97
  __exportStar(require("./QuizListItem"), exports);
98
98
  __exportStar(require("./QuizQuestion"), exports);
99
+ __exportStar(require("./QuizQuestionView"), exports);
99
100
  __exportStar(require("./QuizResponse"), exports);
100
101
  __exportStar(require("./QuizSession"), exports);
101
102
  __exportStar(require("./QuizSessionListItem"), exports);
102
103
  __exportStar(require("./QuizSessionScore"), exports);
103
104
  __exportStar(require("./QuizSessionSummary"), exports);
104
105
  __exportStar(require("./QuizWithQuestions"), exports);
106
+ __exportStar(require("./RecordQuizQuestionViewRequest"), exports);
105
107
  __exportStar(require("./Score"), exports);
106
108
  __exportStar(require("./ScoreByTypeValue"), exports);
107
109
  __exportStar(require("./ServiceToken"), exports);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@instructure/athena-api-client",
3
3
  "private": false,
4
- "version": "3.10.1",
4
+ "version": "3.11.1",
5
5
  "description": "OpenAPI client for the Athena API",
6
6
  "author": "Instructure",
7
7
  "repository": {