@os1-platform/dispatch-mobile 3.0.4 → 3.1.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.
Files changed (218) hide show
  1. package/android/build.gradle +38 -9
  2. package/android/gradle.properties +17 -2
  3. package/lib/commonjs/components/dispatch/DispatchExecNavigator.js.map +1 -1
  4. package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  5. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +1 -1
  6. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  7. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +467 -287
  8. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  9. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js +14 -1
  10. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
  11. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOtpStyles.js +270 -0
  12. package/lib/commonjs/components/executiontasks/validateOTP/ValidateOtpStyles.js.map +1 -0
  13. package/lib/commonjs/components/executiontasks/validateOTP/components/ContactListView.js +99 -0
  14. package/lib/commonjs/components/executiontasks/validateOTP/components/ContactListView.js.map +1 -0
  15. package/lib/commonjs/components/executiontasks/validateOTP/components/OTPView.js +195 -0
  16. package/lib/commonjs/components/executiontasks/validateOTP/components/OTPView.js.map +1 -0
  17. package/lib/commonjs/components/executiontasks/validateOTP/components/VerificationComplete.js +106 -0
  18. package/lib/commonjs/components/executiontasks/validateOTP/components/VerificationComplete.js.map +1 -0
  19. package/lib/commonjs/components/executiontasks/validateOTP/constants.js +12 -5
  20. package/lib/commonjs/components/executiontasks/validateOTP/constants.js.map +1 -1
  21. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ContactCard.js +68 -0
  22. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ContactCard.js.map +1 -0
  23. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js +12 -5
  24. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  25. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js +61 -0
  26. package/lib/commonjs/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js.map +1 -0
  27. package/lib/commonjs/components/executiontasks/validateOTP/utils.js +235 -114
  28. package/lib/commonjs/components/executiontasks/validateOTP/utils.js.map +1 -1
  29. package/lib/commonjs/components/utils/Scale.js +22 -0
  30. package/lib/commonjs/components/utils/Scale.js.map +1 -0
  31. package/lib/commonjs/components/widgets/ConfirmCancelModal.js +47 -0
  32. package/lib/commonjs/components/widgets/ConfirmCancelModal.js.map +1 -0
  33. package/lib/commonjs/components/widgets/SnackBarCustom.js +36 -4
  34. package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
  35. package/lib/commonjs/components/widgets/SplitTextInput.js +48 -18
  36. package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
  37. package/lib/commonjs/constants/apiConstants.js +4 -1
  38. package/lib/commonjs/constants/apiConstants.js.map +1 -1
  39. package/lib/commonjs/constants/constants.js +2 -1
  40. package/lib/commonjs/constants/constants.js.map +1 -1
  41. package/lib/commonjs/icons/icExclamationcircleo_dark.svg +3 -0
  42. package/lib/commonjs/icons/icFailed.gif +0 -0
  43. package/lib/commonjs/icons/icRadioChecked.svg +4 -0
  44. package/lib/commonjs/icons/icRadioUnchecked.svg +4 -0
  45. package/lib/commonjs/icons/icSuccess.gif +0 -0
  46. package/lib/commonjs/icons/index.js +28 -0
  47. package/lib/commonjs/icons/index.js.map +1 -0
  48. package/lib/commonjs/index.js +19 -0
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +5 -4
  51. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  52. package/lib/commonjs/manager/sdk/callbacksHandler.js +9 -2
  53. package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
  54. package/lib/commonjs/manager/syncmanager/constants.js +3 -1
  55. package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
  56. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  57. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  58. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  59. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  60. package/lib/commonjs/models/sdk.js +1 -0
  61. package/lib/commonjs/models/sdk.js.map +1 -1
  62. package/lib/commonjs/ui/screens/ValidateOTPScreen.js +132 -12
  63. package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
  64. package/lib/commonjs/utils/ApiUtils.js +122 -3
  65. package/lib/commonjs/utils/ApiUtils.js.map +1 -1
  66. package/lib/commonjs/utils/ExecTaskUtils.js +67 -7
  67. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  68. package/lib/commonjs/utils/context/valdiateOTPContext.js +11 -0
  69. package/lib/commonjs/utils/context/valdiateOTPContext.js.map +1 -0
  70. package/lib/commonjs/utils/helper.js.map +1 -1
  71. package/lib/commonjs/utils/hooks/useTimer.js +68 -30
  72. package/lib/commonjs/utils/hooks/useTimer.js.map +1 -1
  73. package/lib/module/components/dispatch/DispatchExecNavigator.js.map +1 -1
  74. package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
  75. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +1 -1
  76. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  77. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +480 -290
  78. package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
  79. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js +14 -0
  80. package/lib/module/components/executiontasks/validateOTP/ValidateOTPSchema.js.map +1 -1
  81. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js +264 -0
  82. package/lib/module/components/executiontasks/validateOTP/ValidateOtpStyles.js.map +1 -0
  83. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js +88 -0
  84. package/lib/module/components/executiontasks/validateOTP/components/ContactListView.js.map +1 -0
  85. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js +194 -0
  86. package/lib/module/components/executiontasks/validateOTP/components/OTPView.js.map +1 -0
  87. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js +96 -0
  88. package/lib/module/components/executiontasks/validateOTP/components/VerificationComplete.js.map +1 -0
  89. package/lib/module/components/executiontasks/validateOTP/constants.js +11 -4
  90. package/lib/module/components/executiontasks/validateOTP/constants.js.map +1 -1
  91. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js +59 -0
  92. package/lib/module/components/executiontasks/validateOTP/sub-components/ContactCard.js.map +1 -0
  93. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js +11 -5
  94. package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
  95. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js +52 -0
  96. package/lib/module/components/executiontasks/validateOTP/sub-components/ResendOTPButton.js.map +1 -0
  97. package/lib/module/components/executiontasks/validateOTP/utils.js +219 -108
  98. package/lib/module/components/executiontasks/validateOTP/utils.js.map +1 -1
  99. package/lib/module/components/utils/Scale.js +14 -0
  100. package/lib/module/components/utils/Scale.js.map +1 -0
  101. package/lib/module/components/widgets/ConfirmCancelModal.js +40 -0
  102. package/lib/module/components/widgets/ConfirmCancelModal.js.map +1 -0
  103. package/lib/module/components/widgets/SnackBarCustom.js +36 -4
  104. package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
  105. package/lib/module/components/widgets/SplitTextInput.js +48 -19
  106. package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
  107. package/lib/module/constants/apiConstants.js +4 -1
  108. package/lib/module/constants/apiConstants.js.map +1 -1
  109. package/lib/module/constants/constants.js +1 -0
  110. package/lib/module/constants/constants.js.map +1 -1
  111. package/lib/module/icons/icExclamationcircleo_dark.svg +3 -0
  112. package/lib/module/icons/icFailed.gif +0 -0
  113. package/lib/module/icons/icRadioChecked.svg +4 -0
  114. package/lib/module/icons/icRadioUnchecked.svg +4 -0
  115. package/lib/module/icons/icSuccess.gif +0 -0
  116. package/lib/module/icons/index.js +5 -0
  117. package/lib/module/icons/index.js.map +1 -0
  118. package/lib/module/index.js +2 -0
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/module/manager/sdk/DispatchSDKManager.js +5 -3
  121. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  122. package/lib/module/manager/sdk/callbacksHandler.js +12 -3
  123. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  124. package/lib/module/manager/syncmanager/constants.js +2 -0
  125. package/lib/module/manager/syncmanager/constants.js.map +1 -1
  126. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +3 -2
  127. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  128. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +70 -80
  129. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  130. package/lib/module/models/sdk.js +2 -0
  131. package/lib/module/models/sdk.js.map +1 -1
  132. package/lib/module/ui/screens/ValidateOTPScreen.js +139 -11
  133. package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
  134. package/lib/module/utils/ApiUtils.js +118 -2
  135. package/lib/module/utils/ApiUtils.js.map +1 -1
  136. package/lib/module/utils/ExecTaskUtils.js +66 -7
  137. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  138. package/lib/module/utils/context/valdiateOTPContext.js +4 -0
  139. package/lib/module/utils/context/valdiateOTPContext.js.map +1 -0
  140. package/lib/module/utils/helper.js +1 -0
  141. package/lib/module/utils/helper.js.map +1 -1
  142. package/lib/module/utils/hooks/useTimer.js +67 -30
  143. package/lib/module/utils/hooks/useTimer.js.map +1 -1
  144. package/lib/typescript/components/executiontasks/collectPayment/PaymentStyles.d.ts +3 -3
  145. package/lib/typescript/components/executiontasks/deliver/DeliverETInput.d.ts +0 -1
  146. package/lib/typescript/components/executiontasks/scan/modalConstant.d.ts +0 -1
  147. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPET.d.ts +3 -3
  148. package/lib/typescript/components/executiontasks/validateOTP/ValidateOTPSchema.d.ts +169 -5
  149. package/lib/typescript/components/executiontasks/validateOTP/ValidateOtpStyles.d.ts +255 -0
  150. package/lib/typescript/components/executiontasks/validateOTP/components/ContactListView.d.ts +3 -0
  151. package/lib/typescript/components/executiontasks/validateOTP/components/OTPView.d.ts +3 -0
  152. package/lib/typescript/components/executiontasks/validateOTP/components/VerificationComplete.d.ts +3 -0
  153. package/lib/typescript/components/executiontasks/validateOTP/constants.d.ts +11 -4
  154. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ContactCard.d.ts +8 -0
  155. package/lib/typescript/components/executiontasks/validateOTP/sub-components/ResendOTPButton.d.ts +12 -0
  156. package/lib/typescript/components/executiontasks/validateOTP/utils.d.ts +31 -7
  157. package/lib/typescript/components/utils/Scale.d.ts +4 -0
  158. package/lib/typescript/components/widgets/ConfirmCancelModal.d.ts +9 -0
  159. package/lib/typescript/components/widgets/SnackBarCustom.d.ts +4 -8
  160. package/lib/typescript/components/widgets/SplitTextInput.d.ts +1 -1
  161. package/lib/typescript/components/widgets/Timer.d.ts +3 -3
  162. package/lib/typescript/constants/apiConstants.d.ts +3 -0
  163. package/lib/typescript/constants/constants.d.ts +1 -0
  164. package/lib/typescript/icons/index.d.ts +4 -0
  165. package/lib/typescript/index.d.ts +2 -0
  166. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +4 -1
  167. package/lib/typescript/manager/syncmanager/constants.d.ts +2 -0
  168. package/lib/typescript/models/execTasks/ETConfig.d.ts +1 -1
  169. package/lib/typescript/models/sdk.d.ts +3 -0
  170. package/lib/typescript/network/GraphQLClient.d.ts +4 -4
  171. package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +2 -2
  172. package/lib/typescript/ui/screens/HttpRequestScreen.d.ts +0 -1
  173. package/lib/typescript/utils/ApiUtils.d.ts +6 -2
  174. package/lib/typescript/utils/ExecTaskUtils.d.ts +1 -0
  175. package/lib/typescript/utils/context/paymentContext.d.ts +0 -1
  176. package/lib/typescript/utils/context/valdiateOTPContext.d.ts +6 -0
  177. package/lib/typescript/utils/hooks/useModal.d.ts +0 -2
  178. package/lib/typescript/utils/hooks/useTimer.d.ts +7 -5
  179. package/package.json +46 -44
  180. package/src/components/dispatch/DispatchExecNavigator.tsx +1 -1
  181. package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +2 -2
  182. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +1 -1
  183. package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +654 -381
  184. package/src/components/executiontasks/validateOTP/ValidateOTPSchema.ts +193 -8
  185. package/src/components/executiontasks/validateOTP/ValidateOtpStyles.ts +296 -0
  186. package/src/components/executiontasks/validateOTP/components/ContactListView.tsx +109 -0
  187. package/src/components/executiontasks/validateOTP/components/OTPView.tsx +216 -0
  188. package/src/components/executiontasks/validateOTP/components/VerificationComplete.tsx +124 -0
  189. package/src/components/executiontasks/validateOTP/constants.ts +11 -4
  190. package/src/components/executiontasks/validateOTP/sub-components/ContactCard.tsx +72 -0
  191. package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +13 -7
  192. package/src/components/executiontasks/validateOTP/sub-components/ResendOTPButton.tsx +86 -0
  193. package/src/components/executiontasks/validateOTP/utils.ts +313 -143
  194. package/src/components/utils/Scale.ts +13 -0
  195. package/src/components/widgets/ConfirmCancelModal.tsx +49 -0
  196. package/src/components/widgets/SnackBarCustom.tsx +37 -13
  197. package/src/components/widgets/SplitTextInput.tsx +58 -21
  198. package/src/constants/apiConstants.ts +3 -0
  199. package/src/constants/constants.ts +2 -2
  200. package/src/icons/icExclamationcircleo_dark.svg +3 -0
  201. package/src/icons/icFailed.gif +0 -0
  202. package/src/icons/icRadioChecked.svg +4 -0
  203. package/src/icons/icRadioUnchecked.svg +4 -0
  204. package/src/icons/icSuccess.gif +0 -0
  205. package/src/icons/index.ts +5 -0
  206. package/src/index.tsx +2 -0
  207. package/src/manager/sdk/DispatchSDKManager.ts +6 -5
  208. package/src/manager/sdk/callbacksHandler.ts +29 -12
  209. package/src/manager/syncmanager/constants.ts +2 -0
  210. package/src/manager/syncmanager/document/DocumentHttpClient.ts +29 -29
  211. package/src/manager/syncmanager/document/DocumentSyncManager.ts +75 -84
  212. package/src/models/sdk.ts +6 -0
  213. package/src/ui/screens/ValidateOTPScreen.tsx +194 -32
  214. package/src/utils/ApiUtils.ts +131 -3
  215. package/src/utils/ExecTaskUtils.ts +77 -15
  216. package/src/utils/context/valdiateOTPContext.ts +9 -0
  217. package/src/utils/helper.ts +0 -1
  218. package/src/utils/hooks/useTimer.ts +94 -36
