@unite-us/app-create-referral 0.5.0 → 0.5.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.
@@ -14,13 +14,14 @@ _Object$defineProperty(exports, "__esModule", {
14
14
  });
15
15
  exports.default = useCreateReferrals;
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
17
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
18
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
19
19
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
20
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
21
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
20
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
22
21
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
23
22
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
23
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
24
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
24
25
  var _lodash = require("lodash");
25
26
  var _utils = require("../pages/builder/utils");
26
27
  var _ApiHooks = require("../api/ApiHooks");
@@ -38,6 +39,8 @@ function useCreateReferrals() {
38
39
  referrals = _useAppCreateReferral2.referrals,
39
40
  formSubmissionId = _useAppCreateReferral2.formSubmissionId,
40
41
  assistanceRequestId = _useAppCreateReferral2.assistanceRequestId;
42
+ var crtb1239AdaptDraftReferralFlow = (0, _useFeatureFlag.useFeatureFlag)('crtb1239AdaptDraftReferralFlow', false);
43
+ var hint542SupersetUnlistedPrograms = (0, _useFeatureFlag.useFeatureFlag)('hint542SupersetUnlistedPrograms', false);
41
44
  var _useCreateRecord = (0, _ApiHooks.useCreateRecord)('referral'),
42
45
  createReferral = _useCreateRecord.createRecord;
43
46
  var _useCreateRecord2 = (0, _ApiHooks.useCreateRecord)('case'),
@@ -50,7 +53,40 @@ function useCreateReferrals() {
50
53
  updateReferral = _useUpdateRecord.updateRecord;
51
54
  var _useUpdateRecord2 = (0, _ApiHooks.useUpdateRecord)('case'),
52
55
  updateCase = _useUpdateRecord2.updateRecord;
53
- var hint542SupersetUnlistedPrograms = (0, _useFeatureFlag.useFeatureFlag)('hint542SupersetUnlistedPrograms', false);
56
+ var uploadDocuments = function uploadDocuments(referral, caseToUploadDoc) {
57
+ var attachableDocuments = (0, _lodash.get)(referral, 'attachableDocuments', []);
58
+ var filteredDocuments = (0, _filter.default)(attachableDocuments).call(attachableDocuments, function (doc) {
59
+ return doc.attached === true;
60
+ });
61
+ var attachedDocuments = (0, _map.default)(filteredDocuments).call(filteredDocuments, function (ad) {
62
+ return {
63
+ title: ad.document.title,
64
+ id: ad.document.id
65
+ };
66
+ });
67
+ if (!(0, _lodash.isEmpty)(attachedDocuments)) {
68
+ var attachDocumentsToResource = function attachDocumentsToResource() {
69
+ return _config.coreApi.setRelationship('case', caseToUploadDoc.id, {
70
+ relationshipModel: 'file_upload',
71
+ value: (0, _map.default)(attachedDocuments).call(attachedDocuments, function (a) {
72
+ return a.id;
73
+ })
74
+ });
75
+ };
76
+ var uploadPromises = !(0, _lodash.isEmpty)(attachedDocuments) && attachDocumentsToResource();
77
+ _promise.default.all([uploadPromises]);
78
+ }
79
+ var uploadedDocuments = (0, _lodash.get)(referral, 'attachments', []);
80
+ if (!(0, _lodash.isEmpty)(uploadedDocuments)) {
81
+ var uploadDocumentsToResource = function uploadDocumentsToResource() {
82
+ return (0, _map.default)(uploadedDocuments).call(uploadedDocuments, function (d) {
83
+ return _config.coreApi.uploadFile('case', caseToUploadDoc.id, d.file);
84
+ });
85
+ };
86
+ var _uploadPromises = uploadDocumentsToResource();
87
+ _promise.default.all((0, _toConsumableArray2.default)(_uploadPromises || []));
88
+ }
89
+ };
54
90
  var submitAssessments = function submitAssessments(_ref) {
55
91
  var cases = _ref.cases,
56
92
  latestResponses = _ref.latestResponses;
@@ -79,9 +115,9 @@ function useCreateReferrals() {
79
115
  };
80
116
  var createReferrals = /*#__PURE__*/function () {
81
117
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) {
82
- var referrals, person, draft, result, groupedReferrals, _loop, i;
83
- return _regenerator.default.wrap(function _callee$(_context3) {
84
- while (1) switch (_context3.prev = _context3.next) {
118
+ var referrals, person, draft, result, groupedReferrals, i, resultDraft, referral, referredToPrograms, isGrouped, createdCaseOrExistingAR, j, programData, _referral$primaryWork, caseValues, caseResponse, arCase, state, createNoteForUnlsitedProgramValues, referralValues, responseReferral;
119
+ return _regenerator.default.wrap(function _callee$(_context) {
120
+ while (1) switch (_context.prev = _context.next) {
85
121
  case 0:
86
122
  referrals = _ref2.referrals, person = _ref2.person, draft = _ref2.draft;
87
123
  result = {
@@ -91,291 +127,361 @@ function useCreateReferrals() {
91
127
  groupedReferrals = referrals.some(function (r) {
92
128
  return (0, _lodash.get)(r, 'programs', []).length > 1;
93
129
  });
94
- _loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
95
- var referral, referredToPrograms, isGrouped, createdCaseOrExistingAR, _loop2, j;
96
- return _regenerator.default.wrap(function _loop$(_context2) {
97
- while (1) switch (_context2.prev = _context2.next) {
98
- case 0:
99
- referral = referrals[i];
100
- referredToPrograms = (0, _lodash.get)(referral, 'programs', []);
101
- isGrouped = (0, _utils.referralIsGrouped)(referral);
102
- createdCaseOrExistingAR = null;
103
- _loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
104
- var programData, _referral$primaryWork, caseValues, caseResponse, arCase, attachableDocuments, filteredDocuments, attachedDocuments, attachDocumentsToResource, uploadPromises, uploadedDocuments, uploadDocumentsToResource, _uploadPromises, state, createNoteForUnlsitedProgramValues, referralValues, responseReferral;
105
- return _regenerator.default.wrap(function _loop2$(_context) {
106
- while (1) switch (_context.prev = _context.next) {
107
- case 0:
108
- programData = referredToPrograms[j]; // for grouped, created only 1 case and attach it to all referrals;
109
- // for individual create a new case/referral for each
110
- if (!(groupedReferrals && !createdCaseOrExistingAR || !groupedReferrals)) {
111
- _context.next = 23;
112
- break;
113
- }
114
- caseValues = _objectSpread(_objectSpread({
115
- description: referral.description,
116
- state: (0, _utils.referralIsOON)(referral) ? 'off_platform' : 'draft',
117
- person: person.id,
118
- provider: referral.sendingProvider.id,
119
- network: referral.network.id,
120
- service: referral.service.id
121
- }, (_referral$primaryWork = referral.primaryWorker) !== null && _referral$primaryWork !== void 0 && _referral$primaryWork.id ? {
122
- primary_worker: referral.primaryWorker.id
123
- } : null), formSubmissionId ? {
124
- originating_form_submission: formSubmissionId
125
- } : null);
126
- _context.prev = 3;
127
- if (!(assistanceRequestId && i === 0)) {
128
- _context.next = 12;
129
- break;
130
- }
131
- arCase = (0, _lodash.get)(assistanceRequestId, 'case', null);
132
- if (!(referral.service.id && (0, _lodash.get)(arCase, 'service.id') !== referral.service.id)) {
133
- _context.next = 10;
134
- break;
135
- }
136
- _context.next = 9;
137
- return updateCase(arCase.id, {
138
- description: referral.description,
139
- service: referral.service.id
140
- });
141
- case 9:
142
- caseResponse = _context.sent;
143
- case 10:
144
- _context.next = 15;
145
- break;
146
- case 12:
147
- _context.next = 14;
148
- return createCase(caseValues);
149
- case 14:
150
- caseResponse = _context.sent;
151
- case 15:
152
- createdCaseOrExistingAR = (0, _lodash.get)(caseResponse, 'data.data', {});
153
- result.cases.push(createdCaseOrExistingAR);
154
- _context.next = 23;
155
- break;
156
- case 19:
157
- _context.prev = 19;
158
- _context.t0 = _context["catch"](3);
159
- _config.CALLBACKS.notify.error("Error creating the Case");
160
- throw _context.t0;
161
- case 23:
162
- attachableDocuments = (0, _lodash.get)(referral, 'attachableDocuments', []);
163
- filteredDocuments = (0, _filter.default)(attachableDocuments).call(attachableDocuments, function (doc) {
164
- return doc.attached === true;
165
- });
166
- attachedDocuments = (0, _map.default)(filteredDocuments).call(filteredDocuments, function (ad) {
167
- return {
168
- title: ad.document.title,
169
- id: ad.document.id
170
- };
171
- });
172
- if (!(0, _lodash.isEmpty)(attachedDocuments)) {
173
- attachDocumentsToResource = function attachDocumentsToResource() {
174
- return _config.coreApi.setRelationship('case', createdCaseOrExistingAR.id, {
175
- relationshipModel: 'file_upload',
176
- value: (0, _map.default)(attachedDocuments).call(attachedDocuments, function (a) {
177
- return a.id;
178
- })
179
- });
180
- };
181
- uploadPromises = !(0, _lodash.isEmpty)(attachedDocuments) && attachDocumentsToResource();
182
- _promise.default.all([uploadPromises]);
183
- }
184
- uploadedDocuments = (0, _lodash.get)(referral, 'attachments', []);
185
- if (!(0, _lodash.isEmpty)(uploadedDocuments)) {
186
- uploadDocumentsToResource = function uploadDocumentsToResource() {
187
- return (0, _map.default)(uploadedDocuments).call(uploadedDocuments, function (d) {
188
- return _config.coreApi.uploadFile('case', createdCaseOrExistingAR.id, d.file);
189
- });
190
- };
191
- _uploadPromises = uploadDocumentsToResource();
192
- _promise.default.all((0, _toConsumableArray2.default)(_uploadPromises || []));
193
- }
194
- state = (0, _utils.referralIsOON)(referral) ? 'off_platform' : 'sent';
195
- if (draft) {
196
- state = 'draft';
197
- }
198
-
199
- // If the program is unlisted, create a note on the case. Otherwise, create a referral
200
- if (!(hint542SupersetUnlistedPrograms && (0, _utils.isUnlistedProgram)(programData))) {
201
- _context.next = 43;
202
- break;
203
- }
204
- createNoteForUnlsitedProgramValues = {
205
- subjectType: 'case',
206
- subject: createdCaseOrExistingAR.id,
207
- employee: currentEmployee.id,
208
- visibility: 'public',
209
- category: 'external_provider',
210
- text: "Referred off platform to ".concat(programData.name)
211
- };
212
- _context.prev = 33;
213
- createNote(createNoteForUnlsitedProgramValues);
214
- _context.next = 41;
215
- break;
216
- case 37:
217
- _context.prev = 37;
218
- _context.t1 = _context["catch"](33);
219
- _config.CALLBACKS.notify.error("Error creating the note on the case for the unlisted program");
220
- throw _context.t1;
221
- case 41:
222
- _context.next = 55;
223
- break;
224
- case 43:
225
- referralValues = {
226
- state: state,
227
- case: createdCaseOrExistingAR.id,
228
- is_grouped: isGrouped,
229
- receiving_program: programData.id,
230
- receiving_provider: programData.provider.id,
231
- receiving_network: referral.network.id,
232
- sending_provider: referral.sendingProvider.id,
233
- sending_network: referral.network.id
234
- };
235
- _context.prev = 44;
236
- _context.next = 47;
237
- return createReferral(referralValues);
238
- case 47:
239
- responseReferral = _context.sent;
240
- result.referrals.push(responseReferral.data.data);
241
- _context.next = 55;
242
- break;
243
- case 51:
244
- _context.prev = 51;
245
- _context.t2 = _context["catch"](44);
246
- _config.CALLBACKS.notify.error("Error creating the Referral");
247
- throw _context.t2;
248
- case 55:
249
- case "end":
250
- return _context.stop();
251
- }
252
- }, _loop2, null, [[3, 19], [33, 37], [44, 51]]);
253
- });
254
- j = 0;
255
- case 6:
256
- if (!(j < referredToPrograms.length)) {
257
- _context2.next = 11;
258
- break;
259
- }
260
- return _context2.delegateYield(_loop2(), "t0", 8);
261
- case 8:
262
- j += 1;
263
- _context2.next = 6;
264
- break;
265
- case 11:
266
- case "end":
267
- return _context2.stop();
268
- }
269
- }, _loop);
270
- });
271
130
  i = 0;
272
- case 5:
131
+ case 4:
273
132
  if (!(i < referrals.length)) {
274
- _context3.next = 10;
133
+ _context.next = 76;
275
134
  break;
276
135
  }
277
- return _context3.delegateYield(_loop(), "t0", 7);
278
- case 7:
136
+ if (!(crtb1239AdaptDraftReferralFlow && referrals[i].state === "draft")) {
137
+ _context.next = 13;
138
+ break;
139
+ }
140
+ _context.next = 8;
141
+ return updateDraftReferralCrtb1239(referrals[i]);
142
+ case 8:
143
+ resultDraft = _context.sent;
144
+ result.cases.push(resultDraft.cases[0]);
145
+ result.referrals.push(resultDraft.referrals[0]);
146
+ _context.next = 73;
147
+ break;
148
+ case 13:
149
+ referral = referrals[i];
150
+ referredToPrograms = (0, _lodash.get)(referral, 'programs', []);
151
+ isGrouped = (0, _utils.referralIsGrouped)(referral);
152
+ createdCaseOrExistingAR = null;
153
+ j = 0;
154
+ case 18:
155
+ if (!(j < referredToPrograms.length)) {
156
+ _context.next = 73;
157
+ break;
158
+ }
159
+ programData = referredToPrograms[j]; // for grouped, created only 1 case and attach it to all referrals;
160
+ // for individual create a new case/referral for each
161
+ if (!(groupedReferrals && !createdCaseOrExistingAR || !groupedReferrals)) {
162
+ _context.next = 43;
163
+ break;
164
+ }
165
+ caseValues = _objectSpread(_objectSpread({
166
+ description: referral.description,
167
+ state: (0, _utils.referralIsOON)(referral) ? 'off_platform' : 'draft',
168
+ person: person.id,
169
+ provider: referral.sendingProvider.id,
170
+ network: referral.network.id,
171
+ service: referral.service.id
172
+ }, (_referral$primaryWork = referral.primaryWorker) !== null && _referral$primaryWork !== void 0 && _referral$primaryWork.id ? {
173
+ primary_worker: referral.primaryWorker.id
174
+ } : null), formSubmissionId ? {
175
+ originating_form_submission: formSubmissionId
176
+ } : null);
177
+ _context.prev = 22;
178
+ caseResponse = void 0;
179
+ if (!(assistanceRequestId && i === 0)) {
180
+ _context.next = 32;
181
+ break;
182
+ }
183
+ arCase = (0, _lodash.get)(assistanceRequestId, 'case', null);
184
+ if (!(referral.service.id && (0, _lodash.get)(arCase, 'service.id') !== referral.service.id)) {
185
+ _context.next = 30;
186
+ break;
187
+ }
188
+ _context.next = 29;
189
+ return updateCase(arCase.id, {
190
+ description: referral.description,
191
+ service: referral.service.id
192
+ });
193
+ case 29:
194
+ caseResponse = _context.sent;
195
+ case 30:
196
+ _context.next = 35;
197
+ break;
198
+ case 32:
199
+ _context.next = 34;
200
+ return createCase(caseValues);
201
+ case 34:
202
+ caseResponse = _context.sent;
203
+ case 35:
204
+ createdCaseOrExistingAR = (0, _lodash.get)(caseResponse, 'data.data', {});
205
+ result.cases.push(createdCaseOrExistingAR);
206
+ _context.next = 43;
207
+ break;
208
+ case 39:
209
+ _context.prev = 39;
210
+ _context.t0 = _context["catch"](22);
211
+ _config.CALLBACKS.notify.error("Error creating the Case");
212
+ throw _context.t0;
213
+ case 43:
214
+ uploadDocuments(referral, createdCaseOrExistingAR);
215
+ state = (0, _utils.referralIsOON)(referral) ? 'off_platform' : 'sent';
216
+ if (draft) {
217
+ state = 'draft';
218
+ }
219
+
220
+ // If the program is unlisted, create a note on the case. Otherwise, create a referral
221
+ if (!(hint542SupersetUnlistedPrograms && (0, _utils.isUnlistedProgram)(programData))) {
222
+ _context.next = 58;
223
+ break;
224
+ }
225
+ createNoteForUnlsitedProgramValues = {
226
+ subjectType: 'case',
227
+ subject: createdCaseOrExistingAR.id,
228
+ employee: currentEmployee.id,
229
+ visibility: 'public',
230
+ category: 'external_provider',
231
+ text: "Referred off platform to ".concat(programData.name)
232
+ };
233
+ _context.prev = 48;
234
+ createNote(createNoteForUnlsitedProgramValues);
235
+ _context.next = 56;
236
+ break;
237
+ case 52:
238
+ _context.prev = 52;
239
+ _context.t1 = _context["catch"](48);
240
+ _config.CALLBACKS.notify.error("Error creating the note on the case for the unlisted program");
241
+ throw _context.t1;
242
+ case 56:
243
+ _context.next = 70;
244
+ break;
245
+ case 58:
246
+ referralValues = {
247
+ state: state,
248
+ case: createdCaseOrExistingAR.id,
249
+ is_grouped: isGrouped,
250
+ receiving_program: programData.id,
251
+ receiving_provider: programData.provider.id,
252
+ receiving_network: referral.network.id,
253
+ sending_provider: referral.sendingProvider.id,
254
+ sending_network: referral.network.id
255
+ };
256
+ _context.prev = 59;
257
+ _context.next = 62;
258
+ return createReferral(referralValues);
259
+ case 62:
260
+ responseReferral = _context.sent;
261
+ result.referrals.push(responseReferral.data.data);
262
+ _context.next = 70;
263
+ break;
264
+ case 66:
265
+ _context.prev = 66;
266
+ _context.t2 = _context["catch"](59);
267
+ _config.CALLBACKS.notify.error("Error creating the Referral");
268
+ throw _context.t2;
269
+ case 70:
270
+ j += 1;
271
+ _context.next = 18;
272
+ break;
273
+ case 73:
279
274
  i += 1;
280
- _context3.next = 5;
275
+ _context.next = 4;
281
276
  break;
282
- case 10:
283
- return _context3.abrupt("return", result);
284
- case 11:
277
+ case 76:
278
+ return _context.abrupt("return", result);
279
+ case 77:
285
280
  case "end":
286
- return _context3.stop();
281
+ return _context.stop();
287
282
  }
288
- }, _callee);
283
+ }, _callee, null, [[22, 39], [48, 52], [59, 66]]);
289
284
  }));
