@os1-platform/dispatch-mobile 2.1.11 → 2.1.13
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 +15 -9
- package/lib/commonjs/analytics/firebase/FirebaseLogging.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +1 -0
- package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +25 -17
- package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js +2 -1
- package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js +25 -12
- package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/commonjs/utils/Logger.js.map +1 -1
- package/lib/module/analytics/firebase/FirebaseLogging.js +15 -9
- package/lib/module/analytics/firebase/FirebaseLogging.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +1 -0
- package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +25 -17
- package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/ETEventsManager.js +2 -1
- package/lib/module/manager/syncmanager/events/ETEventsManager.js.map +1 -1
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js +25 -12
- package/lib/module/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
- package/lib/module/utils/Logger.js.map +1 -1
- package/package.json +11 -11
- package/src/analytics/firebase/FirebaseLogging.ts +18 -12
- package/src/manager/syncmanager/document/DocumentHttpClient.ts +5 -0
- package/src/manager/syncmanager/document/DocumentSyncManager.ts +30 -21
- package/src/manager/syncmanager/events/ETEventsManager.ts +2 -1
- package/src/manager/syncmanager/events/EventsSyncManager.ts +37 -16
- package/src/utils/Logger.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","RNFS","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","flattenObject","isTokenExpired","callbackHandler","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","info","body","status","substring","String","extraParameters","fName","file_name","length","dName","fms_folder_id","dispId","dispatch_id","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","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","accessToken","refresheAndUpdateToken","API_CALL","instance","post","headers","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, isTokenExpired } from '../../../utils/utils';\nimport callbackHandler from '../../../manager/sdk/callbacksHandler';\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 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 = { \n response: info,\n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'uploadDocument:Upload_Base64_File_Response',\n extraParams: extraParameters,\n });\n\n Logger.getInstance().logEvent(\n 'uploadDocument: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 extraParameters = { \n response: info,\n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'uploadDocument:Upload_Binary_File_Response',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadDocument:uploadBinaryFileResponse',\n flattenObject(extraParameters),\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 let sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n if(isTokenExpired(sdkConfig.accessToken)){\n await callbackHandler.refresheAndUpdateToken();\n sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n }\n let extraParameters = { \n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Base64_File_Request',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadBase64FileRequest',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\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 \n let sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n if(isTokenExpired(sdkConfig.accessToken)){\n await callbackHandler.refresheAndUpdateToken();\n sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n }\n\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 \n let extraParameters = { \n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Binary_File_Request',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileRequest',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\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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"}
|
|
1
|
+
{"version":3,"names":["HttpClient","FileSystem","FileSystemUploadType","DispatchSdkCache","Logger","LOG_TYPE","RNFS","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","flattenObject","isTokenExpired","callbackHandler","cache","getInstance","cacheKeys","KEYS","DocumentHttpClient","constructor","baseURL","uploadDocument","document","base64","data","response","uploadBase64File","info","body","status","substring","String","extraParameters","fName","file_name","length","dName","fms_folder_id","dispId","dispatch_id","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","fileName","sdkConfig","getObjectFromCache","SDK_CONFIG","accessToken","refresheAndUpdateToken","API_CALL","instance","post","headers","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, isTokenExpired } from '../../../utils/utils';\nimport callbackHandler from '../../../manager/sdk/callbacksHandler';\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 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 = { \n response: info,\n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'uploadDocument:Upload_Base64_File_Response',\n extraParams: extraParameters,\n });\n\n Logger.getInstance().logEvent(\n 'uploadDocument: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 extraParameters = { \n response: info,\n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_RESPONSE,\n screenName: 'uploadDocument:Upload_Binary_File_Response',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadDocument:uploadBinaryFileResponse',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n if (\n uploadResponse != null &&\n uploadResponse.status === 202 &&\n uploadResponse.body != null\n ) {\n Logger.getInstance().logEvent(\n 'uploadDocument:DeletingFiles',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\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 let sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n if(isTokenExpired(sdkConfig.accessToken)){\n await callbackHandler.refresheAndUpdateToken();\n sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n }\n let extraParameters = { \n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Base64_File_Request',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadBase64FileRequest',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\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 \n let sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n if(isTokenExpired(sdkConfig.accessToken)){\n await callbackHandler.refresheAndUpdateToken();\n sdkConfig = (await cache.getObjectFromCache(\n cacheKeys.SDK_CONFIG\n )) as DispatchSDKConfig;\n }\n\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 \n let extraParameters = { \n fName: document.file_name && document.file_name.length != 0 ? document.file_name.substring(4): '',\n dName: document.fms_folder_id && document.fms_folder_id.length != 0 ? document.fms_folder_id.substring(4): '',\n dispId: document.dispatch_id && document.dispatch_id.length != 0 ? document.dispatch_id.substring(9): ''\n };\n\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.API_CALL,\n screenName: 'Upload_Binary_File_Request',\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n 'uploadBinaryFileRequest',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\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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"}
|
|
@@ -100,8 +100,7 @@ export default class DocumentSyncManager {
|
|
|
100
100
|
let syncPending = await this.isSyncPending();
|
|
101
101
|
if (syncPending && hasNetwork) {
|
|
102
102
|
await this.startDocumentSync();
|
|
103
|
-
|
|
104
|
-
let cta = 'startDocumentSync-error';
|
|
103
|
+
let cta = 'startDocumentSync-finally-sync-pending';
|
|
105
104
|
let extraParameters = {
|
|
106
105
|
hasNetwork: hasNetwork,
|
|
107
106
|
pending: syncPending
|
|
@@ -119,7 +118,7 @@ export default class DocumentSyncManager {
|
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
120
|
} else {
|
|
122
|
-
let cta = 'startDocumentSync';
|
|
121
|
+
let cta = 'startDocumentSync-max-count-reach-in-progress';
|
|
123
122
|
fireEventWithScreenName({
|
|
124
123
|
severityLevel: SeverityLevelValue.LOG,
|
|
125
124
|
eventName: SentryEventNameSdkConstants.APP_LOG,
|
|
@@ -148,17 +147,6 @@ export default class DocumentSyncManager {
|
|
|
148
147
|
isEmptyOrBlank(fileType) || isEmptyOrBlank(fileName) || base64 && isEmptyOrBlank(data) || !base64 && isEmptyOrBlank(filePath)) throw new BaseError(BaseErrorCodes.InvalidArgumentError, InvalidArgumentsError);else {
|
|
149
148
|
var _this$docManager;
|
|
150
149
|
if (!this.docManager) {
|
|
151
|
-
let cta = 'insertDocument';
|
|
152
|
-
fireEventWithScreenName({
|
|
153
|
-
severityLevel: SeverityLevelValue.LOG,
|
|
154
|
-
eventName: SentryEventNameSdkConstants.APP_LOG,
|
|
155
|
-
screenName: cta,
|
|
156
|
-
cta: cta,
|
|
157
|
-
extraParams: {
|
|
158
|
-
msg: 'INIT DOC SYNC AGAIN'
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
Logger.getInstance().logEvent(cta, 'INIT DOC SYNC AGAIN', LOG_TYPE.SDK_ERROR);
|
|
162
150
|
this.docManager = await DocumentManager.getInstance();
|
|
163
151
|
}
|
|
164
152
|
console.log('insertDocument1:', fmsFolderID);
|
|
@@ -166,6 +154,17 @@ export default class DocumentSyncManager {
|
|
|
166
154
|
// jobID,
|
|
167
155
|
// objRef,
|
|
168
156
|
base64, fileName, fileType, data, filePath, geoTimeStamp, processedFilePath, priority));
|
|
157
|
+
let cta = 'insertDocument';
|
|
158
|
+
fireEventWithScreenName({
|
|
159
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
160
|
+
eventName: SentryEventNameSdkConstants.APP_LOG,
|
|
161
|
+
screenName: cta,
|
|
162
|
+
cta: cta,
|
|
163
|
+
extraParams: {
|
|
164
|
+
msg: 'INIT DOC SYNC AGAIN'
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
Logger.getInstance().logEvent(cta, 'INIT DOC SYNC AGAIN', LOG_TYPE.SDK_ERROR);
|
|
169
168
|
return insertResponse;
|
|
170
169
|
}
|
|
171
170
|
}
|
|
@@ -203,7 +202,17 @@ export default class DocumentSyncManager {
|
|
|
203
202
|
let extraParameters = {
|
|
204
203
|
podId: podId
|
|
205
204
|
};
|
|
206
|
-
|
|
205
|
+
let cta = 'updateDocumentWithAttempt-success';
|
|
206
|
+
fireEventWithScreenName({
|
|
207
|
+
severityLevel: SeverityLevelValue.LOG,
|
|
208
|
+
eventName: SentryEventNameSdkConstants.APP_LOG,
|
|
209
|
+
screenName: cta,
|
|
210
|
+
cta: cta,
|
|
211
|
+
extraParams: {
|
|
212
|
+
msg: flattenObject(extraParameters)
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
Logger.getInstance().logEvent(cta, flattenObject(extraParameters), LOG_TYPE.SDK_ERROR);
|
|
207
216
|
// Calling update method for attempt count and sync to update event row of type POD_DOC
|
|
208
217
|
await eventsManager.markPODDocEventSynced(sync, attempt, podId);
|
|
209
218
|
if (sync == 1) {
|
|
@@ -507,7 +516,6 @@ export default class DocumentSyncManager {
|
|
|
507
516
|
extraParams: extra
|
|
508
517
|
});
|
|
509
518
|
Logger.getInstance().logEvent(cta, flattenObject(extra), LOG_TYPE.SDK_ERROR);
|
|
510
|
-
console.log('uploadDocToServer999:', docRow);
|
|
511
519
|
let fmsID = await ((_this$documentHttpCli = this.documentHttpClient) === null || _this$documentHttpCli === void 0 ? void 0 : _this$documentHttpCli.uploadDocument(docRow));
|
|
512
520
|
let extraParameters = {
|
|
513
521
|
fmsID: fmsID ?? '',
|
|
@@ -571,7 +579,7 @@ export default class DocumentSyncManager {
|
|
|
571
579
|
cta: cta,
|
|
572
580
|
extraParams: extraParameters ? extraParameters : error
|
|
573
581
|
});
|
|
574
|
-
Logger.getInstance().logEvent(cta, extraParameters ? flattenObject(extraParameters) : error, LOG_TYPE.SDK_ERROR);
|
|
582
|
+
Logger.getInstance().logEvent(cta, extraParameters ? flattenObject(extraParameters) : flattenObject(error), LOG_TYPE.SDK_ERROR);
|
|
575
583
|
if (!this.docManager) {
|
|
576
584
|
this.docManager = await DocumentManager.getInstance();
|
|
577
585
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DocumentManager","DocumentHttpClient","isEmptyOrBlank","flattenObject","BaseError","BaseErrorCodes","InvalidArgumentsError","InvalidBaseURL","SyncManagerNotInitialized","Logger","LOG_TYPE","NetworkUtil","ETEventsManager","LAST_SYNCED_EVENT_ID","MAX_RETRY_COUNT","POD_DOC","EventsSyncManager","Marker","Position","TextBackgroundType","ImageFormat","RNFS","Storage","Platform","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","latlngToDms","require","DocumentSyncManager","retries","_retries","value","constructor","_defineProperty","init","baseURL","retryCount","maxRetryCount","documentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","isAvailableAsync","checkForInitialization","docManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","cta","severityLevel","LOG","eventName","APP_LOG","screenName","extraParams","msg","logEvent","SDK_ERROR","error","syncPending","isSyncPending","extraParameters","pending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","undefined","InvalidArgumentError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocumentWithAttempt","documentRow","fmsID","attempt","sync","markDocumentSyncedWithAttempt","id","eventsManager","podId","markPODDocEventSynced","lastSyncedEventId","getSharedItem","syncEventId","parseInt","setSharedItem","startSync","err","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","ERROR","APP_ERROR","updateDocError","uploadError","updateDocSyncError","processImageData","processed_file_path","extra","fName","file_name","substring","dName","fms_folder_id","dispId","dispatch_id","pFilePath","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","none","quality","filename","saveFormat","jpg","markText","completeFilePath","includes","processBase64Data","imagePath","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","geoStampAvailable","uploadDocument","startSyncAfterMaxRetry","_error$response","_error$response2","API_ERROR","stringify","message","response","status","updateDocPriority","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","_class"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport ETEventsManager from '../events/ETEventsManager';\nimport { LAST_SYNCED_EVENT_ID, MAX_RETRY_COUNT, POD_DOC } from '../../syncmanager/constants';\nimport EventsSyncManager from '../events/EventsSyncManager';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = MAX_RETRY_COUNT;\n private _retries = 0;\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n let cta = 'startDocumentSync-NoData'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'No data to sync'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'No data to sync',\n LOG_TYPE.SDK_ERROR\n );\n }\n } else {\n let cta = 'startDocumentSync-NoNetwork'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'No Network'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'No Network',\n LOG_TYPE.SDK_ERROR\n );\n }\n } catch (error: any) {\n let cta = 'startDocumentSync-error'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(error)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(error),\n LOG_TYPE.SDK_ERROR\n );\n } finally {\n this.inProgress = false;\n let syncPending = await this.isSyncPending();\n if (syncPending && hasNetwork) {\n await this.startDocumentSync();\n }else{\n let cta = 'startDocumentSync-error'\n let extraParameters = {\n hasNetwork: hasNetwork,\n pending: syncPending,\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(extraParameters)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n }\n }\n } else {\n let cta = 'startDocumentSync'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'sync already in progress or max count reached'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'sync already in progress or max count reached',\n LOG_TYPE.SDK_ERROR\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n let cta = 'insertDocument'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'INIT DOC SYNC AGAIN'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_ERROR\n );\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n // private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n // if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n // try {\n // await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n // let eventsManager = await ETEventsManager.getInstance();\n // let podId = POD_DOC + '_' + documentRow.id;\n // await eventsManager.markPODDocEventSynced(1, 1, podId);\n // EventsSyncManager.getInstance().startSync();\n // } catch (err: any) {\n // Logger.getInstance().logEvent(\n // 'updateDocument',\n // err.message,\n // LOG_TYPE.SDK_WARNING\n // );\n // }\n // }\n\n // This function will update document row with attempt count and sync status\n private async updateDocumentWithAttempt(\n documentRow: DocumentRow,\n fmsID: string,\n attempt: number,\n sync: number\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n // Calling document row update method for attempt count and sync.\n await this.docManager.markDocumentSyncedWithAttempt(\n documentRow.id,\n fmsID,\n attempt,\n sync\n );\n let eventsManager = await ETEventsManager.getInstance();\n let podId = POD_DOC + '_' + documentRow.id;\n\n let extraParameters = {\n podId: podId,\n };\n Logger.getInstance().logEvent(\n 'updateDocumentWithAttempt-success',\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n // Calling update method for attempt count and sync to update event row of type POD_DOC\n await eventsManager.markPODDocEventSynced(sync, attempt, podId);\n if(sync == 1){\n const lastSyncedEventId = await Storage.getInstance().getSharedItem(\n LAST_SYNCED_EVENT_ID\n );\n const syncEventId = parseInt(lastSyncedEventId) + 1;\n await Storage.getInstance().setSharedItem(\n LAST_SYNCED_EVENT_ID,\n `${syncEventId}`\n );\n }\n EventsSyncManager.getInstance().startSync();\n } catch (err: any) {\n let cta = 'updateDocumentWithAttempt'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\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 private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n let cta = 'updateDocument-updateDocumentProcessedPath'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.APP_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n let cta = 'updateDocError'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.APP_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let cta = 'processImageData-started';\n let extra = {\n msg: 'processImageData-started',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 0,\n quality: 100, \n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n let cta = 'processImageData-completed';\n let extra = {\n msg: 'processImageData-completed',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let cta = 'processBase64Data-started';\n let extra = {\n msg: 'processBase64Data-started',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n let cta = 'processBase64Data-completed';\n let extra = {\n msg: 'processBase64Data-completed',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = documentRow;\n let cta = 'uploadDocToServer-geoStamp';\n let geoStampAvailable = false\n if(documentRow.geo_timestamp && documentRow.geo_timestamp.length != 0){\n geoStampAvailable = true;\n docRow = await this.processPODData(documentRow);\n }\n let extra = {\n msg: geoStampAvailable ? \"geoStamp availale\" : 'geoStamp not availale',\n fName: docRow.file_name && docRow.file_name.length != 0 ? docRow.file_name.substring(4): '',\n dName: docRow.fms_folder_id && docRow.fms_folder_id.length != 0 ? docRow.fms_folder_id.substring(4): '',\n dispId: docRow.dispatch_id && docRow.dispatch_id.length != 0 ? docRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n console.log('uploadDocToServer999:', docRow);\n let fmsID = await this.documentHttpClient?.uploadDocument(docRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fName: docRow.file_name && docRow.file_name.length != 0 ? docRow.file_name.substring(4): '',\n dName: docRow.fms_folder_id && docRow.fms_folder_id.length != 0 ? docRow.fms_folder_id.substring(4): '',\n dispId: docRow.dispatch_id && docRow.dispatch_id.length != 0 ? docRow.dispatch_id.substring(9): ''\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n // Calling function updating document row along with attempt count and sync as true.\n await this.updateDocumentWithAttempt(\n documentRow,\n fmsID,\n this._retries + 1,\n 1\n );\n this._retries = 0;\n // await this.updateDocument(docRow, fmsID);\n } else {\n // Calling function updating document row withalong attempt count and sync as false.\n await this.updateDocumentWithAttempt(\n documentRow,\n '',\n this._retries + 1,\n 0\n );\n this._retries++;\n let cta = 'uploadDocToServer-empty-fms-id'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n this.startSyncAfterMaxRetry(extraParameters, null);\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n // Calling function updating document row withalong attempt count and sync as false.\n await this.updateDocumentWithAttempt(\n documentRow,\n '',\n this._retries + 1,\n 0\n );\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: flattenObject(error),\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(error),\n LOG_TYPE.SDK_ERROR\n );\n this._retries++;\n this.startSyncAfterMaxRetry(null, error);\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n private async startSyncAfterMaxRetry(extraParameters:any, error:any){\n if(this.retries >= this.maxRetryCount){\n let cta = 'startSyncAfterMaxRetry-max-retry-reached'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extraParameters ? extraParameters : error,\n });\n Logger.getInstance().logEvent(\n cta,\n extraParameters ? flattenObject(extraParameters) : error,\n LOG_TYPE.SDK_ERROR\n );\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.docManager.updateDocPriority(documentRows[0].id, documentRows[0].priority + 1);\n this._retries = 0;\n this.startDocumentSync();\n }\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["DocumentManager","DocumentHttpClient","isEmptyOrBlank","flattenObject","BaseError","BaseErrorCodes","InvalidArgumentsError","InvalidBaseURL","SyncManagerNotInitialized","Logger","LOG_TYPE","NetworkUtil","ETEventsManager","LAST_SYNCED_EVENT_ID","MAX_RETRY_COUNT","POD_DOC","EventsSyncManager","Marker","Position","TextBackgroundType","ImageFormat","RNFS","Storage","Platform","SentryEventNameSdkConstants","SeverityLevelValue","fireEventWithScreenName","latlngToDms","require","DocumentSyncManager","retries","_retries","value","constructor","_defineProperty","init","baseURL","retryCount","maxRetryCount","documentHttpClient","getInstance","instance","startDocumentSync","inProgress","hasNetwork","isAvailableAsync","checkForInitialization","docManager","documentRows","getUnsyncedDocument","length","uploadDocToServer","cta","severityLevel","LOG","eventName","APP_LOG","screenName","extraParams","msg","logEvent","SDK_ERROR","error","syncPending","isSyncPending","extraParameters","pending","leftDocuments","getAllUnsyncedDocs","insertDocument","fmsFolderID","data","base64","desc","dspID","filePath","fileType","fileName","geoTimeStamp","processedFilePath","priority","arguments","undefined","InvalidArgumentError","_this$docManager","console","log","insertResponse","forceDocumentSync","updateDocumentWithAttempt","documentRow","fmsID","attempt","sync","markDocumentSyncedWithAttempt","id","eventsManager","podId","markPODDocEventSynced","lastSyncedEventId","getSharedItem","syncEventId","parseInt","setSharedItem","startSync","err","SDK_WARNING","updateDocumentProcessedPath","origialFilePath","processedPath","updateProcesedFilePath","ERROR","APP_ERROR","updateDocError","uploadError","updateDocSyncError","processImageData","processed_file_path","extra","fName","file_name","substring","dName","fms_folder_id","dispId","dispatch_id","pFilePath","strGeoStamp","geo_timestamp","objGeoStamp","JSON","parse","dateTime","lat","lng","accuracy","strDMS","strDMSWithAccuracy","fontSize","OS","options","backgroundImage","src","file_path","scale","watermarkTexts","text","position","topLeft","style","color","fontName","textBackgroundStyle","padding","type","none","quality","filename","saveFormat","jpg","markText","completeFilePath","includes","processBase64Data","imagePath","TemporaryDirectoryPath","writeFile","processedBase64","splittedDase64Data","split","processPODData","_this$documentHttpCli","docRow","geoStampAvailable","uploadDocument","startSyncAfterMaxRetry","_error$response","_error$response2","API_ERROR","stringify","message","response","status","updateDocPriority","getAllDocuments","dispatchID","clearSyncedDocs","deleteAllSyncedDocuments","_class"],"sources":["DocumentSyncManager.ts"],"sourcesContent":["import type { DocumentRow } from '../DBConfig';\nimport DocumentManager from './DocumentManager';\nimport DocumentHttpClient from './DocumentHttpClient';\nimport { isEmptyOrBlank, flattenObject } from '../../../utils/utils';\nimport { BaseError } from '../../../errors/BaseError';\nimport BaseErrorCodes, {\n InvalidArgumentsError,\n InvalidBaseURL,\n SyncManagerNotInitialized,\n} from '../../../errors/ErrorCodes';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport type { SQLResultSet } from 'expo-sqlite';\nimport NetworkUtil from '../../../utils/NetworkUtil';\nimport ETEventsManager from '../events/ETEventsManager';\nimport { LAST_SYNCED_EVENT_ID, MAX_RETRY_COUNT, POD_DOC } from '../../syncmanager/constants';\nimport EventsSyncManager from '../events/EventsSyncManager';\nimport Marker, {\n Position,\n TextBackgroundType,\n ImageFormat,\n} from 'react-native-image-marker';\nimport RNFS from 'react-native-fs';\nimport Storage from '../../../utils/storage';\nimport { Platform } from 'react-native';\nimport { ScreenNameSdkConstants, SentryEventNameSdkConstants, SeverityLevelValue } from '../../../analytics/sentry/SentrySdkConstants';\nimport { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';\nconst latlngToDms = require('latlng-to-dms');\n\n\nexport default class DocumentSyncManager {\n private documentHttpClient: DocumentHttpClient | undefined;\n private inProgress: boolean = false;\n private static instance: DocumentSyncManager;\n private docManager: DocumentManager | undefined;\n private maxRetryCount: number = MAX_RETRY_COUNT;\n private _retries = 0;\n get retries(): number {\n return this._retries;\n }\n\n set retries(value: number) {\n this._retries = value;\n }\n\n private constructor() {}\n\n public init(baseURL: string, retryCount: number) {\n if (isEmptyOrBlank(baseURL))\n throw new BaseError(BaseErrorCodes.InvalidBaseURL, InvalidBaseURL);\n this.maxRetryCount = retryCount;\n this.documentHttpClient = new DocumentHttpClient(baseURL);\n }\n\n public static getInstance(): DocumentSyncManager {\n if (!DocumentSyncManager.instance) {\n DocumentSyncManager.instance = new DocumentSyncManager();\n }\n return DocumentSyncManager.instance;\n }\n\n public async startDocumentSync(): Promise<void> {\n if (!this.inProgress && this._retries < this.maxRetryCount) {\n this.inProgress = true;\n const hasNetwork = await NetworkUtil.isAvailableAsync();\n try {\n this.checkForInitialization();\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n if (hasNetwork) {\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.uploadDocToServer(documentRows[0]);\n } else {\n let cta = 'startDocumentSync-NoData'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'No data to sync'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'No data to sync',\n LOG_TYPE.SDK_ERROR\n );\n }\n } else {\n let cta = 'startDocumentSync-NoNetwork'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'No Network'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'No Network',\n LOG_TYPE.SDK_ERROR\n );\n }\n } catch (error: any) {\n let cta = 'startDocumentSync-error'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(error)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(error),\n LOG_TYPE.SDK_ERROR\n );\n } finally {\n this.inProgress = false;\n let syncPending = await this.isSyncPending();\n if (syncPending && hasNetwork) {\n await this.startDocumentSync();\n let cta = 'startDocumentSync-finally-sync-pending'\n let extraParameters = {\n hasNetwork: hasNetwork,\n pending: syncPending,\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(extraParameters)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n }\n }\n } else {\n let cta = 'startDocumentSync-max-count-reach-in-progress'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'sync already in progress or max count reached'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'sync already in progress or max count reached',\n LOG_TYPE.SDK_ERROR\n );\n }\n }\n\n public async isSyncPending(): Promise<boolean> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n let leftDocuments = await this.docManager.getAllUnsyncedDocs();\n return leftDocuments?.length > 0 && this._retries < this.maxRetryCount;\n }\n\n public async insertDocument(\n fmsFolderID: string | null,\n data: string | null,\n base64: boolean,\n desc: string,\n dspID: string,\n // jobID: string,\n // objRef: string,\n filePath: string | null,\n fileType: string,\n fileName: string,\n geoTimeStamp: string,\n processedFilePath: string,\n priority: number = 1\n ): Promise<SQLResultSet> {\n if (\n isEmptyOrBlank(desc) ||\n isEmptyOrBlank(dspID) ||\n // isEmptyOrBlank(jobID) ||\n // isEmptyOrBlank(objRef) ||\n isEmptyOrBlank(fileType) ||\n isEmptyOrBlank(fileName) ||\n (base64 && isEmptyOrBlank(data)) ||\n (!base64 && isEmptyOrBlank(filePath))\n )\n throw new BaseError(\n BaseErrorCodes.InvalidArgumentError,\n InvalidArgumentsError\n );\n else {\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n console.log('insertDocument1:',fmsFolderID);\n let insertResponse = await this.docManager?.insertDocument(\n fmsFolderID,\n desc,\n dspID,\n // jobID,\n // objRef,\n base64,\n fileName,\n fileType,\n data,\n filePath,\n geoTimeStamp,\n processedFilePath,\n priority\n );\n let cta = 'insertDocument'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:'INIT DOC SYNC AGAIN'\n },\n });\n Logger.getInstance().logEvent(\n cta,\n 'INIT DOC SYNC AGAIN',\n LOG_TYPE.SDK_ERROR\n );\n return insertResponse;\n }\n }\n\n public async forceDocumentSync() {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n this._retries = 0;\n await this.startDocumentSync();\n }\n\n // private async updateDocument(documentRow: DocumentRow, fmsID: string) {\n // if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n // try {\n // await this.docManager.markDocumentSynced(documentRow.id, fmsID);\n // let eventsManager = await ETEventsManager.getInstance();\n // let podId = POD_DOC + '_' + documentRow.id;\n // await eventsManager.markPODDocEventSynced(1, 1, podId);\n // EventsSyncManager.getInstance().startSync();\n // } catch (err: any) {\n // Logger.getInstance().logEvent(\n // 'updateDocument',\n // err.message,\n // LOG_TYPE.SDK_WARNING\n // );\n // }\n // }\n\n // This function will update document row with attempt count and sync status\n private async updateDocumentWithAttempt(\n documentRow: DocumentRow,\n fmsID: string,\n attempt: number,\n sync: number\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n // Calling document row update method for attempt count and sync.\n await this.docManager.markDocumentSyncedWithAttempt(\n documentRow.id,\n fmsID,\n attempt,\n sync\n );\n let eventsManager = await ETEventsManager.getInstance();\n let podId = POD_DOC + '_' + documentRow.id;\n\n\n let extraParameters = {\n podId: podId,\n };\n let cta = 'updateDocumentWithAttempt-success'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(extraParameters)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n // Calling update method for attempt count and sync to update event row of type POD_DOC\n await eventsManager.markPODDocEventSynced(sync, attempt, podId);\n if(sync == 1){\n const lastSyncedEventId = await Storage.getInstance().getSharedItem(\n LAST_SYNCED_EVENT_ID\n );\n const syncEventId = parseInt(lastSyncedEventId) + 1;\n await Storage.getInstance().setSharedItem(\n LAST_SYNCED_EVENT_ID,\n `${syncEventId}`\n );\n }\n EventsSyncManager.getInstance().startSync();\n } catch (err: any) {\n let cta = 'updateDocumentWithAttempt'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\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 private async updateDocumentProcessedPath(\n documentRow: DocumentRow,\n origialFilePath: String,\n processedPath: String\n ) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateProcesedFilePath(\n documentRow.id,\n origialFilePath,\n processedPath\n );\n } catch (err: any) {\n let cta = 'updateDocument-updateDocumentProcessedPath'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.APP_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n\n private async updateDocError(documentRow: DocumentRow, uploadError: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n try {\n await this.docManager.updateDocSyncError(documentRow.id, uploadError);\n } catch (err: any) {\n let cta = 'updateDocError'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.APP_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n msg:flattenObject(err)\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(err),\n LOG_TYPE.SDK_WARNING\n );\n }\n }\n private checkForInitialization() {\n if (!this.documentHttpClient) {\n throw new BaseError(\n BaseErrorCodes.SyncManagerNotInitialized,\n SyncManagerNotInitialized\n );\n }\n }\n\n // This function will generate overlay image and update documents table for processed_file_path columns with overlayed image path.\n private async processImageData(documentRow: DocumentRow) {\n // If processed_file_path of overlayed image already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let cta = 'processImageData-started';\n let extra = {\n msg: 'processImageData-started',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n let fontSize = 14;\n if (Platform.OS !== 'android') {\n fontSize = 28;\n }\n const options = {\n backgroundImage: { // Image for overlay\n src: documentRow.file_path,\n scale: 1,\n },\n watermarkTexts: [ \n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, //Overlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: fontSize,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 0,\n quality: 100, \n filename: pFilePath,\n saveFormat: ImageFormat.jpg, // Saving in jpeg format\n };\n let processedFilePath = await Marker.markText(options); // Generating overlay image\n if (processedFilePath !== null && processedFilePath !== '') {\n let completeFilePath = processedFilePath;\n // If processd image file path does not have prefix file:// then we are addding manually\n if (!processedFilePath.includes('file')) {\n completeFilePath = 'file://' + processedFilePath;\n }\n // Updating document document table with overlayed image path\n this.updateDocumentProcessedPath(\n documentRow,\n documentRow.file_path, //original file path catprued from camera\n completeFilePath // completeFilePath is the path with file:// of processed file \n );\n documentRow.processed_file_path = completeFilePath; \n }\n }\n let cta = 'processImageData-completed';\n let extra = {\n msg: 'processImageData-completed',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n return documentRow;\n }\n\n // This function will generate overlay base64 data and update documents table for processed_file_path columns with overlayed base64 data.\n private async processBase64Data(documentRow: DocumentRow) {\n // If base64 overlayed data already existing then do not generate it again.\n if (\n documentRow.processed_file_path === null ||\n documentRow.processed_file_path === ''\n ) {\n let cta = 'processBase64Data-started';\n let extra = {\n msg: 'processBase64Data-started',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n let filePath = '';\n // If templrary base 64 file already exist then do not create again\n if (documentRow.file_path === null || documentRow.file_path === '') {\n const imagePath = `${RNFS.TemporaryDirectoryPath}/${documentRow.file_name}`;\n await RNFS.writeFile(imagePath, documentRow.data, 'base64'); // Write file to temprary location\n filePath = imagePath;\n // If file generated frommbase64 data does not have file:// then we are adding manually.\n if (!imagePath.includes('file')) {\n filePath = `file://${imagePath}`;\n }\n documentRow.file_path = filePath;\n } else {\n filePath = documentRow.file_path;\n }\n let pFilePath = 'processed_' + documentRow.file_name; // File name for processed file.\n let strGeoStamp = documentRow.geo_timestamp; // Saved geostamp string\n let objGeoStamp = JSON.parse(strGeoStamp); // Conversion to geostamp object\n let dateTime = objGeoStamp.dateTime; // Date time stamp in UTC format\n let lat = objGeoStamp.lat; // Latitide\n let lng = objGeoStamp.lng; // Longitude\n let accuracy = objGeoStamp.accuracy; // Location accuracy\n let strDMS = latlngToDms(`${lat}, ${lng}`); // Location in degree format\n let strDMSWithAccuracy = strDMS; \n if (accuracy !== '') {\n strDMSWithAccuracy = strDMS + ' (Accuracy: ' + accuracy + 'm)'; // Appedning accuracy in location \n }\n const options = {\n backgroundImage: {\n src: filePath, // Image for overlay\n scale: 1,\n },\n watermarkTexts: [\n {\n text: `${dateTime}\\n${strDMSWithAccuracy}`, // Ooverlay text\n position: {\n position: Position.topLeft, // Overlay text position\n },\n style: { // Style for overlay\n color: '#ffffff',\n fontSize: 14,\n fontName: 'Arial',\n textBackgroundStyle: {\n padding: '1% 1%',\n type: TextBackgroundType.none,\n color: '#444444CC',\n },\n },\n },\n ],\n scale: 1,\n quality: 100,\n filename: pFilePath,\n saveFormat: ImageFormat.base64, // Saving in base6 format\n };\n let processedBase64 = await Marker.markText(options); // Generating overlay image\n if (processedBase64 !== null && processedBase64 !== '') {\n // Fetching base64 data from processed data.\n var splittedDase64Data = processedBase64.split(\n 'data:image/png;base64,'\n );\n // Updating document document table with overlayed base64 data\n await this.updateDocumentProcessedPath(\n documentRow,\n filePath,\n splittedDase64Data[1]\n );\n documentRow.processed_file_path = splittedDase64Data[1];\n }\n }\n let cta = 'processBase64Data-completed';\n let extra = {\n msg: 'processBase64Data-completed',\n fName: documentRow.file_name && documentRow.file_name.length != 0 ? documentRow.file_name.substring(4): '',\n dName: documentRow.fms_folder_id && documentRow.fms_folder_id.length != 0 ? documentRow.fms_folder_id.substring(4): '',\n dispId: documentRow.dispatch_id && documentRow.dispatch_id.length != 0 ? documentRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n return documentRow;\n }\n\n // This function will calling respective overlay method for base64 (for signature POD) or image (for image POD).\n private async processPODData(documentRow: DocumentRow) {\n if (documentRow.base64 && documentRow.data != null) {\n return await this.processBase64Data(documentRow);\n } else {\n return await this.processImageData(documentRow);\n }\n }\n\n private async uploadDocToServer(documentRow: DocumentRow) {\n try {\n let docRow = documentRow;\n let cta = 'uploadDocToServer-geoStamp';\n let geoStampAvailable = false\n if(documentRow.geo_timestamp && documentRow.geo_timestamp.length != 0){\n geoStampAvailable = true;\n docRow = await this.processPODData(documentRow);\n }\n let extra = {\n msg: geoStampAvailable ? \"geoStamp availale\" : 'geoStamp not availale',\n fName: docRow.file_name && docRow.file_name.length != 0 ? docRow.file_name.substring(4): '',\n dName: docRow.fms_folder_id && docRow.fms_folder_id.length != 0 ? docRow.fms_folder_id.substring(4): '',\n dispId: docRow.dispatch_id && docRow.dispatch_id.length != 0 ? docRow.dispatch_id.substring(9): ''\n };\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extra,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extra),\n LOG_TYPE.SDK_ERROR\n );\n let fmsID = await this.documentHttpClient?.uploadDocument(docRow);\n\n let extraParameters = {\n fmsID: fmsID ?? '',\n fName: docRow.file_name && docRow.file_name.length != 0 ? docRow.file_name.substring(4): '',\n dName: docRow.fms_folder_id && docRow.fms_folder_id.length != 0 ? docRow.fms_folder_id.substring(4): '',\n dispId: docRow.dispatch_id && docRow.dispatch_id.length != 0 ? docRow.dispatch_id.substring(9): ''\n };\n // TODO: SOLELY DEPENDS ON FMS_ID WHICH IS WRONG => IT SHOULD BE Response.status = 202\n if (fmsID) {\n // Calling function updating document row along with attempt count and sync as true.\n await this.updateDocumentWithAttempt(\n documentRow,\n fmsID,\n this._retries + 1,\n 1\n );\n this._retries = 0;\n // await this.updateDocument(docRow, fmsID);\n } else {\n // Calling function updating document row withalong attempt count and sync as false.\n await this.updateDocumentWithAttempt(\n documentRow,\n '',\n this._retries + 1,\n 0\n );\n this._retries++;\n let cta = 'uploadDocToServer-empty-fms-id'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extraParameters,\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(extraParameters),\n LOG_TYPE.SDK_ERROR\n );\n this.startSyncAfterMaxRetry(extraParameters, null);\n await this.updateDocError(docRow, 'Unexpected Error');\n }\n } catch (error: any) {\n // Calling function updating document row withalong attempt count and sync as false.\n await this.updateDocumentWithAttempt(\n documentRow,\n '',\n this._retries + 1,\n 0\n );\n const cta = 'uploadDocToServer-error';\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.ERROR,\n eventName: SentryEventNameSdkConstants.API_ERROR,\n screenName: cta,\n cta: cta,\n extraParams: {\n error: flattenObject(error),\n },\n });\n Logger.getInstance().logEvent(\n cta,\n flattenObject(error),\n LOG_TYPE.SDK_ERROR\n );\n this._retries++;\n this.startSyncAfterMaxRetry(null, error);\n await this.updateDocError(\n documentRow,\n JSON.stringify({\n message: error.message,\n error: JSON.stringify(error?.response?.data),\n status: error?.response?.status,\n })\n );\n }\n }\n\n private async startSyncAfterMaxRetry(extraParameters:any, error:any){\n if(this.retries >= this.maxRetryCount){\n let cta = 'startSyncAfterMaxRetry-max-retry-reached'\n fireEventWithScreenName({\n severityLevel: SeverityLevelValue.LOG,\n eventName: SentryEventNameSdkConstants.APP_LOG,\n screenName: cta,\n cta: cta,\n extraParams: extraParameters ? extraParameters : error,\n });\n Logger.getInstance().logEvent(\n cta,\n extraParameters ? flattenObject(extraParameters) : flattenObject((error)),\n LOG_TYPE.SDK_ERROR\n );\n if (!this.docManager) {\n this.docManager = await DocumentManager.getInstance();\n }\n let documentRows: DocumentRow[] =\n await this.docManager.getUnsyncedDocument();\n if (documentRows?.length > 0) {\n await this.docManager.updateDocPriority(documentRows[0].id, documentRows[0].priority + 1);\n this._retries = 0;\n this.startDocumentSync();\n }\n }\n }\n\n public async getAllDocuments(dispatchID?: string): Promise<DocumentRow[]> {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n return this.docManager.getAllDocuments(dispatchID);\n }\n\n public async clearSyncedDocs(dspID: string) {\n if (!this.docManager) this.docManager = await DocumentManager.getInstance();\n if (dspID) await this.docManager.deleteAllSyncedDocuments(dspID);\n }\n}\n"],"mappings":"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"}
|
|
@@ -494,7 +494,8 @@ export default class ETEventsManager {
|
|
|
494
494
|
async getRowToSync(id, dispatchId) {
|
|
495
495
|
const sqlResult = await Database.executeQuery(`SELECT * from ${EVENTS_TABLE}\
|
|
496
496
|
WHERE ${EVENTS_COLUMNS.ID} = ? and \
|
|
497
|
-
${EVENTS_COLUMNS.DISPATCH_ID} = ? \
|
|
497
|
+
${EVENTS_COLUMNS.DISPATCH_ID} = ? and \
|
|
498
|
+
${EVENTS_COLUMNS.SYNCED} = 0 \
|
|
498
499
|
ORDER BY ${EVENTS_COLUMNS.ID} ASC;`, [id, dispatchId]);
|
|
499
500
|
return sqlResult.rows._array;
|
|
500
501
|
}
|