@instructure/athena-api-client 3.18.3 → 3.18.4

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
@@ -115,6 +115,7 @@ All URIs are relative to *http://localhost:3000*
115
115
  *PracticeQuizzesApi* | [**createPracticeQuiz**](docs/PracticeQuizzesApi.md#createpracticequizoperation) | **POST** /api/v1/practice-quizzes | Find or create a practice-quiz slot
116
116
  *PracticeQuizzesApi* | [**listPracticeQuizzes**](docs/PracticeQuizzesApi.md#listpracticequizzes) | **GET** /api/v1/practice-quizzes | List practice-quiz slots for a course
117
117
  *QuizSessionsApi* | [**createQuizSession**](docs/QuizSessionsApi.md#createquizsession) | **POST** /api/v1/quizzes/{quizId}/sessions | Create a quiz session
118
+ *QuizSessionsApi* | [**getQuizSessionConceptSummary**](docs/QuizSessionsApi.md#getquizsessionconceptsummary) | **GET** /api/v1/quiz-sessions/{sessionId}/concept-summary | Get quiz session concept mastery summary
118
119
  *QuizSessionsApi* | [**getQuizSessionSummary**](docs/QuizSessionsApi.md#getquizsessionsummary) | **GET** /api/v1/quiz-sessions/{sessionId}/summary | Get quiz session summary
119
120
  *QuizSessionsApi* | [**listQuizSessions**](docs/QuizSessionsApi.md#listquizsessions) | **GET** /api/v1/quiz-sessions | List user quiz sessions
120
121
  *QuizSessionsApi* | [**recordQuizQuestionView**](docs/QuizSessionsApi.md#recordquizquestionviewoperation) | **POST** /api/v1/quiz-sessions/{sessionId}/views | Record a question view
@@ -211,6 +212,7 @@ All URIs are relative to *http://localhost:3000*
211
212
  - [ChatRequestQuizContextAnswerState](docs/ChatRequestQuizContextAnswerState.md)
212
213
  - [ChatRequestQuizContextCurrentQuestion](docs/ChatRequestQuizContextCurrentQuestion.md)
213
214
  - [ConceptAssessmentEntity](docs/ConceptAssessmentEntity.md)
215
+ - [ConceptChange](docs/ConceptChange.md)
214
216
  - [CreateAccountRequest](docs/CreateAccountRequest.md)
215
217
  - [CreateChatRequest](docs/CreateChatRequest.md)
216
218
  - [CreateFeatureDto](docs/CreateFeatureDto.md)
@@ -255,6 +257,7 @@ All URIs are relative to *http://localhost:3000*
255
257
  - [PracticeQuizStatus](docs/PracticeQuizStatus.md)
256
258
  - [PracticeQuizStatusList](docs/PracticeQuizStatusList.md)
257
259
  - [Quiz](docs/Quiz.md)
260
+ - [QuizConceptSummary](docs/QuizConceptSummary.md)
258
261
  - [QuizListItem](docs/QuizListItem.md)
259
262
  - [QuizQuestion](docs/QuizQuestion.md)
260
263
  - [QuizQuestionView](docs/QuizQuestionView.md)
@@ -10,11 +10,15 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { PaginatedQuizSessions, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
13
+ import type { PaginatedQuizSessions, QuizConceptSummary, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
14
14
  export interface CreateQuizSessionRequest {
15
15
  quizId: string;
16
16
  xUserId: string;
17
17
  }
18
+ export interface GetQuizSessionConceptSummaryRequest {
19
+ sessionId: string;
20
+ xUserId: string;
21
+ }
18
22
  export interface GetQuizSessionSummaryRequest {
19
23
  sessionId: string;
20
24
  xUserId: string;
@@ -55,6 +59,16 @@ export declare class QuizSessionsApi extends runtime.BaseAPI {
55
59
  * Create a quiz session
56
60
  */
57
61
  createQuizSession(requestParameters: CreateQuizSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizSession>;
62
+ /**
63
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
64
+ * Get quiz session concept mastery summary
65
+ */
66
+ getQuizSessionConceptSummaryRaw(requestParameters: GetQuizSessionConceptSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuizConceptSummary>>;
67
+ /**
68
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
69
+ * Get quiz session concept mastery summary
70
+ */
71
+ getQuizSessionConceptSummary(requestParameters: GetQuizSessionConceptSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizConceptSummary>;
58
72
  /**
59
73
  * Returns the session summary with quiz details, questions, responses, and score breakdown.
60
74
  * Get quiz session summary
@@ -70,6 +70,47 @@ class QuizSessionsApi extends runtime.BaseAPI {
70
70
  return yield response.value();
71
71
  });
72
72
  }
73
+ /**
74
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
75
+ * Get quiz session concept mastery summary
76
+ */
77
+ getQuizSessionConceptSummaryRaw(requestParameters, initOverrides) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ if (requestParameters['sessionId'] == null) {
80
+ throw new runtime.RequiredError('sessionId', 'Required parameter "sessionId" was null or undefined when calling getQuizSessionConceptSummary().');
81
+ }
82
+ if (requestParameters['xUserId'] == null) {
83
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling getQuizSessionConceptSummary().');
84
+ }
85
+ const queryParameters = {};
86
+ const headerParameters = {};
87
+ if (requestParameters['xUserId'] != null) {
88
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
89
+ }
90
+ if (this.configuration && this.configuration.apiKey) {
91
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
92
+ }
93
+ let urlPath = `/api/v1/quiz-sessions/{sessionId}/concept-summary`;
94
+ urlPath = urlPath.replace(`{${"sessionId"}}`, encodeURIComponent(String(requestParameters['sessionId'])));
95
+ const response = yield this.request({
96
+ path: urlPath,
97
+ method: 'GET',
98
+ headers: headerParameters,
99
+ query: queryParameters,
100
+ }, initOverrides);
101
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.QuizConceptSummaryFromJSON)(jsonValue));
102
+ });
103
+ }
104
+ /**
105
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
106
+ * Get quiz session concept mastery summary
107
+ */
108
+ getQuizSessionConceptSummary(requestParameters, initOverrides) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ const response = yield this.getQuizSessionConceptSummaryRaw(requestParameters, initOverrides);
111
+ return yield response.value();
112
+ });
113
+ }
73
114
  /**
74
115
  * Returns the session summary with quiz details, questions, responses, and score breakdown.
75
116
  * Get quiz session summary
@@ -10,11 +10,15 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { PaginatedQuizSessions, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
13
+ import type { PaginatedQuizSessions, QuizConceptSummary, QuizQuestionView, QuizResponse, QuizSession, QuizSessionSummary, RecordQuizQuestionViewRequest, SubmitQuizResponseRequest, UpdateQuizSessionRequest } from '../models/index';
14
14
  export interface CreateQuizSessionRequest {
15
15
  quizId: string;
16
16
  xUserId: string;
17
17
  }
18
+ export interface GetQuizSessionConceptSummaryRequest {
19
+ sessionId: string;
20
+ xUserId: string;
21
+ }
18
22
  export interface GetQuizSessionSummaryRequest {
19
23
  sessionId: string;
20
24
  xUserId: string;
@@ -55,6 +59,16 @@ export declare class QuizSessionsApi extends runtime.BaseAPI {
55
59
  * Create a quiz session
56
60
  */
57
61
  createQuizSession(requestParameters: CreateQuizSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizSession>;
62
+ /**
63
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
64
+ * Get quiz session concept mastery summary
65
+ */
66
+ getQuizSessionConceptSummaryRaw(requestParameters: GetQuizSessionConceptSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<QuizConceptSummary>>;
67
+ /**
68
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
69
+ * Get quiz session concept mastery summary
70
+ */
71
+ getQuizSessionConceptSummary(requestParameters: GetQuizSessionConceptSummaryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<QuizConceptSummary>;
58
72
  /**
59
73
  * Returns the session summary with quiz details, questions, responses, and score breakdown.
60
74
  * Get quiz session summary
@@ -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, QuizQuestionViewFromJSON, QuizResponseFromJSON, QuizSessionFromJSON, QuizSessionSummaryFromJSON, RecordQuizQuestionViewRequestToJSON, SubmitQuizResponseRequestToJSON, UpdateQuizSessionRequestToJSON, } from '../models/index';
24
+ import { PaginatedQuizSessionsFromJSON, QuizConceptSummaryFromJSON, QuizQuestionViewFromJSON, QuizResponseFromJSON, QuizSessionFromJSON, QuizSessionSummaryFromJSON, RecordQuizQuestionViewRequestToJSON, SubmitQuizResponseRequestToJSON, UpdateQuizSessionRequestToJSON, } from '../models/index';
25
25
  /**
26
26
  *
27
27
  */
@@ -67,6 +67,47 @@ export class QuizSessionsApi extends runtime.BaseAPI {
67
67
  return yield response.value();
68
68
  });
69
69
  }
70
+ /**
71
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
72
+ * Get quiz session concept mastery summary
73
+ */
74
+ getQuizSessionConceptSummaryRaw(requestParameters, initOverrides) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ if (requestParameters['sessionId'] == null) {
77
+ throw new runtime.RequiredError('sessionId', 'Required parameter "sessionId" was null or undefined when calling getQuizSessionConceptSummary().');
78
+ }
79
+ if (requestParameters['xUserId'] == null) {
80
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling getQuizSessionConceptSummary().');
81
+ }
82
+ const queryParameters = {};
83
+ const headerParameters = {};
84
+ if (requestParameters['xUserId'] != null) {
85
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
86
+ }
87
+ if (this.configuration && this.configuration.apiKey) {
88
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
89
+ }
90
+ let urlPath = `/api/v1/quiz-sessions/{sessionId}/concept-summary`;
91
+ urlPath = urlPath.replace(`{${"sessionId"}}`, encodeURIComponent(String(requestParameters['sessionId'])));
92
+ const response = yield this.request({
93
+ path: urlPath,
94
+ method: 'GET',
95
+ headers: headerParameters,
96
+ query: queryParameters,
97
+ }, initOverrides);
98
+ return new runtime.JSONApiResponse(response, (jsonValue) => QuizConceptSummaryFromJSON(jsonValue));
99
+ });
100
+ }
101
+ /**
102
+ * Returns each concept assessed during the session with its mastery strength and tier before and after the session.
103
+ * Get quiz session concept mastery summary
104
+ */
105
+ getQuizSessionConceptSummary(requestParameters, initOverrides) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ const response = yield this.getQuizSessionConceptSummaryRaw(requestParameters, initOverrides);
108
+ return yield response.value();
109
+ });
110
+ }
70
111
  /**
71
112
  * Returns the session summary with quiz details, questions, responses, and score breakdown.
72
113
  * Get quiz session summary
@@ -0,0 +1,111 @@
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 ConceptChange
16
+ */
17
+ export interface ConceptChange {
18
+ /**
19
+ * Foreign key to the concept row
20
+ * @type {string}
21
+ * @memberof ConceptChange
22
+ */
23
+ conceptId: string;
24
+ /**
25
+ * Human-readable concept name
26
+ * @type {string}
27
+ * @memberof ConceptChange
28
+ */
29
+ name: string;
30
+ /**
31
+ * Short display label for the concept
32
+ * @type {string}
33
+ * @memberof ConceptChange
34
+ */
35
+ shortName: string;
36
+ /**
37
+ * Mastery strength for this concept before the quiz session, expressed as a fixed-point string in [0, 1]. Reconstructed from the most recent history entry at or before the session start; "0.000" if the concept had never been assessed.
38
+ * @type {string}
39
+ * @memberof ConceptChange
40
+ */
41
+ beforeStrength: string;
42
+ /**
43
+ * Mastery tier bucketed from beforeStrength
44
+ * @type {string}
45
+ * @memberof ConceptChange
46
+ */
47
+ beforeTier: ConceptChangeBeforeTierEnum;
48
+ /**
49
+ * Current mastery strength for this concept, expressed as a fixed-point string in [0, 1].
50
+ * @type {string}
51
+ * @memberof ConceptChange
52
+ */
53
+ afterStrength: string;
54
+ /**
55
+ * Mastery tier bucketed from afterStrength
56
+ * @type {string}
57
+ * @memberof ConceptChange
58
+ */
59
+ afterTier: ConceptChangeAfterTierEnum;
60
+ /**
61
+ * Direction of change from before to after
62
+ * @type {string}
63
+ * @memberof ConceptChange
64
+ */
65
+ direction: ConceptChangeDirectionEnum;
66
+ /**
67
+ * Count of answered questions in this session tagged with this concept
68
+ * @type {number}
69
+ * @memberof ConceptChange
70
+ */
71
+ questionsReinforced: number;
72
+ }
73
+ /**
74
+ * @export
75
+ */
76
+ export declare const ConceptChangeBeforeTierEnum: {
77
+ readonly Novice: "Novice";
78
+ readonly Developing: "Developing";
79
+ readonly Competent: "Competent";
80
+ readonly Proficient: "Proficient";
81
+ readonly Expert: "Expert";
82
+ };
83
+ export type ConceptChangeBeforeTierEnum = typeof ConceptChangeBeforeTierEnum[keyof typeof ConceptChangeBeforeTierEnum];
84
+ /**
85
+ * @export
86
+ */
87
+ export declare const ConceptChangeAfterTierEnum: {
88
+ readonly Novice: "Novice";
89
+ readonly Developing: "Developing";
90
+ readonly Competent: "Competent";
91
+ readonly Proficient: "Proficient";
92
+ readonly Expert: "Expert";
93
+ };
94
+ export type ConceptChangeAfterTierEnum = typeof ConceptChangeAfterTierEnum[keyof typeof ConceptChangeAfterTierEnum];
95
+ /**
96
+ * @export
97
+ */
98
+ export declare const ConceptChangeDirectionEnum: {
99
+ readonly Up: "up";
100
+ readonly Down: "down";
101
+ readonly Same: "same";
102
+ };
103
+ export type ConceptChangeDirectionEnum = typeof ConceptChangeDirectionEnum[keyof typeof ConceptChangeDirectionEnum];
104
+ /**
105
+ * Check if a given object implements the ConceptChange interface.
106
+ */
107
+ export declare function instanceOfConceptChange(value: object): value is ConceptChange;
108
+ export declare function ConceptChangeFromJSON(json: any): ConceptChange;
109
+ export declare function ConceptChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConceptChange;
110
+ export declare function ConceptChangeToJSON(json: any): ConceptChange;
111
+ export declare function ConceptChangeToJSONTyped(value?: ConceptChange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,103 @@
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
+ * @export
16
+ */
17
+ export const ConceptChangeBeforeTierEnum = {
18
+ Novice: 'Novice',
19
+ Developing: 'Developing',
20
+ Competent: 'Competent',
21
+ Proficient: 'Proficient',
22
+ Expert: 'Expert'
23
+ };
24
+ /**
25
+ * @export
26
+ */
27
+ export const ConceptChangeAfterTierEnum = {
28
+ Novice: 'Novice',
29
+ Developing: 'Developing',
30
+ Competent: 'Competent',
31
+ Proficient: 'Proficient',
32
+ Expert: 'Expert'
33
+ };
34
+ /**
35
+ * @export
36
+ */
37
+ export const ConceptChangeDirectionEnum = {
38
+ Up: 'up',
39
+ Down: 'down',
40
+ Same: 'same'
41
+ };
42
+ /**
43
+ * Check if a given object implements the ConceptChange interface.
44
+ */
45
+ export function instanceOfConceptChange(value) {
46
+ if (!('conceptId' in value) || value['conceptId'] === undefined)
47
+ return false;
48
+ if (!('name' in value) || value['name'] === undefined)
49
+ return false;
50
+ if (!('shortName' in value) || value['shortName'] === undefined)
51
+ return false;
52
+ if (!('beforeStrength' in value) || value['beforeStrength'] === undefined)
53
+ return false;
54
+ if (!('beforeTier' in value) || value['beforeTier'] === undefined)
55
+ return false;
56
+ if (!('afterStrength' in value) || value['afterStrength'] === undefined)
57
+ return false;
58
+ if (!('afterTier' in value) || value['afterTier'] === undefined)
59
+ return false;
60
+ if (!('direction' in value) || value['direction'] === undefined)
61
+ return false;
62
+ if (!('questionsReinforced' in value) || value['questionsReinforced'] === undefined)
63
+ return false;
64
+ return true;
65
+ }
66
+ export function ConceptChangeFromJSON(json) {
67
+ return ConceptChangeFromJSONTyped(json, false);
68
+ }
69
+ export function ConceptChangeFromJSONTyped(json, ignoreDiscriminator) {
70
+ if (json == null) {
71
+ return json;
72
+ }
73
+ return {
74
+ 'conceptId': json['conceptId'],
75
+ 'name': json['name'],
76
+ 'shortName': json['shortName'],
77
+ 'beforeStrength': json['beforeStrength'],
78
+ 'beforeTier': json['beforeTier'],
79
+ 'afterStrength': json['afterStrength'],
80
+ 'afterTier': json['afterTier'],
81
+ 'direction': json['direction'],
82
+ 'questionsReinforced': json['questionsReinforced'],
83
+ };
84
+ }
85
+ export function ConceptChangeToJSON(json) {
86
+ return ConceptChangeToJSONTyped(json, false);
87
+ }
88
+ export function ConceptChangeToJSONTyped(value, ignoreDiscriminator = false) {
89
+ if (value == null) {
90
+ return value;
91
+ }
92
+ return {
93
+ 'conceptId': value['conceptId'],
94
+ 'name': value['name'],
95
+ 'shortName': value['shortName'],
96
+ 'beforeStrength': value['beforeStrength'],
97
+ 'beforeTier': value['beforeTier'],
98
+ 'afterStrength': value['afterStrength'],
99
+ 'afterTier': value['afterTier'],
100
+ 'direction': value['direction'],
101
+ 'questionsReinforced': value['questionsReinforced'],
102
+ };
103
+ }
@@ -0,0 +1,39 @@
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
+ import type { ConceptChange } from './ConceptChange';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface QuizConceptSummary
17
+ */
18
+ export interface QuizConceptSummary {
19
+ /**
20
+ *
21
+ * @type {Array<ConceptChange>}
22
+ * @memberof QuizConceptSummary
23
+ */
24
+ concepts: Array<ConceptChange>;
25
+ /**
26
+ * Study objective this quiz's chat is linked to, or null if the quiz wasn't started from a study objective
27
+ * @type {string}
28
+ * @memberof QuizConceptSummary
29
+ */
30
+ studyObjectiveId: string | null;
31
+ }
32
+ /**
33
+ * Check if a given object implements the QuizConceptSummary interface.
34
+ */
35
+ export declare function instanceOfQuizConceptSummary(value: object): value is QuizConceptSummary;
36
+ export declare function QuizConceptSummaryFromJSON(json: any): QuizConceptSummary;
37
+ export declare function QuizConceptSummaryFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizConceptSummary;
38
+ export declare function QuizConceptSummaryToJSON(json: any): QuizConceptSummary;
39
+ export declare function QuizConceptSummaryToJSONTyped(value?: QuizConceptSummary | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,48 @@
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
+ import { ConceptChangeFromJSON, ConceptChangeToJSON, } from './ConceptChange';
15
+ /**
16
+ * Check if a given object implements the QuizConceptSummary interface.
17
+ */
18
+ export function instanceOfQuizConceptSummary(value) {
19
+ if (!('concepts' in value) || value['concepts'] === undefined)
20
+ return false;
21
+ if (!('studyObjectiveId' in value) || value['studyObjectiveId'] === undefined)
22
+ return false;
23
+ return true;
24
+ }
25
+ export function QuizConceptSummaryFromJSON(json) {
26
+ return QuizConceptSummaryFromJSONTyped(json, false);
27
+ }
28
+ export function QuizConceptSummaryFromJSONTyped(json, ignoreDiscriminator) {
29
+ if (json == null) {
30
+ return json;
31
+ }
32
+ return {
33
+ 'concepts': (json['concepts'].map(ConceptChangeFromJSON)),
34
+ 'studyObjectiveId': json['studyObjectiveId'],
35
+ };
36
+ }
37
+ export function QuizConceptSummaryToJSON(json) {
38
+ return QuizConceptSummaryToJSONTyped(json, false);
39
+ }
40
+ export function QuizConceptSummaryToJSONTyped(value, ignoreDiscriminator = false) {
41
+ if (value == null) {
42
+ return value;
43
+ }
44
+ return {
45
+ 'concepts': (value['concepts'].map(ConceptChangeToJSON)),
46
+ 'studyObjectiveId': value['studyObjectiveId'],
47
+ };
48
+ }
@@ -40,6 +40,7 @@ export * from './ChatRequestQuizContext';
40
40
  export * from './ChatRequestQuizContextAnswerState';
41
41
  export * from './ChatRequestQuizContextCurrentQuestion';
42
42
  export * from './ConceptAssessmentEntity';
43
+ export * from './ConceptChange';
43
44
  export * from './CreateAccountRequest';
44
45
  export * from './CreateChatRequest';
45
46
  export * from './CreateFeatureDto';
@@ -84,6 +85,7 @@ export * from './PracticeQuiz';
84
85
  export * from './PracticeQuizStatus';
85
86
  export * from './PracticeQuizStatusList';
86
87
  export * from './Quiz';
88
+ export * from './QuizConceptSummary';
87
89
  export * from './QuizListItem';
88
90
  export * from './QuizQuestion';
89
91
  export * from './QuizQuestionView';
@@ -42,6 +42,7 @@ export * from './ChatRequestQuizContext';
42
42
  export * from './ChatRequestQuizContextAnswerState';
43
43
  export * from './ChatRequestQuizContextCurrentQuestion';
44
44
  export * from './ConceptAssessmentEntity';
45
+ export * from './ConceptChange';
45
46
  export * from './CreateAccountRequest';
46
47
  export * from './CreateChatRequest';
47
48
  export * from './CreateFeatureDto';
@@ -86,6 +87,7 @@ export * from './PracticeQuiz';
86
87
  export * from './PracticeQuizStatus';
87
88
  export * from './PracticeQuizStatusList';
88
89
  export * from './Quiz';
90
+ export * from './QuizConceptSummary';
89
91
  export * from './QuizListItem';
90
92
  export * from './QuizQuestion';
91
93
  export * from './QuizQuestionView';
@@ -0,0 +1,111 @@
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 ConceptChange
16
+ */
17
+ export interface ConceptChange {
18
+ /**
19
+ * Foreign key to the concept row
20
+ * @type {string}
21
+ * @memberof ConceptChange
22
+ */
23
+ conceptId: string;
24
+ /**
25
+ * Human-readable concept name
26
+ * @type {string}
27
+ * @memberof ConceptChange
28
+ */
29
+ name: string;
30
+ /**
31
+ * Short display label for the concept
32
+ * @type {string}
33
+ * @memberof ConceptChange
34
+ */
35
+ shortName: string;
36
+ /**
37
+ * Mastery strength for this concept before the quiz session, expressed as a fixed-point string in [0, 1]. Reconstructed from the most recent history entry at or before the session start; "0.000" if the concept had never been assessed.
38
+ * @type {string}
39
+ * @memberof ConceptChange
40
+ */
41
+ beforeStrength: string;
42
+ /**
43
+ * Mastery tier bucketed from beforeStrength
44
+ * @type {string}
45
+ * @memberof ConceptChange
46
+ */
47
+ beforeTier: ConceptChangeBeforeTierEnum;
48
+ /**
49
+ * Current mastery strength for this concept, expressed as a fixed-point string in [0, 1].
50
+ * @type {string}
51
+ * @memberof ConceptChange
52
+ */
53
+ afterStrength: string;
54
+ /**
55
+ * Mastery tier bucketed from afterStrength
56
+ * @type {string}
57
+ * @memberof ConceptChange
58
+ */
59
+ afterTier: ConceptChangeAfterTierEnum;
60
+ /**
61
+ * Direction of change from before to after
62
+ * @type {string}
63
+ * @memberof ConceptChange
64
+ */
65
+ direction: ConceptChangeDirectionEnum;
66
+ /**
67
+ * Count of answered questions in this session tagged with this concept
68
+ * @type {number}
69
+ * @memberof ConceptChange
70
+ */
71
+ questionsReinforced: number;
72
+ }
73
+ /**
74
+ * @export
75
+ */
76
+ export declare const ConceptChangeBeforeTierEnum: {
77
+ readonly Novice: "Novice";
78
+ readonly Developing: "Developing";
79
+ readonly Competent: "Competent";
80
+ readonly Proficient: "Proficient";
81
+ readonly Expert: "Expert";
82
+ };
83
+ export type ConceptChangeBeforeTierEnum = typeof ConceptChangeBeforeTierEnum[keyof typeof ConceptChangeBeforeTierEnum];
84
+ /**
85
+ * @export
86
+ */
87
+ export declare const ConceptChangeAfterTierEnum: {
88
+ readonly Novice: "Novice";
89
+ readonly Developing: "Developing";
90
+ readonly Competent: "Competent";
91
+ readonly Proficient: "Proficient";
92
+ readonly Expert: "Expert";
93
+ };
94
+ export type ConceptChangeAfterTierEnum = typeof ConceptChangeAfterTierEnum[keyof typeof ConceptChangeAfterTierEnum];
95
+ /**
96
+ * @export
97
+ */
98
+ export declare const ConceptChangeDirectionEnum: {
99
+ readonly Up: "up";
100
+ readonly Down: "down";
101
+ readonly Same: "same";
102
+ };
103
+ export type ConceptChangeDirectionEnum = typeof ConceptChangeDirectionEnum[keyof typeof ConceptChangeDirectionEnum];
104
+ /**
105
+ * Check if a given object implements the ConceptChange interface.
106
+ */
107
+ export declare function instanceOfConceptChange(value: object): value is ConceptChange;
108
+ export declare function ConceptChangeFromJSON(json: any): ConceptChange;
109
+ export declare function ConceptChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConceptChange;
110
+ export declare function ConceptChangeToJSON(json: any): ConceptChange;
111
+ export declare function ConceptChangeToJSONTyped(value?: ConceptChange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,111 @@
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.ConceptChangeDirectionEnum = exports.ConceptChangeAfterTierEnum = exports.ConceptChangeBeforeTierEnum = void 0;
17
+ exports.instanceOfConceptChange = instanceOfConceptChange;
18
+ exports.ConceptChangeFromJSON = ConceptChangeFromJSON;
19
+ exports.ConceptChangeFromJSONTyped = ConceptChangeFromJSONTyped;
20
+ exports.ConceptChangeToJSON = ConceptChangeToJSON;
21
+ exports.ConceptChangeToJSONTyped = ConceptChangeToJSONTyped;
22
+ /**
23
+ * @export
24
+ */
25
+ exports.ConceptChangeBeforeTierEnum = {
26
+ Novice: 'Novice',
27
+ Developing: 'Developing',
28
+ Competent: 'Competent',
29
+ Proficient: 'Proficient',
30
+ Expert: 'Expert'
31
+ };
32
+ /**
33
+ * @export
34
+ */
35
+ exports.ConceptChangeAfterTierEnum = {
36
+ Novice: 'Novice',
37
+ Developing: 'Developing',
38
+ Competent: 'Competent',
39
+ Proficient: 'Proficient',
40
+ Expert: 'Expert'
41
+ };
42
+ /**
43
+ * @export
44
+ */
45
+ exports.ConceptChangeDirectionEnum = {
46
+ Up: 'up',
47
+ Down: 'down',
48
+ Same: 'same'
49
+ };
50
+ /**
51
+ * Check if a given object implements the ConceptChange interface.
52
+ */
53
+ function instanceOfConceptChange(value) {
54
+ if (!('conceptId' in value) || value['conceptId'] === undefined)
55
+ return false;
56
+ if (!('name' in value) || value['name'] === undefined)
57
+ return false;
58
+ if (!('shortName' in value) || value['shortName'] === undefined)
59
+ return false;
60
+ if (!('beforeStrength' in value) || value['beforeStrength'] === undefined)
61
+ return false;
62
+ if (!('beforeTier' in value) || value['beforeTier'] === undefined)
63
+ return false;
64
+ if (!('afterStrength' in value) || value['afterStrength'] === undefined)
65
+ return false;
66
+ if (!('afterTier' in value) || value['afterTier'] === undefined)
67
+ return false;
68
+ if (!('direction' in value) || value['direction'] === undefined)
69
+ return false;
70
+ if (!('questionsReinforced' in value) || value['questionsReinforced'] === undefined)
71
+ return false;
72
+ return true;
73
+ }
74
+ function ConceptChangeFromJSON(json) {
75
+ return ConceptChangeFromJSONTyped(json, false);
76
+ }
77
+ function ConceptChangeFromJSONTyped(json, ignoreDiscriminator) {
78
+ if (json == null) {
79
+ return json;
80
+ }
81
+ return {
82
+ 'conceptId': json['conceptId'],
83
+ 'name': json['name'],
84
+ 'shortName': json['shortName'],
85
+ 'beforeStrength': json['beforeStrength'],
86
+ 'beforeTier': json['beforeTier'],
87
+ 'afterStrength': json['afterStrength'],
88
+ 'afterTier': json['afterTier'],
89
+ 'direction': json['direction'],
90
+ 'questionsReinforced': json['questionsReinforced'],
91
+ };
92
+ }
93
+ function ConceptChangeToJSON(json) {
94
+ return ConceptChangeToJSONTyped(json, false);
95
+ }
96
+ function ConceptChangeToJSONTyped(value, ignoreDiscriminator = false) {
97
+ if (value == null) {
98
+ return value;
99
+ }
100
+ return {
101
+ 'conceptId': value['conceptId'],
102
+ 'name': value['name'],
103
+ 'shortName': value['shortName'],
104
+ 'beforeStrength': value['beforeStrength'],
105
+ 'beforeTier': value['beforeTier'],
106
+ 'afterStrength': value['afterStrength'],
107
+ 'afterTier': value['afterTier'],
108
+ 'direction': value['direction'],
109
+ 'questionsReinforced': value['questionsReinforced'],
110
+ };
111
+ }
@@ -0,0 +1,39 @@
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
+ import type { ConceptChange } from './ConceptChange';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface QuizConceptSummary
17
+ */
18
+ export interface QuizConceptSummary {
19
+ /**
20
+ *
21
+ * @type {Array<ConceptChange>}
22
+ * @memberof QuizConceptSummary
23
+ */
24
+ concepts: Array<ConceptChange>;
25
+ /**
26
+ * Study objective this quiz's chat is linked to, or null if the quiz wasn't started from a study objective
27
+ * @type {string}
28
+ * @memberof QuizConceptSummary
29
+ */
30
+ studyObjectiveId: string | null;
31
+ }
32
+ /**
33
+ * Check if a given object implements the QuizConceptSummary interface.
34
+ */
35
+ export declare function instanceOfQuizConceptSummary(value: object): value is QuizConceptSummary;
36
+ export declare function QuizConceptSummaryFromJSON(json: any): QuizConceptSummary;
37
+ export declare function QuizConceptSummaryFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizConceptSummary;
38
+ export declare function QuizConceptSummaryToJSON(json: any): QuizConceptSummary;
39
+ export declare function QuizConceptSummaryToJSONTyped(value?: QuizConceptSummary | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,55 @@
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.instanceOfQuizConceptSummary = instanceOfQuizConceptSummary;
17
+ exports.QuizConceptSummaryFromJSON = QuizConceptSummaryFromJSON;
18
+ exports.QuizConceptSummaryFromJSONTyped = QuizConceptSummaryFromJSONTyped;
19
+ exports.QuizConceptSummaryToJSON = QuizConceptSummaryToJSON;
20
+ exports.QuizConceptSummaryToJSONTyped = QuizConceptSummaryToJSONTyped;
21
+ const ConceptChange_1 = require("./ConceptChange");
22
+ /**
23
+ * Check if a given object implements the QuizConceptSummary interface.
24
+ */
25
+ function instanceOfQuizConceptSummary(value) {
26
+ if (!('concepts' in value) || value['concepts'] === undefined)
27
+ return false;
28
+ if (!('studyObjectiveId' in value) || value['studyObjectiveId'] === undefined)
29
+ return false;
30
+ return true;
31
+ }
32
+ function QuizConceptSummaryFromJSON(json) {
33
+ return QuizConceptSummaryFromJSONTyped(json, false);
34
+ }
35
+ function QuizConceptSummaryFromJSONTyped(json, ignoreDiscriminator) {
36
+ if (json == null) {
37
+ return json;
38
+ }
39
+ return {
40
+ 'concepts': (json['concepts'].map(ConceptChange_1.ConceptChangeFromJSON)),
41
+ 'studyObjectiveId': json['studyObjectiveId'],
42
+ };
43
+ }
44
+ function QuizConceptSummaryToJSON(json) {
45
+ return QuizConceptSummaryToJSONTyped(json, false);
46
+ }
47
+ function QuizConceptSummaryToJSONTyped(value, ignoreDiscriminator = false) {
48
+ if (value == null) {
49
+ return value;
50
+ }
51
+ return {
52
+ 'concepts': (value['concepts'].map(ConceptChange_1.ConceptChangeToJSON)),
53
+ 'studyObjectiveId': value['studyObjectiveId'],
54
+ };
55
+ }
@@ -40,6 +40,7 @@ export * from './ChatRequestQuizContext';
40
40
  export * from './ChatRequestQuizContextAnswerState';
41
41
  export * from './ChatRequestQuizContextCurrentQuestion';
42
42
  export * from './ConceptAssessmentEntity';
43
+ export * from './ConceptChange';
43
44
  export * from './CreateAccountRequest';
44
45
  export * from './CreateChatRequest';
45
46
  export * from './CreateFeatureDto';
@@ -84,6 +85,7 @@ export * from './PracticeQuiz';
84
85
  export * from './PracticeQuizStatus';
85
86
  export * from './PracticeQuizStatusList';
86
87
  export * from './Quiz';
88
+ export * from './QuizConceptSummary';
87
89
  export * from './QuizListItem';
88
90
  export * from './QuizQuestion';
89
91
  export * from './QuizQuestionView';
@@ -58,6 +58,7 @@ __exportStar(require("./ChatRequestQuizContext"), exports);
58
58
  __exportStar(require("./ChatRequestQuizContextAnswerState"), exports);
59
59
  __exportStar(require("./ChatRequestQuizContextCurrentQuestion"), exports);
60
60
  __exportStar(require("./ConceptAssessmentEntity"), exports);
61
+ __exportStar(require("./ConceptChange"), exports);
61
62
  __exportStar(require("./CreateAccountRequest"), exports);
62
63
  __exportStar(require("./CreateChatRequest"), exports);
63
64
  __exportStar(require("./CreateFeatureDto"), exports);
@@ -102,6 +103,7 @@ __exportStar(require("./PracticeQuiz"), exports);
102
103
  __exportStar(require("./PracticeQuizStatus"), exports);
103
104
  __exportStar(require("./PracticeQuizStatusList"), exports);
104
105
  __exportStar(require("./Quiz"), exports);
106
+ __exportStar(require("./QuizConceptSummary"), exports);
105
107
  __exportStar(require("./QuizListItem"), exports);
106
108
  __exportStar(require("./QuizQuestion"), exports);
107
109
  __exportStar(require("./QuizQuestionView"), 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.18.3",
4
+ "version": "3.18.4",
5
5
  "description": "OpenAPI client for the Athena API",
6
6
  "author": "Instructure",
7
7
  "repository": {