@os1-platform/dispatch-mobile 2.1.6 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/lib/commonjs/analytics/firebase/FirebaseLogging.js +11 -2
  2. package/lib/commonjs/analytics/firebase/FirebaseLogging.js.map +1 -1
  3. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js +6 -2
  4. package/lib/commonjs/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
  5. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js +3 -0
  6. package/lib/commonjs/analytics/sentry/SentrySdkConstants.js.map +1 -1
  7. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js +8 -1
  8. package/lib/commonjs/components/executiontasks/doodle/SignatureET.js.map +1 -1
  9. package/lib/commonjs/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
  10. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js +14 -16
  11. package/lib/commonjs/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  12. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +9 -1
  13. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  14. package/lib/commonjs/index.js +7 -0
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/manager/location/LocationManager.js +9 -2
  17. package/lib/commonjs/manager/location/LocationManager.js.map +1 -1
  18. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +3 -3
  19. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  20. package/lib/commonjs/manager/sdk/callbacksHandler.js +8 -1
  21. package/lib/commonjs/manager/sdk/callbacksHandler.js.map +1 -1
  22. package/lib/commonjs/manager/syncmanager/DBConfig.js +3 -1
  23. package/lib/commonjs/manager/syncmanager/DBConfig.js.map +1 -1
  24. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +77 -3
  25. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  26. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +17 -3
  27. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
  28. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +194 -6
  29. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  30. package/lib/commonjs/models/sdk.js.map +1 -1
  31. package/lib/commonjs/utils/ExecTaskUtils.js.map +1 -1
  32. package/lib/commonjs/utils/SyncManagerUtils.js +12 -2
  33. package/lib/commonjs/utils/SyncManagerUtils.js.map +1 -1
  34. package/lib/commonjs/utils/utils.js +24 -0
  35. package/lib/commonjs/utils/utils.js.map +1 -1
  36. package/lib/module/analytics/firebase/FirebaseLogging.js +11 -2
  37. package/lib/module/analytics/firebase/FirebaseLogging.js.map +1 -1
  38. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js +6 -2
  39. package/lib/module/analytics/sentry/SentryAnalyticsUtils.js.map +1 -1
  40. package/lib/module/analytics/sentry/SentrySdkConstants.js +3 -0
  41. package/lib/module/analytics/sentry/SentrySdkConstants.js.map +1 -1
  42. package/lib/module/components/executiontasks/doodle/SignatureET.js +8 -1
  43. package/lib/module/components/executiontasks/doodle/SignatureET.js.map +1 -1
  44. package/lib/module/components/executiontasks/imageCapture/CaptureSchema.js.map +1 -1
  45. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js +14 -16
  46. package/lib/module/components/executiontasks/imageCapture/CaptureUtils.js.map +1 -1
  47. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +9 -1
  48. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  49. package/lib/module/index.js +2 -0
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/manager/location/LocationManager.js +9 -2
  52. package/lib/module/manager/location/LocationManager.js.map +1 -1
  53. package/lib/module/manager/sdk/DispatchSDKManager.js +3 -3
  54. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  55. package/lib/module/manager/sdk/callbacksHandler.js +8 -1
  56. package/lib/module/manager/sdk/callbacksHandler.js.map +1 -1
  57. package/lib/module/manager/syncmanager/DBConfig.js +3 -1
  58. package/lib/module/manager/syncmanager/DBConfig.js.map +1 -1
  59. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +77 -3
  60. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  61. package/lib/module/manager/syncmanager/document/DocumentManager.js +17 -3
  62. package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
  63. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +195 -7
  64. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  65. package/lib/module/models/sdk.js.map +1 -1
  66. package/lib/module/utils/ExecTaskUtils.js.map +1 -1
  67. package/lib/module/utils/SyncManagerUtils.js +12 -2
  68. package/lib/module/utils/SyncManagerUtils.js.map +1 -1
  69. package/lib/module/utils/utils.js +22 -0
  70. package/lib/module/utils/utils.js.map +1 -1
  71. package/lib/typescript/analytics/sentry/SentrySdkConstants.d.ts +3 -0
  72. package/lib/typescript/components/executiontasks/imageCapture/CaptureSchema.d.ts +4 -0
  73. package/lib/typescript/components/executiontasks/imageCapture/CaptureUtils.d.ts +7 -1
  74. package/lib/typescript/index.d.ts +2 -0
  75. package/lib/typescript/manager/location/LocationManager.d.ts +1 -0
  76. package/lib/typescript/manager/sdk/callbacksHandler.d.ts +3 -1
  77. package/lib/typescript/manager/syncmanager/DBConfig.d.ts +4 -0
  78. package/lib/typescript/manager/syncmanager/document/DocumentManager.d.ts +3 -1
  79. package/lib/typescript/manager/syncmanager/document/DocumentSyncManager.d.ts +5 -1
  80. package/lib/typescript/models/sdk.d.ts +1 -0
  81. package/lib/typescript/utils/SyncManagerUtils.d.ts +1 -1
  82. package/lib/typescript/utils/utils.d.ts +4 -0
  83. package/package.json +6 -5
  84. package/src/analytics/firebase/FirebaseLogging.ts +22 -10
  85. package/src/analytics/sentry/SentryAnalyticsUtils.ts +8 -2
  86. package/src/analytics/sentry/SentrySdkConstants.ts +3 -0
  87. package/src/components/executiontasks/doodle/SignatureET.tsx +14 -1
  88. package/src/components/executiontasks/imageCapture/CaptureSchema.ts +4 -0
  89. package/src/components/executiontasks/imageCapture/CaptureUtils.ts +32 -18
  90. package/src/components/executiontasks/imageCapture/ImageCapture.tsx +10 -2
  91. package/src/index.tsx +2 -0
  92. package/src/manager/location/LocationManager.ts +8 -1
  93. package/src/manager/sdk/DispatchSDKManager.ts +8 -2
  94. package/src/manager/sdk/callbacksHandler.ts +12 -1
  95. package/src/manager/syncmanager/DBConfig.ts +4 -0
  96. package/src/manager/syncmanager/document/DocumentHttpClient.ts +105 -5
  97. package/src/manager/syncmanager/document/DocumentManager.ts +28 -2
  98. package/src/manager/syncmanager/document/DocumentSyncManager.ts +220 -5
  99. package/src/models/sdk.ts +1 -0
  100. package/src/utils/ExecTaskUtils.ts +1 -1
  101. package/src/utils/SyncManagerUtils.ts +20 -2
  102. package/src/utils/utils.ts +23 -0
