@quesmed/types-rn 2.6.272 → 2.6.273

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quesmed/types-rn",
3
- "version": "2.6.272",
3
+ "version": "2.6.273",
4
4
  "description": "Typescript types for Quesmed",
5
5
  "keywords": [
6
6
  "quesmed",
@@ -42,6 +42,10 @@ export interface IChangeOsceRoleVar {
42
42
  }
43
43
  export type IChangeOsceRoleData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'changeOsceRole'>;
44
44
  export declare const MARK_OSCE_MARKSHEET_MARK: import("@apollo/client").DocumentNode;
45
+ export declare const getStationScore: (marks: IOsceMarksheetMark[]) => {
46
+ total: number;
47
+ userScore: number;
48
+ };
45
49
  export interface IMarkOsceMarksheetMarkVar {
46
50
  osceMarksheetMarkId: Id;
47
51
  mark: number | EPaceMarkType;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.END_VOICE_SESSION = exports.CREATE_VOICE_SESSION = exports.optimisticSetOsceMarksheetFeedback = exports.updateCacheOnSetOsceMarksheetFeedback = exports.SET_OSCE_MARKSHEET_FEEDBACK = exports.updateCacheOnAutoMarkOsceMarksheet = exports.AUTO_MARK_OSCE_MARKSHEET = exports.STREAM_OSCE_CHAT_MESSAGE = exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.updateCacheOnSaveOsceMarksheet = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.updateCacheOnMarkOsceMarksheetMark = exports.optimisticMarkOsceMarksheetMark = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
3
+ exports.END_VOICE_SESSION = exports.CREATE_VOICE_SESSION = exports.optimisticSetOsceMarksheetFeedback = exports.updateCacheOnSetOsceMarksheetFeedback = exports.SET_OSCE_MARKSHEET_FEEDBACK = exports.updateCacheOnAutoMarkOsceMarksheet = exports.AUTO_MARK_OSCE_MARKSHEET = exports.STREAM_OSCE_CHAT_MESSAGE = exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.updateCacheOnSaveOsceMarksheet = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.updateCacheOnMarkOsceMarksheetMark = exports.optimisticMarkOsceMarksheetMark = exports.getStationScore = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
4
4
  const client_1 = require("@apollo/client");
5
5
  const models_1 = require("../../../models");
6
6
  const fragments_1 = require("../../fragments");
@@ -101,6 +101,46 @@ exports.MARK_OSCE_MARKSHEET_MARK = (0, client_1.gql) `
101
101
  }
102
102
  }
103
103
  `;
104
+ const getStationScore = (marks) => {
105
+ const MarkMap = {
106
+ 1: 2,
107
+ 2: 1,
108
+ 3: 0,
109
+ };
110
+ if (!marks?.length) {
111
+ return {
112
+ total: 0,
113
+ userScore: 0,
114
+ };
115
+ }
116
+ const { total, userScore } = marks.reduce((acc, mark) => {
117
+ const choices = mark.osceStationMark?.choices;
118
+ const multiplier = mark.secondaryMark ? 2 : 1;
119
+ // Maximum possible score
120
+ acc.total += choices?.length
121
+ ? choices.reduce((sum, choice) => sum + multiplier * choice.score, 0)
122
+ : 1;
123
+ if (choices) {
124
+ // paces product
125
+ acc.userScore += MarkMap[mark.mark] ?? 0;
126
+ if (mark.secondaryMark) {
127
+ acc.userScore += MarkMap[mark.secondaryMark] ?? 0;
128
+ }
129
+ }
130
+ else {
131
+ acc.userScore += mark.mark ? 1 : 0;
132
+ }
133
+ return acc;
134
+ }, {
135
+ total: 0,
136
+ userScore: 0,
137
+ });
138
+ return {
139
+ total,
140
+ userScore,
141
+ };
142
+ };
143
+ exports.getStationScore = getStationScore;
104
144
  const optimisticMarkOsceMarksheetMark = (variables, productType) => {
105
145
  const data = {};
106
146
  if (productType === models_1.EProductType.PACES) {
@@ -169,6 +209,13 @@ const updateCacheOnMarkOsceMarksheetMark = (cache, result, options) => {
169
209
  mark
170
210
  score
171
211
  secondaryMark
212
+ selectedChoice
213
+ osceStationMark {
214
+ id
215
+ choices {
216
+ score
217
+ }
218
+ }
172
219
  }
173
220
  }
174
221
  `,
@@ -176,10 +223,7 @@ const updateCacheOnMarkOsceMarksheetMark = (cache, result, options) => {
176
223
  if (!marksheet?.marks?.length) {
177
224
  return;
178
225
  }
179
- const hasSecondaryMarks = marksheet.marks.some((m) => m.secondaryMark);
180
- const total = hasSecondaryMarks ? 2 * marksheet.marks.length : marksheet.marks.length;
181
- // const scored = marksheet.marks.filter(({ mark }) => Boolean(mark)).length;
182
- const userScore = marksheet.marks.reduce((sum, m) => sum + Number(m.score), 0);
226
+ const { total, userScore } = (0, exports.getStationScore)(marksheet.marks);
183
227
  cache.modify({
184
228
  id: cache.identify({ id: marksheetId, __typename: 'OsceMarksheet' }),
185
229
  fields: {