@@ -1,56 +1,184 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ /* eslint-disable @typescript-eslint/no-unused-vars */
3
+ // External Libraries
2
4
  import React, { useEffect, useState } from 'react';
5
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
6
+
7
+ // SDKs and Platform Libraries
8
+ import { DispatchExecutor } from '@os1-platform/platform-coreos-execution-engine-sdk';
9
+
10
+ // Utility and Manager Imports
11
+ import Storage from '../../utils/storage';
12
+ import callbackHandler from '../../manager/sdk/callbacksHandler';
13
+ import Logger, { LOG_TYPE } from '../../utils/Logger';
14
+ import { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';
15
+ import { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';
16
+ import { PROGRESS_GROUP } from '../../utils/Constants';
17
+ import DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';
3
18
  import withBaseDispatchScreen from './WithBaseDispatchScreen';
19
+ import DispatchSdkCache from '../../manager/sdk/DispatchSdkCache';
20
+ import Helper from '../../utils/helper';
21
+
22
+ // Network Client
23
+ import NetworkClient from '../../network/NetworkClient';
24
+
25
+ // Models and Constants
4
26
  import { EntityCode, ExecutionTaskID } from '../../models/execTasks/ETConfig';
5
- import DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';
6
- import { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';
27
+
28
+ // Components
7
29
  import ValidateOTPET from '../../components/executiontasks/validateOTP/ValidateOTPET';
8
- import { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';
30
+ import { generateContactList, getUniqueRefId, resetCount } from '../../components/executiontasks/validateOTP/utils';
31
+ // Analytics
9
32
  import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../analytics/sentry/SentrySdkConstants';
10
33
  import { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';
34
+ import { ValidateOTPContext } from '../../utils/context/valdiateOTPContext';
35
+
36
+ // Storage
37
+ let storage = Storage.getInstance();
11
38
  const ValidateOTPScreen = ({
12
39
  route,
13
40
  navigation,
14
41
  baseETProps
15
42
  }) => {
43
+ var _mergedObjectiveId$;
44
+ const helperInstance = Helper.getInstance();
16
45
  const nextState = route.params[RouteParams.NEXT_STATES];
17
46
  const {
18
47
  taskMeta,
19
48
  mergedObjectiveId,
20
49
  input,
21
- wfMeta
50
+ wfMeta,
51
+ taskName
22
52
  } = getDataFromNextState(nextState);
23
53
  const message = input === null || input === void 0 ? void 0 : input.message;
54
+ const workflowId = (_mergedObjectiveId$ = mergedObjectiveId[0]) === null || _mergedObjectiveId$ === void 0 || (_mergedObjectiveId$ = _mergedObjectiveId$.split('#')[1]) === null || _mergedObjectiveId$ === void 0 ? void 0 : _mergedObjectiveId$.toString();
55
+ let _route = JSON.parse(JSON.stringify(route));
24
56
  const firstInput = input;
25
57
  const [_input, setInputs] = useState({
26
- ...firstInput
58
+ ...firstInput,
59
+ wfMeta,
60
+ workflowId
27
61
  });
62
+ const [contactList, setContactList] = useState([]);
63
+ // state to store orders data
64
+ const [orderData, setOrderData] = useState([]);
65
+ const [contextData, setContextData] = useState();
66
+ const [isSelfLoopTrue, setSelfLoop] = useState(false);
67
+ async function getSdkConfig() {
68
+ const cache = DispatchSdkCache.getInstance();
69
+ const _sdkConfig = await cache.getObjectFromCache(DispatchSdkCache.KEYS.SDK_CONFIG);
70
+ const networkInstance = new NetworkClient(_sdkConfig.validateOtpDomain ?? '');
71
+ setContextData({
72
+ _sdkConfig,
73
+ networkInstance
74
+ });
75
+ return {
76
+ _sdkConfig,
77
+ networkInstance
78
+ };
79
+ }
80
+ const getSelfLoopBool = async () => {
81
+ try {
82
+ var _mergedObjectiveId$2;
83
+ const splitArr = (_mergedObjectiveId$2 = mergedObjectiveId[0]) === null || _mergedObjectiveId$2 === void 0 ? void 0 : _mergedObjectiveId$2.split('#');
84
+ const isSelfLoopTrue = await helperInstance.isSelfLoopExistOnET(splitArr[1], taskName);
85
+ setSelfLoop(isSelfLoopTrue);
86
+ } catch (error) {
87
+ console.log('isSelfLoopTrue code execution error', error);
88
+ }
89
+ };
28
90
  useEffect(() => {
91
+ // fetch Contact details & mapped contact list
92
+ const fetchContactDetails = async () => {
93
+ const rootMetaData = route.params[RouteParams.ROOT_META_DATA];
94
+ if (!rootMetaData) return; // Exit early if ROOT_META_DATA is not available
95
+
96
+ let progressGroup = null;
97
+ let reattemptId = null;
98
+
99
+ // Fetch the progress group with error handling
100
+ try {
101
+ progressGroup = await storage.getSharedItem(PROGRESS_GROUP, false);
102
+ reattemptId = await DispatchExecutor.getAttemptCountByMoId(mergedObjectiveId[0]);
103
+ const refId = getUniqueRefId(mergedObjectiveId[0], progressGroup, Number(reattemptId));
104
+ setInputs({
105
+ ..._input,
106
+ progressGroup,
107
+ reattemptId,
108
+ refId
109
+ });
110
+ } catch (error) {
111
+ var _error$response;
112
+ Logger.getInstance().logEvent('~ getPaymentStatus triggered ', JSON.stringify((error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error), LOG_TYPE.SDK_ERROR);
113
+ }
114
+ try {
115
+ // Get objective task details
116
+ const {
117
+ contact
118
+ } = await DispatchExecutor.getObjectiveTaskDetails(mergedObjectiveId[0], progressGroup, rootMetaData.statusFilter);
119
+
120
+ // Fetch contact details and generate contact list
121
+ const contactDetails = await callbackHandler.getEmailAndPhoneNumbers(contact);
122
+
123
+ // Fetch and set order data
124
+ const data = await DispatchExecutor.filterWFIData(taskName, mergedObjectiveId, 100, 0);
125
+ if (data !== null && data !== void 0 && data.data) {
126
+ setOrderData(data.data);
127
+ }
128
+
129
+ // If valid contact details, generate and set contact list
130
+ if (contactDetails !== null && contactDetails !== void 0 && contactDetails[contact[0]]) {
131
+ var _data$data$;
132
+ const mappedContacts = generateContactList(contactDetails[contact[0]], (data === null || data === void 0 || (_data$data$ = data.data[0]) === null || _data$data$ === void 0 || (_data$data$ = _data$data$.displayInfo) === null || _data$data$ === void 0 ? void 0 : _data$data$.orderId) ?? null);
133
+ setContactList(mappedContacts);
134
+ }
135
+ } catch (error) {
136
+ // Handle any unexpected errors in the process
137
+ console.error('Error fetching contact details:', error);
138
+ }
139
+ };
140
+
141
+ // fetch & update dynamic inputs
29
142
  onTaskStart(route.params[RouteParams.NEXT_STATES], route.params[RouteParams.ROOT_META_DATA].customEventsData);
30
143
  if (route.params[RouteParams.ROOT_META_DATA]) {
31
144
  const updatedInput = handleDynamicValues(route === null || route === void 0 ? void 0 : route.params[RouteParams.NEXT_STATES].input, route.params[RouteParams.ROOT_META_DATA]);
32
145
  setInputs(updatedInput);
33
146
  }
34
- }, []);
35
- useEffect(() => {
147
+ //fire sentry event
36
148
  (async () => {
37
- //fire sentry event
38
149
  fireEventWithScreenName({
39
150
  severityLevel: SeverityLevelValue.LOG,
40
151
  eventName: SentryEventNameSdkConstants.VERIFY_OTP_ET_OPENED,
41
152
  screenName: ScreenNameSdkConstants.VERIFY_OTP_ET_SCREEN
42
153
  });
154
+ //get SDK config
155
+ await getSdkConfig();
156
+ //get self loop boolean
157
+ await getSelfLoopBool();
43
158
  })();
159
+ fetchContactDetails();
160
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
161
  }, []);
45
- return /*#__PURE__*/React.createElement(ValidateOTPET, _extends({}, _input, {
162
+ return /*#__PURE__*/React.createElement(SafeAreaProvider, null, /*#__PURE__*/React.createElement(ValidateOTPContext.Provider, {
163
+ value: {
164
+ sdkConfig: contextData === null || contextData === void 0 ? void 0 : contextData._sdkConfig,
165
+ networkInstance: contextData === null || contextData === void 0 ? void 0 : contextData.networkInstance
166
+ }
167
+ }, /*#__PURE__*/React.createElement(ValidateOTPET, _extends({}, _input, {
168
+ route: route,
169
+ isSelfLoop: isSelfLoopTrue,
46
170
  mergedObjectiveId: mergedObjectiveId,
171
+ workflowId: workflowId,
47
172
  taskMeta: taskMeta,
48
173
  message: message,
174
+ contacts: contactList || [],
175
+ orderData: orderData,
49
176
  navigation: navigation,
50
177
  onSubmitET: async validateOtpOutput => {
51
- await DispatchStateContainer.getInstance().navigateToNextTask(navigation, route, validateOtpOutput, validateOtpOutput.success, EntityCode.VALIDATE_OTP_ET, ExecutionTaskID.VALIDATE_OTP_ET, baseETProps, false);
178
+ await DispatchStateContainer.getInstance().navigateToNextTask(navigation, _route, validateOtpOutput, validateOtpOutput.success, EntityCode.VALIDATE_OTP_ET, ExecutionTaskID.VALIDATE_OTP_ET, baseETProps, false);
179
+ await resetCount();
52
180
  }
53
- }));
181
+ }))));
54
182
  };
55
183
  export default withBaseDispatchScreen(ValidateOTPScreen);
56
184
  //# sourceMappingURL=ValidateOTPScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","withBaseDispatchScreen","EntityCode","ExecutionTaskID","DispatchStateContainer","RouteParams","getDataFromNextState","ValidateOTPET","handleDynamicValues","onTaskStart","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","ValidateOTPScreen","route","navigation","baseETProps","nextState","params","NEXT_STATES","taskMeta","mergedObjectiveId","input","wfMeta","message","firstInput","_input","setInputs","ROOT_META_DATA","customEventsData","updatedInput","severityLevel","LOG","eventName","VERIFY_OTP_ET_OPENED","screenName","VERIFY_OTP_ET_SCREEN","createElement","_extends","onSubmitET","validateOtpOutput","getInstance","navigateToNextTask","success","VALIDATE_OTP_ET"],"sources":["ValidateOTPScreen.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport withBaseDispatchScreen from './WithBaseDispatchScreen';\nimport type { BaseETProps } from '../../models/DispatchModels';\nimport { EntityCode, ExecutionTaskID } from '../../models/execTasks/ETConfig';\nimport DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';\nimport { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';\nimport ValidateOTPET from '../../components/executiontasks/validateOTP/ValidateOTPET';\nimport { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';\n\nconst ValidateOTPScreen = ({\n route,\n navigation,\n baseETProps,\n}: {\n route: any;\n navigation: any;\n baseETProps: BaseETProps;\n}) => {\n const nextState = route.params[RouteParams.NEXT_STATES];\n const { taskMeta, mergedObjectiveId, input, wfMeta } =\n getDataFromNextState(nextState);\n const message = input?.message;\n const firstInput = input;\n const [_input, setInputs] = useState({ ...firstInput });\n\n useEffect(() => {\n onTaskStart(\n route.params[RouteParams.NEXT_STATES],\n route.params[RouteParams.ROOT_META_DATA].customEventsData\n );\n if (route.params[RouteParams.ROOT_META_DATA]) {\n const updatedInput = handleDynamicValues(\n route?.params[RouteParams.NEXT_STATES].input,\n route.params[RouteParams.ROOT_META_DATA]\n );\n setInputs(updatedInput);\n }\n }, []);\n\n useEffect(() => {\n (async () => {\n //fire sentry event\n fireEventWithScreenName({severityLevel:SeverityLevelValue.LOG, eventName:SentryEventNameSdkConstants.VERIFY_OTP_ET_OPENED, screenName:ScreenNameSdkConstants.VERIFY_OTP_ET_SCREEN});\n })();\n }, []);\n\n\n return (\n <ValidateOTPET\n {..._input}\n mergedObjectiveId={mergedObjectiveId}\n taskMeta={taskMeta}\n message={message}\n navigation={navigation}\n onSubmitET={async (validateOtpOutput) => {\n await DispatchStateContainer.getInstance().navigateToNextTask(\n navigation,\n route,\n validateOtpOutput,\n validateOtpOutput.success,\n EntityCode.VALIDATE_OTP_ET,\n ExecutionTaskID.VALIDATE_OTP_ET,\n baseETProps,\n false\n );\n }}\n />\n );\n};\nexport default withBaseDispatchScreen(ValidateOTPScreen);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,OAAOC,sBAAsB,MAAM,0BAA0B;AAE7D,SAASC,UAAU,EAAEC,eAAe,QAAQ,iCAAiC;AAC7E,OAAOC,sBAAsB,MAAM,+CAA+C;AAClF,SAASC,WAAW,EAAEC,oBAAoB,QAAQ,yBAAyB;AAC3E,OAAOC,aAAa,MAAM,2DAA2D;AACrF,SAASC,mBAAmB,EAAEC,WAAW,QAAQ,2BAA2B;AAC5E,SAASC,sBAAsB,EAAEC,2BAA2B,EAAEC,kBAAkB,QAAQ,2CAA2C;AACnI,SAASC,uBAAuB,QAAQ,6CAA6C;AAErF,MAAMC,iBAAiB,GAAGA,CAAC;EACzBC,KAAK;EACLC,UAAU;EACVC;AAKF,CAAC,KAAK;EACJ,MAAMC,SAAS,GAAGH,KAAK,CAACI,MAAM,CAACd,WAAW,CAACe,WAAW,CAAC;EACvD,MAAM;IAAEC,QAAQ;IAAEC,iBAAiB;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAClDlB,oBAAoB,CAACY,SAAS,CAAC;EACjC,MAAMO,OAAO,GAAGF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,OAAO;EAC9B,MAAMC,UAAU,GAAGH,KAAK;EACxB,MAAM,CAACI,MAAM,EAAEC,SAAS,CAAC,GAAG5B,QAAQ,CAAC;IAAE,GAAG0B;EAAW,CAAC,CAAC;EAEvD3B,SAAS,CAAC,MAAM;IACdU,WAAW,CACTM,KAAK,CAACI,MAAM,CAACd,WAAW,CAACe,WAAW,CAAC,EACrCL,KAAK,CAACI,MAAM,CAACd,WAAW,CAACwB,cAAc,CAAC,CAACC,gBAC3C,CAAC;IACD,IAAIf,KAAK,CAACI,MAAM,CAACd,WAAW,CAACwB,cAAc,CAAC,EAAE;MAC5C,MAAME,YAAY,GAAGvB,mBAAmB,CACtCO,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEI,MAAM,CAACd,WAAW,CAACe,WAAW,CAAC,CAACG,KAAK,EAC5CR,KAAK,CAACI,MAAM,CAACd,WAAW,CAACwB,cAAc,CACzC,CAAC;MACDD,SAAS,CAACG,YAAY,CAAC;IACzB;EACF,CAAC,EAAE,EAAE,CAAC;EAENhC,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX;MACAc,uBAAuB,CAAC;QAACmB,aAAa,EAACpB,kBAAkB,CAACqB,GAAG;QAAEC,SAAS,EAACvB,2BAA2B,CAACwB,oBAAoB;QAAEC,UAAU,EAAC1B,sBAAsB,CAAC2B;MAAoB,CAAC,CAAC;IACrL,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAGN,oBACEvC,KAAA,CAAAwC,aAAA,CAAC/B,aAAa,EAAAgC,QAAA,KACRZ,MAAM;IACVL,iBAAiB,EAAEA,iBAAkB;IACrCD,QAAQ,EAAEA,QAAS;IACnBI,OAAO,EAAEA,OAAQ;IACjBT,UAAU,EAAEA,UAAW;IACvBwB,UAAU,EAAE,MAAOC,iBAAiB,IAAK;MACvC,MAAMrC,sBAAsB,CAACsC,WAAW,CAAC,CAAC,CAACC,kBAAkB,CAC3D3B,UAAU,EACVD,KAAK,EACL0B,iBAAiB,EACjBA,iBAAiB,CAACG,OAAO,EACzB1C,UAAU,CAAC2C,eAAe,EAC1B1C,eAAe,CAAC0C,eAAe,EAC/B5B,WAAW,EACX,KACF,CAAC;IACH;EAAE,EACH,CAAC;AAEN,CAAC;AACD,eAAehB,sBAAsB,CAACa,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","SafeAreaProvider","DispatchExecutor","Storage","callbackHandler","Logger","LOG_TYPE","handleDynamicValues","onTaskStart","RouteParams","getDataFromNextState","PROGRESS_GROUP","DispatchStateContainer","withBaseDispatchScreen","DispatchSdkCache","Helper","NetworkClient","EntityCode","ExecutionTaskID","ValidateOTPET","generateContactList","getUniqueRefId","resetCount","ScreenNameSdkConstants","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","ValidateOTPContext","storage","getInstance","ValidateOTPScreen","route","navigation","baseETProps","_mergedObjectiveId$","helperInstance","nextState","params","NEXT_STATES","taskMeta","mergedObjectiveId","input","wfMeta","taskName","message","workflowId","split","toString","_route","JSON","parse","stringify","firstInput","_input","setInputs","contactList","setContactList","orderData","setOrderData","contextData","setContextData","isSelfLoopTrue","setSelfLoop","getSdkConfig","cache","_sdkConfig","getObjectFromCache","KEYS","SDK_CONFIG","networkInstance","validateOtpDomain","getSelfLoopBool","_mergedObjectiveId$2","splitArr","isSelfLoopExistOnET","error","console","log","fetchContactDetails","rootMetaData","ROOT_META_DATA","progressGroup","reattemptId","getSharedItem","getAttemptCountByMoId","refId","Number","_error$response","logEvent","response","data","SDK_ERROR","contact","getObjectiveTaskDetails","statusFilter","contactDetails","getEmailAndPhoneNumbers","filterWFIData","_data$data$","mappedContacts","displayInfo","orderId","customEventsData","updatedInput","severityLevel","LOG","eventName","VERIFY_OTP_ET_OPENED","screenName","VERIFY_OTP_ET_SCREEN","createElement","Provider","value","sdkConfig","_extends","isSelfLoop","contacts","onSubmitET","validateOtpOutput","navigateToNextTask","success","VALIDATE_OTP_ET"],"sources":["ValidateOTPScreen.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n// External Libraries\nimport React, { useEffect, useState } from 'react';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n// SDKs and Platform Libraries\nimport { DispatchExecutor } from '@os1-platform/platform-coreos-execution-engine-sdk';\n\n// Utility and Manager Imports\nimport Storage from '../../utils/storage';\nimport callbackHandler from '../../manager/sdk/callbacksHandler';\nimport Logger, { LOG_TYPE } from '../../utils/Logger';\nimport { handleDynamicValues, onTaskStart } from '../../utils/ExecTaskUtils';\nimport { RouteParams, getDataFromNextState } from '../uiConfig/RouteParams';\nimport { PROGRESS_GROUP } from '../../utils/Constants';\nimport DispatchStateContainer from '../../manager/dispatch/DispatchStateContainer';\nimport withBaseDispatchScreen from './WithBaseDispatchScreen';\nimport { BaseETProps } from '../../models/DispatchModels';\nimport DispatchSdkCache from '../../manager/sdk/DispatchSdkCache';\nimport { DispatchSDKConfig } from '../../models/sdk';\nimport Helper from '../../utils/helper';\n\n// Network Client\nimport NetworkClient from '../../network/NetworkClient';\n\n// Models and Constants\nimport { EntityCode, ExecutionTaskID } from '../../models/execTasks/ETConfig';\n\n// Components\nimport ValidateOTPET from '../../components/executiontasks/validateOTP/ValidateOTPET';\nimport {\n generateContactList,\n getUniqueRefId,\n resetCount,\n} from '../../components/executiontasks/validateOTP/utils';\nimport { ContactType } from '../../components/executiontasks/validateOTP/ValidateOTPSchema';\n\n// Analytics\nimport {\n ScreenNameSdkConstants,\n SentryEventNameSdkConstants,\n SeverityLevelValue,\n} from '../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';\nimport { ValidateOTPContext } from '../../utils/context/valdiateOTPContext';\n\n// Storage\nlet storage = Storage.getInstance();\n\nconst ValidateOTPScreen = ({\n route,\n navigation,\n baseETProps,\n}: {\n route: any;\n navigation: any;\n baseETProps: BaseETProps;\n}) => {\n const helperInstance = Helper.getInstance();\n const nextState = route.params[RouteParams.NEXT_STATES];\n const { taskMeta, mergedObjectiveId, input, wfMeta, taskName } =\n getDataFromNextState(nextState);\n const message = input?.message;\n const workflowId = mergedObjectiveId[0]?.split('#')[1]?.toString();\n let _route = JSON.parse(JSON.stringify(route));\n const firstInput = input;\n const [_input, setInputs] = useState({\n ...firstInput,\n wfMeta,\n workflowId,\n });\n const [contactList, setContactList] = useState<ContactType[] | any[]>([]);\n // state to store orders data\n const [orderData, setOrderData] = useState<any>([]);\n const [contextData, setContextData] = useState<any>();\n const [isSelfLoopTrue, setSelfLoop] = useState(false);\n\n async function getSdkConfig() {\n const cache = DispatchSdkCache.getInstance();\n const _sdkConfig: DispatchSDKConfig = await cache.getObjectFromCache(\n DispatchSdkCache.KEYS.SDK_CONFIG\n );\n\n const networkInstance = new NetworkClient(\n _sdkConfig.validateOtpDomain ?? ''\n );\n setContextData({ _sdkConfig, networkInstance });\n return { _sdkConfig, networkInstance };\n }\n\n const getSelfLoopBool = async () => {\n try {\n const splitArr = mergedObjectiveId[0]?.split('#');\n const isSelfLoopTrue: boolean = await helperInstance.isSelfLoopExistOnET(splitArr[1], taskName)\n setSelfLoop(isSelfLoopTrue);\n } catch (error) {\n console.log('isSelfLoopTrue code execution error', error);\n }\n };\n\n useEffect(() => {\n // fetch Contact details & mapped contact list\n const fetchContactDetails = async () => {\n const rootMetaData = route.params[RouteParams.ROOT_META_DATA];\n if (!rootMetaData) return; // Exit early if ROOT_META_DATA is not available\n\n let progressGroup: string | null = null;\n let reattemptId: number | string | null = null;\n\n // Fetch the progress group with error handling\n try {\n progressGroup = await storage.getSharedItem(PROGRESS_GROUP, false);\n reattemptId = await DispatchExecutor.getAttemptCountByMoId(\n mergedObjectiveId[0]\n );\n const refId = getUniqueRefId(\n mergedObjectiveId[0],\n progressGroup,\n Number(reattemptId)\n );\n setInputs({ ..._input, progressGroup, reattemptId, refId });\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ getPaymentStatus triggered ',\n JSON.stringify(error?.response?.data || error),\n LOG_TYPE.SDK_ERROR\n );\n }\n\n try {\n // Get objective task details\n const { contact } = await DispatchExecutor.getObjectiveTaskDetails(\n mergedObjectiveId[0],\n progressGroup,\n rootMetaData.statusFilter\n );\n\n // Fetch contact details and generate contact list\n const contactDetails = await callbackHandler.getEmailAndPhoneNumbers(\n contact\n );\n\n // Fetch and set order data\n const data = await DispatchExecutor.filterWFIData(\n taskName,\n mergedObjectiveId,\n 100,\n 0\n );\n if (data?.data) {\n setOrderData(data.data);\n }\n\n // If valid contact details, generate and set contact list\n if (contactDetails?.[contact[0]]) {\n const mappedContacts = generateContactList(\n contactDetails[contact[0]],\n data?.data[0]?.displayInfo?.orderId ?? null\n );\n setContactList(mappedContacts);\n }\n } catch (error) {\n // Handle any unexpected errors in the process\n console.error('Error fetching contact details:', error);\n }\n };\n\n // fetch & update dynamic inputs\n onTaskStart(\n route.params[RouteParams.NEXT_STATES],\n route.params[RouteParams.ROOT_META_DATA].customEventsData\n );\n if (route.params[RouteParams.ROOT_META_DATA]) {\n const updatedInput = handleDynamicValues(\n route?.params[RouteParams.NEXT_STATES].input,\n route.params[RouteParams.ROOT_META_DATA]\n );\n setInputs(updatedInput);\n }\n //fire sentry event\n (async () => {\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.VERIFY_OTP_ET_OPENED,\n screenName: ScreenNameSdkConstants.VERIFY_OTP_ET_SCREEN,\n });\n //get SDK config\n await getSdkConfig();\n //get self loop boolean\n await getSelfLoopBool();\n })();\n\n fetchContactDetails();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <SafeAreaProvider>\n <ValidateOTPContext.Provider\n value={{\n sdkConfig: contextData?._sdkConfig,\n networkInstance: contextData?.networkInstance,\n }}\n >\n <ValidateOTPET\n {..._input}\n route={route}\n isSelfLoop={isSelfLoopTrue}\n mergedObjectiveId={mergedObjectiveId}\n workflowId={workflowId}\n taskMeta={taskMeta}\n message={message}\n contacts={contactList || []}\n orderData={orderData}\n navigation={navigation}\n onSubmitET={async (validateOtpOutput) => {\n await DispatchStateContainer.getInstance().navigateToNextTask(\n navigation,\n _route,\n validateOtpOutput,\n validateOtpOutput.success,\n EntityCode.VALIDATE_OTP_ET,\n ExecutionTaskID.VALIDATE_OTP_ET,\n baseETProps,\n false\n );\n await resetCount();\n }}\n />\n </ValidateOTPContext.Provider>\n </SafeAreaProvider>\n );\n};\nexport default withBaseDispatchScreen(ValidateOTPScreen);\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,9 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  import axios from 'axios';
2
3
  import { API_CONFIG } from '../constants/apiConstants';
3
4
  import { getHeaders } from '../network/NetworkUtils';
5
+ import { RouteParams } from '../ui/uiConfig/RouteParams';
6
+ import { parseRequestBody } from './ExecTaskUtils';
4
7
 
5
8
  /**
6
9
  * API headers
@@ -80,10 +83,123 @@ export async function getApiResponse(apiData) {
80
83
  ...apiData.requestBody
81
84
  };
82
85
  }
83
- // console.log('axiosConfig: ', JSON.stringify(axiosConfig));
84
-
86
+ console.log('axiosConfig: ', JSON.stringify(axiosConfig));
85
87
  return axios(axiosConfig);
86
88
  }
89
+
90
+ // new
91
+ export async function getAxiosApiResponse(apiData) {
92
+ let axiosConfig = {
93
+ method: apiData.httpMethod,
94
+ timeout: apiData.timeout ?? API_CONFIG.timeout,
95
+ // timeout in millis i.e 15s
96
+ url: apiData.uri,
97
+ headers: {
98
+ ...getAddHeaders(apiData.headers),
99
+ ...(await getHeaders('application/json'))
100
+ }
101
+ };
102
+
103
+ // Handle path parameters
104
+ if (apiData.pathParams) {
105
+ const params = apiData.pathParams;
106
+ params.forEach(param => {
107
+ apiData.uri = apiData.uri.replace(`{${param.key}}`, param.value);
108
+ });
109
+ axiosConfig.url = apiData.uri;
110
+ }
111
+
112
+ // Handle query parameters
113
+ if (apiData.queryParams) {
114
+ axiosConfig.params = {
115
+ ...getQueryParams(apiData.queryParams)
116
+ };
117
+ }
118
+
119
+ // Handle request body
120
+ if (apiData.requestBody) {
121
+ axiosConfig.data = {
122
+ ...apiData.requestBody
123
+ };
124
+ }
125
+ console.log('axiosConfig: ', JSON.stringify(axiosConfig));
126
+ try {
127
+ // Make the API call
128
+ const response = await axios(axiosConfig);
129
+ return response;
130
+ } catch (error) {
131
+ var _error$response, _error$response2, _error$response3;
132
+ console.error('API Error:', error);
133
+ let customError = {
134
+ ...error,
135
+ data: {
136
+ message: error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 ? void 0 : _error$response.message,
137
+ additionalInfo: error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.data) === null || _error$response2 === void 0 ? void 0 : _error$response2.additionalInfo,
138
+ status: error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.data) === null || _error$response3 === void 0 ? void 0 : _error$response3.status
139
+ }
140
+ };
141
+
142
+ // console.log('Formatted Error:', customError);
143
+ // Throw the custom error for the caller to handle
144
+ throw customError;
145
+ }
146
+ }
147
+
148
+ // To generate an common payload for APIS as per config
149
+ export const createApiData = (payload, props, endpoint, httpMethod, headers, customApiConfig) => {
150
+ const baseApiData = {
151
+ errorJsonPath: '',
152
+ responseJsonPath: '',
153
+ uri: endpoint,
154
+ httpMethod: httpMethod ?? 'POST',
155
+ timeout: 15000,
156
+ headers: headers ?? [],
157
+ responseJsonLogic: '',
158
+ errorJsonLogic: '',
159
+ requestBody: payload,
160
+ pathParams: [{
161
+ key: 'baseURI',
162
+ value: props.domain
163
+ }]
164
+ };
165
+ if (customApiConfig) {
166
+ Object.assign(baseApiData, {
167
+ httpMethod: customApiConfig.httpMethod ?? baseApiData.httpMethod,
168
+ timeout: customApiConfig.timeout ?? baseApiData.timeout,
169
+ headers: customApiConfig.headers ?? baseApiData.headers,
170
+ responseJsonLogic: customApiConfig.responseJsonLogic,
171
+ errorJsonLogic: customApiConfig.errorJsonLogic,
172
+ errorJsonPath: customApiConfig.errorJsonPath ?? baseApiData.errorJsonPath,
173
+ responseJsonPath: customApiConfig.responseJsonPath ?? baseApiData.responseJsonPath
174
+ });
175
+ if (customApiConfig.requestBody) {
176
+ var _props$route;
177
+ const inputMeta = props === null || props === void 0 || (_props$route = props.route) === null || _props$route === void 0 || (_props$route = _props$route.params[RouteParams.NEXT_STATES]) === null || _props$route === void 0 || (_props$route = _props$route.meta) === null || _props$route === void 0 ? void 0 : _props$route.task;
178
+ const parsedInputMeta = inputMeta ? JSON.parse(inputMeta) : {};
179
+ console.log('parsedInputMeta', parsedInputMeta);
180
+ const metaData = {
181
+ meta: {
182
+ task: parsedInputMeta
183
+ }
184
+ };
185
+ const updatedPayload = {
186
+ ...payload,
187
+ ...metaData
188
+ };
189
+ console.log('updatedPayload', updatedPayload);
190
+ baseApiData.requestBody = parseRequestBody(customApiConfig.requestBody, updatedPayload);
191
+ console.log('baseApiData.requestBody', baseApiData.requestBody);
192
+ }
193
+ if (customApiConfig.pathParams) {
194
+ baseApiData.pathParams = customApiConfig.pathParams;
195
+ }
196
+ if (customApiConfig.queryParams) {
197
+ baseApiData.queryParams = customApiConfig.queryParams;
198
+ }
199
+ }
200
+ console.log('baseApiData', baseApiData);
201
+ return baseApiData;
202
+ };
87
203
  export function parseBody(body, userInput) {
88
204
  const requestBody = JSON.parse(JSON.stringify(body));
89
205
  for (const key in requestBody) {
@@ -1 +1 @@
1
- {"version":3,"names":["axios","API_CONFIG","getHeaders","getKeyValueFromArray","array","length","addItems","forEach","item","_item$key","key","value","toLowerCase","getAddHeaders","getQueryParams","getApiResponse","apiData","axiosConfig","method","httpMethod","timeout","url","uri","headers","pathParams","params","param","replace","queryParams","requestBody","data","parseBody","body","userInput","JSON","parse","stringify","Object","prototype","hasOwnProperty","call","Array","isArray","val","_userInputExpr","includes","_userEnteredInput","split","pop","parseKeyValue","map"],"sources":["ApiUtils.ts"],"sourcesContent":["import axios, { AxiosRequestConfig } from 'axios';\nimport { API_CONFIG } from '../constants/apiConstants';\nimport { getHeaders } from '../network/NetworkUtils';\n\nexport type HTTPMethod = 'PUT' | 'POST' | 'GET';\nexport type HeaderKey = string;\nexport type HeaderValue = string;\nexport type QueryParamKey = string;\nexport type QueryParamValue = string;\nexport type PathParamKey = string;\nexport type PathParamValue = string;\n\n/**\n * API headers\n */\nexport type Headers = {\n key?: HeaderKey;\n value?: HeaderValue;\n};\n\n/**\n * Query Params\n */\nexport type QueryParams = {\n key?: QueryParamKey;\n value?: QueryParamValue;\n};\n\n/**\n * Path Params\n */\nexport type PathParams = {\n key: PathParamKey;\n value: PathParamValue;\n};\n\n/**\n * request body object\n */\nexport interface HTTPRequestBody {\n [k: string]: unknown;\n}\n\nexport interface APIData {\n uri: string;\n timeout?: number;\n httpMethod: HTTPMethod;\n headers?: Headers[];\n requestBody?: HTTPRequestBody;\n queryParams?: QueryParams[];\n pathParams?: PathParams[];\n responseJsonPath: string;\n errorJsonPath: string;\n}\n\nexport interface KeyValueArray {\n key?: string;\n value?: any;\n}\n\nexport function getKeyValueFromArray() {\n return (array?: KeyValueArray[]) => {\n if (!array || array.length === 0) return {};\n else {\n const addItems: { [k: string]: any } = {};\n array.forEach((item) => {\n if (item.key && item.value)\n addItems[item.key?.toLowerCase()] = item.value;\n });\n return addItems;\n }\n };\n}\n\nexport const getAddHeaders = getKeyValueFromArray();\nexport const getQueryParams = getKeyValueFromArray();\n\nexport async function getApiResponse(apiData: APIData) {\n let axiosConfig: AxiosRequestConfig = {\n method: apiData.httpMethod,\n timeout: apiData.timeout ?? API_CONFIG.timeout, // timeout in millis i.e 15s\n url: apiData.uri,\n headers: {\n ...getAddHeaders(apiData.headers),\n ...(await getHeaders('application/json')),\n },\n };\n\n /**\n * Path params example\n * uri: {baseURI}/core/api/v1/dispatch-service/dispatches/{dispatchId}/jobs/{captureInput}\n * pathParams: [\n * {key:\"baseURI\",value:\"https://delhivery.coreos-dev.fxtrt.io\"},\n * {key:\"dispatchId\",value:\"dispatch:a62dc46d-9787-5b32-9b71-ff38bd1bdcae\"},\n * {key:\"captureInput\",value:\"{{$.userInput.captureInput}}\"}\n * ]\n */\n\n if (apiData.pathParams) {\n const params = apiData.pathParams;\n params.forEach((param) => {\n apiData.uri = apiData.uri.replace(`{${param.key}}`, param.value);\n });\n axiosConfig.url = apiData.uri;\n }\n\n /**\n * Query params example\n * uri: https://jsonplaceholder.typicode.com/comments\n * queryParams: [\n * {key:\"postId\",value:\"{{$.userInput.captureInput}}\"},\n * ]\n * finalURI: https://jsonplaceholder.typicode.com/comments?postId=1\n */\n if (apiData.queryParams) {\n axiosConfig.params = { ...getQueryParams(apiData.queryParams) };\n }\n\n if (apiData.requestBody) {\n axiosConfig.data = { ...apiData.requestBody };\n }\n // console.log('axiosConfig: ', JSON.stringify(axiosConfig));\n\n return axios(axiosConfig);\n}\n\nexport function parseBody(body: any, userInput: any) {\n const requestBody = JSON.parse(JSON.stringify(body));\n for (const key in requestBody) {\n if (Object.prototype.hasOwnProperty.call(requestBody, key)) {\n const value = requestBody[key];\n if (typeof value === 'object') {\n requestBody[key] = parseBody(value, userInput);\n } else if (Array.isArray(value)) {\n value.forEach((val) => {\n requestBody[key] = parseBody(val, userInput);\n });\n } else {\n const _userInputExpr = '$.userInput.';\n if (typeof value === 'string' && value.includes(_userInputExpr)) {\n const _userEnteredInput: string = value.split('.').pop() || '';\n requestBody[key] = userInput[_userEnteredInput] || '';\n }\n }\n }\n }\n return requestBody;\n}\n\nexport function parseKeyValue(array: KeyValueArray[], userInput: any) {\n return array.map((item) => {\n const _userInputExpr = '$.userInput.';\n if (item.value.includes(_userInputExpr)) {\n const _userEnteredInput: string = item.value.split('.').pop() || '';\n item.value = userInput[_userEnteredInput] || '';\n }\n });\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["axios","API_CONFIG","getHeaders","RouteParams","parseRequestBody","getKeyValueFromArray","array","length","addItems","forEach","item","_item$key","key","value","toLowerCase","getAddHeaders","getQueryParams","getApiResponse","apiData","axiosConfig","method","httpMethod","timeout","url","uri","headers","pathParams","params","param","replace","queryParams","requestBody","data","console","log","JSON","stringify","getAxiosApiResponse","response","error","_error$response","_error$response2","_error$response3","customError","message","additionalInfo","status","createApiData","payload","props","endpoint","customApiConfig","baseApiData","errorJsonPath","responseJsonPath","responseJsonLogic","errorJsonLogic","domain","Object","assign","_props$route","inputMeta","route","NEXT_STATES","meta","task","parsedInputMeta","parse","metaData","updatedPayload","parseBody","body","userInput","prototype","hasOwnProperty","call","Array","isArray","val","_userInputExpr","includes","_userEnteredInput","split","pop","parseKeyValue","map"],"sources":["ApiUtils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { API_CONFIG } from '../constants/apiConstants';\nimport { getHeaders } from '../network/NetworkUtils';\nimport { RouteParams } from '../ui/uiConfig/RouteParams';\nimport { parseRequestBody } from './ExecTaskUtils';\n\nexport type HTTPMethod = 'PUT' | 'POST' | 'GET';\nexport type HeaderKey = string;\nexport type HeaderValue = string;\nexport type QueryParamKey = string;\nexport type QueryParamValue = string;\nexport type PathParamKey = string;\nexport type PathParamValue = string;\n\n/**\n * API headers\n */\nexport type Headers = {\n key?: HeaderKey;\n value?: HeaderValue;\n};\n\n/**\n * Query Params\n */\nexport type QueryParams = {\n key?: QueryParamKey;\n value?: QueryParamValue;\n};\n\n/**\n * Path Params\n */\nexport type PathParams = {\n key: PathParamKey;\n value: PathParamValue;\n};\n\n/**\n * request body object\n */\nexport interface HTTPRequestBody {\n [k: string]: unknown;\n}\n\nexport interface APIData {\n uri: string;\n timeout?: number;\n httpMethod: HTTPMethod;\n headers?: Headers[];\n requestBody?: HTTPRequestBody;\n queryParams?: QueryParams[];\n pathParams?: PathParams[];\n responseJsonPath: string | object;\n errorJsonPath: string | object;\n errorJsonLogic?: object | string;\n responseJsonLogic?: object | string;\n}\n\nexport interface KeyValueArray {\n key?: string;\n value?: any;\n}\n\nexport function getKeyValueFromArray() {\n return (array?: KeyValueArray[]) => {\n if (!array || array.length === 0) return {};\n else {\n const addItems: { [k: string]: any } = {};\n array.forEach((item) => {\n if (item.key && item.value)\n addItems[item.key?.toLowerCase()] = item.value;\n });\n return addItems;\n }\n };\n}\n\nexport const getAddHeaders = getKeyValueFromArray();\nexport const getQueryParams = getKeyValueFromArray();\n\nexport async function getApiResponse(apiData: APIData) {\n let axiosConfig: AxiosRequestConfig = {\n method: apiData.httpMethod,\n timeout: apiData.timeout ?? API_CONFIG.timeout, // timeout in millis i.e 15s\n url: apiData.uri,\n headers: {\n ...getAddHeaders(apiData.headers),\n ...(await getHeaders('application/json')),\n },\n };\n\n /**\n * Path params example\n * uri: {baseURI}/core/api/v1/dispatch-service/dispatches/{dispatchId}/jobs/{captureInput}\n * pathParams: [\n * {key:\"baseURI\",value:\"https://delhivery.coreos-dev.fxtrt.io\"},\n * {key:\"dispatchId\",value:\"dispatch:a62dc46d-9787-5b32-9b71-ff38bd1bdcae\"},\n * {key:\"captureInput\",value:\"{{$.userInput.captureInput}}\"}\n * ]\n */\n\n if (apiData.pathParams) {\n const params = apiData.pathParams;\n params.forEach((param) => {\n apiData.uri = apiData.uri.replace(`{${param.key}}`, param.value);\n });\n axiosConfig.url = apiData.uri;\n }\n\n /**\n * Query params example\n * uri: https://jsonplaceholder.typicode.com/comments\n * queryParams: [\n * {key:\"postId\",value:\"{{$.userInput.captureInput}}\"},\n * ]\n * finalURI: https://jsonplaceholder.typicode.com/comments?postId=1\n */\n if (apiData.queryParams) {\n axiosConfig.params = { ...getQueryParams(apiData.queryParams) };\n }\n\n if (apiData.requestBody) {\n axiosConfig.data = { ...apiData.requestBody };\n }\n console.log('axiosConfig: ', JSON.stringify(axiosConfig));\n\n return axios(axiosConfig);\n}\n\n// new\nexport async function getAxiosApiResponse(apiData: APIData) {\n let axiosConfig: AxiosRequestConfig = {\n method: apiData.httpMethod,\n timeout: apiData.timeout ?? API_CONFIG.timeout, // timeout in millis i.e 15s\n url: apiData.uri,\n headers: {\n ...getAddHeaders(apiData.headers),\n ...(await getHeaders('application/json')),\n },\n };\n\n // Handle path parameters\n if (apiData.pathParams) {\n const params = apiData.pathParams;\n params.forEach((param) => {\n apiData.uri = apiData.uri.replace(`{${param.key}}`, param.value);\n });\n axiosConfig.url = apiData.uri;\n }\n\n // Handle query parameters\n if (apiData.queryParams) {\n axiosConfig.params = { ...getQueryParams(apiData.queryParams) };\n }\n\n // Handle request body\n if (apiData.requestBody) {\n axiosConfig.data = { ...apiData.requestBody };\n }\n\n console.log('axiosConfig: ', JSON.stringify(axiosConfig));\n\n try {\n // Make the API call\n const response = await axios(axiosConfig);\n return response;\n } catch (error: any) {\n console.error('API Error:', error);\n\n let customError = {\n ...error,\n data: {\n message: error?.response?.data?.message,\n additionalInfo: error?.response?.data?.additionalInfo,\n status: error?.response?.data?.status,\n },\n };\n\n // console.log('Formatted Error:', customError);\n // Throw the custom error for the caller to handle\n throw customError;\n }\n}\n\n// To generate an common payload for APIS as per config\nexport const createApiData = (\n payload: any,\n props: any,\n endpoint: string,\n httpMethod: HTTPMethod,\n headers: Headers[] | null,\n customApiConfig?: Partial<APIData>\n): APIData => {\n const baseApiData: APIData = {\n errorJsonPath: '',\n responseJsonPath: '',\n uri: endpoint,\n httpMethod: httpMethod ?? 'POST',\n timeout: 15000,\n headers: headers ?? [],\n responseJsonLogic: '',\n errorJsonLogic: '',\n requestBody: payload,\n pathParams: [{ key: 'baseURI', value: props.domain }],\n };\n\n if (customApiConfig) {\n Object.assign(baseApiData, {\n httpMethod: customApiConfig.httpMethod ?? baseApiData.httpMethod,\n timeout: customApiConfig.timeout ?? baseApiData.timeout,\n headers: customApiConfig.headers ?? baseApiData.headers,\n responseJsonLogic: customApiConfig.responseJsonLogic,\n errorJsonLogic: customApiConfig.errorJsonLogic,\n errorJsonPath: customApiConfig.errorJsonPath ?? baseApiData.errorJsonPath,\n responseJsonPath:\n customApiConfig.responseJsonPath ?? baseApiData.responseJsonPath,\n });\n\n if (customApiConfig.requestBody) {\n const inputMeta =\n props?.route?.params[RouteParams.NEXT_STATES]?.meta?.task;\n const parsedInputMeta = inputMeta ? JSON.parse(inputMeta) : {};\n console.log('parsedInputMeta', parsedInputMeta);\n\n const metaData = {\n meta: { task: parsedInputMeta },\n };\n const updatedPayload = {\n ...payload,\n ...metaData,\n };\n console.log('updatedPayload', updatedPayload);\n baseApiData.requestBody = parseRequestBody(\n customApiConfig.requestBody,\n updatedPayload\n );\n\n console.log('baseApiData.requestBody', baseApiData.requestBody);\n }\n if (customApiConfig.pathParams) {\n baseApiData.pathParams = customApiConfig.pathParams;\n }\n if (customApiConfig.queryParams) {\n baseApiData.queryParams = customApiConfig.queryParams;\n }\n }\n\n console.log('baseApiData', baseApiData);\n\n return baseApiData;\n};\n\nexport function parseBody(body: any, userInput: any) {\n const requestBody = JSON.parse(JSON.stringify(body));\n for (const key in requestBody) {\n if (Object.prototype.hasOwnProperty.call(requestBody, key)) {\n const value = requestBody[key];\n if (typeof value === 'object') {\n requestBody[key] = parseBody(value, userInput);\n } else if (Array.isArray(value)) {\n value.forEach((val) => {\n requestBody[key] = parseBody(val, userInput);\n });\n } else {\n const _userInputExpr = '$.userInput.';\n if (typeof value === 'string' && value.includes(_userInputExpr)) {\n const _userEnteredInput: string = value.split('.').pop() || '';\n requestBody[key] = userInput[_userEnteredInput] || '';\n }\n }\n }\n }\n return requestBody;\n}\n\nexport function parseKeyValue(array: KeyValueArray[], userInput: any) {\n return array.map((item) => {\n const _userInputExpr = '$.userInput.';\n if (item.value.includes(_userInputExpr)) {\n const _userEnteredInput: string = item.value.split('.').pop() || '';\n item.value = userInput[_userEnteredInput] || '';\n }\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ export async function getBaseETResponse(entityCode, success, eventCode, reasonCo
10
10
  const sdkConfig = await cache.getObjectFromCache(DispatchSdkCache.KEYS.SDK_CONFIG);
11
11
  const startTime = await cache.getObjectFromCache(DispatchSdkCache.KEYS.TASK_START_TIME);
12
12
  const startLocation = await cache.getObjectFromCache(DispatchSdkCache.KEYS.TASK_START_LOCATION);
13
- console.log("getBaseETResponse:startLocation:", startLocation);
13
+ console.log('getBaseETResponse:startLocation:', startLocation);
14
14
  let baseResponse = {
15
15
  entityCode: entityCode,
16
16
  success: success,
@@ -39,7 +39,7 @@ export async function getBaseETResponse(entityCode, success, eventCode, reasonCo
39
39
  },
40
40
  mergedObjectiveIds
41
41
  };
42
- console.log("getBaseETResponse:baseResponse:", JSON.stringify(baseResponse));
42
+ console.log('getBaseETResponse:baseResponse:', JSON.stringify(baseResponse));
43
43
  return baseResponse;
44
44
  }
45
45
  export async function getObjectiveCompleteResp(entityCode, success, eventCode, reasonCode, mergedObjectiveId, taskId) {
@@ -203,14 +203,73 @@ export function handleDynamicValues(jsonInput, dataBlob) {
203
203
  }
204
204
  return jsonInput;
205
205
  }
206
+ export function parseRequestBody(body, userInput) {
207
+ const requestBody = JSON.parse(JSON.stringify(body)); // Deep clone the input
208
+
209
+ // Preprocess `userInput` placeholders before calling handleDynamicValues
210
+ const preprocessUserInput = jsonInput => {
211
+ for (const key in jsonInput) {
212
+ if (Object.prototype.hasOwnProperty.call(jsonInput, key)) {
213
+ const value = jsonInput[key];
214
+ if (typeof value === 'string' && value.includes('{{$.userInput}}')) {
215
+ // Replace `{{$.userInput}}` with the OTP value from userInput
216
+ jsonInput[key] = userInput.otp || value;
217
+ } else if (typeof value === 'object' && value !== null) {
218
+ // Recursively preprocess nested objects
219
+ preprocessUserInput(value);
220
+ } else if (Array.isArray(value)) {
221
+ // Recursively preprocess arrays
222
+ jsonInput[key] = value.map(item => {
223
+ if (typeof item === 'string' && item.includes('{{$.userInput}}')) {
224
+ return userInput.otp || userInput.input || item;
225
+ } else if (typeof item === 'string' && item.includes('{{$.inputs.userInput}}')) {
226
+ return userInput.input || item;
227
+ } else if (typeof item === 'object' && item !== null) {
228
+ preprocessUserInput(item);
229
+ return item;
230
+ }
231
+ return item;
232
+ });
233
+ }
234
+ }
235
+ }
236
+ return jsonInput;
237
+ };
238
+
239
+ // Step 1: Preprocess the body for `{{$.userInput}}`
240
+ const preprocessedBody = preprocessUserInput(requestBody);
241
+
242
+ // Step 2: Pass the preprocessed body to `handleDynamicValues`
243
+ const resolvedBody = handleDynamicValues(preprocessedBody, userInput);
244
+ return resolvedBody;
245
+ }
246
+
247
+ // old masking
248
+ // export const maskContact = (contact: string) => {
249
+ // if (contact && contact?.includes('@')) {
250
+ // const [name, domain] = contact.split('@');
251
+ // const maskedName = name.substring(0, 3) + '****';
252
+ // const maskedEmail = maskedName + '@' + domain;
253
+ // return maskedEmail;
254
+ // } else {
255
+ // return `${contact && contact.slice(0, 2)}****${contact.slice(-4)}`;
256
+ // }
257
+ // };
206
258
  export const maskContact = contact => {
207
- if (contact.includes('@')) {
259
+ if (contact && contact.includes('@')) {
208
260
  const [name, domain] = contact.split('@');
209
- const maskedName = name.substring(0, 3) + '****';
210
- const maskedEmail = maskedName + '@' + domain;
211
- return maskedEmail;
261
+ let maskedName;
262
+ if (name.length <= 2) {
263
+ maskedName = name.substring(0, 1) + '*****';
264
+ } else {
265
+ maskedName = name.substring(0, 2) + '*****';
266
+ }
267
+ return maskedName + '@' + domain;
212
268
  } else {
213
- return `${contact.slice(0, 2)}****${contact.slice(-4)}`;
269
+ const visibleDigits = 4;
270
+ const maskedPart = '*'.repeat(Math.max(contact.length - visibleDigits, 0));
271
+ const visiblePart = contact.slice(-visibleDigits);
272
+ return maskedPart + visiblePart;
214
273
  }
215
274
  };
216
275
  //# sourceMappingURL=ExecTaskUtils.js.map