@@ -9,6 +9,10 @@ var _expoFileSystem = _interopRequireWildcard(require("expo-file-system"));
9
9
  var FileSystem = _expoFileSystem;
10
10
  var _DispatchSdkCache = _interopRequireDefault(require("../../sdk/DispatchSdkCache"));
11
11
  var _Logger = _interopRequireWildcard(require("../../../utils/Logger"));
12
+ var _reactNativeFs = _interopRequireDefault(require("react-native-fs"));
13
+ var _SentrySdkConstants = require("../../../analytics/sentry/SentrySdkConstants");
14
+ var _SentryAnalyticsUtils = require("../../../analytics/sentry/SentryAnalyticsUtils");
15
+ var _utils = require("../../../utils/utils");
12
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -21,6 +25,23 @@ class DocumentHttpClient extends _client.default {
21
25
  async uploadDocument(document) {
22
26
  if (document.base64 && document.data != null) {
23
27
  const response = await this.uploadBase64File(document);
28
+ let info = '';
29
+ if (response && response.data !== null && response.data.body !== null && response.status !== 202) {
30
+ let body = response.data.body;
31
+ info = body.substring(40);
32
+ } else {
33
+ info = String(response.status);
34
+ }
35
+ let extraParameters = {
36
+ response: info
37
+ };
38
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
39
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
40
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.API_RESPONSE,
41
+ screenName: 'Upload_Base64_File_Response',
42
+ extraParams: extraParameters
43
+ });
44
+ _Logger.default.getInstance().logEvent('uploadBase64FileResponse', (0, _utils.flattenObject)(extraParameters), _Logger.LOG_TYPE.SDK_ERROR);
24
45
  if (response && response.data != null && response.data.data != null && response.data.data.id && response.status === 202) {
25
46
  return response.data.data.id;
26
47
  } else {
@@ -28,21 +49,45 @@ class DocumentHttpClient extends _client.default {
28
49
  }
29
50
  } else {
30
51
  const uploadResponse = await this.uploadBinaryFile(document);
31
- _Logger.default.getInstance().logEvent('uploadDocument', JSON.stringify(uploadResponse), _Logger.LOG_TYPE.SDK_INFO);
52
+ let info = '';
53
+ if (uploadResponse && uploadResponse.body !== null && uploadResponse.status !== 202) {
54
+ let body = uploadResponse.body;
55
+ info = body.substring(40);
56
+ } else {
57
+ info = String(uploadResponse.status);
58
+ }
59
+ let extraParams = {
60
+ response: info
61
+ };
62
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
63
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
64
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.API_RESPONSE,
65
+ screenName: 'Upload_Binary_File_Response',
66
+ extraParams: extraParams
67
+ });
68
+ _Logger.default.getInstance().logEvent('uploadBinaryFileResponse', (0, _utils.flattenObject)(extraParams), _Logger.LOG_TYPE.SDK_ERROR);
32
69
  if (uploadResponse != null && uploadResponse.status === 202 && uploadResponse.body != null) {
33
70
  var _JSON$parse;
34
71
  FileSystem.deleteAsync(document.file_path).then().catch(); // WE DELETE FILE HERE
72
+ FileSystem.deleteAsync(document.processed_file_path).then().catch(); // WE DELETE FILE HERE
73
+
35
74
  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;
36
75
  } else {
37
76
  return null;
38
77
  }
