@os1-platform/dispatch-mobile 2.1.8 → 2.1.10

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 (131) hide show
  1. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js +0 -2
  2. package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -1
  3. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +0 -6
  4. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
  5. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +2 -0
  6. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -1
  7. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +1 -1
  8. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +5 -4
  11. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  12. package/lib/commonjs/manager/sdk/callbacksHandler.js +28 -1
  13. package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
  14. package/lib/commonjs/manager/syncmanager/AppSyncManager.js +7 -5
  15. package/lib/commonjs/manager/syncmanager/AppSyncManager.js.map +1 -1
  16. package/lib/commonjs/manager/syncmanager/DBConfig.js +3 -1
  17. package/lib/commonjs/manager/syncmanager/DBConfig.js.map +1 -1
  18. package/lib/commonjs/manager/syncmanager/constants.js +4 -1
  19. package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
  20. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +37 -20
  21. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  22. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +26 -4
  23. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
  24. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +276 -20
  25. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  26. package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js +41 -13
  27. package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js.map +1 -1
  28. package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js +116 -59
  29. package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
  30. package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js +17 -0
  31. package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
  32. package/lib/commonjs/models/auth.js.map +1 -1
  33. package/lib/commonjs/models/sdk.js.map +1 -1
  34. package/lib/commonjs/network/NetworkClient.js +12 -2
  35. package/lib/commonjs/network/NetworkClient.js.map +1 -1
  36. package/lib/commonjs/network/NetworkUtils.js +14 -7
  37. package/lib/commonjs/network/NetworkUtils.js.map +1 -1
  38. package/lib/commonjs/network/client.js +1 -1
  39. package/lib/commonjs/network/client.js.map +1 -1
  40. package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
  42. package/lib/commonjs/utils/SyncManagerUtils.js +29 -2
  43. package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
  44. package/lib/commonjs/utils/storage.js +21 -5
  45. package/lib/commonjs/utils/storage.js.map +1 -1
  46. package/lib/commonjs/utils/utils.js +0 -9
  47. package/lib/commonjs/utils/utils.js.map +1 -1
  48. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js +0 -2
  49. package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -1
  50. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +0 -6
  51. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
  52. package/lib/module/analytics/sentry/SentrySdkConstants.js +2 -0
  53. package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -1
  54. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +1 -1
  55. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  56. package/lib/module/index.js.map +1 -1
  57. package/lib/module/manager/sdk/DispatchSDKManager.js +5 -4
  58. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  59. package/lib/module/manager/sdk/callbacksHandler.js +27 -1
  60. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  61. package/lib/module/manager/syncmanager/AppSyncManager.js +7 -5
  62. package/lib/module/manager/syncmanager/AppSyncManager.js.map +1 -1
  63. package/lib/module/manager/syncmanager/DBConfig.js +3 -1
  64. package/lib/module/manager/syncmanager/DBConfig.js.map +1 -1
  65. package/lib/module/manager/syncmanager/constants.js +3 -0
  66. package/lib/module/manager/syncmanager/constants.js.map +1 -1
  67. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +38 -21
  68. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  69. package/lib/module/manager/syncmanager/document/DocumentManager.js +26 -4
  70. package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
  71. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +276 -20
  72. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  73. package/lib/module/manager/syncmanager/events/ETEventsManager.js +42 -14
  74. package/lib/module/manager/syncmanager/events/ETEventsManager.js.map +1 -1
  75. package/lib/module/manager/syncmanager/events/EventsSyncManager.js +119 -61
  76. package/lib/module/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
  77. package/lib/module/manager/syncmanager/events/SyncHttpClient.js +15 -0
  78. package/lib/module/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
  79. package/lib/module/models/auth.js.map +1 -1
  80. package/lib/module/models/sdk.js.map +1 -1
  81. package/lib/module/network/NetworkClient.js +12 -2
  82. package/lib/module/network/NetworkClient.js.map +1 -1
  83. package/lib/module/network/NetworkUtils.js +14 -7
  84. package/lib/module/network/NetworkUtils.js.map +1 -1
  85. package/lib/module/network/client.js +1 -1
  86. package/lib/module/network/client.js.map +1 -1
  87. package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
  88. package/lib/module/ui/screens/FormsScreen.js.map +1 -1
  89. package/lib/module/utils/SyncManagerUtils.js +30 -3
  90. package/lib/module/utils/SyncManagerUtils.js.map +1 -1
  91. package/lib/module/utils/storage.js +21 -5
  92. package/lib/module/utils/storage.js.map +1 -1
  93. package/lib/module/utils/utils.js +0 -9
  94. package/lib/module/utils/utils.js.map +1 -1
  95. package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +2 -0
  96. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +3 -1
  97. package/lib/typescript/manager/syncmanager/DBConfig.d.ts +4 -0
  98. package/lib/typescript/manager/syncmanager/constants.d.ts +3 -0
  99. package/lib/typescript/manager/syncmanager/document/DocumentManager.d.ts +2 -0
  100. package/lib/typescript/manager/syncmanager/document/DocumentSyncManager.d.ts +2 -1
  101. package/lib/typescript/manager/syncmanager/events/ETEventsManager.d.ts +2 -0
  102. package/lib/typescript/manager/syncmanager/events/EventsSyncManager.d.ts +1 -1
  103. package/lib/typescript/models/sdk.d.ts +1 -0
  104. package/lib/typescript/utils/storage.d.ts +3 -3
  105. package/package.json +5 -5
  106. package/src/analytics/sentry/SentryAnalyticsSingleton.ts +7 -9
  107. package/src/analytics/sentry/SentryAnalyticsUtils.ts +24 -36
  108. package/src/analytics/sentry/SentrySdkConstants.ts +2 -0
  109. package/src/components/executiontasks/imageCapture/ImageCapture.tsx +1 -3
  110. package/src/index.tsx +1 -1
  111. package/src/manager/sdk/DispatchSDKManager.ts +8 -3
  112. package/src/manager/sdk/callbacksHandler.ts +39 -2
  113. package/src/manager/syncmanager/AppSyncManager.ts +15 -13
  114. package/src/manager/syncmanager/DBConfig.ts +4 -0
  115. package/src/manager/syncmanager/constants.ts +3 -0
  116. package/src/manager/syncmanager/document/DocumentHttpClient.ts +54 -24
  117. package/src/manager/syncmanager/document/DocumentManager.ts +48 -7
  118. package/src/manager/syncmanager/document/DocumentSyncManager.ts +351 -30
  119. package/src/manager/syncmanager/events/ETEventsManager.ts +50 -16
  120. package/src/manager/syncmanager/events/EventsSyncManager.ts +157 -74
  121. package/src/manager/syncmanager/events/SyncHttpClient.ts +30 -1
  122. package/src/models/auth.ts +1 -0
  123. package/src/models/sdk.ts +1 -0
  124. package/src/network/NetworkClient.ts +18 -2
  125. package/src/network/NetworkUtils.ts +9 -1
  126. package/src/network/client.ts +1 -1
  127. package/src/ui/screens/DeliverScreen.tsx +6 -5
  128. package/src/ui/screens/FormsScreen.tsx +8 -6
  129. package/src/utils/SyncManagerUtils.ts +41 -6
  130. package/src/utils/storage.ts +21 -8
  131. package/src/utils/utils.ts +0 -8
