tango-app-api-audit 3.4.42 → 3.4.43
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tango-app-api-audit",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.43",
|
|
4
4
|
"description": "audit & audit metrics apis",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"adm-zip": "^0.5.15",
|
|
17
17
|
"aws-sdk": "^2.1643.0",
|
|
18
|
+
"axios": "^1.7.9",
|
|
18
19
|
"dayjs": "^1.11.11",
|
|
19
20
|
"dotenv": "^16.4.5",
|
|
20
21
|
"express": "^4.19.2",
|
|
22
|
+
"form-data": "^4.0.1",
|
|
21
23
|
"handlebars": "^4.7.8",
|
|
22
24
|
"joi-to-swagger": "^6.2.0",
|
|
23
25
|
"lodash": "^4.17.21",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { checkFileExist, chunkArray, download, getDate, getDateWithCustomizeTime, getOpenSearchData, getUTC, insertOpenSearchData, listFileByPath, logger, signedUrl, sqsReceive, updateOpenSearchData } from 'tango-app-api-middleware';
|
|
1
|
+
import { checkFileExist, chunkArray, download, getDate, getDateWithCustomizeTime, getObject, getOpenSearchData, getUTC, insertOpenSearchData, listFileByPath, logger, signedUrl, sqsReceive, updateOpenSearchData } from 'tango-app-api-middleware';
|
|
2
2
|
import { aggregateBinaryAudit, createBinaryAudit, updateOneBinaryAuditModel } from '../service/binaryAudit.service.js';
|
|
3
3
|
import { countDocumentsStore, findOneStore } from '../service/store.service.js';
|
|
4
4
|
import { findOneUser } from '../service/user.service.js';
|
|
@@ -17,6 +17,8 @@ import {
|
|
|
17
17
|
findOneUserEmpDetection,
|
|
18
18
|
} from '../service/userEmpDetection.service.js';
|
|
19
19
|
import { updateOneEmpDetectionOutput } from '../service/empDetectionOutput.service.js';
|
|
20
|
+
import axios from 'axios';
|
|
21
|
+
import FormData from 'form-data';
|
|
20
22
|
|
|
21
23
|
export async function workSpace( req, res ) {
|
|
22
24
|
try {
|
|
@@ -988,6 +990,7 @@ export async function getUpdatedFile( req, res ) {
|
|
|
988
990
|
export async function saveBinary( req, res ) {
|
|
989
991
|
try {
|
|
990
992
|
const openSearch = JSON.parse( process.env.OPENSEARCH );
|
|
993
|
+
const url = JSON.parse( process.env.URL );
|
|
991
994
|
const sqs = JSON.parse( process.env.SQS );
|
|
992
995
|
const inputData = req.body;
|
|
993
996
|
const isoDate = req.userAudit?.startTime;
|
|
@@ -1229,32 +1232,93 @@ export async function saveBinary( req, res ) {
|
|
|
1229
1232
|
|
|
1230
1233
|
break;
|
|
1231
1234
|
case 'eye-test-camera':
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1235
|
+
if ( inputData.answer == 'approved' ) {
|
|
1236
|
+
const stores = await findOneStore( { storeId: req.userAudit?.storeId }, { storeName: 1 } );
|
|
1237
|
+
const query={
|
|
1238
|
+
streamName: req.userAudit?.streamName,
|
|
1239
|
+
fileDate: req.userAudit?.fileDate,
|
|
1240
|
+
storeId: req.userAudit?.storeId,
|
|
1241
|
+
moduleType: req.userAudit?.moduleType,
|
|
1242
|
+
};
|
|
1243
|
+
const getSqs = await findOneTraxAuditData( query, { sqs: '$sqs.Body' } );
|
|
1244
|
+
|
|
1245
|
+
const fileDateISO = req.userAudit?.fileDateISO;
|
|
1246
|
+
fileDateISO.setDate( fileDateISO.getDate() + 180 );
|
|
1247
|
+
|
|
1248
|
+
// Format the date to yyyy-MM-dd
|
|
1249
|
+
const formattedDate = fileDateISO.toISOString().split( 'T' )[0];
|
|
1250
|
+
const param ={
|
|
1251
|
+
Bucket: getSqs?.sqs?.inputBucketName,
|
|
1252
|
+
Key: getSqs?.sqs?.filePath,
|
|
1253
|
+
};
|
|
1254
|
+
|
|
1255
|
+
const img = await getObject( param );
|
|
1256
|
+
|
|
1257
|
+
const formData = new FormData();
|
|
1258
|
+
formData.append( 'storeName', stores?.storeName );
|
|
1259
|
+
formData.append( 'taskName', 'EyeTest QR Verification' );
|
|
1260
|
+
formData.append( 'answerType', 'image' );
|
|
1261
|
+
formData.append( 'question', 'Please Upload QR image of the clinic' );
|
|
1262
|
+
formData.append( 'scheduleDate', formattedDate );
|
|
1263
|
+
formData.append( 'scheduleEndTime', '11:00 PM' );
|
|
1264
|
+
|
|
1265
|
+
formData.append( 'referenceImage', img.Body );
|
|
1266
|
+
const response = await axios.post( `${url.apiDomain}/v3/task/eyeTesttask`, formData, { headers: {
|
|
1267
|
+
...formData.getHeaders(),
|
|
1268
|
+
'Authorization': 'Bearer d47433f8-9a33-47c7-ba43-1a0fbac28f55' },
|
|
1269
|
+
} );
|
|
1270
|
+
if ( response?.data?.code == 200 ) {
|
|
1271
|
+
let eyeTestQuery ={
|
|
1272
|
+
_id: inputData.auditId,
|
|
1273
|
+
storeId: inputData.storeId,
|
|
1274
|
+
fileDate: inputData.fileDate,
|
|
1275
|
+
streamName: inputData.streamName,
|
|
1276
|
+
moduleType: inputData.moduleType,
|
|
1277
|
+
};
|
|
1278
|
+
let eyeTestUpdate={
|
|
1279
|
+
auditStatus: 'completed',
|
|
1280
|
+
answer: inputData.answer,
|
|
1281
|
+
userComments: inputData.userComments || '',
|
|
1282
|
+
endTime: new Date(),
|
|
1283
|
+
timeSpent: timeDifferenceInMinutes,
|
|
1284
|
+
};
|
|
1285
|
+
let updatDataEyeTest= await updateOneBinaryAuditModel( eyeTestQuery, eyeTestUpdate );
|
|
1286
|
+
if ( updatDataEyeTest.modifiedCount==0 ) {
|
|
1287
|
+
return res.sendError( 'Update failed, it may be invalid request', 400 );
|
|
1288
|
+
}
|
|
1289
|
+
return res.sendSuccess( `Successfully updated in ${value}` );
|
|
1290
|
+
} else {
|
|
1291
|
+
return res.sendError( 'Task creation failed', 500 );
|
|
1292
|
+
}
|
|
1293
|
+
} else {
|
|
1294
|
+
let eyeTestQuery ={
|
|
1295
|
+
_id: inputData.auditId,
|
|
1296
|
+
storeId: inputData.storeId,
|
|
1297
|
+
fileDate: inputData.fileDate,
|
|
1298
|
+
streamName: inputData.streamName,
|
|
1299
|
+
moduleType: inputData.moduleType,
|
|
1300
|
+
};
|
|
1301
|
+
let eyeTestUpdate={
|
|
1302
|
+
auditStatus: 'completed',
|
|
1303
|
+
answer: inputData.answer,
|
|
1304
|
+
userComments: inputData.userComments || '',
|
|
1305
|
+
endTime: new Date(),
|
|
1306
|
+
timeSpent: timeDifferenceInMinutes,
|
|
1307
|
+
};
|
|
1308
|
+
let updatDataEyeTest= await updateOneBinaryAuditModel( eyeTestQuery, eyeTestUpdate );
|
|
1309
|
+
if ( updatDataEyeTest.modifiedCount==0 ) {
|
|
1310
|
+
return res.sendError( 'Update failed, it may be invalid request', 400 );
|
|
1311
|
+
}
|
|
1312
|
+
return res.sendSuccess( `Successfully updated in ${value}` );
|
|
1249
1313
|
}
|
|
1250
|
-
|
|
1314
|
+
|
|
1251
1315
|
|
|
1252
1316
|
default:
|
|
1253
1317
|
res.sendError( 'No Data', 204 );
|
|
1254
1318
|
break;
|
|
1255
1319
|
}
|
|
1256
1320
|
} catch ( error ) {
|
|
1257
|
-
const err = error.mesage || 'Internal Server Error';
|
|
1321
|
+
const err = error.mesage || error.response?.data || error.response?.status ||'Internal Server Error';
|
|
1258
1322
|
logger.error( { error: error, data: req.body, function: 'saveBinary' } );
|
|
1259
1323
|
return res.sendError( err, 500 );
|
|
1260
1324
|
}
|