@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,5 +1,5 @@
|
|
|
1
1
|
import { gql } from '@apollo/client';
|
|
2
|
-
import { MARKSHEET_FIELDS } from '../../fragments/marksheet';
|
|
2
|
+
import { MARKSHEET_FIELDS, MARKSHEET_STATS_FIELDS, } from '../../fragments/marksheet';
|
|
3
3
|
export const MARKSHEET = gql `
|
|
4
4
|
${MARKSHEET_FIELDS}
|
|
5
5
|
query Marksheet($id: Int!) {
|
|
@@ -10,47 +10,8 @@ export const MARKSHEET = gql `
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
`;
|
|
13
|
-
export const MARKSHEETS = gql `
|
|
14
|
-
query Marksheets($options: MarksheetOptions!) {
|
|
15
|
-
restricted {
|
|
16
|
-
marksheets(options: $options) {
|
|
17
|
-
results {
|
|
18
|
-
id
|
|
19
|
-
source
|
|
20
|
-
endedAt
|
|
21
|
-
topicNames
|
|
22
|
-
entitlement {
|
|
23
|
-
id
|
|
24
|
-
name
|
|
25
|
-
}
|
|
26
|
-
correct
|
|
27
|
-
incorrect
|
|
28
|
-
totalQuestions
|
|
29
|
-
isTestMarksheet
|
|
30
|
-
solo
|
|
31
|
-
completed
|
|
32
|
-
passingMark
|
|
33
|
-
duration
|
|
34
|
-
updatedAt
|
|
35
|
-
users {
|
|
36
|
-
id
|
|
37
|
-
displayName
|
|
38
|
-
}
|
|
39
|
-
marks {
|
|
40
|
-
question {
|
|
41
|
-
topic {
|
|
42
|
-
typeId
|
|
43
|
-
name
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
total
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
`;
|
|
53
13
|
export const MARKSHEETS_WINDOW = gql `
|
|
14
|
+
${MARKSHEET_STATS_FIELDS}
|
|
54
15
|
query MarksheetsWindow($filter: MarksheetWindowFilterInput!) {
|
|
55
16
|
restricted {
|
|
56
17
|
marksheetsWindow(filter: $filter) {
|
|
@@ -73,6 +34,9 @@ export const MARKSHEETS_WINDOW = gql `
|
|
|
73
34
|
solo
|
|
74
35
|
completed
|
|
75
36
|
updatedAt
|
|
37
|
+
stats {
|
|
38
|
+
...MarksheetStatsFields
|
|
39
|
+
}
|
|
76
40
|
}
|
|
77
41
|
}
|
|
78
42
|
total
|
|
@@ -81,6 +45,62 @@ export const MARKSHEETS_WINDOW = gql `
|
|
|
81
45
|
}
|
|
82
46
|
}
|
|
83
47
|
`;
|
|
48
|
+
export const MARKSHEETS = gql `
|
|
49
|
+
${MARKSHEET_STATS_FIELDS}
|
|
50
|
+
query Marksheets($options: MarksheetOptions!) {
|
|
51
|
+
restricted {
|
|
52
|
+
marksheets(options: $options) {
|
|
53
|
+
results {
|
|
54
|
+
id
|
|
55
|
+
source
|
|
56
|
+
endedAt
|
|
57
|
+
topicNames
|
|
58
|
+
typeId
|
|
59
|
+
entitlement {
|
|
60
|
+
id
|
|
61
|
+
name
|
|
62
|
+
}
|
|
63
|
+
stats {
|
|
64
|
+
...MarksheetStatsFields
|
|
65
|
+
}
|
|
66
|
+
isTestMarksheet
|
|
67
|
+
solo
|
|
68
|
+
completed
|
|
69
|
+
updatedAt
|
|
70
|
+
}
|
|
71
|
+
total
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
export const MARKSHEETS_TRACKER = gql `
|
|
77
|
+
${MARKSHEET_STATS_FIELDS}
|
|
78
|
+
query MarksheetsTracker($options: MarksheetTrackerOptions!) {
|
|
79
|
+
restricted {
|
|
80
|
+
marksheetsTracker(options: $options) {
|
|
81
|
+
date
|
|
82
|
+
result {
|
|
83
|
+
id
|
|
84
|
+
source
|
|
85
|
+
endedAt
|
|
86
|
+
topicNames
|
|
87
|
+
typeId
|
|
88
|
+
entitlement {
|
|
89
|
+
id
|
|
90
|
+
name
|
|
91
|
+
}
|
|
92
|
+
stats {
|
|
93
|
+
...MarksheetStatsFields
|
|
94
|
+
}
|
|
95
|
+
isTestMarksheet
|
|
96
|
+
solo
|
|
97
|
+
completed
|
|
98
|
+
updatedAt
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
`;
|
|
84
104
|
export const LATEST_PAST_MARKSHEET_ID = gql `
|
|
85
105
|
query LatestPastMarksheetId {
|
|
86
106
|
restricted {
|
|
@@ -1,20 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PaginatedMarksheets } from './marksheet';
|
|
3
|
-
import { IUniversitiesRankSpeciality } from './university';
|
|
1
|
+
import { IUser } from '../../../models';
|
|
4
2
|
export interface IDashboardQBank {
|
|
5
3
|
restricted: {
|
|
6
4
|
latestSessionId: string;
|
|
7
5
|
latestPastMarksheetId: number;
|
|
8
6
|
user: IUser;
|
|
9
|
-
marksheets: PaginatedMarksheets;
|
|
10
|
-
dailyFeed: ITodo;
|
|
11
|
-
dailyProgress: IDailyProgressData[];
|
|
12
|
-
topics: ITopic[];
|
|
13
7
|
totalQuestions: number;
|
|
14
8
|
totalCards: number;
|
|
15
|
-
universityLeaderboard: {
|
|
16
|
-
month: IUniversitiesRankSpeciality[];
|
|
17
|
-
};
|
|
18
9
|
};
|
|
19
10
|
}
|
|
20
11
|
export declare const DASHBOARD_QBANK: import("@apollo/client").DocumentNode;
|
|
@@ -2,7 +2,9 @@ import { EMarkResult, EPsaSectionType, EQuestionType, IMarksheetMarkJSONB, IQues
|
|
|
2
2
|
export interface IEvaluateMarkData {
|
|
3
3
|
score: number;
|
|
4
4
|
result: EMarkResult;
|
|
5
|
+
maxScore: number;
|
|
5
6
|
}
|
|
7
|
+
export declare function getQuestionMaxScore(questionType: EQuestionType, psaSectionId: number | null): number;
|
|
6
8
|
export declare function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, }: {
|
|
7
9
|
mark: IMarksheetMarkJSONB;
|
|
8
10
|
answer: IQuestionAnswer;
|
|
@@ -41,10 +41,54 @@ function deepParse(data) {
|
|
|
41
41
|
}
|
|
42
42
|
return parsed;
|
|
43
43
|
}
|
|
44
|
+
export function getQuestionMaxScore(questionType, psaSectionId) {
|
|
45
|
+
switch (questionType) {
|
|
46
|
+
case EQuestionType.SINGLE_BEST_ANSWER:
|
|
47
|
+
if (psaSectionId) {
|
|
48
|
+
return 2;
|
|
49
|
+
}
|
|
50
|
+
return 1;
|
|
51
|
+
case EQuestionType.QUESTION_ANSWER:
|
|
52
|
+
if (psaSectionId) {
|
|
53
|
+
return 2;
|
|
54
|
+
}
|
|
55
|
+
return 1;
|
|
56
|
+
case EQuestionType.MULTIPLE_ANSWERS:
|
|
57
|
+
return 4;
|
|
58
|
+
case EQuestionType.PRESCRIPTION_ANSWER:
|
|
59
|
+
return 10;
|
|
60
|
+
case EQuestionType.EXTENDED_MATCHING_ANSWER:
|
|
61
|
+
return 1;
|
|
62
|
+
case EQuestionType.SELECT_THREE_ANSWER:
|
|
63
|
+
return 1;
|
|
64
|
+
case EQuestionType.RANKING_ANSWER:
|
|
65
|
+
return 1;
|
|
66
|
+
case EQuestionType.SBA_WITH_MULTIPLE_CHOICES:
|
|
67
|
+
return 1;
|
|
68
|
+
case EQuestionType.VERBAL_VERACITY:
|
|
69
|
+
return 1;
|
|
70
|
+
case EQuestionType.VERBAL_READING_COMPREHENSION:
|
|
71
|
+
return 1;
|
|
72
|
+
case EQuestionType.QUANTITATIVE_REASONING_SBA:
|
|
73
|
+
return 1;
|
|
74
|
+
case EQuestionType.DECISION_MAKING_SBA:
|
|
75
|
+
return 1;
|
|
76
|
+
case EQuestionType.DECISION_MAKING_YES_NO:
|
|
77
|
+
return 2;
|
|
78
|
+
case EQuestionType.SJT_SINGLE_CHOICE:
|
|
79
|
+
return 1;
|
|
80
|
+
case EQuestionType.SJT_TWO_ANSWERS:
|
|
81
|
+
return 1;
|
|
82
|
+
default:
|
|
83
|
+
return 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
44
86
|
export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choices, }) {
|
|
87
|
+
const maxScore = getQuestionMaxScore(questionTypeId, psaSectionId);
|
|
45
88
|
const data = {
|
|
46
89
|
score: 0,
|
|
47
90
|
result: EMarkResult.Incorrect,
|
|
91
|
+
maxScore,
|
|
48
92
|
};
|
|
49
93
|
if (!mark || !answer) {
|
|
50
94
|
return data;
|
|
@@ -61,7 +105,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
61
105
|
case EQuestionType.DECISION_MAKING_SBA:
|
|
62
106
|
case EQuestionType.QUANTITATIVE_REASONING_SBA: {
|
|
63
107
|
if (flatAnswer === flatAttempt) {
|
|
64
|
-
data.score =
|
|
108
|
+
data.score = maxScore;
|
|
65
109
|
data.result = EMarkResult.Correct;
|
|
66
110
|
}
|
|
67
111
|
else {
|
|
@@ -83,8 +127,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
83
127
|
!Number.isNaN(attemptNum) &&
|
|
84
128
|
answerNum === attemptNum;
|
|
85
129
|
if (isNumericMatch || normalizedAnswer === normalizedAttempt) {
|
|
86
|
-
|
|
87
|
-
data.score = psaSectionId ? 2 : 1;
|
|
130
|
+
data.score = maxScore;
|
|
88
131
|
data.result = EMarkResult.Correct;
|
|
89
132
|
}
|
|
90
133
|
else {
|
|
@@ -107,11 +150,11 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
107
150
|
const isBMatch = answerB.length === attemptB.length &&
|
|
108
151
|
attemptB.every((x, i) => x === answerB[i]);
|
|
109
152
|
if (isAMatch && isBMatch) {
|
|
110
|
-
data.score =
|
|
153
|
+
data.score = maxScore;
|
|
111
154
|
data.result = EMarkResult.Correct;
|
|
112
155
|
}
|
|
113
156
|
else if (isAMatch || isBMatch) {
|
|
114
|
-
data.score = 2;
|
|
157
|
+
data.score = maxScore / 2;
|
|
115
158
|
data.result = EMarkResult.Partial;
|
|
116
159
|
}
|
|
117
160
|
else {
|
|
@@ -138,12 +181,12 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
138
181
|
const totalStatements = answerA.length + answerB.length;
|
|
139
182
|
if (correctCount === totalStatements) {
|
|
140
183
|
// 5 / 5
|
|
141
|
-
data.score =
|
|
184
|
+
data.score = maxScore;
|
|
142
185
|
data.result = EMarkResult.Correct;
|
|
143
186
|
}
|
|
144
187
|
else if (correctCount === totalStatements - 1) {
|
|
145
188
|
// 4 / 5
|
|
146
|
-
data.score =
|
|
189
|
+
data.score = maxScore / 2;
|
|
147
190
|
data.result = EMarkResult.Partial;
|
|
148
191
|
}
|
|
149
192
|
else {
|
|
@@ -211,7 +254,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
211
254
|
}
|
|
212
255
|
}
|
|
213
256
|
if (isCorrect) {
|
|
214
|
-
data.score =
|
|
257
|
+
data.score = maxScore;
|
|
215
258
|
data.result = EMarkResult.Correct;
|
|
216
259
|
}
|
|
217
260
|
else {
|
|
@@ -238,7 +281,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
238
281
|
}
|
|
239
282
|
}
|
|
240
283
|
if (isCorrect) {
|
|
241
|
-
data.score =
|
|
284
|
+
data.score = maxScore;
|
|
242
285
|
data.result = EMarkResult.Correct;
|
|
243
286
|
}
|
|
244
287
|
else {
|
|
@@ -266,7 +309,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
266
309
|
}
|
|
267
310
|
}
|
|
268
311
|
if (isCorrect) {
|
|
269
|
-
data.score =
|
|
312
|
+
data.score = maxScore;
|
|
270
313
|
data.result = EMarkResult.Correct;
|
|
271
314
|
}
|
|
272
315
|
else {
|
|
@@ -282,7 +325,7 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
282
325
|
if (twoAnswer.length === 2 &&
|
|
283
326
|
attempt.length === 2 &&
|
|
284
327
|
twoAnswer.join(',') === attempt.join(',')) {
|
|
285
|
-
data.score =
|
|
328
|
+
data.score = maxScore;
|
|
286
329
|
data.result = EMarkResult.Correct;
|
|
287
330
|
}
|
|
288
331
|
else {
|
|
@@ -309,11 +352,11 @@ export function evaluateMark({ mark, answer, questionTypeId, psaSectionId, choic
|
|
|
309
352
|
else {
|
|
310
353
|
const distance = Math.abs(answerIndex - attemptIndex);
|
|
311
354
|
if (distance === 0) {
|
|
312
|
-
data.score =
|
|
355
|
+
data.score = maxScore;
|
|
313
356
|
data.result = EMarkResult.Correct;
|
|
314
357
|
}
|
|
315
358
|
else if (distance === 1) {
|
|
316
|
-
data.score =
|
|
359
|
+
data.score = maxScore / 2;
|
|
317
360
|
data.result = EMarkResult.Partial;
|
|
318
361
|
}
|
|
319
362
|
else {
|