@@ -6,7 +6,7 @@ import type {
6
6
  ExecEngineSyncType,
7
7
  } from '../DBConfig';
8
8
  import SyncHttpClient from './SyncHttpClient';
9
- import { isEmptyOrBlank } from '../../../utils/utils';
9
+ import { flattenObject, isEmptyOrBlank } from '../../../utils/utils';
10
10
  import { BaseError } from '../../../errors/BaseError';
11
11
  import BaseErrorCodes, {
12
12
  InvalidArgumentsError,
@@ -20,7 +20,8 @@ const SyncType = IDispatch.SyncType;
20
20
 
21
21
  import DispatchSdkCache from '../../sdk/DispatchSdkCache';
22
22
  import Storage from '../../../utils/storage';
23
- import { LAST_SYNCED_EVENT_ID } from '../constants';
23
+ import { LAST_SYNCED_EVENT_ID, MAX_RETRY_COUNT } from '../constants';
24
+ import { POD_DOC } from '../constants';
24
25
 
25
26
  const TAG = 'EventsSyncManager';
26
27
  export default class EventsSyncManager {
@@ -29,7 +30,7 @@ export default class EventsSyncManager {
29
30
  private inProgress: boolean = false;
30
31
  private cScanInProgress: boolean = false;
31
32
  private eventsManager: ETEventsManager | undefined;
32
- private maxRetryCount: number = 3;
33
+ private maxRetryCount: number = MAX_RETRY_COUNT;
33
34
  private _retries = 0;
34
35
 
35
36
  get retries(): number {
@@ -79,13 +80,38 @@ export default class EventsSyncManager {
79
80
  dspID ?? ''
80
81
  );
81
82
 
82
- if (bulkEventRows.length) {
83
- await this.syncBulkEventToServer(bulkEventRows, lastSyncedEventId);
83
+ var arrEventsToSync: EventRow[] = [];
84
+
85
+ // Filtering and removing those events which are type of POD_DOC
86
+ for (var index in bulkEventRows) {
87
+ let syncType = bulkEventRows[index].sync_type;
88
+ if (syncType.includes(POD_DOC)) {
89
+ break;
90
+ }
91
+ arrEventsToSync.push(bulkEventRows[index]);
92
+ }
93
+ if (arrEventsToSync.length) {
94
+ await this.syncBulkEventToServer(
95
+ arrEventsToSync,
96
+ lastSyncedEventId
97
+ );
98
+ let extraParameters = {
99
+ bulkEventRows: arrEventsToSync.length,
100
+ };
101
+ Logger.getInstance().logEvent(
102
+ 'startSync-event-to-sync',
103
+ flattenObject(extraParameters),
104
+ LOG_TYPE.SDK_ERROR
105
+ );
84
106
  } else {
107
+ let extraParameters = {
108
+ bulkEventRows: bulkEventRows.length,
109
+ arrEventsToSync: arrEventsToSync.length
110
+ };
85
111
  Logger.getInstance().logEvent(
86
- 'startSync',
87
- 'No data to sync in Events Manager',
88
- LOG_TYPE.SDK_INFO
112
+ 'startSync-no-event-to-sync',
113
+ flattenObject(extraParameters),
114
+ LOG_TYPE.SDK_ERROR
89
115
  );
90
116
  }
91
117
 
@@ -97,24 +123,46 @@ export default class EventsSyncManager {
97
123
  // ];
98
124
  // await Promise.all(promises);
99
125
  } else {
126
+ let extraParameters = {
127
+ network: hasNetwork
128
+ };
100
129
  Logger.getInstance().logEvent(
101
- 'startSync',
102
- 'NO NETWORK AVAILABLE!!',
103
- LOG_TYPE.SDK_INFO
130
+ 'startSync-no network',
131
+ flattenObject(extraParameters),
132
+ LOG_TYPE.SDK_ERROR
104
133
  );
105
134
  }
106
135
  } catch (error: any) {
136
+ Logger.getInstance().logEvent(
137
+ 'startSync-error',
138
+ flattenObject(error),
139
+ LOG_TYPE.SDK_ERROR
140
+ );
107
141
  } finally {
108
142
  this.inProgress = false;
109
143
  if ((await this.isSyncPending()) && hasNetwork) {
110
144
  await this.startSync();
145
+ }else{
146
+ let extraParameters = {
147
+ hasNetwork: hasNetwork,
148
+ pending: this.isSyncPending(),
149
+ };
150
+ Logger.getInstance().logEvent(
151
+ 'startSync-inprogress-syncpending-hasnetwork',
152
+ flattenObject(extraParameters),
153
+ LOG_TYPE.SDK_ERROR
154
+ );
111
155
  }
112
156
  }
113
157
  } else {
158
+ let extraParameters = {
159
+ isProgress: this.inProgress,
160
+ retry: this._retries,
161
+ };
114
162
  Logger.getInstance().logEvent(
115
- 'startSync',
116
- 'WORKFLOW/TASK ALREADY IN PROGRESS || Max Retries reached',
117
- LOG_TYPE.SDK_INFO
163
+ 'startSync-inprogress-maxretries',
164
+ flattenObject(extraParameters),
165
+ LOG_TYPE.SDK_ERROR
118
166
  );
119
167
  }
120
168
  }
@@ -206,7 +254,7 @@ export default class EventsSyncManager {
206
254
  } catch (err: any) {
207
255
  Logger.getInstance().logEvent(
208
256
  'updateEventError',
209
- err.message,
257
+ flattenObject(err),
210
258
  LOG_TYPE.SDK_WARNING
211
259
  );
212
260
  }
@@ -261,7 +309,7 @@ export default class EventsSyncManager {
261
309
  } catch (err: any) {
262
310
  Logger.getInstance().logEvent(
263
311
  'markEventSynced',
264
- err.message,
312
+ flattenObject(err),
265
313
  LOG_TYPE.SDK_WARNING
266
314
  );
267
315
  }
@@ -270,6 +318,22 @@ export default class EventsSyncManager {
270
318
  await Promise.all(promises);
271
319
  }
272
320
 
321
+ // This function will insert POD_DOC type of event in event table.
322
+ public async insertPODDocEvent(
323
+ dspID: string,
324
+ syncType: string
325
+ ): Promise<void> {
326
+ if (isEmptyOrBlank(dspID) || isEmptyOrBlank(syncType))
327
+ throw new BaseError(
328
+ BaseErrorCodes.InvalidArgumentError,
329
+ InvalidArgumentsError
330
+ );
331
+ if (!this.eventsManager) {
332
+ this.eventsManager = await ETEventsManager.getInstance();
333
+ }
334
+ await this.eventsManager.insertPODDocEvent(dspID, syncType);
335
+ }
336
+
273
337
  public async insertEvent(
274
338
  sequence: number,
275
339
  payload: string,
@@ -377,60 +441,60 @@ export default class EventsSyncManager {
377
441
  } catch (err: any) {
378
442
  Logger.getInstance().logEvent(
379
443
  'getObjectiveSummary',
380
- err.message,
444
+ flattenObject(err),
381
445
  LOG_TYPE.SDK_WARNING
382
446
  );
383
447
  return null;
384
448
  }
385
449
  }
386
450
 
387
- private async syncEventToServer(
388
- eventRows: EventRow[],
389
- syncType: ExecEngineSyncType | DispatchSyncType
390
- ) {
391
- try {
392
- const success = await this.syncHttpClient?.syncEvent(eventRows, syncType);
451
+ // private async syncEventToServer(
452
+ // eventRows: EventRow[],
453
+ // syncType: ExecEngineSyncType | DispatchSyncType
454
+ // ) {
455
+ // try {
456
+ // const success = await this.syncHttpClient?.syncEvent(eventRows, syncType);
393
457
 
394
- if (success) {
395
- this._retries = 0;
396
- // NEW CODE
397
- const lastSyncedEventId = await Storage.getInstance().getSharedItem(
398
- LAST_SYNCED_EVENT_ID
399
- );
400
- const syncEventId = parseInt(lastSyncedEventId) + 1;
401
- await Storage.getInstance().setSharedItem(
402
- LAST_SYNCED_EVENT_ID,
403
- `${syncEventId}`
404
- );
458
+ // if (success) {
459
+ // this._retries = 0;
460
+ // // NEW CODE
461
+ // const lastSyncedEventId = await Storage.getInstance().getSharedItem(
462
+ // LAST_SYNCED_EVENT_ID
463
+ // );
464
+ // const syncEventId = parseInt(lastSyncedEventId) + 1;
465
+ // await Storage.getInstance().setSharedItem(
466
+ // LAST_SYNCED_EVENT_ID,
467
+ // `${syncEventId}`
468
+ // );
405
469
 
406
- // OLD CODE
407
- await this.markEventSynced(eventRows);
408
- } else {
409
- this._retries++;
410
- /* Logger.getInstance().logEvent(
411
- 'syncEventToServer',
412
- `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)}`,
413
- LOG_TYPE.SDK_ERROR
414
- ); */
415
- await this.updateEventError(eventRows, 'Unexpected error');
416
- }
417
- } catch (error: any) {
418
- this._retries++;
419
- /* Logger.getInstance().logEvent(
420
- 'syncEventToServer',
421
- `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)} -: ${
422
- error.message
423
- }`,
424
- LOG_TYPE.SDK_ERROR
425
- ); */
426
- await this.updateEventError(
427
- eventRows,
428
- JSON.stringify({
429
- error,
430
- })
431
- );
432
- }
433
- }
470
+ // // OLD CODE
471
+ // await this.markEventSynced(eventRows);
472
+ // } else {
473
+ // this._retries++;
474
+ // /* Logger.getInstance().logEvent(
475
+ // 'syncEventToServer',
476
+ // `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)}`,
477
+ // LOG_TYPE.SDK_ERROR
478
+ // ); */
479
+ // await this.updateEventError(eventRows, 'Unexpected error');
480
+ // }
481
+ // } catch (error: any) {
482
+ // this._retries++;
483
+ // /* Logger.getInstance().logEvent(
484
+ // 'syncEventToServer',
485
+ // `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)} -: ${
486
+ // error.message
487
+ // }`,
488
+ // LOG_TYPE.SDK_ERROR
489
+ // ); */
490
+ // await this.updateEventError(
491
+ // eventRows,
492
+ // JSON.stringify({
493
+ // error,
494
+ // })
495
+ // );
496
+ // }
497
+ // }
434
498
 
435
499
  private async syncBulkEventToServer(
436
500
  eventRows: EventRow[],
@@ -438,6 +502,14 @@ export default class EventsSyncManager {
438
502
  ) {
439
503
  try {
440
504
  const success = await this.syncHttpClient?.syncBulkEvent(eventRows);
505
+ let extraParameters = {
506
+ success: success,
507
+ };
508
+ Logger.getInstance().logEvent(
509
+ 'syncBulkEventToServer-syncBulkEvent-success-true',
510
+ flattenObject(extraParameters),
511
+ LOG_TYPE.SDK_ERROR
512
+ );
441
513
  if (success) {
442
514
  this._retries = 0;
443
515
  // NEW CODE
@@ -450,24 +522,35 @@ export default class EventsSyncManager {
450
522
 
451
523
  // OLD CODE
452
524
  await this.markEventSynced(eventRows);
525
+
526
+ let extraParameters = {
527
+ retries: this._retries,
528
+ lastSyncEventId: syncEventId
529
+ };
530
+ Logger.getInstance().logEvent(
531
+ 'syncBulkEventToServer-markEventSynced',
532
+ flattenObject(extraParameters),
533
+ LOG_TYPE.SDK_ERROR
534
+ );
453
535
  } else {
454
536
  this._retries++;
455
- /* Logger.getInstance().logEvent(
456
- 'syncEventToServer',
457
- `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)}`,
458
- LOG_TYPE.SDK_ERROR
459
- ); */
460
537
  await this.updateEventError(eventRows, 'Unexpected error');
538
+ let extraParameters = {
539
+ success: success,
540
+ };
541
+ Logger.getInstance().logEvent(
542
+ 'syncBulkEventToServer-syncBulkEvent-success-false',
543
+ flattenObject(extraParameters),
544
+ LOG_TYPE.SDK_ERROR
545
+ );
461
546
  }
462
- } catch (error) {
547
+ } catch (error: any) {
463
548
  this._retries++;
464
- /* Logger.getInstance().logEvent(
465
- 'syncEventToServer',
466
- `Syncing Error ${syncType} :- ${JSON.stringify(eventRows)} -: ${
467
- error.message
468
- }`,
549
+ Logger.getInstance().logEvent(
550
+ 'syncBulkEventToServer-error',
551
+ flattenObject(error),
469
552
  LOG_TYPE.SDK_ERROR
470
- ); */
553
+ );
471
554
  await this.updateEventError(
472
555
  eventRows,
473
556
  JSON.stringify({
@@ -4,7 +4,7 @@ import GraphQLClient from '../../../network/GraphQLClient';
4
4
  import NetworkClient from '../../../network/NetworkClient';
5
5
  import { ExecEngineSyncType } from '../DBConfig';
6
6
 
7
- import { isEmptyOrBlank } from '../../../utils/utils';
7
+ import { flattenObject, isEmptyOrBlank } from '../../../utils/utils';
8
8
  import { ENDPOINTS } from '../../../constants/apiConstants';
9
9
  import Logger, { LOG_TYPE } from '../../../utils/Logger';
10
10
 
@@ -182,6 +182,14 @@ export default class SyncHttpClient extends HttpClient {
182
182
  const requestBody = eventRow.map((event) => {
183
183
  return JSON.parse(event.payload);
184
184
  });
185
+ let extraParameters = {
186
+ endpoint: ENDPOINTS.BULK_JOB_UPDATE(eventRow[0].dispatch_id),
187
+ };
188
+ Logger.getInstance().logEvent(
189
+ 'syncBulkEvent-request',
190
+ flattenObject(extraParameters),
191
+ LOG_TYPE.SDK_ERROR
192
+ );
185
193
  const response = await this.networkInstance.requestPost(
186
194
  ENDPOINTS.BULK_JOB_UPDATE(eventRow[0].dispatch_id),
187
195
  requestBody,
@@ -189,11 +197,32 @@ export default class SyncHttpClient extends HttpClient {
189
197
  );
190
198
 
191
199
  if (response.data.error) {
200
+ let extraParameters = {
201
+ error: response.data.error,
202
+ };
203
+ Logger.getInstance().logEvent(
204
+ 'syncBulkEvent-api-error',
205
+ flattenObject(extraParameters),
206
+ LOG_TYPE.SDK_ERROR
207
+ );
192
208
  resolve(false);
193
209
  } else {
210
+ let extraParameters = {
211
+ response: '1',
212
+ };
213
+ Logger.getInstance().logEvent(
214
+ 'syncBulkEvent-api-success',
215
+ flattenObject(extraParameters),
216
+ LOG_TYPE.SDK_ERROR
217
+ );
194
218
  resolve(true);
195
219
  }
196
220
  } catch (error: any) {
221
+ Logger.getInstance().logEvent(
222
+ 'syncBulkEvent-error',
223
+ flattenObject(error),
224
+ LOG_TYPE.SDK_ERROR
225
+ );
197
226
  reject(error);
198
227
  }
199
228
  }, 0); //1000
@@ -41,3 +41,4 @@ export type LoginType =
41
41
  export interface Headers {
42
42
  requestId: string;
43
43
  }
44
+
package/src/models/sdk.ts CHANGED
@@ -26,6 +26,7 @@ export interface DispatchSDKConfig {
26
26
  sdsIds: string[]
27
27
  ) => Promise<{ key: string; value: string[] }>;
28
28
  fetchDateTimeCallback?: () => Promise<string>;
29
+ tokenRefreshCallback?: () => Promise<string>;
29
30
  };
30
31
  }
31
32
 
@@ -2,6 +2,8 @@ import HttpClient from './client';
2
2
  import DispatchSdkCache from '../manager/sdk/DispatchSdkCache';
3
3
  import type { DispatchSDKConfig } from '../models/sdk';
4
4
  import type { Headers } from '../models/auth';
5
+ import { isTokenExpired } from '../utils/utils';
6
+ import callbackHandler from '../manager/sdk/callbacksHandler';
5
7
 
6
8
  const cache = DispatchSdkCache.getInstance();
7
9
  const cacheKeys = DispatchSdkCache.KEYS;
@@ -18,10 +20,17 @@ export default class NetworkClient extends HttpClient {
18
20
  requestBody: any,
19
21
  headers: Headers
20
22
  ) {
21
- const sdkConfig = (await cache.getObjectFromCache(
23
+ let sdkConfig = (await cache.getObjectFromCache(
22
24
  cacheKeys.SDK_CONFIG
23
25
  )) as DispatchSDKConfig;
24
26
 
27
+ if(isTokenExpired(sdkConfig.accessToken)){
28
+ await callbackHandler.refresheAndUpdateToken();
29
+ sdkConfig = (await cache.getObjectFromCache(
30
+ cacheKeys.SDK_CONFIG
31
+ )) as DispatchSDKConfig;
32
+ }
33
+
25
34
  return this.instance.post(endpoint, requestBody, {
26
35
  headers: {
27
36
  'accept': 'application/json',
@@ -39,10 +48,17 @@ export default class NetworkClient extends HttpClient {
39
48
  requestBody: any,
40
49
  headers: Headers
41
50
  ) {
42
- const sdkConfig = (await cache.getObjectFromCache(
51
+ let sdkConfig = (await cache.getObjectFromCache(
43
52
  cacheKeys.SDK_CONFIG
44
53
  )) as DispatchSDKConfig;
45
54
 
55
+ if(isTokenExpired(sdkConfig.accessToken)){
56
+ await callbackHandler.refresheAndUpdateToken();
57
+ sdkConfig = (await cache.getObjectFromCache(
58
+ cacheKeys.SDK_CONFIG
59
+ )) as DispatchSDKConfig;
60
+ }
61
+
46
62
  return this.instance.put(endpoint, requestBody, {
47
63
  headers: {
48
64
  'accept': 'application/json',
@@ -1,12 +1,20 @@
1
1
  import DispatchSdkCache from '../manager/sdk/DispatchSdkCache';
2
2
  import type { Headers } from '../components/executiontasks/httpRequest/HttpRequestETSchema';
3
3
  import type { DispatchSDKConfig } from '../models/sdk';
4
+ import { isTokenExpired } from '../utils/utils';
5
+ import callbackHandler from '../manager/sdk/callbacksHandler';
4
6
 
5
7
  export async function getHeaders(contentType: string) {
6
8
  const cache = DispatchSdkCache.getInstance();
7
- const sdkConfig: DispatchSDKConfig = await cache.getObjectFromCache(
9
+ let sdkConfig: DispatchSDKConfig = await cache.getObjectFromCache(
8
10
  DispatchSdkCache.KEYS.SDK_CONFIG
9
11
  );
12
+ if(isTokenExpired(sdkConfig.accessToken)){
13
+ await callbackHandler.refresheAndUpdateToken();
14
+ sdkConfig = await cache.getObjectFromCache(
15
+ DispatchSdkCache.KEYS.SDK_CONFIG
16
+ );
17
+ }
10
18
  const newHeadersObj = sdkConfig?.headers
11
19
  ? Object.fromEntries(
12
20
  Object.entries(sdkConfig.headers || {}).map(([k, v]) => [
@@ -8,7 +8,7 @@ export default abstract class HttpClient {
8
8
  protected constructor(baseURL: string) {
9
9
  this.instance = axios.create({
10
10
  baseURL,
11
- timeout: 15000, // timeout of 15s
11
+ timeout: 60000, // timeout of 60s
12
12
  });
13
13
 
14
14
  this._initializeResponseInterceptor();
@@ -18,6 +18,7 @@ import { GO_BACK_EVENT_CODE } from '../../constants/constants';
18
18
  import Helper from '../../utils/helper';
19
19
  import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../analytics/sentry/SentrySdkConstants';
20
20
  import { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';
21
+ import AsyncStorage from '@react-native-async-storage/async-storage';
21
22
 
22
23
  const DeliverScreen = ({
23
24
  navigation,
@@ -41,11 +42,11 @@ const DeliverScreen = ({
41
42
  useEffect(() => {
42
43
  (async () => {
43
44
  //fire sentry event
44
- if(input?.title != null && input?.title?.toString()?.length > 0 && input?.title?.toString()?.toLowerCase()?.includes("return")){
45
- fireEventWithScreenName({severityLevel:SeverityLevelValue.LOG, eventName:SentryEventNameSdkConstants.RETURN_ORDER_ET_OPENED, screenName:ScreenNameSdkConstants.RETURN_ORDER_ET_SCREEN});
46
- }else{
47
- fireEventWithScreenName({severityLevel:SeverityLevelValue.LOG, eventName:SentryEventNameSdkConstants.DELIVER_ET_OPENED, screenName:ScreenNameSdkConstants.DELIVER_ET_SCREEN});
48
- }
45
+ if (input?.title != null && input?.title?.toString()?.length > 0 && input?.title?.toString()?.toLowerCase()?.includes("return")) {
46
+ fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.RETURN_ORDER_ET_OPENED, screenName: ScreenNameSdkConstants.RETURN_ORDER_ET_SCREEN });
47
+ } else {
48
+ fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.DELIVER_ET_OPENED, screenName: ScreenNameSdkConstants.DELIVER_ET_SCREEN });
49
+ }
49
50
  //
50
51
  onTaskStart(
51
52
  nextState,
@@ -16,6 +16,7 @@ import { AjvError } from '@rjsf/core';
16
16
  import Helper from '../../utils/helper';
17
17
  import { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../analytics/sentry/SentrySdkConstants';
18
18
  import { fireEventWithScreenName } from '../../analytics/sentry/SentryAnalyticsUtils';
19
+ import AsyncStorage from '@react-native-async-storage/async-storage';
19
20
 
20
21
  const FormsScreen = ({
21
22
  route,
@@ -40,18 +41,19 @@ const FormsScreen = ({
40
41
 
41
42
  useEffect(() => {
42
43
  (async () => {
43
- fireEventWithScreenName({severityLevel:SeverityLevelValue.LOG, eventName:SentryEventNameSdkConstants.FORM_ET_OPENED, screenName:ScreenNameSdkConstants.FORM_ET_SCREEN});
44
+ fireEventWithScreenName({ severityLevel: SeverityLevelValue.LOG, eventName: SentryEventNameSdkConstants.FORM_ET_OPENED, screenName: ScreenNameSdkConstants.FORM_ET_SCREEN });
44
45
  onTaskStart(
45
46
  route.params[RouteParams.NEXT_STATES],
46
47
  route.params[RouteParams.ROOT_META_DATA].customEventsData
47
48
  );
48
49
 
49
50
  if (route.params[RouteParams.ROOT_META_DATA]) {
50
- //Call objectiveDetails fn and fetch sds ids
51
- const { contact } = await dispatchExecutor.getObjectiveTaskDetails(
52
- mergedObjectiveId[0],
53
- route.params[RouteParams.ROOT_META_DATA].statusFilter
54
- );
51
+
52
+ //Call objectiveDetails fn and fetch sds ids
53
+ const { contact } = await dispatchExecutor.getObjectiveTaskDetails(
54
+ mergedObjectiveId[0],
55
+ route.params[RouteParams.ROOT_META_DATA].statusFilter
56
+ );
55
57
 
56
58
  // run callback to get corresponding phone numbers
57
59
  const phoneNumbers = await callbackHandler.getPhoneNumbers(contact);
@@ -4,7 +4,7 @@ const SyncType = IDispatch.SyncType;
4
4
  import Logger, { LOG_TYPE } from './Logger';
5
5
  import DispatchSdkCache from '../manager/sdk/DispatchSdkCache';
6
6
  import DocumentSyncManager from '../manager/syncmanager/document/DocumentSyncManager';
7
- import { isEmptyOrBlank } from './utils';
7
+ import { flattenObject, isEmptyOrBlank } from './utils';
8
8
  import { BaseError } from '../errors/BaseError';
9
9
  import ErrorCodes from '../errors/ErrorCodes';
10
10
  import GraphQLClient from '../network/GraphQLClient';
@@ -14,7 +14,9 @@ import type {
14
14
  ExecEngineSyncType,
15
15
  } from '../manager/syncmanager/DBConfig';
16
16
  import Storage from './storage';
17
+ import { POD_DOC } from '../manager/syncmanager/constants';
17
18
  import LocationManager from '../manager/location/LocationManager';
19
+ import DocumentManager from '../manager/syncmanager/document/DocumentManager';
18
20
 
19
21
  const keys = DispatchSdkCache.KEYS;
20
22
  const cache = DispatchSdkCache.getInstance();
@@ -113,12 +115,15 @@ export async function clearCache(dspID: string) {
113
115
  try {
114
116
  let prevDspID = await cache.getKeyFromCache(keys.DISPATCH_ID);
115
117
  if (prevDspID != null && prevDspID !== dspID) {
116
- DocumentSyncManager.getInstance()
117
- .clearSyncedDocs(prevDspID)
118
- .then()
119
- .catch();
118
+ // DocumentSyncManager.getInstance()
119
+ // .clearSyncedDocs(prevDspID)
120
+ // .then()
121
+ // .catch();
120
122
  EventsSyncManager.getInstance().clearEventsDB().then().catch();
121
123
  await Storage.getInstance().clearShared();
124
+ await Storage.getInstance().deleteItem(keys.FMS_FOLDER);
125
+ let docManager = await DocumentManager.getInstance();
126
+ await docManager.truncateDocumentTable();
122
127
  }
123
128
  } catch (error: any) {
124
129
  Logger.getInstance().logEvent(
@@ -169,11 +174,41 @@ export async function insertDocumentInDB(
169
174
  geoTimeStampStr,
170
175
  processedFilePath
171
176
  );
177
+ if (response.insertId !== 0) {
178
+ let extraParameters = {
179
+ fileName: fileName,
180
+ insertId: response.insertId
181
+ };
182
+ Logger.getInstance().logEvent(
183
+ 'insertDocumentInDB-insertDocument-inserted',
184
+ flattenObject(extraParameters),
185
+ LOG_TYPE.SDK_ERROR
186
+ );
187
+ // calling for inserting POD_DOC type document in Event table.
188
+ await EventsSyncManager.getInstance().insertPODDocEvent(
189
+ dspID ?? 'NULL',
190
+ POD_DOC + '_' + response.insertId // This will be inserted in sync_type column in Event table.
191
+ );
192
+ }else{
193
+ let extraParameters = {
194
+ fileName: fileName,
195
+ };
196
+ Logger.getInstance().logEvent(
197
+ 'insertDocumentInDB-insertDocument-not-inserted',
198
+ flattenObject(extraParameters),
199
+ LOG_TYPE.SDK_ERROR
200
+ );
201
+ // calling for inserting POD_DOC type document in Event table.
202
+ await EventsSyncManager.getInstance().insertPODDocEvent(
203
+ dspID ?? 'NULL',
204
+ POD_DOC + '_' + response.insertId // This will be inserted in sync_type column in Event table.
205
+ );
206
+ }
172
207
  AppSyncManager.getInstance().startSDKSyncManager();
173
208
  return response.insertId;
174
209
  } catch (error: any) {
175
210
  Logger.getInstance().logEvent(
176
- 'insertDocumentInDB',
211
+ 'insertDocumentInDB-error',
177
212
  error.message,
178
213
  LOG_TYPE.SDK_ERROR
179
214
  );