39
78
  }
40
79
  }
80
+
81
+ // This function will upload processed base64 data (overlayed base64 data ) if exist otherwise will uplaod original base 64 data for pod signature.
41
82
  async uploadBase64File(document) {
83
+ let dataToUpload = document.data;
84
+ if (document.processed_file_path !== null && document.processed_file_path !== undefined && document.processed_file_path !== '') {
85
+ dataToUpload = document.processed_file_path;
86
+ }
42
87
  let requestBody = JSON.stringify({
43
88
  file: {
44
89
  type: 'FILE',
45
- data: document.data
90
+ data: dataToUpload
46
91
  },
47
92
  description: document.desc,
48
93
  tags: [{
@@ -58,6 +103,17 @@ class DocumentHttpClient extends _client.default {
58
103
  fileName: document.file_name
59
104
  });
60
105
  const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
106
+ let extraParams = {
107
+ fileName: document.file_name,
108
+ folderName: document.fms_folder_id
109
+ };
110
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
111
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
112
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.API_CALL,
113
+ screenName: 'Upload_Base64_File_Request',
114
+ extraParams: extraParams
115
+ });
116
+ _Logger.default.getInstance().logEvent('uploadBase64FileRequest', (0, _utils.flattenObject)(extraParams), _Logger.LOG_TYPE.SDK_ERROR);
61
117
  return this.instance.post(`/api/folders/${document.fms_folder_id}/files`, requestBody, {
62
118
  headers: {
63
119
  'accept': 'application/json',
@@ -68,10 +124,28 @@ class DocumentHttpClient extends _client.default {
68
124
  }
69
125
  });
70
126
  }
127
+
128
+ // This function will upload processed (overlayed file) if exist otherwise will uplaod original file for pod images.
71
129
  async uploadBinaryFile(document) {
72
130
  const sdkConfig = await cache.getObjectFromCache(cacheKeys.SDK_CONFIG);
131
+ let filePathToUpload = document.file_path;
132
+ let processedFileExist = await _reactNativeFs.default.exists(document.processed_file_path);
133
+ if (processedFileExist) {
134
+ filePathToUpload = document.processed_file_path;
135
+ }
73
136
  const url = sdkConfig.tenantBaseURL + `/api/folders/${document.fms_folder_id}/files`;
74
- return FileSystem.uploadAsync(url, document.file_path, {
137
+ let extraParams = {
138
+ fileName: document.file_name,
139
+ folderName: document.fms_folder_id
140
+ };
141
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
142
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.LOG,
143
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.API_CALL,
144
+ screenName: 'Upload_Binary_File_Request',
145
+ extraParams: extraParams
146
+ });
147
+ _Logger.default.getInstance().logEvent('uploadBinaryFileRequest', (0, _utils.flattenObject)(extraParams), _Logger.LOG_TYPE.SDK_ERROR);
148
+ return FileSystem.uploadAsync(url, filePathToUpload, {
75
149
  headers: {
76
150
  'accept': 'application/json',
77
151
  'Content-Type': 'multipart/form-data',
@@ -1 +1 @@
1
- {"version":3,"names":["_client","_interopRequireDefault","require","_expoFileSystem","_interopRequireWildcard","FileSystem","_DispatchSdkCache","_Logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","cache","DispatchSdkCache","getInstance","cacheKeys","KEYS","DocumentHttpClient","HttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","id","status","uploadResponse","uploadBinaryFile","Logger","logEvent","JSON","stringify","LOG_TYPE","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","FileSystemUploadType","MULTIPART","fieldName","parameters","exports"],"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":["_client","_interopRequireDefault","require","_expoFileSystem","_interopRequireWildcard","FileSystem","_DispatchSdkCache","_Logger","_reactNativeFs","_SentrySdkConstants","_SentryAnalyticsUtils","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","cache","DispatchSdkCache","getInstance","cacheKeys","KEYS","DocumentHttpClient","HttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","info","body","status","substring","String","extraParameters","fireEventWithScreenName","severityLevel","SeverityLevelValue","LOG","eventName","SentryEventNameSdkConstants","API_RESPONSE","screenName","extraParams","Logger","logEvent","flattenObject","LOG_TYPE","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","RNFS","exists","url","tenantBaseURL","uploadAsync","httpMethod","uploadType","FileSystemUploadType","MULTIPART","fieldName","parameters","exports"],"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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"}
@@ -36,12 +36,18 @@ class DocumentManager {
36
36
  ${_DBConfig.DOCUMENT_COLUMNS.FMS_FOLDER_ID} TEXT,\
37
37
  ${_DBConfig.DOCUMENT_COLUMNS.PRIORITY} INTEGER NOT NULL DEFAULT 1,\
38
38
  ${_DBConfig.DOCUMENT_COLUMNS.SYNC_ERROR} TEXT,\
39
+ ${_DBConfig.DOCUMENT_COLUMNS.GEO_TIMESTAMP} TEXT,\
40
+ ${_DBConfig.DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} TEXT,\
39
41
  ${_DBConfig.DOCUMENT_COLUMNS.DESCRIPTION} TEXT);`, []);
40
42
  }
43
+ async truncateDocumentTable() {
44
+ await Database.executeQuery(`DELETE FROM ${_DBConfig.DOCUMENT_TABLE};`, []);
45
+ }
41
46
  async insertDocument(fmsFolderID, desc, dspID,
42
47
  // jobID: string,
43
48
  // objectiveRef: string,
44
- base64, fileName, fileType, data, filePath, priority) {
49
+ base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority) {
50
+ console.log('insertDocument2:', fmsFolderID);
45
51
  return await Database.executeQuery(`INSERT INTO ${_DBConfig.DOCUMENT_TABLE}(\
46
52
  ${_DBConfig.DOCUMENT_COLUMNS.DATA},\
47
53
  ${_DBConfig.DOCUMENT_COLUMNS.DISPATCH_ID},\
@@ -51,8 +57,10 @@ class DocumentManager {
51
57
  ${_DBConfig.DOCUMENT_COLUMNS.FILE_NAME},\
52
58
  ${_DBConfig.DOCUMENT_COLUMNS.FILE_TYPE},\
53
59
  ${_DBConfig.DOCUMENT_COLUMNS.DESCRIPTION},\
54
- ${_DBConfig.DOCUMENT_COLUMNS.PRIORITY}) \
55
- values (?,?,?,?,?,?,?,?,?)`, [data, dspID, fmsFolderID, base64, filePath, fileName, fileType, desc, priority ? priority : 1]);
60
+ ${_DBConfig.DOCUMENT_COLUMNS.PRIORITY},\
61
+ ${_DBConfig.DOCUMENT_COLUMNS.GEO_TIMESTAMP},\
62
+ ${_DBConfig.DOCUMENT_COLUMNS.PROCESSED_FILE_PATH}) \
63
+ values (?,?,?,?,?,?,?,?,?,?,?)`, [data, dspID, fmsFolderID, base64, filePath, fileName, fileType, desc, priority ? priority : 1, geoTimeStamp, processedFilePath]);
56
64
  }
57
65
  async getAllDocuments(dispatchID) {
58
66
  if (!dispatchID) {
@@ -77,6 +85,12 @@ class DocumentManager {
77
85
  if (!id || !fmsID) return;
78
86
  await Database.executeQuery(`UPDATE ${_DBConfig.DOCUMENT_TABLE} SET ${_DBConfig.DOCUMENT_COLUMNS.SYNCED} = 1,${_DBConfig.DOCUMENT_COLUMNS.FMS_ID} = ? WHERE ${_DBConfig.DOCUMENT_COLUMNS.ID} = ?;`, [fmsID, id]);
79
87
  }
88
+
89
+ // 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.
90
+ async updateProcesedFilePath(id, origialFilePath, processedFilePath) {
91
+ if (!id || !processedFilePath) return;
92
+ await Database.executeQuery(`UPDATE ${_DBConfig.DOCUMENT_TABLE} SET ${_DBConfig.DOCUMENT_COLUMNS.FILE_PATH} = ?, ${_DBConfig.DOCUMENT_COLUMNS.PROCESSED_FILE_PATH} = ? WHERE ${_DBConfig.DOCUMENT_COLUMNS.ID} = ?;`, [origialFilePath, processedFilePath, id]);
93
+ }
80
94
  async updateDocSyncError(id, uploadError) {
81
95
  if (!id) throw new TypeError('Document ID cannot be null');
82
96
  await Database.executeQuery(`UPDATE ${_DBConfig.DOCUMENT_TABLE}\
@@ -1 +1 @@
1
- {"version":3,"names":["_DBConfig","require","Database","_interopRequireWildcard","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_defineProperty","obj","key","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","DOCUMENT_TABLE","DOCUMENT_COLUMNS","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","getUnsyncedDocument","rs","exports"],"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":["_DBConfig","require","Database","_interopRequireWildcard","_class","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_defineProperty","obj","key","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","DocumentManager","constructor","getInstance","instance","managerInstance","init","executeQuery","DOCUMENT_TABLE","DOCUMENT_COLUMNS","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","getUnsyncedDocument","rs","exports"],"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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"}
@@ -11,6 +11,11 @@ var _BaseError = require("../../../errors/BaseError");
11
11
  var _ErrorCodes = _interopRequireWildcard(require("../../../errors/ErrorCodes"));
12
12
  var _Logger = _interopRequireWildcard(require("../../../utils/Logger"));
13
13
  var _NetworkUtil = _interopRequireDefault(require("../../../utils/NetworkUtil"));
14
+ var _reactNativeImageMarker = _interopRequireWildcard(require("react-native-image-marker"));
15
+ var _reactNativeFs = _interopRequireDefault(require("react-native-fs"));
16
+ var _reactNative = require("react-native");
17
+ var _SentrySdkConstants = require("../../../analytics/sentry/SentrySdkConstants");
18
+ var _SentryAnalyticsUtils = require("../../../analytics/sentry/SentryAnalyticsUtils");
14
19
  var _class;
15
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -18,6 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
23
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
24
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
20
25
  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); }
26
+ const latlngToDms = require('latlng-to-dms');
21
27
  class DocumentSyncManager {
22
28
  get retries() {
23
29
  return this._retries;
@@ -80,8 +86,8 @@ class DocumentSyncManager {
80
86
  async insertDocument(fmsFolderID, data, base64, desc, dspID,
81
87
  // jobID: string,
82
88
  // objRef: string,
83
- filePath, fileType, fileName) {
84
- let priority = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 1;
89
+ filePath, fileType, fileName, geoTimeStamp, processedFilePath) {
90
+ let priority = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 1;
85
91
  if ((0, _utils.isEmptyOrBlank)(desc) || (0, _utils.isEmptyOrBlank)(dspID) ||
86
92
  // isEmptyOrBlank(jobID) ||
87
93
  // isEmptyOrBlank(objRef) ||
@@ -91,10 +97,11 @@ class DocumentSyncManager {
91
97
  _Logger.default.getInstance().logEvent('insertDocument', 'INIT DOC SYNC AGAIN', _Logger.LOG_TYPE.SDK_INFO);
92
98
  this.docManager = await _DocumentManager.default.getInstance();
93
99
  }
100
+ console.log('insertDocument1:', fmsFolderID);
94
101
  let insertResponse = await ((_this$docManager = this.docManager) === null || _this$docManager === void 0 ? void 0 : _this$docManager.insertDocument(fmsFolderID, desc, dspID,
95
102
  // jobID,
96
103
  // objRef,
97
- base64, fileName, fileType, data, filePath, priority));
104
+ base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority));
98
105
  return insertResponse;
99
106
  }
100
107
  }
@@ -111,6 +118,16 @@ class DocumentSyncManager {
111
118
  _Logger.default.getInstance().logEvent('updateDocument', err.message, _Logger.LOG_TYPE.SDK_WARNING);
112
119
  }
113
120
  }
121
+
122
+ // 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.
123
+ async updateDocumentProcessedPath(documentRow, origialFilePath, processedPath) {
124
+ if (!this.docManager) this.docManager = await _DocumentManager.default.getInstance();
125
+ try {
126
+ await this.docManager.updateProcesedFilePath(documentRow.id, origialFilePath, processedPath);
127
+ } catch (err) {
128
+ _Logger.default.getInstance().logEvent('updateDocument', err.message, _Logger.LOG_TYPE.SDK_WARNING);
129
+ }
130
+ }
114
131
  async updateDocError(documentRow, uploadError) {
115
132
  if (!this.docManager) this.docManager = await _DocumentManager.default.getInstance();
116
133
  try {
@@ -124,21 +141,192 @@ class DocumentSyncManager {
124
141
  throw new _BaseError.BaseError(_ErrorCodes.default.SyncManagerNotInitialized, _ErrorCodes.SyncManagerNotInitialized);
125
142
  }
126
143
  }
144
+
145
+ // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.
146
+ async processImageData(documentRow) {
147
+ // If processed_file_path of overlayed image already existing then do not generate it again.
148
+ if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
149
+ let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
150
+ let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
151
+ let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
152
+ let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
153
+ let lat = objGeoStamp.lat; // Latitide
154
+ let lng = objGeoStamp.lng; // Longitude
155
+ let accuracy = objGeoStamp.accuracy; // Location accuracy
156
+ let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
157
+ let strDMSWithAccuracy = strDMS;
158
+ if (accuracy !== '') {
159
+ strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
160
+ }
161
+
162
+ let fontSize = 14;
163
+ if (_reactNative.Platform.OS !== 'android') {
164
+ fontSize = 28;
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: _reactNativeImageMarker.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: _reactNativeImageMarker.TextBackgroundType.none,
187
+ color: '#444444CC'
188
+ }
189
+ }
190
+ }],
191
+ scale: 0,
192
+ quality: 100,
193
+ filename: pFilePath,
194
+ saveFormat: _reactNativeImageMarker.ImageFormat.jpg // Saving in jpeg format
195
+ };
196
+
197
+ let processedFilePath = await _reactNativeImageMarker.default.markText(options); // Generating overlay image
198
+ if (processedFilePath !== null && processedFilePath !== '') {
199
+ let completeFilePath = processedFilePath;
200
+ // If processd image file path does not have prefix file:// then we are addding manually
201
+ if (!processedFilePath.includes('file')) {
202
+ completeFilePath = 'file://' + processedFilePath;
203
+ }
204
+ // Updating document document table with overlayed image path
205
+ this.updateDocumentProcessedPath(documentRow, documentRow.file_path,
206
+ //original file path catprued from camera
207
+ completeFilePath // completeFilePath is the path with file:// of processed file
208
+ );
209
+
210
+ documentRow.processed_file_path = completeFilePath;
211
+ }
212
+ }
213
+ return documentRow;
214
+ }
215
+
216
+ // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.
217
+ async processBase64Data(documentRow) {
218
+ // If base64 overlayed data already existing then do not generate it again.
219
+ if (documentRow.processed_file_path === null || documentRow.processed_file_path === '') {
220
+ let filePath = '';
221
+ // If templrary base 64 file already exist then do not create again
222
+ if (documentRow.file_path === null || documentRow.file_path === '') {
223
+ const imagePath = `${_reactNativeFs.default.TemporaryDirectoryPath}/${documentRow.file_name}`;
224
+ await _reactNativeFs.default.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location
225
+ filePath = imagePath;
226
+ // If file generated frommbase64 data does not have file:// then we are adding manually.
227
+ if (!imagePath.includes('file')) {
228
+ filePath = `file://${imagePath}`;
229
+ }
230
+ documentRow.file_path = filePath;
231
+ } else {
232
+ filePath = documentRow.file_path;
233
+ }
234
+ let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.
235
+ let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string
236
+ let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object
237
+ let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format
238
+ let lat = objGeoStamp.lat; // Latitide
239
+ let lng = objGeoStamp.lng; // Longitude
240
+ let accuracy = objGeoStamp.accuracy; // Location accuracy
241
+ let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format
242
+ let strDMSWithAccuracy = strDMS;
243
+ if (accuracy !== '') {
244
+ strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location
245
+ }
246
+
247
+ const options = {
248
+ backgroundImage: {
249
+ src: filePath,
250
+ // Image for overlay
251
+ scale: 1
252
+ },
253
+ watermarkTexts: [{
254
+ text: `${dateTime}\n${strDMSWithAccuracy}`,
255
+ // Ooverlay text
256
+ position: {
257
+ position: _reactNativeImageMarker.Position.topLeft // Overlay text position
258
+ },
259
+
260
+ style: {
261
+ // Style for overlay
262
+ color: '#ffffff',
263
+ fontSize: 14,
264
+ fontName: 'Arial',
265
+ textBackgroundStyle: {
266
+ padding: '1% 1%',
267
+ type: _reactNativeImageMarker.TextBackgroundType.none,
268
+ color: '#444444CC'
269
+ }
270
+ }
271
+ }],
272
+ scale: 1,
273
+ quality: 100,
274
+ filename: pFilePath,
275
+ saveFormat: _reactNativeImageMarker.ImageFormat.base64 // Saving in base6 format
276
+ };
277
+
278
+ let processedBase64 = await _reactNativeImageMarker.default.markText(options); // Generating overlay image
279
+ if (processedBase64 !== null && processedBase64 !== '') {
280
+ // Fetching base64 data from processed data.
281
+ var splittedDase64Data = processedBase64.split('data:image/png;base64,');
282
+ // Updating document document table with overlayed base64 data
283
+ await this.updateDocumentProcessedPath(documentRow, filePath, splittedDase64Data[1]);
284
+ documentRow.processed_file_path = splittedDase64Data[1];
285
+ }
286
+ }
287
+ return documentRow;
288
+ }
289
+
290
+ // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).
291
+ async processPODData(documentRow) {
292
+ if (documentRow.base64 && documentRow.data != null) {
293
+ return await this.processBase64Data(documentRow);
294
+ } else {
295
+ return await this.processImageData(documentRow);
296
+ }
297
+ }
127
298
  async uploadDocToServer(documentRow) {
128
299
  try {
129
300
  var _this$documentHttpCli;
301
+ let docRow = await this.processPODData(documentRow);
302
+ console.log('uploadDocToServer999:', docRow);
130
303
  let fmsID = await ((_this$documentHttpCli = this.documentHttpClient) === null || _this$documentHttpCli === void 0 ? void 0 : _this$documentHttpCli.uploadDocument(documentRow));
304
+ let extraParameters = {
305
+ fmsID: fmsID ?? '',
306
+ fileName: docRow.file_name,
307
+ folderName: docRow.fms_folder_id
308
+ };
131
309
  // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202
132
310
  if (fmsID) {
133
311
  this._retries = 0;
134
- await this.updateDocument(documentRow, fmsID);
312
+ await this.updateDocument(docRow, fmsID);
135
313
  } else {
136
314
  this._retries++;
137
- _Logger.default.getInstance().logEvent('uploadDocToServer-sync-error', 'Unexpected Error', _Logger.LOG_TYPE.SDK_ERROR);
138
- await this.updateDocError(documentRow, 'Unexpected Error');
315
+ _Logger.default.getInstance().logEvent('uploadDocToServer-empty-fms-id', (0, _utils.flattenObject)(extraParameters), _Logger.LOG_TYPE.SDK_ERROR);
316
+ await this.updateDocError(docRow, 'Unexpected Error');
139
317
  }
140
318
  } catch (error) {
141
319
  var _error$response, _error$response2;
320
+ const cta = 'uploadDocToServer-error';
321
+ (0, _SentryAnalyticsUtils.fireEventWithScreenName)({
322
+ severityLevel: _SentrySdkConstants.SeverityLevelValue.ERROR,
323
+ eventName: _SentrySdkConstants.SentryEventNameSdkConstants.API_ERROR,
324
+ screenName: cta,
325
+ cta: cta,
326
+ extraParams: {
327
+ error: error.message
328
+ }
329
+ });
142
330
  this._retries++;
143
331
  _Logger.default.getInstance().logEvent('uploadDocToServer-sync-error', error.message, _Logger.LOG_TYPE.SDK_ERROR);
144
332
  await this.updateDocError(documentRow, JSON.stringify({