tango-app-api-trax 3.4.0-alpha-5 → 3.4.0-beta-1
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/index.js +2 -2
- package/package.json +3 -3
- package/src/controllers/activityLog.controller.js +239 -0
- package/src/controllers/gallery.controller.js +3 -2
- package/src/controllers/internalTrax.controller.js +53 -1
- package/src/controllers/mobileTrax.controller.js +187 -91
- package/src/controllers/teaxFlag.controller.js +408 -1
- package/src/controllers/trax.controller.js +446 -114
- package/src/routes/activityLog.router.js +18 -0
- package/src/routes/internalTraxApi.router.js +2 -1
- package/src/routes/traxFlag.router.js +9 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger, signedUrl, fileUpload, getOtp, sendEmailWithSES, getUuid } from 'tango-app-api-middleware';
|
|
1
|
+
import { logger, signedUrl, fileUpload, getOtp, sendEmailWithSES, getUuid, insertOpenSearchData } from 'tango-app-api-middleware';
|
|
2
2
|
import * as processedchecklist from '../services/processedchecklist.services.js';
|
|
3
3
|
import * as processedtask from '../services/processedTaskList.service.js';
|
|
4
4
|
import * as PCLconfig from '../services/processedchecklistconfig.services.js';
|
|
@@ -27,6 +27,7 @@ dayjs.extend( timeZone );
|
|
|
27
27
|
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';
|
|
28
28
|
dayjs.extend( isSameOrBefore );
|
|
29
29
|
|
|
30
|
+
|
|
30
31
|
export async function storeList( req, res ) {
|
|
31
32
|
try {
|
|
32
33
|
if ( !req.query?.date ) {
|
|
@@ -221,7 +222,7 @@ export async function startChecklistv1( req, res ) {
|
|
|
221
222
|
coverage: getBeforeChecklist[0].coverage || '',
|
|
222
223
|
};
|
|
223
224
|
await checklistLogs.create( logInsertData );
|
|
224
|
-
let getchecklist = getupdatedchecklist;
|
|
225
|
+
let getchecklist = JSON.parse( JSON.stringify( getupdatedchecklist ) );
|
|
225
226
|
let questions = [];
|
|
226
227
|
// function processQuestion( question, section, questions, nested=false ) {
|
|
227
228
|
// let findExists = questions.find( ( item ) => item?.qno && item.qno == question.qno );
|
|
@@ -245,13 +246,15 @@ export async function startChecklistv1( req, res ) {
|
|
|
245
246
|
for ( let [ index, data ] of getchecklist.entries() ) {
|
|
246
247
|
for ( let [ secIndex, section ] of data.questionAnswers.entries() ) {
|
|
247
248
|
questions = [];
|
|
249
|
+
let count = 0;
|
|
248
250
|
for ( let [ questionIndex, question ] of section.questions.entries() ) {
|
|
249
251
|
let linkedQuestions;
|
|
250
252
|
let uniqueShow = false;
|
|
251
253
|
if ( !question.linkType ) {
|
|
252
254
|
if ( !question?.uniqueNo ) {
|
|
255
|
+
count = count + 1;
|
|
253
256
|
uniqueShow = true;
|
|
254
|
-
question.uniqueNo = parseInt( getOtp() ) + Date.now() + questionIndex;
|
|
257
|
+
question.uniqueNo = parseInt( getOtp() ) + Date.now() + questionIndex + count;
|
|
255
258
|
}
|
|
256
259
|
questions.push( question );
|
|
257
260
|
linkedQuestions = [];
|
|
@@ -268,11 +271,12 @@ export async function startChecklistv1( req, res ) {
|
|
|
268
271
|
let nesedQuestion = [];
|
|
269
272
|
answer.oldNestedQuestion = !uniqueShow ? JSON.parse( JSON.stringify( answer.oldNestedQuestion ) ) : JSON.parse( JSON.stringify( answer.nestedQuestion ) );
|
|
270
273
|
answer.nestedQuestion.forEach( ( qn, qidx ) => {
|
|
274
|
+
count = count + 1;
|
|
271
275
|
let getQn = questionList.get( qn );
|
|
272
276
|
if ( getQn ) {
|
|
273
277
|
let randomNo;
|
|
274
278
|
if ( !getQn?.uniqueNo || uniqueShow ) {
|
|
275
|
-
randomNo = parseInt( getOtp() ) + Date.now() + qidx;
|
|
279
|
+
randomNo = parseInt( getOtp() ) + Date.now() + qidx + count;
|
|
276
280
|
} else {
|
|
277
281
|
randomNo = getQn?.uniqueNo;
|
|
278
282
|
}
|
|
@@ -516,6 +520,27 @@ export async function startChecklist( req, res ) {
|
|
|
516
520
|
getchecklist[index].questionAnswers[secIndex].questions = questions;
|
|
517
521
|
}
|
|
518
522
|
}
|
|
523
|
+
let openSearch = JSON.parse( process.env.OPENSEARCH );
|
|
524
|
+
console.log( 'openSearch', openSearch );
|
|
525
|
+
let inserttraxlogs = {
|
|
526
|
+
client_id: req.user.clientId,
|
|
527
|
+
createAt: new Date(),
|
|
528
|
+
sourceCheckList_id: getBeforeChecklist[0]?.sourceCheckList_id || '',
|
|
529
|
+
checkListName: getBeforeChecklist[0]?.checkListName || '',
|
|
530
|
+
fromCheckListName: '',
|
|
531
|
+
type: 'checkList',
|
|
532
|
+
action: 'start',
|
|
533
|
+
storeName: getBeforeChecklist[0]?.storeName || '',
|
|
534
|
+
store_id: getBeforeChecklist[0]?.store_id || '',
|
|
535
|
+
createdByEmail: getBeforeChecklist[0]?.userEmail || '',
|
|
536
|
+
createdBy: getBeforeChecklist[0]?.userName || '',
|
|
537
|
+
coverage: getBeforeChecklist[0]?.coverage || '',
|
|
538
|
+
logDetails: {},
|
|
539
|
+
};
|
|
540
|
+
// let insertOS = await insertOpenSearchData( 'test-traxlogs', inserttraxlogs );
|
|
541
|
+
console.log( 'inserttraxlogs', inserttraxlogs );
|
|
542
|
+
let insertOS = await insertOpenSearchData( openSearch.traxActivityLog, inserttraxlogs );
|
|
543
|
+
console.log( 'insertOS', insertOS );
|
|
519
544
|
return res.sendSuccess( getchecklist );
|
|
520
545
|
} else {
|
|
521
546
|
return res.sendError( 'something went wrong please try again', 500 );
|
|
@@ -687,6 +712,27 @@ export async function startTask( req, res ) {
|
|
|
687
712
|
};
|
|
688
713
|
await checklistLogs.create( logData );
|
|
689
714
|
|
|
715
|
+
let openSearch = JSON.parse( process.env.OPENSEARCH );
|
|
716
|
+
console.log( 'openSearch', openSearch );
|
|
717
|
+
let inserttraxlogs = {
|
|
718
|
+
client_id: req.user.clientId,
|
|
719
|
+
createAt: new Date(),
|
|
720
|
+
sourceCheckList_id: task.sourceCheckList_id || '',
|
|
721
|
+
checkListName: task.checkListName || '',
|
|
722
|
+
fromCheckListName: '',
|
|
723
|
+
type: 'task',
|
|
724
|
+
action: 'start',
|
|
725
|
+
storeName: task.storeName || '',
|
|
726
|
+
store_id: task.store_id || '',
|
|
727
|
+
createdByEmail: task.userEmail || '',
|
|
728
|
+
createdBy: task.userName || '',
|
|
729
|
+
coverage: task.coverage || '',
|
|
730
|
+
logDetails: {},
|
|
731
|
+
};
|
|
732
|
+
// let insertOS = await insertOpenSearchData( 'test-traxlogs', inserttraxlogs );
|
|
733
|
+
console.log( 'inserttraxlogs', inserttraxlogs );
|
|
734
|
+
let insertOS = await insertOpenSearchData( openSearch.traxActivityLog, inserttraxlogs );
|
|
735
|
+
console.log( 'insertOS', insertOS );
|
|
690
736
|
return res.sendSuccess( getUpdatedTask );
|
|
691
737
|
} catch ( error ) {
|
|
692
738
|
logger.error( { function: 'startTask', error, body: req.body } );
|
|
@@ -2466,7 +2512,7 @@ export async function submitChecklist( req, res ) {
|
|
|
2466
2512
|
userName: getchecklist[0].userName || '',
|
|
2467
2513
|
coverage: getchecklist[0].coverage || '',
|
|
2468
2514
|
};
|
|
2469
|
-
console.log( 'logInsertData=>', logInsertData );
|
|
2515
|
+
// console.log( 'logInsertData=>', logInsertData );s
|
|
2470
2516
|
await checklistLogs.create( logInsertData );
|
|
2471
2517
|
// let time = dayjs().format( 'HH:mm:ss' );
|
|
2472
2518
|
// let [ hours, minutes ] = time.split( ':' ).map( Number );
|
|
@@ -2501,8 +2547,32 @@ export async function submitChecklist( req, res ) {
|
|
|
2501
2547
|
// await detectionService.create( detectionData );
|
|
2502
2548
|
if ( requestData.submittype == 'submit' ) {
|
|
2503
2549
|
updateOpenSearch( req.user, requestData );
|
|
2550
|
+
|
|
2551
|
+
let openSearch = JSON.parse( process.env.OPENSEARCH );
|
|
2552
|
+
console.log( 'openSearch', openSearch );
|
|
2553
|
+
let inserttraxlogs = {
|
|
2554
|
+
client_id: req.user.clientId,
|
|
2555
|
+
createAt: new Date(),
|
|
2556
|
+
sourceCheckList_id: getchecklist[0].sourceCheckList_id,
|
|
2557
|
+
checkListName: getchecklist[0].checkListName,
|
|
2558
|
+
type: 'checkList',
|
|
2559
|
+
action: requestData?.submittype === 'draft' ? 'save' : 'submit',
|
|
2560
|
+
storeName: getchecklist[0].storeName,
|
|
2561
|
+
store_id: getchecklist[0].store_id,
|
|
2562
|
+
userName: getchecklist[0].userName,
|
|
2563
|
+
userEmail: getchecklist[0].userEmail,
|
|
2564
|
+
createdByEmail: getchecklist[0].userEmail,
|
|
2565
|
+
createdBy: getchecklist[0].userName,
|
|
2566
|
+
coverage: getchecklist[0].coverage,
|
|
2567
|
+
checkListType: getchecklist[0].checkListType,
|
|
2568
|
+
logDetails: {},
|
|
2569
|
+
};
|
|
2570
|
+
console.log( 'inserttraxlogs', inserttraxlogs );
|
|
2571
|
+
let insertOS = await insertOpenSearchData( openSearch.traxActivityLog, inserttraxlogs );
|
|
2572
|
+
console.log( 'insertOS', insertOS );
|
|
2504
2573
|
}
|
|
2505
2574
|
|
|
2575
|
+
|
|
2506
2576
|
return res.sendSuccess( 'Checklist Updated Successfully' );
|
|
2507
2577
|
} else {
|
|
2508
2578
|
return res.sendError( 'something went wrong please try again', 500 );
|
|
@@ -2667,6 +2737,29 @@ export async function submitTask( req, res ) {
|
|
|
2667
2737
|
|
|
2668
2738
|
if ( submittype == 'submit' ) {
|
|
2669
2739
|
updateOpenSearchTask( user, requestData );
|
|
2740
|
+
|
|
2741
|
+
let openSearch = JSON.parse( process.env.OPENSEARCH );
|
|
2742
|
+
console.log( 'openSearch', openSearch );
|
|
2743
|
+
let inserttraxlogs = {
|
|
2744
|
+
client_id: req.user.clientId,
|
|
2745
|
+
createAt: new Date(),
|
|
2746
|
+
sourceCheckList_id: checklist.sourceCheckList_id,
|
|
2747
|
+
checkListName: checklist.checkListName,
|
|
2748
|
+
type: 'task',
|
|
2749
|
+
action: requestData?.submittype === 'draft' ? 'save' : 'submit',
|
|
2750
|
+
storeName: checklist.storeName,
|
|
2751
|
+
store_id: checklist.store_id,
|
|
2752
|
+
userName: checklist.userName,
|
|
2753
|
+
userEmail: checklist.userEmail,
|
|
2754
|
+
createdByEmail: checklist.userEmail,
|
|
2755
|
+
createdBy: checklist.userName,
|
|
2756
|
+
coverage: checklist.coverage,
|
|
2757
|
+
checkListType: checklist.checkListType,
|
|
2758
|
+
logDetails: {},
|
|
2759
|
+
};
|
|
2760
|
+
console.log( 'inserttraxlogs', inserttraxlogs );
|
|
2761
|
+
let insertOS = await insertOpenSearchData( openSearch.traxActivityLog, inserttraxlogs );
|
|
2762
|
+
console.log( 'insertOS', insertOS );
|
|
2670
2763
|
}
|
|
2671
2764
|
|
|
2672
2765
|
return res.sendSuccess( 'Task Updated Successfully' );
|
|
@@ -3227,90 +3320,6 @@ export async function questionListv1( req, res ) {
|
|
|
3227
3320
|
} else {
|
|
3228
3321
|
logger.info( `v5 => Checklist Continue => store Name: ${getchecklist[0].storeName}, User Email: ${getchecklist[0].userEmail}, Checklist Name: ${getchecklist[0].checkListName}` );
|
|
3229
3322
|
// let bucket = JSON.parse( process.env.BUCKET );
|
|
3230
|
-
for ( let [ secIndex, section ] of getchecklist[0].questionAnswers.entries() ) {
|
|
3231
|
-
for ( let [ questionIndex, question ] of section.questions.entries() ) {
|
|
3232
|
-
let Multianswer = [];
|
|
3233
|
-
if ( getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage && getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage !='' ) {
|
|
3234
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage = await signedUrl( { file_path: decodeURIComponent( getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage ), Bucket: bucket.sop } );
|
|
3235
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage;
|
|
3236
|
-
}
|
|
3237
|
-
for ( let [ ansIndex, answer ] of question.answers.entries() ) {
|
|
3238
|
-
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3239
|
-
let checkvalidation = null;
|
|
3240
|
-
if ( answer.validationAnswer && answer.validationAnswer !='' ) {
|
|
3241
|
-
if ( answer.validationType != 'Descriptive Answer' ) {
|
|
3242
|
-
// checkvalidation = await signedUrl( { file_path: decodeURIComponent( answer.validationAnswer ), Bucket: bucket.sop } );
|
|
3243
|
-
checkvalidation = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.validationAnswer;
|
|
3244
|
-
} else {
|
|
3245
|
-
checkvalidation = answer.validationAnswer;
|
|
3246
|
-
}
|
|
3247
|
-
}
|
|
3248
|
-
Multianswer.push( { 'answer': answer.answer, 'no': ansIndex, 'validationAnswer': checkvalidation } );
|
|
3249
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].index = ansIndex;
|
|
3250
|
-
}
|
|
3251
|
-
if ( answer.referenceImage != '' ) {
|
|
3252
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].referenceImage = await signedUrl( { file_path: decodeURIComponent( answer.referenceImage ), Bucket: bucket.sop } );
|
|
3253
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].referenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.referenceImage;
|
|
3254
|
-
}
|
|
3255
|
-
if ( ( answer.validationType == 'Capture Image' || answer.validationType == 'Capture Video' ) && answer.validationAnswer && answer.validationAnswer != '' ) {
|
|
3256
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].validationAnswer = await signedUrl( { file_path: decodeURIComponent( answer.validationAnswer ), Bucket: bucket.sop } );
|
|
3257
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].validationAnswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.validationAnswer;
|
|
3258
|
-
}
|
|
3259
|
-
}
|
|
3260
|
-
if ( question?.userAnswer ) {
|
|
3261
|
-
for ( let [ userAnsIndex, userAns ] of question.userAnswer.entries() ) {
|
|
3262
|
-
if ( ( userAns.validationType == 'Capture Image' || userAns.validationType == 'Capture Video' ) && userAns.validationAnswer && userAns.validationAnswer != '' ) {
|
|
3263
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].validationAnswer = await signedUrl( { file_path: decodeURIComponent( userAns.validationAnswer ), Bucket: bucket.sop } );
|
|
3264
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].validationAnswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.validationAnswer;
|
|
3265
|
-
}
|
|
3266
|
-
if ( [ 'image', 'descriptiveImage', 'video' ].includes( question.answerType ) && userAns.answer != '' ) {
|
|
3267
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].answer = await signedUrl( { file_path: decodeURIComponent( userAns.answer ), Bucket: bucket.sop } );
|
|
3268
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].answer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.answer;
|
|
3269
|
-
}
|
|
3270
|
-
if ( userAns.referenceImage != '' ) {
|
|
3271
|
-
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].referenceImage = await signedUrl( { file_path: decodeURIComponent( userAns.referenceImage ), Bucket: bucket.sop } );
|
|
3272
|
-
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].referenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.referenceImage;
|
|
3273
|
-
}
|
|
3274
|
-
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3275
|
-
let ansIndex = Multianswer.findIndex( ( item ) => item.answer == userAns.answer );
|
|
3276
|
-
if ( ansIndex ) {
|
|
3277
|
-
Multianswer[ansIndex].validationAnswer = userAns.validationAnswer;
|
|
3278
|
-
}
|
|
3279
|
-
}
|
|
3280
|
-
if ( question.answerType == 'multipleImage' ) {
|
|
3281
|
-
if ( userAns && userAns.answer && userAns.answer !='' ) {
|
|
3282
|
-
// let manswer = await signedUrl( { file_path: decodeURIComponent( userAns.answer ), Bucket: bucket.sop } );
|
|
3283
|
-
let manswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.answer;
|
|
3284
|
-
Multianswer.push( { 'answer': manswer, 'no': userAnsIndex, 'validationAnswer': '' } );
|
|
3285
|
-
} else {
|
|
3286
|
-
|
|
3287
|
-
}
|
|
3288
|
-
}
|
|
3289
|
-
}
|
|
3290
|
-
}
|
|
3291
|
-
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3292
|
-
Multianswer.forEach( ( item ) => {
|
|
3293
|
-
if ( item.validationAnswer == null ) {
|
|
3294
|
-
item.answer = null;
|
|
3295
|
-
}
|
|
3296
|
-
} );
|
|
3297
|
-
if ( Multianswer.length ) {
|
|
3298
|
-
question.Multianswer = Multianswer;
|
|
3299
|
-
} else {
|
|
3300
|
-
question.Multianswer = Multianswer;
|
|
3301
|
-
}
|
|
3302
|
-
}
|
|
3303
|
-
if ( question.answerType == 'multipleImage' ) {
|
|
3304
|
-
if ( Multianswer.length ) {
|
|
3305
|
-
question.Multianswer = Multianswer;
|
|
3306
|
-
} else {
|
|
3307
|
-
Multianswer.push( { 'answer': null, 'no': 0, 'validationAnswer': null } );
|
|
3308
|
-
question.Multianswer = Multianswer;
|
|
3309
|
-
}
|
|
3310
|
-
}
|
|
3311
|
-
}
|
|
3312
|
-
}
|
|
3313
|
-
|
|
3314
3323
|
let questions = [];
|
|
3315
3324
|
// function processQuestion( question, section, questions, nested=false ) {
|
|
3316
3325
|
// let findExists = questions.find( ( item ) => item?.qno && item.qno == question.qno );
|
|
@@ -3343,13 +3352,15 @@ export async function questionListv1( req, res ) {
|
|
|
3343
3352
|
for ( let [ index, data ] of getchecklist.entries() ) {
|
|
3344
3353
|
for ( let [ secIndex, section ] of data.questionAnswers.entries() ) {
|
|
3345
3354
|
questions = [];
|
|
3355
|
+
let count = 0;
|
|
3346
3356
|
for ( let [ questionIndex, question ] of section.questions.entries() ) {
|
|
3347
3357
|
let linkedQuestions;
|
|
3348
3358
|
let uniqueShow = false;
|
|
3349
3359
|
if ( !question.linkType ) {
|
|
3350
3360
|
if ( !question?.uniqueNo ) {
|
|
3361
|
+
count = count + 1;
|
|
3351
3362
|
uniqueShow = true;
|
|
3352
|
-
question.uniqueNo = parseInt( getOtp() ) + Date.now() + questionIndex;
|
|
3363
|
+
question.uniqueNo = parseInt( getOtp() ) + Date.now() + questionIndex + count;
|
|
3353
3364
|
}
|
|
3354
3365
|
questions.push( question );
|
|
3355
3366
|
linkedQuestions = [];
|
|
@@ -3366,11 +3377,12 @@ export async function questionListv1( req, res ) {
|
|
|
3366
3377
|
let nesedQuestion = [];
|
|
3367
3378
|
answer.oldNestedQuestion = !uniqueShow ? JSON.parse( JSON.stringify( answer.oldNestedQuestion ) ) : JSON.parse( JSON.stringify( answer.nestedQuestion ) );
|
|
3368
3379
|
answer.nestedQuestion.forEach( ( qn, qidx ) => {
|
|
3380
|
+
count = count + 1;
|
|
3369
3381
|
let getQn = questionList.get( qn );
|
|
3370
3382
|
if ( getQn ) {
|
|
3371
3383
|
let randomNo;
|
|
3372
3384
|
if ( !getQn?.uniqueNo || uniqueShow ) {
|
|
3373
|
-
randomNo = parseInt( getOtp() ) + Date.now() + qidx;
|
|
3385
|
+
randomNo = parseInt( getOtp() ) + Date.now() + qidx + count;
|
|
3374
3386
|
} else {
|
|
3375
3387
|
randomNo = getQn?.uniqueNo;
|
|
3376
3388
|
}
|
|
@@ -3421,6 +3433,90 @@ export async function questionListv1( req, res ) {
|
|
|
3421
3433
|
await processedchecklist.updateOne( { _id: requestData.processedcheckListId }, { questionAnswers: getchecklist[0].questionAnswers } );
|
|
3422
3434
|
}
|
|
3423
3435
|
|
|
3436
|
+
for ( let [ secIndex, section ] of getchecklist[0].questionAnswers.entries() ) {
|
|
3437
|
+
for ( let [ questionIndex, question ] of section.questions.entries() ) {
|
|
3438
|
+
let Multianswer = [];
|
|
3439
|
+
if ( getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage && getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage !='' ) {
|
|
3440
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage = await signedUrl( { file_path: decodeURIComponent( getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage ), Bucket: bucket.sop } );
|
|
3441
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + getchecklist[0].questionAnswers[secIndex].questions[questionIndex].questionReferenceImage;
|
|
3442
|
+
}
|
|
3443
|
+
for ( let [ ansIndex, answer ] of question.answers.entries() ) {
|
|
3444
|
+
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3445
|
+
let checkvalidation = null;
|
|
3446
|
+
if ( answer.validationAnswer && answer.validationAnswer !='' ) {
|
|
3447
|
+
if ( answer.validationType != 'Descriptive Answer' ) {
|
|
3448
|
+
// checkvalidation = await signedUrl( { file_path: decodeURIComponent( answer.validationAnswer ), Bucket: bucket.sop } );
|
|
3449
|
+
checkvalidation = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.validationAnswer;
|
|
3450
|
+
} else {
|
|
3451
|
+
checkvalidation = answer.validationAnswer;
|
|
3452
|
+
}
|
|
3453
|
+
}
|
|
3454
|
+
Multianswer.push( { 'answer': answer.answer, 'no': ansIndex, 'validationAnswer': checkvalidation } );
|
|
3455
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].index = ansIndex;
|
|
3456
|
+
}
|
|
3457
|
+
if ( answer.referenceImage != '' ) {
|
|
3458
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].referenceImage = await signedUrl( { file_path: decodeURIComponent( answer.referenceImage ), Bucket: bucket.sop } );
|
|
3459
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].referenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.referenceImage;
|
|
3460
|
+
}
|
|
3461
|
+
if ( ( answer.validationType == 'Capture Image' || answer.validationType == 'Capture Video' ) && answer.validationAnswer && answer.validationAnswer != '' ) {
|
|
3462
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].validationAnswer = await signedUrl( { file_path: decodeURIComponent( answer.validationAnswer ), Bucket: bucket.sop } );
|
|
3463
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].answers[ansIndex].validationAnswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + answer.validationAnswer;
|
|
3464
|
+
}
|
|
3465
|
+
}
|
|
3466
|
+
if ( question?.userAnswer ) {
|
|
3467
|
+
for ( let [ userAnsIndex, userAns ] of question.userAnswer.entries() ) {
|
|
3468
|
+
if ( ( userAns.validationType == 'Capture Image' || userAns.validationType == 'Capture Video' ) && userAns.validationAnswer && userAns.validationAnswer != '' ) {
|
|
3469
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].validationAnswer = await signedUrl( { file_path: decodeURIComponent( userAns.validationAnswer ), Bucket: bucket.sop } );
|
|
3470
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].validationAnswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.validationAnswer;
|
|
3471
|
+
}
|
|
3472
|
+
if ( [ 'image', 'descriptiveImage', 'video' ].includes( question.answerType ) && userAns.answer != '' ) {
|
|
3473
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].answer = await signedUrl( { file_path: decodeURIComponent( userAns.answer ), Bucket: bucket.sop } );
|
|
3474
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].answer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.answer;
|
|
3475
|
+
}
|
|
3476
|
+
if ( userAns.referenceImage != '' ) {
|
|
3477
|
+
// getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].referenceImage = await signedUrl( { file_path: decodeURIComponent( userAns.referenceImage ), Bucket: bucket.sop } );
|
|
3478
|
+
getchecklist[0].questionAnswers[secIndex].questions[questionIndex].userAnswer[userAnsIndex].referenceImage = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.referenceImage;
|
|
3479
|
+
}
|
|
3480
|
+
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3481
|
+
let ansIndex = Multianswer.findIndex( ( item ) => item.answer == userAns.answer );
|
|
3482
|
+
if ( ansIndex ) {
|
|
3483
|
+
Multianswer[ansIndex].validationAnswer = userAns.validationAnswer;
|
|
3484
|
+
}
|
|
3485
|
+
}
|
|
3486
|
+
if ( question.answerType == 'multipleImage' ) {
|
|
3487
|
+
if ( userAns && userAns.answer && userAns.answer !='' ) {
|
|
3488
|
+
// let manswer = await signedUrl( { file_path: decodeURIComponent( userAns.answer ), Bucket: bucket.sop } );
|
|
3489
|
+
let manswer = JSON.parse( process.env.CDNURL )?.TraxAnswerCDN + userAns.answer;
|
|
3490
|
+
Multianswer.push( { 'answer': manswer, 'no': userAnsIndex, 'validationAnswer': '' } );
|
|
3491
|
+
} else {
|
|
3492
|
+
|
|
3493
|
+
}
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
}
|
|
3497
|
+
if ( question.answerType == 'multiplechoicemultiple' ) {
|
|
3498
|
+
Multianswer.forEach( ( item ) => {
|
|
3499
|
+
if ( item.validationAnswer == null ) {
|
|
3500
|
+
item.answer = null;
|
|
3501
|
+
}
|
|
3502
|
+
} );
|
|
3503
|
+
if ( Multianswer.length ) {
|
|
3504
|
+
question.Multianswer = Multianswer;
|
|
3505
|
+
} else {
|
|
3506
|
+
question.Multianswer = Multianswer;
|
|
3507
|
+
}
|
|
3508
|
+
}
|
|
3509
|
+
if ( question.answerType == 'multipleImage' ) {
|
|
3510
|
+
if ( Multianswer.length ) {
|
|
3511
|
+
question.Multianswer = Multianswer;
|
|
3512
|
+
} else {
|
|
3513
|
+
Multianswer.push( { 'answer': null, 'no': 0, 'validationAnswer': null } );
|
|
3514
|
+
question.Multianswer = Multianswer;
|
|
3515
|
+
}
|
|
3516
|
+
}
|
|
3517
|
+
}
|
|
3518
|
+
}
|
|
3519
|
+
|
|
3424
3520
|
return res.sendSuccess( getchecklist );
|
|
3425
3521
|
}
|
|
3426
3522
|
} catch ( e ) {
|