@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.
- package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js +0 -2
- package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -1
- package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +0 -6
- package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
- package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +2 -0
- package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js +5 -4
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/commonjs/manager/sdk/callbacksHandler.js +28 -1
- package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/AppSyncManager.js +7 -5
- package/lib/commonjs/manager/syncmanager/AppSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/DBConfig.js +3 -1
- package/lib/commonjs/manager/syncmanager/DBConfig.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/constants.js +4 -1
- package/lib/commonjs/manager/syncmanager/constants.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +37 -20
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +26 -4
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +276 -20
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js +41 -13
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js +116 -59
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js +17 -0
- package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
- package/lib/commonjs/models/auth.js.map +1 -1
- package/lib/commonjs/models/sdk.js.map +1 -1
- package/lib/commonjs/network/NetworkClient.js +12 -2
- package/lib/commonjs/network/NetworkClient.js.map +1 -1
- package/lib/commonjs/network/NetworkUtils.js +14 -7
- package/lib/commonjs/network/NetworkUtils.js.map +1 -1
- package/lib/commonjs/network/client.js +1 -1
- package/lib/commonjs/network/client.js.map +1 -1
- package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
- package/lib/commonjs/utils/SyncManagerUtils.js +29 -2
- package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
- package/lib/commonjs/utils/storage.js +21 -5
- package/lib/commonjs/utils/storage.js.map +1 -1
- package/lib/commonjs/utils/utils.js +0 -9
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js +0 -2
- package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -1
- package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +0 -6
- package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
- package/lib/module/analytics/sentry/SentrySdkConstants.js +2 -0
- package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +1 -1
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/manager/sdk/DispatchSDKManager.js +5 -4
- package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/module/manager/sdk/callbacksHandler.js +27 -1
- package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
- package/lib/module/manager/syncmanager/AppSyncManager.js +7 -5
- package/lib/module/manager/syncmanager/AppSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/DBConfig.js +3 -1
- package/lib/module/manager/syncmanager/DBConfig.js.map +1 -1
- package/lib/module/manager/syncmanager/constants.js +3 -0
- package/lib/module/manager/syncmanager/constants.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +38 -21
- package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentManager.js +26 -4
- package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +276 -20
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/ETEventsManager.js +42 -14
- package/lib/module/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js +119 -61
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/SyncHttpClient.js +15 -0
- package/lib/module/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
- package/lib/module/models/auth.js.map +1 -1
- package/lib/module/models/sdk.js.map +1 -1
- package/lib/module/network/NetworkClient.js +12 -2
- package/lib/module/network/NetworkClient.js.map +1 -1
- package/lib/module/network/NetworkUtils.js +14 -7
- package/lib/module/network/NetworkUtils.js.map +1 -1
- package/lib/module/network/client.js +1 -1
- package/lib/module/network/client.js.map +1 -1
- package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/module/ui/screens/FormsScreen.js.map +1 -1
- package/lib/module/utils/SyncManagerUtils.js +30 -3
- package/lib/module/utils/SyncManagerUtils.js.map +1 -1
- package/lib/module/utils/storage.js +21 -5
- package/lib/module/utils/storage.js.map +1 -1
- package/lib/module/utils/utils.js +0 -9
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +2 -0
- package/lib/typescript/manager/sdk/callbacksHandler.d.ts +3 -1
- package/lib/typescript/manager/syncmanager/DBConfig.d.ts +4 -0
- package/lib/typescript/manager/syncmanager/constants.d.ts +3 -0
- package/lib/typescript/manager/syncmanager/document/DocumentManager.d.ts +2 -0
- package/lib/typescript/manager/syncmanager/document/DocumentSyncManager.d.ts +2 -1
- package/lib/typescript/manager/syncmanager/events/ETEventsManager.d.ts +2 -0
- package/lib/typescript/manager/syncmanager/events/EventsSyncManager.d.ts +1 -1
- package/lib/typescript/models/sdk.d.ts +1 -0
- package/lib/typescript/utils/storage.d.ts +3 -3
- package/package.json +5 -5
- package/src/analytics/sentry/SentryAnalyticsSingleton.ts +7 -9
- package/src/analytics/sentry/SentryAnalyticsUtils.ts +24 -36
- package/src/analytics/sentry/SentrySdkConstants.ts +2 -0
- package/src/components/executiontasks/imageCapture/ImageCapture.tsx +1 -3
- package/src/index.tsx +1 -1
- package/src/manager/sdk/DispatchSDKManager.ts +8 -3
- package/src/manager/sdk/callbacksHandler.ts +39 -2
- package/src/manager/syncmanager/AppSyncManager.ts +15 -13
- package/src/manager/syncmanager/DBConfig.ts +4 -0
- package/src/manager/syncmanager/constants.ts +3 -0
- package/src/manager/syncmanager/document/DocumentHttpClient.ts +54 -24
- package/src/manager/syncmanager/document/DocumentManager.ts +48 -7
- package/src/manager/syncmanager/document/DocumentSyncManager.ts +351 -30
- package/src/manager/syncmanager/events/ETEventsManager.ts +50 -16
- package/src/manager/syncmanager/events/EventsSyncManager.ts +157 -74
- package/src/manager/syncmanager/events/SyncHttpClient.ts +30 -1
- package/src/models/auth.ts +1 -0
- package/src/models/sdk.ts +1 -0
- package/src/network/NetworkClient.ts +18 -2
- package/src/network/NetworkUtils.ts +9 -1
- package/src/network/client.ts +1 -1
- package/src/ui/screens/DeliverScreen.tsx +6 -5
- package/src/ui/screens/FormsScreen.tsx +8 -6
- package/src/utils/SyncManagerUtils.ts +41 -6
- package/src/utils/storage.ts +21 -8
- 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 =
|
|
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
|
-
|
|
83
|
-
|
|
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
|
-
|
|
88
|
-
LOG_TYPE.
|
|
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
|
-
|
|
103
|
-
LOG_TYPE.
|
|
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
|
-
|
|
117
|
-
LOG_TYPE.
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
389
|
-
|
|
390
|
-
) {
|
|
391
|
-
|
|
392
|
-
|
|
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
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
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
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
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
|
-
|
|
465
|
-
'
|
|
466
|
-
|
|
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
|
package/src/models/auth.ts
CHANGED
package/src/models/sdk.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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]) => [
|
package/src/network/client.ts
CHANGED
|
@@ -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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
);
|