290
285
  return function createReferrals(_x) {
291
286
  return _ref3.apply(this, arguments);
292
287
  };
293
288
  }();
294
- var updateDraftReferral = /*#__PURE__*/function () {
289
+ var updateDraftReferralCrtb1239 = /*#__PURE__*/function () {
295
290
  var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(referral) {
291
+ var _caseResponse$data, _caseResponse$data2, _yield$Promise$all, _yield$Promise$all2, caseRequestResponse, referralsRequestResponse, oldCase, oldReferrals, serviceTypeChanged, descriptionChanged, serviceCasePayload, caseResponse, referralsToDelete, formRecipientsIds, createReferralPromises, referralResponse;
292
+ return _regenerator.default.wrap(function _callee2$(_context2) {
293
+ while (1) switch (_context2.prev = _context2.next) {
294
+ case 0:
295
+ _context2.prev = 0;
296
+ _context2.next = 3;
297
+ return _promise.default.all([_config.coreApi.findRecord('case', referral.case.id), _config.coreApi.query('referral', {
298
+ case: referral.case.id
299
+ })]);
300
+ case 3:
301
+ _yield$Promise$all = _context2.sent;
302
+ _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
303
+ caseRequestResponse = _yield$Promise$all2[0];
304
+ referralsRequestResponse = _yield$Promise$all2[1];
305
+ oldCase = (0, _lodash.get)(caseRequestResponse, 'data.data', null);
306
+ oldReferrals = (0, _lodash.get)(referralsRequestResponse, 'data.data', null);
307
+ serviceTypeChanged = referral.service.id !== oldCase.service_type.id;
308
+ descriptionChanged = referral.description && referral.description !== oldCase.description;
309
+ serviceCasePayload = _objectSpread(_objectSpread({}, serviceTypeChanged && {
310
+ service: {
311
+ id: referral.service.id
312
+ }
313
+ }), descriptionChanged && {
314
+ description: referral.description
315
+ });
316
+ if (!(0, _lodash.isEmpty)(serviceCasePayload)) {
317
+ _context2.next = 16;
318
+ break;
319
+ }
320
+ _context2.t0 = oldCase;
321
+ _context2.next = 19;
322
+ break;
323
+ case 16:
324
+ _context2.next = 18;
325
+ return updateCase(referral.case.id, serviceCasePayload);
326
+ case 18:
327
+ _context2.t0 = _context2.sent;
328
+ case 19:
329
+ caseResponse = _context2.t0;
330
+ uploadDocuments(referral, oldCase);
331
+ referralsToDelete = [];
332
+ oldReferrals.forEach(function (r) {
333
+ referralsToDelete.push(_config.coreApi.deleteRecord('referral', r.id));
334
+ });
335
+ if (!referralsToDelete.length) {
336
+ _context2.next = 26;
337
+ break;
338
+ }
339
+ _context2.next = 26;
340
+ return _promise.default.all(referralsToDelete);
341
+ case 26:
342
+ formRecipientsIds = (0, _mapInstanceProperty2(_lodash))(referral.programs, function (r) {
343
+ return {
344
+ provider_id: r.provider.id,
345
+ network: referral.network,
346
+ program_id: r.id
347
+ };
348
+ });
349
+ createReferralPromises = [];
350
+ formRecipientsIds.forEach(function (r) {
351
+ var newReferral = createReferral({
352
+ state: 'sent',
353
+ case: oldCase.id,
354
+ receiving_program: r.program_id,
355
+ receiving_provider: r.provider_id,
356
+ receiving_network: r.network.id,
357
+ sending_provider: oldCase.provider.id,
358
+ sending_network: oldCase.network.id
359
+ });
360
+ createReferralPromises.push(newReferral);
361
+ });
362
+ _context2.next = 31;
363
+ return _promise.default.all(createReferralPromises);
364
+ case 31:
365
+ referralResponse = _context2.sent;
366
+ return _context2.abrupt("return", {
367
+ cases: [caseResponse !== null && caseResponse !== void 0 && (_caseResponse$data = caseResponse.data) !== null && _caseResponse$data !== void 0 && _caseResponse$data.data ? caseResponse === null || caseResponse === void 0 || (_caseResponse$data2 = caseResponse.data) === null || _caseResponse$data2 === void 0 ? void 0 : _caseResponse$data2.data : oldCase],
368
+ referrals: [referralResponse === null || referralResponse === void 0 ? void 0 : referralResponse.data]
369
+ });
370
+ case 35:
371
+ _context2.prev = 35;
372
+ _context2.t1 = _context2["catch"](0);
373
+ _config.CALLBACKS.notify.error("Error updating the Draft Referral");
374
+ throw _context2.t1;
375
+ case 39:
376
+ case "end":
377
+ return _context2.stop();
378
+ }
379
+ }, _callee2, null, [[0, 35]]);
380
+ }));
381
+ return function updateDraftReferralCrtb1239(_x2) {
382
+ return _ref4.apply(this, arguments);
383
+ };
384
+ }();
385
+ var updateDraftReferral = /*#__PURE__*/function () {
386
+ var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(referral) {
296
387
  var responses;
297
- return _regenerator.default.wrap(function _callee2$(_context4) {
298
- while (1) switch (_context4.prev = _context4.next) {
388
+ return _regenerator.default.wrap(function _callee3$(_context3) {
389
+ while (1) switch (_context3.prev = _context3.next) {
299
390
  case 0:
300
- _context4.prev = 0;
301
- _context4.next = 3;
391
+ _context3.prev = 0;
392
+ _context3.next = 3;
302
393
  return _promise.default.all([updateReferral(referral.id, {
303
394
  state: (0, _utils.referralIsOON)(referral) ? 'off_platform' : 'sent'
304
395
  }), updateCase(referral.case.id, {
305
396
  description: referral.description
306
397
  })]);
307
398
  case 3:
308
- responses = _context4.sent;
309
- return _context4.abrupt("return", {
399
+ responses = _context3.sent;
400
+ return _context3.abrupt("return", {
310
401
  referrals: [responses[0].data.data],
311
402
  cases: [responses[1].data.data]
312
403
  });
313
404
  case 7:
314
- _context4.prev = 7;
315
- _context4.t0 = _context4["catch"](0);
405
+ _context3.prev = 7;
406
+ _context3.t0 = _context3["catch"](0);
316
407
  _config.CALLBACKS.notify.error("Error updating the Draft Referral");
317
- throw _context4.t0;
408
+ throw _context3.t0;
318
409
  case 11:
319
410
  case "end":
320
- return _context4.stop();
411
+ return _context3.stop();
321
412
  }
322
- }, _callee2, null, [[0, 7]]);
413
+ }, _callee3, null, [[0, 7]]);
323
414
  }));
324
- return function updateDraftReferral(_x2) {
325
- return _ref4.apply(this, arguments);
415
+ return function updateDraftReferral(_x3) {
416
+ return _ref5.apply(this, arguments);
326
417
  };
327
418
  }();
328
- return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
329
- var _ref6,
330
- _ref6$draft,
419
+ return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
420
+ var _ref7,
421
+ _ref7$draft,
331
422
  draft,
332
423
  latestResponses,
333
424
  response,
334
- _args5 = arguments;
335
- return _regenerator.default.wrap(function _callee3$(_context5) {
336
- while (1) switch (_context5.prev = _context5.next) {
425
+ _args4 = arguments;
426
+ return _regenerator.default.wrap(function _callee4$(_context4) {
427
+ while (1) switch (_context4.prev = _context4.next) {
337
428
  case 0:
338
- _ref6 = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {}, _ref6$draft = _ref6.draft, draft = _ref6$draft === void 0 ? false : _ref6$draft, latestResponses = _ref6.latestResponses;
339
- response = null; // Update the Draft Referral to the sent state
340
- if (!(referrals.length === 1 && referrals[0].id && referrals[0].state === "draft")) {
341
- _context5.next = 8;
429
+ _ref7 = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {}, _ref7$draft = _ref7.draft, draft = _ref7$draft === void 0 ? false : _ref7$draft, latestResponses = _ref7.latestResponses;
430
+ response = {};
431
+ if (!crtb1239AdaptDraftReferralFlow) {
432
+ _context4.next = 8;
342
433
  break;
343
434
  }
344
- _context5.next = 5;
345
- return updateDraftReferral(referrals[0]);
435
+ _context4.next = 5;
436
+ return createReferrals({
437
+ referrals: referrals,
438
+ person: person,
439
+ draft: draft
440
+ });
346
441
  case 5:
347
- response = _context5.sent;
348
- _context5.next = 11;
442
+ response = _context4.sent;
443
+ _context4.next = 17;
349
444
  break;
350
445
  case 8:
351
- _context5.next = 10;
446
+ if (!(referrals.length === 1 && referrals[0].id && referrals[0].state === "draft")) {
447
+ _context4.next = 14;
448
+ break;
449
+ }
450
+ _context4.next = 11;
451
+ return updateDraftReferral(referrals[0]);
452
+ case 11:
453
+ response = _context4.sent;
454
+ _context4.next = 17;
455
+ break;
456
+ case 14:
457
+ _context4.next = 16;
352
458
  return createReferrals({
353
459
  referrals: referrals,
354
460
  person: person,
355
461
  draft: draft
356
462
  });
357
- case 10:
358
- response = _context5.sent;
359
- case 11:
463
+ case 16:
464
+ response = _context4.sent;
465
+ case 17:
360
466
  if (!(formResponses || latestResponses)) {
361
- _context5.next = 14;
467
+ _context4.next = 20;
362
468
  break;
363
469
  }
364
- _context5.next = 14;
470
+ _context4.next = 20;
365
471
  return submitAssessments({
366
472
  cases: response.cases,
367
473
  latestResponses: latestResponses
368
474
  });
369
- case 14:
370
- return _context5.abrupt("return", {
475
+ case 20:
476
+ return _context4.abrupt("return", {
371
477
  cases: response.cases,
372
478
  referrals: response.referrals
373
479
  });
374
- case 15:
480
+ case 21:
375
481
  case "end":
376
- return _context5.stop();
482
+ return _context4.stop();
377
483
  }
378
- }, _callee3);
484
+ }, _callee4);
379
485
  }));
380
486
  }
381
487
  ;