@quesmed/types 2.6.215 → 2.6.217
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/dist/cjs/models/Marksheet.d.ts +13 -4
- package/dist/cjs/models/MockTest.d.ts +2 -0
- package/dist/cjs/resolvers/fragments/marksheet.d.ts +7 -0
- package/dist/cjs/resolvers/fragments/marksheet.js +29 -1
- package/dist/cjs/resolvers/fragments/mockTest.d.ts +9 -0
- package/dist/cjs/resolvers/fragments/mockTest.js +32 -0
- package/dist/cjs/resolvers/mutation/restricted/marksheet.d.ts +4 -2
- package/dist/cjs/resolvers/mutation/restricted/marksheet.js +6 -2
- package/dist/cjs/resolvers/mutation/restricted/mockTest.d.ts +2 -1
- package/dist/cjs/resolvers/mutation/restricted/mockTest.js +14 -1
- package/dist/cjs/resolvers/mutation/restricted/osce.d.ts +1 -1
- package/dist/cjs/resolvers/query/restricted/marksheet.d.ts +24 -17
- package/dist/cjs/resolvers/query/restricted/marksheet.js +61 -41
- package/dist/cjs/resolvers/query/restricted/qBank.d.ts +1 -10
- package/dist/cjs/resolvers/query/restricted/qBank.js +1 -0
- package/dist/cjs/utils/evaluateMark.d.ts +2 -0
- package/dist/cjs/utils/evaluateMark.js +58 -14
- package/dist/mjs/models/Marksheet.d.ts +13 -4
- package/dist/mjs/models/MockTest.d.ts +2 -0
- package/dist/mjs/resolvers/fragments/marksheet.d.ts +7 -0
- package/dist/mjs/resolvers/fragments/marksheet.js +28 -0
- package/dist/mjs/resolvers/fragments/mockTest.d.ts +9 -0
- package/dist/mjs/resolvers/fragments/mockTest.js +32 -0
- package/dist/mjs/resolvers/mutation/restricted/marksheet.d.ts +4 -2
- package/dist/mjs/resolvers/mutation/restricted/marksheet.js +7 -3
- package/dist/mjs/resolvers/mutation/restricted/mockTest.d.ts +2 -1
- package/dist/mjs/resolvers/mutation/restricted/mockTest.js +15 -2
- package/dist/mjs/resolvers/mutation/restricted/osce.d.ts +1 -1
- package/dist/mjs/resolvers/query/restricted/marksheet.d.ts +24 -17
- package/dist/mjs/resolvers/query/restricted/marksheet.js +61 -41
- package/dist/mjs/resolvers/query/restricted/qBank.d.ts +1 -10
- package/dist/mjs/resolvers/query/restricted/qBank.js +1 -0
- package/dist/mjs/utils/evaluateMark.d.ts +2 -0
- package/dist/mjs/utils/evaluateMark.js +56 -13
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.evaluateMark = void 0;
|
|
3
|
+
exports.evaluateMark = exports.getQuestionMaxScore = void 0;
|
|
4
4
|
const models_1 = require("../models");
|
|
5
5
|
function isPrescribeAnswer(data) {
|
|
6
6
|
return Object(data).hasOwnProperty('dose');
|
|
@@ -44,10 +44,55 @@ function deepParse(data) {
|
|
|
44
44
|
}
|
|
45
45
|
return parsed;
|
|
46
46
|
}
|
|
47
|
+
function getQuestionMaxScore(questionType, psaSectionId) {
|
|
48
|
+
switch (questionType) {
|
|
49
|
+
case models_1.EQuestionType.SINGLE_BEST_ANSWER:
|
|
50
|
+
if (psaSectionId) {
|
|
51
|
+
return 2;
|
|
52
|
+
}
|
|
53
|
+
return 1;
|
|
54
|
+
case models_1.EQuestionType.QUESTION_ANSWER:
|
|
55
|
+
if (psaSectionId) {
|
|
56
|
+
return 2;
|
|
57
|
+
}
|
|
58
|
+
return 1;
|
|
59
|
+
case models_1.EQuestionType.MULTIPLE_ANSWERS:
|
|
60
|
+
return 4;
|
|
61
|
+
case models_1.EQuestionType.PRESCRIPTION_ANSWER:
|
|
62
|
+
return 10;
|
|
63
|
+
case models_1.EQuestionType.EXTENDED_MATCHING_ANSWER:
|
|
64
|
+
return 1;
|
|
65
|
+
case models_1.EQuestionType.SELECT_THREE_ANSWER:
|
|
66
|
+
return 1;
|
|
67
|
+
case models_1.EQuestionType.RANKING_ANSWER:
|
|
68
|
+
return 1;
|
|
69
|
+
case models_1.EQuestionType.SBA_WITH_MULTIPLE_CHOICES:
|
|
70
|
+
return 1;
|
|
71
|
+
case models_1.EQuestionType.VERBAL_VERACITY:
|
|
72
|
+
return 1;
|
|
73
|
+
case models_1.EQuestionType.VERBAL_READING_COMPREHENSION:
|
|
74
|
+
return 1;
|
|
75
|
+
case models_1.EQuestionType.QUANTITATIVE_REASONING_SBA:
|
|
76
|
+
return 1;
|
|
77
|
+
case models_1.EQuestionType.DECISION_MAKING_SBA:
|
|
78
|
+
return 1;
|
|
79
|
+
case models_1.EQuestionType.DECISION_MAKING_YES_NO:
|
|
80
|
+
return 2;
|
|
81
|
+
case models_1.EQuestionType.SJT_SINGLE_CHOICE:
|
|
82
|
+
return 1;
|
|
83
|
+
case models_1.EQuestionType.SJT_TWO_ANSWERS:
|
|
84
|
+
return 1;
|
|
85
|
+
default:
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.getQuestionMaxScore = getQuestionMaxScore;
|
|
47
90
|
function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, }) {
|
|
91
|
+
const maxScore = getQuestionMaxScore(questionTypeId, psaSectionId);
|
|
48
92
|
const data = {
|
|
49
93
|
score: 0,
|
|
50
94
|
result: models_1.EMarkResult.Incorrect,
|
|
95
|
+
maxScore,
|
|
51
96
|
};
|
|
52
97
|
if (!mark || !answer) {
|
|
53
98
|
return data;
|
|
@@ -64,7 +109,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
64
109
|
case models_1.EQuestionType.DECISION_MAKING_SBA:
|
|
65
110
|
case models_1.EQuestionType.QUANTITATIVE_REASONING_SBA: {
|
|
66
111
|
if (flatAnswer === flatAttempt) {
|
|
67
|
-
data.score =
|
|
112
|
+
data.score = maxScore;
|
|
68
113
|
data.result = models_1.EMarkResult.Correct;
|
|
69
114
|
}
|
|
70
115
|
else {
|
|
@@ -86,8 +131,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
86
131
|
!Number.isNaN(attemptNum) &&
|
|
87
132
|
answerNum === attemptNum;
|
|
88
133
|
if (isNumericMatch || normalizedAnswer === normalizedAttempt) {
|
|
89
|
-
|
|
90
|
-
data.score = psaSectionId ? 2 : 1;
|
|
134
|
+
data.score = maxScore;
|
|
91
135
|
data.result = models_1.EMarkResult.Correct;
|
|
92
136
|
}
|
|
93
137
|
else {
|
|
@@ -110,11 +154,11 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
110
154
|
const isBMatch = answerB.length === attemptB.length &&
|
|
111
155
|
attemptB.every((x, i) => x === answerB[i]);
|
|
112
156
|
if (isAMatch && isBMatch) {
|
|
113
|
-
data.score =
|
|
157
|
+
data.score = maxScore;
|
|
114
158
|
data.result = models_1.EMarkResult.Correct;
|
|
115
159
|
}
|
|
116
160
|
else if (isAMatch || isBMatch) {
|
|
117
|
-
data.score = 2;
|
|
161
|
+
data.score = maxScore / 2;
|
|
118
162
|
data.result = models_1.EMarkResult.Partial;
|
|
119
163
|
}
|
|
120
164
|
else {
|
|
@@ -141,12 +185,12 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
141
185
|
const totalStatements = answerA.length + answerB.length;
|
|
142
186
|
if (correctCount === totalStatements) {
|
|
143
187
|
// 5 / 5
|
|
144
|
-
data.score =
|
|
188
|
+
data.score = maxScore;
|
|
145
189
|
data.result = models_1.EMarkResult.Correct;
|
|
146
190
|
}
|
|
147
191
|
else if (correctCount === totalStatements - 1) {
|
|
148
192
|
// 4 / 5
|
|
149
|
-
data.score =
|
|
193
|
+
data.score = maxScore / 2;
|
|
150
194
|
data.result = models_1.EMarkResult.Partial;
|
|
151
195
|
}
|
|
152
196
|
else {
|
|
@@ -214,7 +258,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
214
258
|
}
|
|
215
259
|
}
|
|
216
260
|
if (isCorrect) {
|
|
217
|
-
data.score =
|
|
261
|
+
data.score = maxScore;
|
|
218
262
|
data.result = models_1.EMarkResult.Correct;
|
|
219
263
|
}
|
|
220
264
|
else {
|
|
@@ -241,7 +285,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
241
285
|
}
|
|
242
286
|
}
|
|
243
287
|
if (isCorrect) {
|
|
244
|
-
data.score =
|
|
288
|
+
data.score = maxScore;
|
|
245
289
|
data.result = models_1.EMarkResult.Correct;
|
|
246
290
|
}
|
|
247
291
|
else {
|
|
@@ -269,7 +313,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
269
313
|
}
|
|
270
314
|
}
|
|
271
315
|
if (isCorrect) {
|
|
272
|
-
data.score =
|
|
316
|
+
data.score = maxScore;
|
|
273
317
|
data.result = models_1.EMarkResult.Correct;
|
|
274
318
|
}
|
|
275
319
|
else {
|
|
@@ -285,7 +329,7 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
285
329
|
if (twoAnswer.length === 2 &&
|
|
286
330
|
attempt.length === 2 &&
|
|
287
331
|
twoAnswer.join(',') === attempt.join(',')) {
|
|
288
|
-
data.score =
|
|
332
|
+
data.score = maxScore;
|
|
289
333
|
data.result = models_1.EMarkResult.Correct;
|
|
290
334
|
}
|
|
291
335
|
else {
|
|
@@ -312,11 +356,11 @@ function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, })
|
|
|
312
356
|
else {
|
|
313
357
|
const distance = Math.abs(answerIndex - attemptIndex);
|
|
314
358
|
if (distance === 0) {
|
|
315
|
-
data.score =
|
|
359
|
+
data.score = maxScore;
|
|
316
360
|
data.result = models_1.EMarkResult.Correct;
|
|
317
361
|
}
|
|
318
362
|
else if (distance === 1) {
|
|
319
|
-
data.score =
|
|
363
|
+
data.score = maxScore / 2;
|
|
320
364
|
data.result = models_1.EMarkResult.Partial;
|
|
321
365
|
}
|
|
322
366
|
else {
|
|
@@ -56,6 +56,18 @@ export interface IMarksheetMember {
|
|
|
56
56
|
userId: Id;
|
|
57
57
|
user?: IUser | null;
|
|
58
58
|
}
|
|
59
|
+
export interface IMarksheetStats {
|
|
60
|
+
correct: number;
|
|
61
|
+
incorrect: number;
|
|
62
|
+
partial: number;
|
|
63
|
+
score: number;
|
|
64
|
+
maxPossibleScore: number;
|
|
65
|
+
percentage: number;
|
|
66
|
+
totalQuestions: number;
|
|
67
|
+
totalSets: number;
|
|
68
|
+
attempts: number;
|
|
69
|
+
timeTaken: number;
|
|
70
|
+
}
|
|
59
71
|
export interface IMarksheet {
|
|
60
72
|
id: Id;
|
|
61
73
|
createdAt: number | Date;
|
|
@@ -74,6 +86,7 @@ export interface IMarksheet {
|
|
|
74
86
|
marks: IMarksheetMark[];
|
|
75
87
|
mockTestId: number | null;
|
|
76
88
|
isTestMarksheet: boolean;
|
|
89
|
+
stats: IMarksheetStats;
|
|
77
90
|
correct?: number;
|
|
78
91
|
incorrect?: number;
|
|
79
92
|
partial?: number;
|
|
@@ -86,10 +99,6 @@ export interface IMarksheet {
|
|
|
86
99
|
users: IUser[];
|
|
87
100
|
activeUsers?: IUser[];
|
|
88
101
|
state: EMarksheetState;
|
|
89
|
-
/**
|
|
90
|
-
* @deprecated Use !!endedAt instead
|
|
91
|
-
* And for timed tests, check if (parent.endedAt && new Date(parent.endedAt) <= new Date());
|
|
92
|
-
*/
|
|
93
102
|
completed: boolean;
|
|
94
103
|
timeTaken: number;
|
|
95
104
|
currentMarkId?: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IMarksheet } from './Marksheet';
|
|
1
2
|
import { EProductType } from './Product';
|
|
2
3
|
import { IQuestion } from './Question';
|
|
3
4
|
import { Id } from './Type';
|
|
@@ -47,6 +48,7 @@ export interface IUserMockTest {
|
|
|
47
48
|
lastMarksheetId?: Id;
|
|
48
49
|
lastMarksheetStartedAt?: number | Date;
|
|
49
50
|
lastMarksheetEndedAt?: number | Date;
|
|
51
|
+
lastMarksheet?: IMarksheet;
|
|
50
52
|
}
|
|
51
53
|
export interface IMockTestQuestion {
|
|
52
54
|
id: Id;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export declare const MARKSHEET_STATS_FIELDS: import("@apollo/client").DocumentNode;
|
|
1
2
|
export declare const MARKSHEET_MARK_FIELDS: import("@apollo/client").DocumentNode;
|
|
2
3
|
export declare const BUILDER_CONFIG_FIELDS: import("@apollo/client").DocumentNode;
|
|
4
|
+
/**
|
|
5
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
6
|
+
*/
|
|
3
7
|
export declare const MARKSHEET_FIELDS: import("@apollo/client").DocumentNode;
|
|
4
8
|
/**
|
|
5
9
|
* All below fragments are used in cache updator
|
|
@@ -11,6 +15,9 @@ export declare const MODIFY_MARKSHEET_STATE_FRAGMENT: import("@apollo/client").D
|
|
|
11
15
|
export declare const MODIFY_TOPIC_SELECTION_FRAGMENT: import("@apollo/client").DocumentNode;
|
|
12
16
|
export declare const MODIFY_CURRENT_MARK_FRAGMENT: import("@apollo/client").DocumentNode;
|
|
13
17
|
export declare const MARK_FLAGGED_FIELD: import("@apollo/client").DocumentNode;
|
|
18
|
+
/**
|
|
19
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
20
|
+
*/
|
|
14
21
|
export declare const MODIFY_MARKSHEET_COMPLETED_FRAGMENT: import("@apollo/client").DocumentNode;
|
|
15
22
|
export declare const NEW_MARK_FIELDS: import("@apollo/client").DocumentNode;
|
|
16
23
|
export declare const DAILY_STACK_FIELDS: import("@apollo/client").DocumentNode;
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
2
|
import { QUESTION_FIELDS } from './question';
|
|
3
|
+
export const MARKSHEET_STATS_FIELDS = gql `
|
|
4
|
+
fragment MarksheetStatsFields on MarksheetStats {
|
|
5
|
+
correct
|
|
6
|
+
incorrect
|
|
7
|
+
partial
|
|
8
|
+
totalQuestions
|
|
9
|
+
totalSets
|
|
10
|
+
score
|
|
11
|
+
maxPossibleScore
|
|
12
|
+
percentage
|
|
13
|
+
attempts
|
|
14
|
+
timeTaken
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
3
17
|
export const MARKSHEET_MARK_FIELDS = gql `
|
|
4
18
|
${QUESTION_FIELDS}
|
|
5
19
|
fragment MarksheetMarkFields on MarksheetMark {
|
|
@@ -32,9 +46,13 @@ export const BUILDER_CONFIG_FIELDS = gql `
|
|
|
32
46
|
seenIncorrect
|
|
33
47
|
}
|
|
34
48
|
`;
|
|
49
|
+
/**
|
|
50
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
51
|
+
*/
|
|
35
52
|
export const MARKSHEET_FIELDS = gql `
|
|
36
53
|
${MARKSHEET_MARK_FIELDS}
|
|
37
54
|
${BUILDER_CONFIG_FIELDS}
|
|
55
|
+
${MARKSHEET_STATS_FIELDS}
|
|
38
56
|
fragment MarksheetFields on Marksheet {
|
|
39
57
|
id
|
|
40
58
|
topicConceptData
|
|
@@ -87,6 +105,9 @@ export const MARKSHEET_FIELDS = gql `
|
|
|
87
105
|
marks {
|
|
88
106
|
...MarksheetMarkFields
|
|
89
107
|
}
|
|
108
|
+
stats {
|
|
109
|
+
...MarksheetStatsFields
|
|
110
|
+
}
|
|
90
111
|
}
|
|
91
112
|
`;
|
|
92
113
|
/**
|
|
@@ -128,7 +149,11 @@ export const MARK_FLAGGED_FIELD = gql `
|
|
|
128
149
|
flagged
|
|
129
150
|
}
|
|
130
151
|
`;
|
|
152
|
+
/**
|
|
153
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
154
|
+
*/
|
|
131
155
|
export const MODIFY_MARKSHEET_COMPLETED_FRAGMENT = gql `
|
|
156
|
+
${MARKSHEET_STATS_FIELDS}
|
|
132
157
|
fragment MarksheetCompleted on Marksheet {
|
|
133
158
|
timeTaken
|
|
134
159
|
completed
|
|
@@ -136,6 +161,9 @@ export const MODIFY_MARKSHEET_COMPLETED_FRAGMENT = gql `
|
|
|
136
161
|
incorrect
|
|
137
162
|
duration
|
|
138
163
|
endedAt
|
|
164
|
+
stats {
|
|
165
|
+
...MarksheetStatsFields
|
|
166
|
+
}
|
|
139
167
|
}
|
|
140
168
|
`;
|
|
141
169
|
export const NEW_MARK_FIELDS = gql `
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
3
|
+
*/
|
|
1
4
|
export declare const MOCK_TEST_FIELDS: import("@apollo/client").DocumentNode;
|
|
2
5
|
/**
|
|
3
6
|
* All below fragments are used in cache updator
|
|
4
7
|
*/
|
|
5
8
|
export declare const MARK_FLAGGED_QUESTION: import("@apollo/client").DocumentNode;
|
|
9
|
+
/**
|
|
10
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
11
|
+
*/
|
|
6
12
|
export declare const COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT: import("@apollo/client").DocumentNode;
|
|
13
|
+
/**
|
|
14
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
15
|
+
*/
|
|
7
16
|
export declare const COMPLETED_MOCK_TESTS_FRAGMENT: import("@apollo/client").DocumentNode;
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
|
+
import { MARKSHEET_STATS_FIELDS } from './marksheet';
|
|
3
|
+
/**
|
|
4
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
5
|
+
*/
|
|
2
6
|
export const MOCK_TEST_FIELDS = gql `
|
|
7
|
+
${MARKSHEET_STATS_FIELDS}
|
|
3
8
|
fragment MockTestFields on MockTest {
|
|
4
9
|
id
|
|
5
10
|
demo
|
|
@@ -13,6 +18,14 @@ export const MOCK_TEST_FIELDS = gql `
|
|
|
13
18
|
lastMarksheetEndedAt
|
|
14
19
|
lastMarksheetStartedAt
|
|
15
20
|
lastMarksheetId
|
|
21
|
+
lastMarksheet {
|
|
22
|
+
id
|
|
23
|
+
startedAt
|
|
24
|
+
endedAt
|
|
25
|
+
stats {
|
|
26
|
+
...MarksheetStatsFields
|
|
27
|
+
}
|
|
28
|
+
}
|
|
16
29
|
typeId
|
|
17
30
|
}
|
|
18
31
|
`;
|
|
@@ -24,7 +37,11 @@ export const MARK_FLAGGED_QUESTION = gql `
|
|
|
24
37
|
flagged
|
|
25
38
|
}
|
|
26
39
|
`;
|
|
40
|
+
/**
|
|
41
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
42
|
+
*/
|
|
27
43
|
export const COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT = gql `
|
|
44
|
+
${MARKSHEET_STATS_FIELDS}
|
|
28
45
|
fragment MockTestCompleted on Marksheet {
|
|
29
46
|
completed
|
|
30
47
|
correct
|
|
@@ -32,14 +49,29 @@ export const COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT = gql `
|
|
|
32
49
|
incorrect
|
|
33
50
|
duration
|
|
34
51
|
endedAt
|
|
52
|
+
stats {
|
|
53
|
+
...MarksheetStatsFields
|
|
54
|
+
}
|
|
35
55
|
}
|
|
36
56
|
`;
|
|
57
|
+
/**
|
|
58
|
+
* TODO:: Remove deperecated fields once mobile app is updated
|
|
59
|
+
*/
|
|
37
60
|
export const COMPLETED_MOCK_TESTS_FRAGMENT = gql `
|
|
61
|
+
${MARKSHEET_STATS_FIELDS}
|
|
38
62
|
fragment CompletedMockTestFragment on MockTest {
|
|
39
63
|
correct
|
|
40
64
|
incorrect
|
|
41
65
|
lastMarksheetEndedAt
|
|
42
66
|
lastMarksheetStartedAt
|
|
43
67
|
lastMarksheetId
|
|
68
|
+
lastMarksheet {
|
|
69
|
+
id
|
|
70
|
+
startedAt
|
|
71
|
+
endedAt
|
|
72
|
+
stats {
|
|
73
|
+
...MarksheetStatsFields
|
|
74
|
+
}
|
|
75
|
+
}
|
|
44
76
|
}
|
|
45
77
|
`;
|
|
@@ -188,6 +188,7 @@ export declare const optimisticModifyMarksheetBuilderConfig: (marksheetId: numbe
|
|
|
188
188
|
marks: IMarksheetMark[];
|
|
189
189
|
mockTestId: number | null;
|
|
190
190
|
isTestMarksheet: boolean;
|
|
191
|
+
stats: import("../../../models").IMarksheetStats;
|
|
191
192
|
correct?: number | undefined;
|
|
192
193
|
incorrect?: number | undefined;
|
|
193
194
|
partial?: number | undefined;
|
|
@@ -205,7 +206,7 @@ export declare const optimisticModifyMarksheetBuilderConfig: (marksheetId: numbe
|
|
|
205
206
|
currentMarkId?: number | undefined;
|
|
206
207
|
topicConceptData?: string | undefined;
|
|
207
208
|
preBuildData?: IPreBuildMarksheet | undefined;
|
|
208
|
-
entitlementId: import("../../../models").EProductType
|
|
209
|
+
entitlementId: EEntitlementType | import("../../../models").EProductType;
|
|
209
210
|
};
|
|
210
211
|
};
|
|
211
212
|
};
|
|
@@ -282,6 +283,7 @@ export declare const optimisticEndMarksheet: (marksheet: IMarksheet) => {
|
|
|
282
283
|
marks: IMarksheetMark[];
|
|
283
284
|
mockTestId: number | null;
|
|
284
285
|
isTestMarksheet: boolean;
|
|
286
|
+
stats: import("../../../models").IMarksheetStats;
|
|
285
287
|
correct?: number | undefined;
|
|
286
288
|
incorrect?: number | undefined;
|
|
287
289
|
partial?: number | undefined;
|
|
@@ -299,7 +301,7 @@ export declare const optimisticEndMarksheet: (marksheet: IMarksheet) => {
|
|
|
299
301
|
topicConceptData?: string | undefined;
|
|
300
302
|
preBuildData?: IPreBuildMarksheet | undefined;
|
|
301
303
|
builderConfig?: IBuildConfigData | undefined;
|
|
302
|
-
entitlementId: import("../../../models").EProductType
|
|
304
|
+
entitlementId: EEntitlementType | import("../../../models").EProductType;
|
|
303
305
|
__typename: string;
|
|
304
306
|
};
|
|
305
307
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
|
-
import { BUILDER_CONFIG_FIELDS, MARKSHEET_FIELDS, MARK_FLAGGED_FIELD, MODIFY_MARKSHEET_COMPLETED_FRAGMENT, NEW_MARK_FIELDS, } from '../../fragments/marksheet';
|
|
2
|
+
import { BUILDER_CONFIG_FIELDS, MARKSHEET_FIELDS, MARKSHEET_STATS_FIELDS, MARK_FLAGGED_FIELD, MODIFY_MARKSHEET_COMPLETED_FRAGMENT, NEW_MARK_FIELDS, } from '../../fragments/marksheet';
|
|
3
3
|
import { MARKSHEET, } from '../../query/restricted';
|
|
4
4
|
export const BUILD_QUESTION_MARKSHEET = gql `
|
|
5
5
|
${MARKSHEET_FIELDS}
|
|
@@ -77,8 +77,6 @@ export const SAVE_MARKSHEET = gql `
|
|
|
77
77
|
flagged
|
|
78
78
|
mark
|
|
79
79
|
}
|
|
80
|
-
correct
|
|
81
|
-
incorrect
|
|
82
80
|
}
|
|
83
81
|
}
|
|
84
82
|
}
|
|
@@ -396,6 +394,7 @@ export const LEAVE_MARKSHEET = gql `
|
|
|
396
394
|
}
|
|
397
395
|
`;
|
|
398
396
|
export const END_MARKSHEET = gql `
|
|
397
|
+
${MARKSHEET_STATS_FIELDS}
|
|
399
398
|
mutation EndMarksheet($marksheetId: Int!) {
|
|
400
399
|
restricted {
|
|
401
400
|
endMarksheet(marksheetId: $marksheetId) {
|
|
@@ -409,6 +408,9 @@ export const END_MARKSHEET = gql `
|
|
|
409
408
|
correct
|
|
410
409
|
incorrect
|
|
411
410
|
totalQuestions
|
|
411
|
+
stats {
|
|
412
|
+
...MarksheetStatsFields
|
|
413
|
+
}
|
|
412
414
|
}
|
|
413
415
|
}
|
|
414
416
|
}
|
|
@@ -429,7 +431,9 @@ export const updateCacheOnEndMarksheet = (cache, result, options) => {
|
|
|
429
431
|
incorrect: endMarksheet.incorrect,
|
|
430
432
|
duration: endMarksheet.duration,
|
|
431
433
|
endedAt: endMarksheet.endedAt,
|
|
434
|
+
stats: endMarksheet.stats,
|
|
432
435
|
},
|
|
436
|
+
fragmentName: 'MarksheetCompleted',
|
|
433
437
|
fragment: MODIFY_MARKSHEET_COMPLETED_FRAGMENT,
|
|
434
438
|
});
|
|
435
439
|
};
|
|
@@ -65,6 +65,7 @@ export declare const optimisticEndMockTest: (marksheet: IMarksheet) => {
|
|
|
65
65
|
marks: IMarksheetMark[];
|
|
66
66
|
mockTestId: number | null;
|
|
67
67
|
isTestMarksheet: boolean;
|
|
68
|
+
stats: import("../../../models").IMarksheetStats;
|
|
68
69
|
correct?: number | undefined;
|
|
69
70
|
incorrect?: number | undefined;
|
|
70
71
|
partial?: number | undefined;
|
|
@@ -82,7 +83,7 @@ export declare const optimisticEndMockTest: (marksheet: IMarksheet) => {
|
|
|
82
83
|
topicConceptData?: string | undefined;
|
|
83
84
|
preBuildData?: import("./marksheet").IPreBuildMarksheet | undefined;
|
|
84
85
|
builderConfig?: import("./marksheet").IBuildConfigData | undefined;
|
|
85
|
-
entitlementId: import("../../../models").
|
|
86
|
+
entitlementId: import("../../../models").EEntitlementType | import("../../../models").EProductType;
|
|
86
87
|
__typename: string;
|
|
87
88
|
};
|
|
88
89
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
|
-
import { COMPLETED_MOCK_TESTS_FRAGMENT, COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT, MARK_FLAGGED_QUESTION, } from '../../fragments';
|
|
2
|
+
import { COMPLETED_MOCK_TESTS_FRAGMENT, COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT, MARKSHEET_STATS_FIELDS, MARK_FLAGGED_QUESTION, } from '../../fragments';
|
|
3
3
|
export const BUILD_MOCK_TEST_MARKSHEET = gql `
|
|
4
4
|
mutation BuildMockTestMarksheet($mockTestId: Int!, $duration: Int!) {
|
|
5
5
|
restricted {
|
|
@@ -51,6 +51,7 @@ export const optimisticToggleFlaggedQuestion = (mark, flagged) => ({
|
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
export const END_MOCK_TEST = gql `
|
|
54
|
+
${MARKSHEET_STATS_FIELDS}
|
|
54
55
|
mutation EndMockTest($marksheetId: Int!) {
|
|
55
56
|
restricted {
|
|
56
57
|
endMockTest(marksheetId: $marksheetId) {
|
|
@@ -59,11 +60,14 @@ export const END_MOCK_TEST = gql `
|
|
|
59
60
|
startedAt
|
|
60
61
|
endedAt
|
|
61
62
|
mockTestId
|
|
63
|
+
duration
|
|
62
64
|
completed
|
|
63
65
|
correct
|
|
64
66
|
incorrect
|
|
65
67
|
totalQuestions
|
|
66
|
-
|
|
68
|
+
stats {
|
|
69
|
+
...MarksheetStatsFields
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
}
|
|
@@ -84,7 +88,9 @@ export const updateCacheOnEndMockTest = (cache, result, options) => {
|
|
|
84
88
|
incorrect: endMockTest.incorrect,
|
|
85
89
|
duration: endMockTest.duration,
|
|
86
90
|
endedAt: endMockTest.endedAt,
|
|
91
|
+
stats: endMockTest.stats,
|
|
87
92
|
},
|
|
93
|
+
fragmentName: 'MockTestCompleted',
|
|
88
94
|
fragment: COMPLETED_MOCK_TEST_MARKSHEET_FRAGMENT,
|
|
89
95
|
});
|
|
90
96
|
cache.writeFragment({
|
|
@@ -95,7 +101,14 @@ export const updateCacheOnEndMockTest = (cache, result, options) => {
|
|
|
95
101
|
lastMarksheetEndedAt: endMockTest.endedAt,
|
|
96
102
|
correct: endMockTest.correct,
|
|
97
103
|
incorrect: endMockTest.incorrect,
|
|
104
|
+
lastMarksheet: {
|
|
105
|
+
id: endMockTest.id,
|
|
106
|
+
startedAt: endMockTest.startedAt,
|
|
107
|
+
endedAt: endMockTest.endedAt,
|
|
108
|
+
stats: endMockTest.stats,
|
|
109
|
+
},
|
|
98
110
|
},
|
|
111
|
+
fragmentName: 'CompletedMockTestFragment',
|
|
99
112
|
fragment: COMPLETED_MOCK_TESTS_FRAGMENT,
|
|
100
113
|
});
|
|
101
114
|
};
|
|
@@ -131,7 +131,7 @@ export declare const optimisticEndOsceMarksheet: (marksheet: IOsceMarksheet) =>
|
|
|
131
131
|
members: import("../../../models").IOsceMarksheetMember[];
|
|
132
132
|
state: EOsceMarksheetState;
|
|
133
133
|
entitlement: import("../../../models").IEntitlement;
|
|
134
|
-
entitlementId:
|
|
134
|
+
entitlementId: EEntitlementType | EProductType;
|
|
135
135
|
isTimed: boolean;
|
|
136
136
|
__typename: string;
|
|
137
137
|
};
|
|
@@ -7,14 +7,6 @@ export interface IMarksheetVar {
|
|
|
7
7
|
}
|
|
8
8
|
export type IMarksheetData = RestrictedData<graphqlNormalize & IMarksheet, 'marksheet'>;
|
|
9
9
|
export declare const MARKSHEET: import("@apollo/client").DocumentNode;
|
|
10
|
-
export interface IMarksheetsVar {
|
|
11
|
-
options: {
|
|
12
|
-
limit: number;
|
|
13
|
-
order?: ESortOrder;
|
|
14
|
-
lastId?: number;
|
|
15
|
-
solo?: boolean;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
10
|
export interface IMarksheetsWindowVar {
|
|
19
11
|
filter: {
|
|
20
12
|
limit: number;
|
|
@@ -24,11 +16,6 @@ export interface IMarksheetsWindowVar {
|
|
|
24
16
|
period?: number;
|
|
25
17
|
};
|
|
26
18
|
}
|
|
27
|
-
export type IMarksheetsData = RestrictedData<{
|
|
28
|
-
results: (graphqlNormalize & IMarksheet)[];
|
|
29
|
-
total: number;
|
|
30
|
-
score: number;
|
|
31
|
-
}, 'marksheets'>;
|
|
32
19
|
export interface IMarksheetsDashboardData {
|
|
33
20
|
total: number;
|
|
34
21
|
score: number;
|
|
@@ -38,13 +25,33 @@ export interface IMarksheetsDashboardData {
|
|
|
38
25
|
}>;
|
|
39
26
|
}
|
|
40
27
|
export type IMarksheetsWindowData = RestrictedData<graphqlNormalize & IMarksheetsDashboardData, 'marksheetsWindow'>;
|
|
41
|
-
export
|
|
28
|
+
export declare const MARKSHEETS_WINDOW: import("@apollo/client").DocumentNode;
|
|
29
|
+
export interface IMarksheetsVar {
|
|
30
|
+
options: {
|
|
31
|
+
limit: number;
|
|
32
|
+
order?: ESortOrder;
|
|
33
|
+
lastId?: number;
|
|
34
|
+
solo?: boolean;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export type IMarksheetsData = RestrictedData<{
|
|
42
38
|
results: (graphqlNormalize & IMarksheet)[];
|
|
43
39
|
total: number;
|
|
44
|
-
|
|
45
|
-
}
|
|
40
|
+
}, 'marksheets'>;
|
|
46
41
|
export declare const MARKSHEETS: import("@apollo/client").DocumentNode;
|
|
47
|
-
export
|
|
42
|
+
export interface IMarksheetsTrackerVar {
|
|
43
|
+
options: {
|
|
44
|
+
order?: ESortOrder;
|
|
45
|
+
solo?: boolean;
|
|
46
|
+
period?: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export interface IMarksheetsTrackerItem {
|
|
50
|
+
date: Date | number;
|
|
51
|
+
result: IMarksheet[];
|
|
52
|
+
}
|
|
53
|
+
export type IMarksheetsTrackerData = RestrictedData<graphqlNormalize & IMarksheetsTrackerItem[], 'marksheetsTracker'>;
|
|
54
|
+
export declare const MARKSHEETS_TRACKER: import("@apollo/client").DocumentNode;
|
|
48
55
|
export type ILatestPastMarksheetIdVar = null;
|
|
49
56
|
export type ILatestPastMarksheetIdData = RestrictedData<number, 'latestPastMarksheetId'>;
|
|
50
57
|
export declare const LATEST_PAST_MARKSHEET_ID: import("@apollo/client").DocumentNode;
|