@os1-platform/dispatch-mobile 2.1.5 → 2.1.7
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/firebase/FirebaseLogging.js +24 -0
- package/lib/commonjs/analytics/firebase/FirebaseLogging.js.map +1 -0
- package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js +44 -0
- package/lib/commonjs/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
- package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +83 -0
- package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
- package/lib/commonjs/analytics/sentry/SentryModels.js +6 -0
- package/lib/commonjs/analytics/sentry/SentryModels.js.map +1 -0
- package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +78 -0
- package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -0
- package/lib/commonjs/components/executiontasks/cancellation/CancelET.js +51 -0
- package/lib/commonjs/components/executiontasks/cancellation/CancelET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js +23 -0
- package/lib/commonjs/components/executiontasks/captureInput/CaptureText.js.map +1 -1
- package/lib/commonjs/components/executiontasks/deliver/DeliverET.js +16 -0
- package/lib/commonjs/components/executiontasks/deliver/DeliverET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js +52 -2
- package/lib/commonjs/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/display/DisplayModalET.js +16 -0
- package/lib/commonjs/components/executiontasks/display/DisplayModalET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/doodle/SignatureET.js +41 -4
- package/lib/commonjs/components/executiontasks/doodle/SignatureET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js +16 -0
- package/lib/commonjs/components/executiontasks/dropCash/DropCashET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js +23 -0
- package/lib/commonjs/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/FormGenerator.js +41 -18
- package/lib/commonjs/components/executiontasks/forms/FormGenerator.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
- package/lib/commonjs/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
- package/lib/commonjs/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +29 -16
- package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +71 -6
- package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
- package/lib/commonjs/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js +37 -0
- package/lib/commonjs/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
- package/lib/commonjs/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/pickup/PickupET.js +16 -0
- package/lib/commonjs/components/executiontasks/pickup/PickupET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js +44 -0
- package/lib/commonjs/components/executiontasks/pickup/SLPickupET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/ScanET.js +40 -1
- package/lib/commonjs/components/executiontasks/scan/ScanET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
- package/lib/commonjs/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
- package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
- package/lib/commonjs/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
- package/lib/commonjs/components/widgets/CancelOrderDialog.js +16 -0
- package/lib/commonjs/components/widgets/CancelOrderDialog.js.map +1 -1
- package/lib/commonjs/components/widgets/Card.js +17 -1
- package/lib/commonjs/components/widgets/Card.js.map +1 -1
- package/lib/commonjs/components/widgets/ModalWidget.js +22 -2
- package/lib/commonjs/components/widgets/ModalWidget.js.map +1 -1
- package/lib/commonjs/components/widgets/SearchBar.js +9 -0
- package/lib/commonjs/components/widgets/SearchBar.js.map +1 -1
- package/lib/commonjs/components/widgets/SnackBarCustom.js +9 -0
- package/lib/commonjs/components/widgets/SnackBarCustom.js.map +1 -1
- package/lib/commonjs/components/widgets/SplitTextInput.js +9 -0
- package/lib/commonjs/components/widgets/SplitTextInput.js.map +1 -1
- package/lib/commonjs/components/widgets/TabsComponent.js +12 -1
- package/lib/commonjs/components/widgets/TabsComponent.js.map +1 -1
- package/lib/commonjs/index.js +53 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/manager/location/LocationManager.js +9 -2
- package/lib/commonjs/manager/location/LocationManager.js.map +1 -1
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js +3 -3
- package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/commonjs/manager/sdk/DispatchSdkCache.js +3 -2
- package/lib/commonjs/manager/sdk/DispatchSdkCache.js.map +1 -1
- package/lib/commonjs/manager/sdk/callbacksHandler.js +8 -1
- package/lib/commonjs/manager/sdk/callbacksHandler.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/document/DocumentHttpClient.js +77 -3
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +17 -3
- package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +206 -6
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/commonjs/models/execTasks/ETBaseModels.js.map +1 -1
- package/lib/commonjs/models/sdk.js.map +1 -1
- package/lib/commonjs/styles/executionTasks/CommonStyles.js +4 -4
- package/lib/commonjs/styles/executionTasks/CommonStyles.js.map +1 -1
- package/lib/commonjs/ui/screens/DeliverScreen.js +18 -1
- package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DoodleScreen.js +9 -0
- package/lib/commonjs/ui/screens/DoodleScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DropCashScreen.js +10 -1
- package/lib/commonjs/ui/screens/DropCashScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FormsScreen.js +7 -0
- package/lib/commonjs/ui/screens/FormsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/GeofenceScreen.js +12 -0
- package/lib/commonjs/ui/screens/GeofenceScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ImageCaptureScreen.js +9 -0
- package/lib/commonjs/ui/screens/ImageCaptureScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentScreen.js +9 -0
- package/lib/commonjs/ui/screens/PaymentScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PickupScreen.js +9 -0
- package/lib/commonjs/ui/screens/PickupScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ValidateOTPScreen.js +12 -0
- package/lib/commonjs/ui/screens/ValidateOTPScreen.js.map +1 -1
- package/lib/commonjs/utils/ExecTaskUtils.js +30 -13
- package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
- package/lib/commonjs/utils/Logger.js +54 -41
- package/lib/commonjs/utils/Logger.js.map +1 -1
- package/lib/commonjs/utils/SyncManagerUtils.js +12 -2
- package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
- package/lib/commonjs/utils/utils.js +24 -0
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/module/analytics/firebase/FirebaseLogging.js +17 -0
- package/lib/module/analytics/firebase/FirebaseLogging.js.map +1 -0
- package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js +37 -0
- package/lib/module/analytics/sentry/SentryAnalyticsSingleton.js.map +1 -0
- package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +74 -0
- package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -0
- package/lib/module/analytics/sentry/SentryModels.js +2 -0
- package/lib/module/analytics/sentry/SentryModels.js.map +1 -0
- package/lib/module/analytics/sentry/SentrySdkConstants.js +72 -0
- package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -0
- package/lib/module/components/executiontasks/cancellation/CancelET.js +51 -0
- package/lib/module/components/executiontasks/cancellation/CancelET.js.map +1 -1
- package/lib/module/components/executiontasks/captureInput/CaptureText.js +23 -0
- package/lib/module/components/executiontasks/captureInput/CaptureText.js.map +1 -1
- package/lib/module/components/executiontasks/deliver/DeliverET.js +16 -0
- package/lib/module/components/executiontasks/deliver/DeliverET.js.map +1 -1
- package/lib/module/components/executiontasks/deliver/SLDeliverET.js +52 -2
- package/lib/module/components/executiontasks/deliver/SLDeliverET.js.map +1 -1
- package/lib/module/components/executiontasks/display/DisplayModalET.js +16 -0
- package/lib/module/components/executiontasks/display/DisplayModalET.js.map +1 -1
- package/lib/module/components/executiontasks/doodle/SignatureET.js +41 -4
- package/lib/module/components/executiontasks/doodle/SignatureET.js.map +1 -1
- package/lib/module/components/executiontasks/dropCash/DropCashET.js +16 -0
- package/lib/module/components/executiontasks/dropCash/DropCashET.js.map +1 -1
- package/lib/module/components/executiontasks/dropCash/SLDropCash.js +23 -0
- package/lib/module/components/executiontasks/dropCash/SLDropCash.js.map +1 -1
- package/lib/module/components/executiontasks/forms/FormGenerator.js +41 -18
- package/lib/module/components/executiontasks/forms/FormGenerator.js.map +1 -1
- package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js +14 -3
- package/lib/module/components/executiontasks/forms/widgets/DateTimeWidget.js.map +1 -1
- package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js +12 -1
- package/lib/module/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +29 -16
- package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +72 -7
- package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
- package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js +23 -0
- package/lib/module/components/executiontasks/payments/completePayment/CompletePaymentET.js.map +1 -1
- package/lib/module/components/executiontasks/payments/init/InitPaymentET.js +37 -0
- package/lib/module/components/executiontasks/payments/init/InitPaymentET.js.map +1 -1
- package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js +23 -0
- package/lib/module/components/executiontasks/payments/processPayment/ProcessPaymentET.js.map +1 -1
- package/lib/module/components/executiontasks/pickup/PickupET.js +16 -0
- package/lib/module/components/executiontasks/pickup/PickupET.js.map +1 -1
- package/lib/module/components/executiontasks/pickup/SLPickupET.js +44 -0
- package/lib/module/components/executiontasks/pickup/SLPickupET.js.map +1 -1
- package/lib/module/components/executiontasks/scan/ScanET.js +40 -1
- package/lib/module/components/executiontasks/scan/ScanET.js.map +1 -1
- package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js +23 -0
- package/lib/module/components/executiontasks/scan/sub_components/SummaryPage.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +30 -0
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/sub-components/OTPInput.js.map +1 -1
- package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js +9 -0
- package/lib/module/components/executiontasks/verifyOtp/VerifyOtpET.js.map +1 -1
- package/lib/module/components/widgets/CancelOrderDialog.js +16 -0
- package/lib/module/components/widgets/CancelOrderDialog.js.map +1 -1
- package/lib/module/components/widgets/Card.js +17 -1
- package/lib/module/components/widgets/Card.js.map +1 -1
- package/lib/module/components/widgets/ModalWidget.js +22 -2
- package/lib/module/components/widgets/ModalWidget.js.map +1 -1
- package/lib/module/components/widgets/SearchBar.js +9 -0
- package/lib/module/components/widgets/SearchBar.js.map +1 -1
- package/lib/module/components/widgets/SnackBarCustom.js +9 -0
- package/lib/module/components/widgets/SnackBarCustom.js.map +1 -1
- package/lib/module/components/widgets/SplitTextInput.js +9 -0
- package/lib/module/components/widgets/SplitTextInput.js.map +1 -1
- package/lib/module/components/widgets/TabsComponent.js +12 -1
- package/lib/module/components/widgets/TabsComponent.js.map +1 -1
- package/lib/module/index.js +11 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/manager/location/LocationManager.js +9 -2
- package/lib/module/manager/location/LocationManager.js.map +1 -1
- package/lib/module/manager/sdk/DispatchSDKManager.js +3 -3
- package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
- package/lib/module/manager/sdk/DispatchSdkCache.js +3 -2
- package/lib/module/manager/sdk/DispatchSdkCache.js.map +1 -1
- package/lib/module/manager/sdk/callbacksHandler.js +8 -1
- package/lib/module/manager/sdk/callbacksHandler.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/document/DocumentHttpClient.js +77 -3
- package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentManager.js +17 -3
- package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +207 -7
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/module/models/execTasks/ETBaseModels.js.map +1 -1
- package/lib/module/models/sdk.js.map +1 -1
- package/lib/module/styles/executionTasks/CommonStyles.js +5 -5
- package/lib/module/styles/executionTasks/CommonStyles.js.map +1 -1
- package/lib/module/ui/screens/DeliverScreen.js +18 -1
- package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
- package/lib/module/ui/screens/DoodleScreen.js +9 -0
- package/lib/module/ui/screens/DoodleScreen.js.map +1 -1
- package/lib/module/ui/screens/DropCashScreen.js +10 -0
- package/lib/module/ui/screens/DropCashScreen.js.map +1 -1
- package/lib/module/ui/screens/FormsScreen.js +7 -0
- package/lib/module/ui/screens/FormsScreen.js.map +1 -1
- package/lib/module/ui/screens/GeofenceScreen.js +12 -0
- package/lib/module/ui/screens/GeofenceScreen.js.map +1 -1
- package/lib/module/ui/screens/ImageCaptureScreen.js +9 -0
- package/lib/module/ui/screens/ImageCaptureScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentScreen.js +9 -0
- package/lib/module/ui/screens/PaymentScreen.js.map +1 -1
- package/lib/module/ui/screens/PickupScreen.js +9 -0
- package/lib/module/ui/screens/PickupScreen.js.map +1 -1
- package/lib/module/ui/screens/ValidateOTPScreen.js +12 -0
- package/lib/module/ui/screens/ValidateOTPScreen.js.map +1 -1
- package/lib/module/utils/ExecTaskUtils.js +30 -13
- package/lib/module/utils/ExecTaskUtils.js.map +1 -1
- package/lib/module/utils/Logger.js +54 -39
- package/lib/module/utils/Logger.js.map +1 -1
- package/lib/module/utils/SyncManagerUtils.js +12 -2
- package/lib/module/utils/SyncManagerUtils.js.map +1 -1
- package/lib/module/utils/utils.js +22 -0
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/typescript/analytics/firebase/FirebaseLogging.d.ts +2 -0
- package/lib/typescript/analytics/sentry/SentryAnalyticsSingleton.d.ts +11 -0
- package/lib/typescript/analytics/sentry/SentryAnalyticsUtils.d.ts +2 -0
- package/lib/typescript/analytics/sentry/SentryModels.d.ts +15 -0
- package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +66 -0
- package/lib/typescript/components/executiontasks/imageCapture/CaptureSchema.d.ts +4 -0
- package/lib/typescript/components/executiontasks/imageCapture/CaptureUtils.d.ts +7 -1
- package/lib/typescript/index.d.ts +7 -0
- package/lib/typescript/manager/dispatch/DispatchStateContainer.d.ts +2 -0
- package/lib/typescript/manager/location/LocationManager.d.ts +1 -0
- package/lib/typescript/manager/sdk/DispatchSdkCache.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/document/DocumentManager.d.ts +3 -1
- package/lib/typescript/manager/syncmanager/document/DocumentSyncManager.d.ts +5 -1
- package/lib/typescript/models/execTasks/ETBaseModels.d.ts +25 -6
- package/lib/typescript/models/sdk.d.ts +1 -0
- package/lib/typescript/styles/executionTasks/CommonStyles.d.ts +4 -4
- package/lib/typescript/utils/Logger.d.ts +0 -3
- package/lib/typescript/utils/SyncManagerUtils.d.ts +1 -1
- package/lib/typescript/utils/utils.d.ts +4 -0
- package/package.json +10 -7
- package/src/analytics/firebase/FirebaseLogging.ts +25 -0
- package/src/analytics/sentry/SentryAnalyticsSingleton.ts +35 -0
- package/src/analytics/sentry/SentryAnalyticsUtils.ts +77 -0
- package/src/analytics/sentry/SentryModels.ts +18 -0
- package/src/analytics/sentry/SentrySdkConstants.ts +77 -0
- package/src/components/executiontasks/cancellation/CancelET.tsx +25 -2
- package/src/components/executiontasks/captureInput/CaptureText.tsx +15 -2
- package/src/components/executiontasks/deliver/DeliverET.tsx +8 -0
- package/src/components/executiontasks/deliver/SLDeliverET.tsx +22 -5
- package/src/components/executiontasks/display/DisplayModalET.tsx +8 -0
- package/src/components/executiontasks/doodle/SignatureET.tsx +37 -4
- package/src/components/executiontasks/dropCash/DropCashET.tsx +9 -0
- package/src/components/executiontasks/dropCash/SLDropCash.tsx +11 -0
- package/src/components/executiontasks/forms/FormGenerator.tsx +46 -29
- package/src/components/executiontasks/forms/widgets/DateTimeWidget.tsx +10 -3
- package/src/components/executiontasks/forms/widgets/QRBarcodeScannerWidget.tsx +8 -1
- package/src/components/executiontasks/imageCapture/CaptureSchema.ts +4 -0
- package/src/components/executiontasks/imageCapture/CaptureUtils.ts +45 -18
- package/src/components/executiontasks/imageCapture/ImageCapture.tsx +42 -7
- package/src/components/executiontasks/payments/completePayment/CompletePaymentET.tsx +11 -0
- package/src/components/executiontasks/payments/init/InitPaymentET.tsx +17 -0
- package/src/components/executiontasks/payments/processPayment/ProcessPaymentET.tsx +11 -0
- package/src/components/executiontasks/pickup/PickupET.tsx +8 -0
- package/src/components/executiontasks/pickup/SLPickupET.tsx +19 -0
- package/src/components/executiontasks/scan/ScanET.tsx +19 -1
- package/src/components/executiontasks/scan/sub_components/SummaryPage.tsx +11 -0
- package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +14 -0
- package/src/components/executiontasks/validateOTP/sub-components/OTPInput.tsx +2 -0
- package/src/components/executiontasks/verifyOtp/VerifyOtpET.tsx +5 -0
- package/src/components/widgets/CancelOrderDialog.tsx +7 -0
- package/src/components/widgets/Card.tsx +9 -1
- package/src/components/widgets/ModalWidget.tsx +16 -2
- package/src/components/widgets/SearchBar.tsx +6 -1
- package/src/components/widgets/SnackBarCustom.tsx +4 -0
- package/src/components/widgets/SplitTextInput.tsx +6 -0
- package/src/components/widgets/TabsComponent.tsx +8 -1
- package/src/index.tsx +10 -3
- package/src/manager/location/LocationManager.ts +8 -1
- package/src/manager/sdk/DispatchSDKManager.ts +8 -2
- package/src/manager/sdk/DispatchSdkCache.ts +2 -1
- package/src/manager/sdk/callbacksHandler.ts +12 -1
- package/src/manager/syncmanager/DBConfig.ts +4 -0
- package/src/manager/syncmanager/document/DocumentHttpClient.ts +105 -5
- package/src/manager/syncmanager/document/DocumentManager.ts +28 -2
- package/src/manager/syncmanager/document/DocumentSyncManager.ts +230 -5
- package/src/models/execTasks/ETBaseModels.ts +20 -7
- package/src/models/sdk.ts +1 -0
- package/src/styles/executionTasks/CommonStyles.ts +5 -5
- package/src/ui/screens/DeliverScreen.tsx +9 -0
- package/src/ui/screens/DoodleScreen.tsx +5 -0
- package/src/ui/screens/DropCashScreen.tsx +6 -0
- package/src/ui/screens/FormsScreen.tsx +3 -0
- package/src/ui/screens/GeofenceScreen.tsx +11 -1
- package/src/ui/screens/ImageCaptureScreen.tsx +5 -0
- package/src/ui/screens/PaymentScreen.tsx +5 -0
- package/src/ui/screens/PickupScreen.tsx +7 -1
- package/src/ui/screens/ValidateOTPScreen.tsx +10 -0
- package/src/utils/ExecTaskUtils.ts +36 -10
- package/src/utils/Logger.ts +50 -51
- package/src/utils/SyncManagerUtils.ts +20 -2
- package/src/utils/utils.ts +23 -0
|
@@ -3,6 +3,10 @@ import * as FileSystem from 'expo-file-system';
|
|
|
3
3
|
import { FileSystemUploadType } from 'expo-file-system';
|
|
4
4
|
import DispatchSdkCache from '../../sdk/DispatchSdkCache';
|
|
5
5
|
import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
6
|
+
import RNFS from 'react-native-fs';
|
|
7
|
+
import { SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
|
|
8
|
+
import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
|
|
9
|
+
import { flattenObject } from '../../../utils/utils';
|
|
6
10
|
const cache = DispatchSdkCache.getInstance();
|
|
7
11
|
const cacheKeys = DispatchSdkCache.KEYS;
|
|
8
12
|
export default class DocumentHttpClient extends HttpClient {
|
|
@@ -12,6 +16,23 @@ export default class DocumentHttpClient extends HttpClient {
|
|
|
12
16
|
async uploadDocument(document) {
|
|
13
17
|
if (document.base64 && document.data != null) {
|
|
14
18
|
const response = await this.uploadBase64File(document);
|
|
19
|
+
let info = '';
|
|
20
|
+
if (response && response.data !== null && response.data.body !== null && response.status !== 202) {
|
|
21
|
+
let body = response.data.body;
|
|
22
|
+
info = body.substring(40);
|
|
23
|
+
} else {
|
|
24
|
+
info = String(response.status);
|
|
25
|
+
}
|
|
26
|
+
let extraParameters = {
|
|
27
|
+
response: info
|
|
28
|
+
};
|
|
29
|
+
fireEventWithScreenName({
|
|
30
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
31
|
+
eventName: SentryEventNameSdkConstants.API_RESPONSE,
|
|
32
|
+
screenName: 'Upload_Base64_File_Response',
|
|
33
|
+
extraParams: extraParameters
|
|
34
|
+
});
|
|
35
|
+
Logger.getInstance().logEvent('uploadBase64FileResponse', flattenObject(extraParameters), LOG_TYPE.SDK_ERROR);
|
|
15
36
|
if (response && response.data != null && response.data.data != null && response.data.data.id && response.status === 202) {
|
|
16
37
|
return response.data.data.id;
|
|
17
38
|
} else {
|
|
@@ -19,21 +40,45 @@ export default class DocumentHttpClient extends HttpClient {
|
|
|
19
40
|
}
|
|
20
41
|
} else {
|
|
21
42
|
const uploadResponse = await this.uploadBinaryFile(document);
|
|
22
|
-
|
|
43
|
+
let info = '';
|
|
44
|
+
if (uploadResponse && uploadResponse.body !== null && uploadResponse.status !== 202) {
|
|
45
|
+
let body = uploadResponse.body;
|
|
46
|
+
info = body.substring(40);
|
|
47
|
+
} else {
|
|
48
|
+
info = String(uploadResponse.status);
|
|
49
|
+
}
|
|
50
|
+
let extraParams = {
|
|
51
|
+
response: info
|
|
52
|
+
};
|
|
53
|
+
fireEventWithScreenName({
|
|
54
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
55
|
+
eventName: SentryEventNameSdkConstants.API_RESPONSE,
|
|
56
|
+
screenName: 'Upload_Binary_File_Response',
|
|
57
|
+
extraParams: extraParams
|
|
58
|
+
});
|
|
59
|
+
Logger.getInstance().logEvent('uploadBinaryFileResponse', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
|
|
23
60
|
if (uploadResponse != null && uploadResponse.status === 202 && uploadResponse.body != null) {
|
|
24
61
|
var _JSON$parse;
|
|
25
62
|
FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE
|
|
63
|
+
FileSystem.deleteAsync(document.processed_file_path).then().catch(); // WE DELETE FILE HERE
|
|
64
|
+
|
|
26
65
|
return (_JSON$parse = JSON.parse(uploadResponse.body)) === null || _JSON$parse === void 0 || (_JSON$parse = _JSON$parse.data) === null || _JSON$parse === void 0 ? void 0 : _JSON$parse.id;
|
|
27
66
|
} else {
|
|
28
67
|
return null;
|
|
29
68
|
}
|
|
30
69
|
}
|
|
31
70
|
}
|
|
71
|
+
|
|
72
|
+
// This function will upload processed base64 data (overlayed base64 data ) if exist otherwise will uplaod original base 64 data for pod signature.
|
|
32
73
|
async uploadBase64File(document) {
|
|
74
|
+
let dataToUpload = document.data;
|
|
75
|
+
if (document.processed_file_path !== null && document.processed_file_path !== undefined && document.processed_file_path !== '') {
|
|
76
|
+
dataToUpload = document.processed_file_path;
|
|
77
|
+
}
|
|
33
78
|
let requestBody = JSON.stringify({
|
|
34
79
|
file: {
|
|
35
80
|
type: 'FILE',
|
|
36
|
-
data:
|
|
81
|
+
data: dataToUpload
|
|
37
82
|
},
|
|
38
83
|
description: document.desc,
|
|
39
84
|
tags: [{
|
|
@@ -49,6 +94,17 @@ export default class DocumentHttpClient extends HttpClient {
|
|
|
49
94
|
fileName: document.file_name
|
|
50
95
|
});
|
|
51
96
|
const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
|
|
97
|
+
let extraParams = {
|
|
98
|
+
fileName: document.file_name,
|
|
99
|
+
folderName: document.fms_folder_id
|
|
100
|
+
};
|
|
101
|
+
fireEventWithScreenName({
|
|
102
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
103
|
+
eventName: SentryEventNameSdkConstants.API_CALL,
|
|
104
|
+
screenName: 'Upload_Base64_File_Request',
|
|
105
|
+
extraParams: extraParams
|
|
106
|
+
});
|
|
107
|
+
Logger.getInstance().logEvent('uploadBase64FileRequest', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
|
|
52
108
|
return this.instance.post(`/api/folders/${document.fms_folder_id}/files`, requestBody, {
|
|
53
109
|
headers: {
|
|
54
110
|
'accept': 'application/json',
|
|
@@ -59,10 +115,28 @@ export default class DocumentHttpClient extends HttpClient {
|
|
|
59
115
|
}
|
|
60
116
|
});
|
|
61
117
|
}
|
|
118
|
+
|
|
119
|
+
// This function will upload processed (overlayed file) if exist otherwise will uplaod original file for pod images.
|
|
62
120
|
async uploadBinaryFile(document) {
|
|
63
121
|
const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
|
|
122
|
+
let filePathToUpload = document.file_path;
|
|
123
|
+
let processedFileExist = await RNFS.exists(document.processed_file_path);
|
|
124
|
+
if (processedFileExist) {
|
|
125
|
+
filePathToUpload = document.processed_file_path;
|
|
126
|
+
}
|
|
64
127
|
const url = sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;
|
|
65
|
-
|
|
128
|
+
let extraParams = {
|
|
129
|
+
fileName: document.file_name,
|
|
130
|
+
folderName: document.fms_folder_id
|
|
131
|
+
};
|
|
132
|
+
fireEventWithScreenName({
|
|
133
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
134
|
+
eventName: SentryEventNameSdkConstants.API_CALL,
|
|
135
|
+
screenName: 'Upload_Binary_File_Request',
|
|
136
|
+
extraParams: extraParams
|
|
137
|
+
});
|
|
138
|
+
Logger.getInstance().logEvent('uploadBinaryFileRequest', flattenObject(extraParams), LOG_TYPE.SDK_ERROR);
|
|
139
|
+
return FileSystem.uploadAsync(url, filePathToUpload, {
|
|
66
140
|
headers: {
|
|
67
141
|
'accept': 'application/json',
|
|
68
142
|
'Content-Type': 'multipart/form-data',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","id","status","uploadResponse","uploadBinaryFile","logEvent","JSON","stringify","SDK_INFO","body","_JSON$parse","deleteAsync","file_path","then","catch","parse","requestBody","file","type","description","desc","tags","key","value","dispatch_id","file_name","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","instance","post","fms_folder_id","headers","accessToken","tenantID","url","tenantBaseURL","uploadAsync","httpMethod","uploadType","MULTIPART","fieldName","parameters"],"sources":["DocumentHttpClient.ts"],"sourcesContent":["import HttpClient from '../../../network/client';\nimport type { DocumentRow } from '../DBConfig';\nimport type { AxiosResponse } from 'axios';\nimport * as FileSystem from 'expo-file-system';\nimport { FileSystemUploadResult, FileSystemUploadType } from 'expo-file-system';\nimport DispatchSdkCache from '../../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { DispatchSDKConfig } from '../../../models/sdk';\n\nconst cache = DispatchSdkCache.getInstance();\nconst cacheKeys = DispatchSdkCache.KEYS;\nexport default class DocumentHttpClient extends HttpClient {\n constructor(baseURL: string) {\n super(baseURL);\n }\n public async uploadDocument(document: DocumentRow): Promise<string | null> {\n if (document.base64 && document.data != null) {\n const response = await this.uploadBase64File(document);\n if (\n response &&\n response.data != null &&\n response.data.data != null &&\n response.data.data.id &&\n response.status === 202\n ) {\n return response.data.data.id;\n } else {\n return null;\n }\n } else {\n const uploadResponse = await this.uploadBinaryFile(document);\n Logger.getInstance().logEvent(\n 'uploadDocument',\n JSON.stringify(uploadResponse),\n LOG_TYPE.SDK_INFO\n );\n if (\n uploadResponse != null &&\n uploadResponse.status === 202 &&\n uploadResponse.body != null\n ) {\n FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE\n return JSON.parse(uploadResponse.body)?.data?.id;\n } else {\n return null;\n }\n }\n }\n\n public async uploadBase64File(document: DocumentRow): Promise<AxiosResponse> {\n let requestBody = JSON.stringify({\n file: {\n type: 'FILE',\n data: document.data,\n },\n description: document.desc,\n tags: [\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ],\n fileName: document.file_name,\n });\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n return this.instance.post(\n `/api/folders/${document.fms_folder_id}/files`,\n requestBody,\n {\n headers: {\n 'accept': 'application/json',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'Content-Type': 'application/json',\n },\n }\n );\n }\n private async uploadBinaryFile(\n document: DocumentRow\n ): Promise<FileSystemUploadResult> {\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n const url =\n sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;\n return FileSystem.uploadAsync(url, document.file_path, {\n headers: {\n 'accept': 'application/json',\n 'Content-Type': 'multipart/form-data',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n },\n httpMethod: 'POST',\n uploadType: FileSystemUploadType.MULTIPART,\n fieldName: 'file',\n parameters: {\n tags: JSON.stringify([\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ]),\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","RNFS","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","flattenObject","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","info","body","status","substring","String","extraParameters","severityLevel","LOG","eventName","API_RESPONSE","screenName","extraParams","logEvent","SDK_ERROR","id","uploadResponse","uploadBinaryFile","_JSON$parse","deleteAsync","file_path","then","catch","processed_file_path","JSON","parse","dataToUpload","undefined","requestBody","stringify","file","type","description","desc","tags","key","value","dispatch_id","file_name","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","folderName","fms_folder_id","API_CALL","instance","post","headers","accessToken","tenantID","filePathToUpload","processedFileExist","exists","url","tenantBaseURL","uploadAsync","httpMethod","uploadType","MULTIPART","fieldName","parameters"],"sources":["DocumentHttpClient.ts"],"sourcesContent":["import HttpClient from '../../../network/client';\nimport type { DocumentRow } from '../DBConfig';\nimport type { AxiosResponse } from 'axios';\nimport * as FileSystem from 'expo-file-system';\nimport { FileSystemUploadResult, FileSystemUploadType } from 'expo-file-system';\nimport DispatchSdkCache from '../../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { DispatchSDKConfig } from '../../../models/sdk';\nimport RNFS from 'react-native-fs';\nimport { stat } from 'react-native-fs';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nimport { flattenObject } from '../../../utils/utils';\n\nconst cache = DispatchSdkCache.getInstance();\nconst cacheKeys = DispatchSdkCache.KEYS;\nexport default class DocumentHttpClient extends HttpClient {\n constructor(baseURL: string) {\n super(baseURL);\n }\n public async uploadDocument(document: DocumentRow): Promise<string | null> {\n if (document.base64 && document.data != null) {\n const response = await this.uploadBase64File(document);\n\n let info = '';\n if (\n response &&\n response.data !== null &&\n response.data.body !== null &&\n response.status !== 202\n ) {\n let body = response.data.body;\n info = body.substring(40);\n } else {\n info = String(response.status);\n }\n let extraParameters = { response: info };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'Upload_Base64_File_Response',\n extraParams: extraParameters,\n });\n\n Logger.getInstance().logEvent(\n 'uploadBase64FileResponse',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n if (\n response &&\n response.data != null &&\n response.data.data != null &&\n response.data.data.id &&\n response.status === 202\n ) {\n return response.data.data.id;\n } else {\n return null;\n }\n } else {\n const uploadResponse = await this.uploadBinaryFile(document);\n let info = '';\n if (\n uploadResponse &&\n uploadResponse.body !== null &&\n uploadResponse.status !== 202\n ) {\n let body = uploadResponse.body;\n info = body.substring(40);\n } else {\n info = String(uploadResponse.status);\n }\n let extraParams = { response: info };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'Upload_Binary_File_Response',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileResponse',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n if (\n uploadResponse != null &&\n uploadResponse.status === 202 &&\n uploadResponse.body != null\n ) {\n FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE\n FileSystem.deleteAsync(document.processed_file_path).then().catch(); // WE DELETE FILE HERE\n\n return JSON.parse(uploadResponse.body)?.data?.id;\n } else {\n return null;\n }\n }\n }\n\n // This function will upload processed base64 data (overlayed base64 data ) if exist otherwise will uplaod original base 64 data for pod signature.\n public async uploadBase64File(document: DocumentRow): Promise<AxiosResponse> {\n let dataToUpload = document.data;\n if (\n document.processed_file_path !== null &&\n document.processed_file_path !== undefined &&\n document.processed_file_path !== ''\n ) {\n dataToUpload = document.processed_file_path;\n }\n let requestBody = JSON.stringify({\n file: {\n type: 'FILE',\n data: dataToUpload,\n },\n description: document.desc,\n tags: [\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ],\n fileName: document.file_name,\n });\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n let extraParams = {\n fileName: document.file_name,\n folderName: document.fms_folder_id,\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Base64_File_Request',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBase64FileRequest',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n return this.instance.post(\n `/api/folders/${document.fms_folder_id}/files`,\n requestBody,\n {\n headers: {\n 'accept': 'application/json',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'Content-Type': 'application/json',\n },\n }\n );\n }\n\n // This function will upload processed (overlayed file) if exist otherwise will uplaod original file for pod images.\n private async uploadBinaryFile(\n document: DocumentRow\n ): Promise<FileSystemUploadResult> {\n const sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n let filePathToUpload = document.file_path;\n let processedFileExist = await RNFS.exists(document.processed_file_path);\n if (processedFileExist) {\n filePathToUpload = document.processed_file_path;\n }\n const url =\n sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;\n let extraParams = {\n fileName: document.file_name,\n folderName: document.fms_folder_id,\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Binary_File_Request',\n extraParams: extraParams,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileRequest',\n flattenObject(extraParams),\n LOG_TYPE.SDK_ERROR\n );\n return FileSystem.uploadAsync(url, filePathToUpload, {\n headers: {\n 'accept': 'application/json',\n 'Content-Type': 'multipart/form-data',\n 'X-COREOS-REQUEST-ID': document.dispatch_id,\n 'X-COREOS-TID': sdkConfig.tenantID ?? '',\n 'X-COREOS-ACCESS': sdkConfig.accessToken ?? '',\n },\n httpMethod: 'POST',\n uploadType: FileSystemUploadType.MULTIPART,\n fieldName: 'file',\n parameters: {\n tags: JSON.stringify([\n { key: 'dispatchId', value: document.dispatch_id },\n // { key: 'jobId', value: document.job_id },\n // { key: 'objectiveRef', value: document.objective_ref },\n { key: 'fileName', value: document.file_name },\n ]),\n },\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -28,12 +28,18 @@ export default class DocumentManager {
|
|
|
28
28
|
${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\
|
|
29
29
|
${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\
|
|
30
30
|
${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\
|
|
31
|
+
${DOCUMENT_COLUMNS.GEO_TIMESTAMP} TEXT,\
|
|
32
|
+
${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} TEXT,\
|
|
31
33
|
${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`, []);
|
|
32
34
|
}
|
|
35
|
+
async truncateDocumentTable() {
|
|
36
|
+
await Database.executeQuery(`DELETE FROM ${DOCUMENT_TABLE};`, []);
|
|
37
|
+
}
|
|
33
38
|
async insertDocument(fmsFolderID, desc, dspID,
|
|
34
39
|
// jobID: string,
|
|
35
40
|
// objectiveRef: string,
|
|
36
|
-
base64, fileName, fileType, data, filePath, priority) {
|
|
41
|
+
base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority) {
|
|
42
|
+
console.log('insertDocument2:', fmsFolderID);
|
|
37
43
|
return await Database.executeQuery(`INSERT INTO ${DOCUMENT_TABLE}(\
|
|
38
44
|
${DOCUMENT_COLUMNS.DATA},\
|
|
39
45
|
${DOCUMENT_COLUMNS.DISPATCH_ID},\
|
|
@@ -43,8 +49,10 @@ export default class DocumentManager {
|
|
|
43
49
|
${DOCUMENT_COLUMNS.FILE_NAME},\
|
|
44
50
|
${DOCUMENT_COLUMNS.FILE_TYPE},\
|
|
45
51
|
${DOCUMENT_COLUMNS.DESCRIPTION},\
|
|
46
|
-
${DOCUMENT_COLUMNS.PRIORITY}
|
|
47
|
-
|
|
52
|
+
${DOCUMENT_COLUMNS.PRIORITY},\
|
|
53
|
+
${DOCUMENT_COLUMNS.GEO_TIMESTAMP},\
|
|
54
|
+
${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH}) \
|
|
55
|
+
values (?,?,?,?,?,?,?,?,?,?,?)`, [data, dspID, fmsFolderID, base64, filePath, fileName, fileType, desc, priority ? priority : 1, geoTimeStamp, processedFilePath]);
|
|
48
56
|
}
|
|
49
57
|
async getAllDocuments(dispatchID) {
|
|
50
58
|
if (!dispatchID) {
|
|
@@ -69,6 +77,12 @@ export default class DocumentManager {
|
|
|
69
77
|
if (!id || !fmsID) return;
|
|
70
78
|
await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`, [fmsID, id]);
|
|
71
79
|
}
|
|
80
|
+
|
|
81
|
+
// This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.
|
|
82
|
+
async updateProcesedFilePath(id, origialFilePath, processedFilePath) {
|
|
83
|
+
if (!id || !processedFilePath) return;
|
|
84
|
+
await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.FILE_PATH} = ?, ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`, [origialFilePath, processedFilePath, id]);
|
|
85
|
+
}
|
|
72
86
|
async updateDocSyncError(id, uploadError) {
|
|
73
87
|
if (!id) throw new TypeError('Document ID cannot be null');
|
|
74
88
|
await Database.executeQuery(`UPDATE ${DOCUMENT_TABLE}\
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DOCUMENT_COLUMNS","DOCUMENT_TABLE","Database","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","ID","DATA","BASE64","FILE_PATH","DISPATCH_ID","FILE_NAME","FILE_TYPE","SYNCED","FMS_ID","FMS_FOLDER_ID","PRIORITY","SYNC_ERROR","DESCRIPTION","insertDocument","fmsFolderID","desc","dspID","base64","fileName","fileType","data","filePath","priority","getAllDocuments","dispatchID","resultSet","rows","_array","getAllUnsyncedDocs","deleteAllSyncedDocuments","markDocumentSynced","id","fmsID","updateDocSyncError","uploadError","TypeError","getUnsyncedDocument","rs","_class","_defineProperty"],"sources":["DocumentManager.ts"],"sourcesContent":["import { DOCUMENT_COLUMNS, DOCUMENT_TABLE, DocumentRow } from '../DBConfig';\nimport * as Database from '../database';\nimport type { SQLResultSet } from 'expo-sqlite';\n\nexport default class DocumentManager {\n private static instance: DocumentManager;\n\n private constructor() {}\n\n public static async getInstance(): Promise<DocumentManager> {\n if (!DocumentManager.instance) {\n let managerInstance = new DocumentManager();\n await managerInstance.init();\n DocumentManager.instance = managerInstance;\n }\n return DocumentManager.instance;\n }\n\n public async init(): Promise<void> {\n await Database.executeQuery(\n `CREATE TABLE IF NOT EXISTS ${DOCUMENT_TABLE} (\\\n ${DOCUMENT_COLUMNS.ID} INTEGER PRIMARY KEY AUTOINCREMENT,\\\n ${DOCUMENT_COLUMNS.DATA} TEXT,\\\n ${DOCUMENT_COLUMNS.BASE64} INTEGER NOT NULL DEFAULT 0,\\\n ${DOCUMENT_COLUMNS.FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID} TEXT NOT NULL,\\\n ${DOCUMENT_COLUMNS.FILE_NAME} TEXT,\\\n ${DOCUMENT_COLUMNS.FILE_TYPE} TEXT,\\\n ${DOCUMENT_COLUMNS.SYNCED} INTEGER DEFAULT 0 NOT NULL,\\\n ${DOCUMENT_COLUMNS.FMS_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\\\n ${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`,\n []\n );\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n desc: string,\n dspID: string,\n // jobID: string,\n // objectiveRef: string,\n base64: boolean,\n fileName: string,\n fileType: string,\n data?: string | null,\n filePath?: string | null,\n priority?: number\n ): Promise<SQLResultSet> {\n return await Database.executeQuery(\n `INSERT INTO ${DOCUMENT_TABLE}(\\\n ${DOCUMENT_COLUMNS.DATA},\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID},\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID},\\\n ${DOCUMENT_COLUMNS.BASE64},\\\n ${DOCUMENT_COLUMNS.FILE_PATH},\\\n ${DOCUMENT_COLUMNS.FILE_NAME},\\\n ${DOCUMENT_COLUMNS.FILE_TYPE},\\\n ${DOCUMENT_COLUMNS.DESCRIPTION},\\\n ${DOCUMENT_COLUMNS.PRIORITY}) \\\n values (?,?,?,?,?,?,?,?,?)`,\n [\n data,\n dspID,\n fmsFolderID,\n base64,\n filePath,\n fileName,\n fileType,\n desc,\n priority ? priority : 1,\n ]\n );\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!dispatchID) {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE};`,\n []\n );\n return resultSet.rows._array;\n } else {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.DISPATCH_ID} =?;`,\n [dispatchID]\n );\n return resultSet.rows._array;\n }\n }\n\n public async getAllUnsyncedDocs(): Promise<DocumentRow[]> {\n let resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE} \\\n where ${DOCUMENT_COLUMNS.SYNCED} = 0;`,\n []\n );\n return resultSet.rows._array;\n }\n\n public deleteAllSyncedDocuments(dispatchID: string) {\n return Database.executeQuery(\n `DELETE FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 1 and ${DOCUMENT_COLUMNS.DISPATCH_ID} = ?;`,\n [dispatchID]\n );\n }\n\n public async markDocumentSynced(id: number, fmsID: string): Promise<void> {\n if (!id || !fmsID) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [fmsID, id]\n );\n }\n\n public async updateDocSyncError(\n id: number,\n uploadError: string\n ): Promise<void> {\n if (!id) throw new TypeError('Document ID cannot be null');\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE}\\\n SET \\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} = ?\\\n WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [uploadError, id]\n );\n }\n\n public async getUnsyncedDocument(): Promise<DocumentRow[]> {\n let rs = await Database.executeQuery(\n `SELECT * from ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 0 \\\n ORDER BY ${DOCUMENT_COLUMNS.PRIORITY} ASC LIMIT 1;`,\n []\n );\n return rs.rows._array;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DOCUMENT_COLUMNS","DOCUMENT_TABLE","Database","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","ID","DATA","BASE64","FILE_PATH","DISPATCH_ID","FILE_NAME","FILE_TYPE","SYNCED","FMS_ID","FMS_FOLDER_ID","PRIORITY","SYNC_ERROR","GEO_TIMESTAMP","PROCESSED_FILE_PATH","DESCRIPTION","truncateDocumentTable","insertDocument","fmsFolderID","desc","dspID","base64","fileName","fileType","data","filePath","geoTimeStamp","processedFilePath","priority","console","log","getAllDocuments","dispatchID","resultSet","rows","_array","getAllUnsyncedDocs","deleteAllSyncedDocuments","markDocumentSynced","id","fmsID","updateProcesedFilePath","origialFilePath","updateDocSyncError","uploadError","TypeError","getUnsyncedDocument","rs","_class","_defineProperty"],"sources":["DocumentManager.ts"],"sourcesContent":["import { DOCUMENT_COLUMNS, DOCUMENT_TABLE, DocumentRow } from '../DBConfig';\nimport * as Database from '../database';\nimport type { SQLResultSet } from 'expo-sqlite';\n\nexport default class DocumentManager {\n private static instance: DocumentManager;\n\n private constructor() {}\n\n public static async getInstance(): Promise<DocumentManager> {\n if (!DocumentManager.instance) {\n let managerInstance = new DocumentManager();\n await managerInstance.init();\n DocumentManager.instance = managerInstance;\n }\n return DocumentManager.instance;\n }\n\n public async init(): Promise<void> {\n await Database.executeQuery(\n `CREATE TABLE IF NOT EXISTS ${DOCUMENT_TABLE} (\\\n ${DOCUMENT_COLUMNS.ID} INTEGER PRIMARY KEY AUTOINCREMENT,\\\n ${DOCUMENT_COLUMNS.DATA} TEXT,\\\n ${DOCUMENT_COLUMNS.BASE64} INTEGER NOT NULL DEFAULT 0,\\\n ${DOCUMENT_COLUMNS.FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID} TEXT NOT NULL,\\\n ${DOCUMENT_COLUMNS.FILE_NAME} TEXT,\\\n ${DOCUMENT_COLUMNS.FILE_TYPE} TEXT,\\\n ${DOCUMENT_COLUMNS.SYNCED} INTEGER DEFAULT 0 NOT NULL,\\\n ${DOCUMENT_COLUMNS.FMS_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\\\n ${DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\\\n ${DOCUMENT_COLUMNS.GEO_TIMESTAMP} TEXT,\\\n ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} TEXT,\\\n ${DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`,\n []\n );\n }\n\n public async truncateDocumentTable(): Promise<void> {\n await Database.executeQuery(`DELETE FROM ${DOCUMENT_TABLE};`, []);\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n desc: string,\n dspID: string,\n // jobID: string,\n // objectiveRef: string,\n base64: boolean,\n fileName: string,\n fileType: string,\n data?: string | null,\n filePath?: string | null,\n geoTimeStamp?: string | null,\n processedFilePath?: string | null,\n priority?: number\n ): Promise<SQLResultSet> {\n console.log('insertDocument2:', fmsFolderID);\n return await Database.executeQuery(\n `INSERT INTO ${DOCUMENT_TABLE}(\\\n ${DOCUMENT_COLUMNS.DATA},\\\n ${DOCUMENT_COLUMNS.DISPATCH_ID},\\\n ${DOCUMENT_COLUMNS.FMS_FOLDER_ID},\\\n ${DOCUMENT_COLUMNS.BASE64},\\\n ${DOCUMENT_COLUMNS.FILE_PATH},\\\n ${DOCUMENT_COLUMNS.FILE_NAME},\\\n ${DOCUMENT_COLUMNS.FILE_TYPE},\\\n ${DOCUMENT_COLUMNS.DESCRIPTION},\\\n ${DOCUMENT_COLUMNS.PRIORITY},\\\n ${DOCUMENT_COLUMNS.GEO_TIMESTAMP},\\\n ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH}) \\\n values (?,?,?,?,?,?,?,?,?,?,?)`,\n [\n data,\n dspID,\n fmsFolderID,\n base64,\n filePath,\n fileName,\n fileType,\n desc,\n priority ? priority : 1,\n geoTimeStamp,\n processedFilePath,\n ]\n );\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!dispatchID) {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE};`,\n []\n );\n return resultSet.rows._array;\n } else {\n const resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.DISPATCH_ID} =?;`,\n [dispatchID]\n );\n return resultSet.rows._array;\n }\n }\n\n public async getAllUnsyncedDocs(): Promise<DocumentRow[]> {\n let resultSet = await Database.executeQuery(\n `SELECT * FROM ${DOCUMENT_TABLE} \\\n where ${DOCUMENT_COLUMNS.SYNCED} = 0;`,\n []\n );\n return resultSet.rows._array;\n }\n\n public deleteAllSyncedDocuments(dispatchID: string) {\n return Database.executeQuery(\n `DELETE FROM ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 1 and ${DOCUMENT_COLUMNS.DISPATCH_ID} = ?;`,\n [dispatchID]\n );\n }\n\n public async markDocumentSynced(id: number, fmsID: string): Promise<void> {\n if (!id || !fmsID) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.SYNCED} = 1,${DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [fmsID, id]\n );\n }\n\n // This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.\n public async updateProcesedFilePath(\n id: number,\n origialFilePath: String,\n processedFilePath: String\n ): Promise<void> {\n if (!id || !processedFilePath) return;\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE} SET ${DOCUMENT_COLUMNS.FILE_PATH} = ?, ${DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} = ? WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [origialFilePath, processedFilePath, id]\n );\n }\n\n public async updateDocSyncError(\n id: number,\n uploadError: string\n ): Promise<void> {\n if (!id) throw new TypeError('Document ID cannot be null');\n await Database.executeQuery(\n `UPDATE ${DOCUMENT_TABLE}\\\n SET \\\n ${DOCUMENT_COLUMNS.SYNC_ERROR} = ?\\\n WHERE ${DOCUMENT_COLUMNS.ID} = ?;`,\n [uploadError, id]\n );\n }\n\n public async getUnsyncedDocument(): Promise<DocumentRow[]> {\n let rs = await Database.executeQuery(\n `SELECT * from ${DOCUMENT_TABLE}\\\n WHERE ${DOCUMENT_COLUMNS.SYNCED} = 0 \\\n ORDER BY ${DOCUMENT_COLUMNS.PRIORITY} ASC LIMIT 1;`,\n []\n );\n return rs.rows._array;\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,11 +4,18 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typ
|
|
|
4
4
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
5
5
|
import DocumentManager from './DocumentManager';
|
|
6
6
|
import DocumentHttpClient from './DocumentHttpClient';
|
|
7
|
-
import { isEmptyOrBlank } from '../../../utils/utils';
|
|
7
|
+
import { isEmptyOrBlank, flattenObject } from '../../../utils/utils';
|
|
8
8
|
import { BaseError } from '../../../errors/BaseError';
|
|
9
9
|
import BaseErrorCodes, { InvalidArgumentsError, InvalidBaseURL, SyncManagerNotInitialized } from '../../../errors/ErrorCodes';
|
|
10
10
|
import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
11
11
|
import NetworkUtil from '../../../utils/NetworkUtil';
|
|
12
|
+
import Marker, { Position, TextBackgroundType, ImageFormat } from 'react-native-image-marker';
|
|
13
|
+
import RNFS from 'react-native-fs';
|
|
14
|
+
import Storage from '../../../utils/storage';
|
|
15
|
+
import { Platform } from 'react-native';
|
|
16
|
+
import { SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';
|
|
17
|
+
import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
|
|
18
|
+
const latlngToDms = require('latlng-to-dms');
|
|
12
19
|
export default class DocumentSyncManager {
|
|
13
20
|
get retries() {
|
|
14
21
|
return this._retries;
|
|
@@ -71,8 +78,8 @@ export default class DocumentSyncManager {
|
|
|
71
78
|
async insertDocument(fmsFolderID, data, base64, desc, dspID,
|
|
72
79
|
// jobID: string,
|
|
73
80
|
// objRef: string,
|
|
74
|
-
filePath, fileType, fileName) {
|
|
75
|
-
let priority = arguments.length >
|
|
81
|
+
filePath, fileType, fileName, geoTimeStamp, processedFilePath) {
|
|
82
|
+
let priority = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 1;
|
|
76
83
|
if (isEmptyOrBlank(desc) || isEmptyOrBlank(dspID) ||
|
|
77
84
|
// isEmptyOrBlank(jobID) ||
|
|
78
85
|
// isEmptyOrBlank(objRef) ||
|
|
@@ -82,10 +89,11 @@ export default class DocumentSyncManager {
|
|
|
82
89
|
Logger.getInstance().logEvent('insertDocument', 'INIT DOC SYNC AGAIN', LOG_TYPE.SDK_INFO);
|
|
83
90
|
this.docManager = await DocumentManager.getInstance();
|
|
84
91
|
}
|
|
92
|
+
console.log('insertDocument1:', fmsFolderID);
|
|
85
93
|
let insertResponse = await ((_this$docManager = this.docManager) === null || _this$docManager === void 0 ? void 0 : _this$docManager.insertDocument(fmsFolderID, desc, dspID,
|
|
86
94
|
// jobID,
|
|
87
95
|
// objRef,
|
|
88
|
-
base64, fileName, fileType, data, filePath, priority));
|
|
96
|
+
base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority));
|
|
89
97
|
return insertResponse;
|
|
90
98
|
}
|
|
91
99
|
}
|
|
@@ -102,6 +110,16 @@ export default class DocumentSyncManager {
|
|
|
102
110
|
Logger.getInstance().logEvent('updateDocument', err.message, LOG_TYPE.SDK_WARNING);
|
|
103
111
|
}
|
|
104
112
|
}
|
|
113
|
+
|
|
114
|
+
// This function is updating processed_file_path column for the base64 overlayed data and overlayed image file for POD. Also if it is base 64 then it is also storing temprary file path in file_path as original bae64 image.
|
|
115
|
+
async updateDocumentProcessedPath(documentRow, origialFilePath, processedPath) {
|
|
116
|
+
if (!this.docManager) this.docManager = await DocumentManager.getInstance();
|
|
117
|
+
try {
|
|
118
|
+
await this.docManager.updateProcesedFilePath(documentRow.id, origialFilePath, processedPath);
|
|
119
|
+
} catch (err) {
|
|
120
|
+
Logger.getInstance().logEvent('updateDocument', err.message, LOG_TYPE.SDK_WARNING);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
105
123
|
async updateDocError(documentRow, uploadError) {
|
|
106
124
|
if (!this.docManager) this.docManager = await DocumentManager.getInstance();
|
|
107
125
|
try {
|
|
@@ -115,21 +133,203 @@ export default class DocumentSyncManager {
|
|
|
115
133
|
throw new BaseError(BaseErrorCodes.SyncManagerNotInitialized, SyncManagerNotInitialized);
|
|
116
134
|
}
|
|
117
135
|
}
|
|
136
|
+
|
|
137
|
+
// This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.
|
|
138
|
+
async processImageData(documentRow) {
|
|
139
|
+
// If processed_file_path of overlayed image already existing then do not generate it again.
|
|
140
|
+
if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
|
|
141
|
+
let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
|
|
142
|
+
let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
|
|
143
|
+
let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
|
|
144
|
+
let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
|
|
145
|
+
let lat = objGeoStamp.lat; // Latitide
|
|
146
|
+
let lng = objGeoStamp.lng; // Longitude
|
|
147
|
+
let accuracy = objGeoStamp.accuracy; // Location accuracy
|
|
148
|
+
let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
|
|
149
|
+
let strDMSWithAccuracy = strDMS;
|
|
150
|
+
if (accuracy !== '') {
|
|
151
|
+
strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
let fontSize = 14;
|
|
155
|
+
let fileSize = await Storage.getInstance().getItem('maxSize'); // File max size
|
|
156
|
+
let cRatio = await Storage.getInstance().getItem('cRatio'); // File compression ratio
|
|
157
|
+
let nFileSize = Number(fileSize);
|
|
158
|
+
let ncRatio = Number(cRatio);
|
|
159
|
+
let wholeRatio = Math.round(ncRatio * 100); // Compression ratio to be made
|
|
160
|
+
if (Platform.OS !== 'android') {
|
|
161
|
+
fontSize = 28;
|
|
162
|
+
}
|
|
163
|
+
if (wholeRatio >= 75) {
|
|
164
|
+
wholeRatio = 25;
|
|
165
|
+
}
|
|
166
|
+
const options = {
|
|
167
|
+
backgroundImage: {
|
|
168
|
+
// Image for overlay
|
|
169
|
+
src: documentRow.file_path,
|
|
170
|
+
scale: 1
|
|
171
|
+
},
|
|
172
|
+
watermarkTexts: [{
|
|
173
|
+
text: `${dateTime}\n${strDMSWithAccuracy}`,
|
|
174
|
+
//Overlay text
|
|
175
|
+
position: {
|
|
176
|
+
position: Position.topLeft // Overlay text position
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
style: {
|
|
180
|
+
// Style for overlay
|
|
181
|
+
color: '#ffffff',
|
|
182
|
+
fontSize: fontSize,
|
|
183
|
+
fontName: 'Arial',
|
|
184
|
+
textBackgroundStyle: {
|
|
185
|
+
padding: '1% 1%',
|
|
186
|
+
type: TextBackgroundType.none,
|
|
187
|
+
color: '#444444CC'
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}],
|
|
191
|
+
scale: 1,
|
|
192
|
+
quality: 100 - wholeRatio,
|
|
193
|
+
// Compressio ratio in which file will generate
|
|
194
|
+
maxSize: nFileSize,
|
|
195
|
+
// Max file size in which file will generate
|
|
196
|
+
filename: pFilePath,
|
|
197
|
+
saveFormat: ImageFormat.jpg // Saving in jpeg format
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
let processedFilePath = await Marker.markText(options); // Generating overlay image
|
|
201
|
+
if (processedFilePath !== null && processedFilePath !== '') {
|
|
202
|
+
let completeFilePath = processedFilePath;
|
|
203
|
+
// If processd image file path does not have prefix file:// then we are addding manually
|
|
204
|
+
if (!processedFilePath.includes('file')) {
|
|
205
|
+
completeFilePath = 'file://' + processedFilePath;
|
|
206
|
+
}
|
|
207
|
+
// Updating document document table with overlayed image path
|
|
208
|
+
this.updateDocumentProcessedPath(documentRow, documentRow.file_path,
|
|
209
|
+
//original file path catprued from camera
|
|
210
|
+
completeFilePath // completeFilePath is the path with file:// of processed file
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
documentRow.processed_file_path = completeFilePath;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return documentRow;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.
|
|
220
|
+
async processBase64Data(documentRow) {
|
|
221
|
+
// If base64 overlayed data already existing then do not generate it again.
|
|
222
|
+
if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
|
|
223
|
+
let filePath = '';
|
|
224
|
+
// If templrary base 64 file already exist then do not create again
|
|
225
|
+
if (documentRow.file_path === null || documentRow.file_path === '') {
|
|
226
|
+
const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;
|
|
227
|
+
await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location
|
|
228
|
+
filePath = imagePath;
|
|
229
|
+
// If file generated frommbase64 data does not have file:// then we are adding manually.
|
|
230
|
+
if (!imagePath.includes('file')) {
|
|
231
|
+
filePath = `file://${imagePath}`;
|
|
232
|
+
}
|
|
233
|
+
documentRow.file_path = filePath;
|
|
234
|
+
} else {
|
|
235
|
+
filePath = documentRow.file_path;
|
|
236
|
+
}
|
|
237
|
+
let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
|
|
238
|
+
let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
|
|
239
|
+
let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
|
|
240
|
+
let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
|
|
241
|
+
let lat = objGeoStamp.lat; // Latitide
|
|
242
|
+
let lng = objGeoStamp.lng; // Longitude
|
|
243
|
+
let accuracy = objGeoStamp.accuracy; // Location accuracy
|
|
244
|
+
let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
|
|
245
|
+
let strDMSWithAccuracy = strDMS;
|
|
246
|
+
if (accuracy !== '') {
|
|
247
|
+
strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const options = {
|
|
251
|
+
backgroundImage: {
|
|
252
|
+
src: filePath,
|
|
253
|
+
// Image for overlay
|
|
254
|
+
scale: 1
|
|
255
|
+
},
|
|
256
|
+
watermarkTexts: [{
|
|
257
|
+
text: `${dateTime}\n${strDMSWithAccuracy}`,
|
|
258
|
+
// Ooverlay text
|
|
259
|
+
position: {
|
|
260
|
+
position: Position.topLeft // Overlay text position
|
|
261
|
+
},
|
|
262
|
+
|
|
263
|
+
style: {
|
|
264
|
+
// Style for overlay
|
|
265
|
+
color: '#ffffff',
|
|
266
|
+
fontSize: 14,
|
|
267
|
+
fontName: 'Arial',
|
|
268
|
+
textBackgroundStyle: {
|
|
269
|
+
padding: '1% 1%',
|
|
270
|
+
type: TextBackgroundType.none,
|
|
271
|
+
color: '#444444CC'
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}],
|
|
275
|
+
scale: 1,
|
|
276
|
+
quality: 100,
|
|
277
|
+
filename: pFilePath,
|
|
278
|
+
saveFormat: ImageFormat.base64 // Saving in base6 format
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
let processedBase64 = await Marker.markText(options); // Generating overlay image
|
|
282
|
+
if (processedBase64 !== null && processedBase64 !== '') {
|
|
283
|
+
// Fetching base64 data from processed data.
|
|
284
|
+
var splittedDase64Data = processedBase64.split('data:image/png;base64,');
|
|
285
|
+
// Updating document document table with overlayed base64 data
|
|
286
|
+
await this.updateDocumentProcessedPath(documentRow, filePath, splittedDase64Data[1]);
|
|
287
|
+
documentRow.processed_file_path = splittedDase64Data[1];
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return documentRow;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).
|
|
294
|
+
async processPODData(documentRow) {
|
|
295
|
+
if (documentRow.base64 && documentRow.data != null) {
|
|
296
|
+
return await this.processBase64Data(documentRow);
|
|
297
|
+
} else {
|
|
298
|
+
return await this.processImageData(documentRow);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
118
301
|
async uploadDocToServer(documentRow) {
|
|
119
302
|
try {
|
|
120
303
|
var _this$documentHttpCli;
|
|
304
|
+
let docRow = await this.processPODData(documentRow);
|
|
305
|
+
console.log('uploadDocToServer999:', docRow);
|
|
121
306
|
let fmsID = await ((_this$documentHttpCli = this.documentHttpClient) === null || _this$documentHttpCli === void 0 ? void 0 : _this$documentHttpCli.uploadDocument(documentRow));
|
|
307
|
+
let extraParameters = {
|
|
308
|
+
fmsID: fmsID ?? '',
|
|
309
|
+
fileName: docRow.file_name,
|
|
310
|
+
folderName: docRow.fms_folder_id
|
|
311
|
+
};
|
|
122
312
|
// TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202
|
|
123
313
|
if (fmsID) {
|
|
124
314
|
this._retries = 0;
|
|
125
|
-
await this.updateDocument(
|
|
315
|
+
await this.updateDocument(docRow, fmsID);
|
|
126
316
|
} else {
|
|
127
317
|
this._retries++;
|
|
128
|
-
Logger.getInstance().logEvent('uploadDocToServer-
|
|
129
|
-
await this.updateDocError(
|
|
318
|
+
Logger.getInstance().logEvent('uploadDocToServer-empty-fms-id', flattenObject(extraParameters), LOG_TYPE.SDK_ERROR);
|
|
319
|
+
await this.updateDocError(docRow, 'Unexpected Error');
|
|
130
320
|
}
|
|
131
321
|
} catch (error) {
|
|
132
322
|
var _error$response, _error$response2;
|
|
323
|
+
const cta = 'uploadDocToServer-error';
|
|
324
|
+
fireEventWithScreenName({
|
|
325
|
+
severityLevel: SeverityLevelValue.ERROR,
|
|
326
|
+
eventName: SentryEventNameSdkConstants.API_ERROR,
|
|
327
|
+
screenName: cta,
|
|
328
|
+
cta: cta,
|
|
329
|
+
extraParams: {
|
|
330
|
+
error: error.message
|
|
331
|
+
}
|
|
332
|
+
});
|
|
133
333
|
this._retries++;
|
|
134
334
|
Logger.getInstance().logEvent('uploadDocToServer-sync-error', error.message, LOG_TYPE.SDK_ERROR);
|
|
135
335
|
await this.updateDocError(documentRow, JSON.stringify({
|