tango-app-api-task 3.2.1-beta-33 → 3.2.1-beta-35
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
|
@@ -518,8 +518,8 @@ export const validateUserv1 = async ( req, res ) => {
|
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
520
|
|
|
521
|
-
let userEmailList = assignDetails.map( ( item ) => item.userEmail
|
|
522
|
-
let storeList = assignDetails.map( ( item ) => item?.storeName?.toLowerCase() );
|
|
521
|
+
let userEmailList = assignDetails.map( ( item ) => item.userEmail?.trim()?.toLowerCase() );
|
|
522
|
+
let storeList = assignDetails.map( ( item ) => item?.storeName?.trim()?.toLowerCase() );
|
|
523
523
|
|
|
524
524
|
let userQuery = [
|
|
525
525
|
{
|
|
@@ -527,6 +527,8 @@ export const validateUserv1 = async ( req, res ) => {
|
|
|
527
527
|
newEmail: { $toLower: '$email' },
|
|
528
528
|
isActive: 1,
|
|
529
529
|
clientId: 1,
|
|
530
|
+
userName: 1,
|
|
531
|
+
email: 1,
|
|
530
532
|
},
|
|
531
533
|
},
|
|
532
534
|
{
|
|
@@ -558,17 +560,19 @@ export const validateUserv1 = async ( req, res ) => {
|
|
|
558
560
|
let storeQuery = [
|
|
559
561
|
{
|
|
560
562
|
$project: {
|
|
561
|
-
'
|
|
563
|
+
'store': { $toLower: '$storeName' },
|
|
562
564
|
'clientId': 1,
|
|
563
565
|
'storeProfile.city': 1,
|
|
564
566
|
'status': 1,
|
|
565
567
|
'storeId': 1,
|
|
568
|
+
'spocDetails': 1,
|
|
569
|
+
'storeName': 1,
|
|
566
570
|
},
|
|
567
571
|
},
|
|
568
572
|
{
|
|
569
573
|
$match: {
|
|
570
574
|
clientId: req.body.clientId,
|
|
571
|
-
|
|
575
|
+
store: { $in: storeList },
|
|
572
576
|
},
|
|
573
577
|
},
|
|
574
578
|
];
|
|
@@ -584,21 +588,27 @@ export const validateUserv1 = async ( req, res ) => {
|
|
|
584
588
|
let newUserList = userEmailList.filter( ( ele ) => !existUserEmail.includes( ele ) && !existEmail.includes( ele ) );
|
|
585
589
|
let inActiveStores = storeDetails.filter( ( ele ) => ele.status == 'deactive' ).map( ( ele ) => ele.storeName );
|
|
586
590
|
|
|
587
|
-
let existsStore = storeDetails.map( ( ele ) => ele
|
|
591
|
+
let existsStore = storeDetails.map( ( ele ) => ele.storeName.toLowerCase() );
|
|
588
592
|
let newStoreList = storeList.filter( ( ele ) => ele != null && !existsStore.includes( ele.toLowerCase() ) );
|
|
589
593
|
if ( req.body.coverage == 'store' ) {
|
|
590
594
|
assignDetails.forEach( ( item ) => {
|
|
591
|
-
let
|
|
592
|
-
if (
|
|
593
|
-
|
|
594
|
-
item.
|
|
595
|
+
let getStoreDetails = storeDetails.find( ( store ) => store.storeName.toLowerCase() == item.storeName.toLowerCase() );
|
|
596
|
+
if ( getStoreDetails ) {
|
|
597
|
+
let storeUserDetails = userDetails.find( ( ele ) => ele.newEmail.toLowerCase() == item.userEmail.toLowerCase() );
|
|
598
|
+
item._id = getStoreDetails._id;
|
|
599
|
+
item.storeId = getStoreDetails.storeId;
|
|
600
|
+
item.userName = storeUserDetails ? storeUserDetails?.userName : getStoreDetails?.spocDetails?.[0]?.name;
|
|
601
|
+
item.storeName = getStoreDetails.storeName;
|
|
602
|
+
item.userEmail = storeUserDetails ? storeUserDetails?.email : getStoreDetails?.spocDetails?.[0]?.email;
|
|
595
603
|
}
|
|
596
604
|
} );
|
|
597
605
|
} else {
|
|
598
606
|
assignDetails.forEach( ( item ) => {
|
|
599
|
-
let
|
|
600
|
-
if (
|
|
601
|
-
item._id =
|
|
607
|
+
let getUserDetails = userDetails.find( ( user ) => user.newEmail.toLowerCase() == item.userEmail.toLowerCase() );
|
|
608
|
+
if ( getUserDetails ) {
|
|
609
|
+
item._id = getUserDetails._id;
|
|
610
|
+
item.userName = getUserDetails.userName;
|
|
611
|
+
item.userEmail = getUserDetails.email;
|
|
602
612
|
}
|
|
603
613
|
} );
|
|
604
614
|
}
|
|
@@ -606,21 +616,21 @@ export const validateUserv1 = async ( req, res ) => {
|
|
|
606
616
|
if ( ( newUserList.length || newStoreList.length || existEmail.length || inActiveStores.length ) && !req.body?.addUser ) {
|
|
607
617
|
return res.sendError( { validate: false, user: newUserList, store: newStoreList, existEmail, inActiveStores, data: assignDetails }, 400 );
|
|
608
618
|
}
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
619
|
+
await Promise.all( newUserList.map( async ( ele ) => {
|
|
620
|
+
let findUserIndex = assignDetails.findIndex( ( item ) => item?.userEmail?.toLowerCase() == ele?.toLowerCase() );
|
|
621
|
+
if ( findUserIndex != -1 ) {
|
|
622
|
+
let data = {
|
|
623
|
+
userName: assignDetails[findUserIndex]?.userName,
|
|
624
|
+
email: ele,
|
|
625
|
+
mobileNumber: assignDetails[findUserIndex]?.mobileNumber,
|
|
626
|
+
clientId: req.body.clientId,
|
|
627
|
+
};
|
|
628
|
+
let response = await createUser( data );
|
|
629
|
+
if ( req.body.coverage == 'user' ) {
|
|
620
630
|
assignDetails[findUserIndex]._id = response._id;
|
|
621
631
|
}
|
|
622
|
-
}
|
|
623
|
-
}
|
|
632
|
+
}
|
|
633
|
+
} ) );
|
|
624
634
|
return res.sendSuccess( { validate: true, data: assignDetails } );
|
|
625
635
|
} catch ( e ) {
|
|
626
636
|
logger.error( 'validateUser 2=>', e );
|
|
@@ -777,7 +787,7 @@ export async function userDetails( req, res ) {
|
|
|
777
787
|
let storeDetails = await storeService.find( { _id: { $in: clusterDetails.stores.map( ( item ) => item.store ) }, status: 'active' } );
|
|
778
788
|
storeDetails.forEach( ( item ) => {
|
|
779
789
|
userDetails.push( {
|
|
780
|
-
|
|
790
|
+
id: ele.assignId,
|
|
781
791
|
userName: item.spocDetails?.[0]?.name,
|
|
782
792
|
userEmail: item.spocDetails?.[0]?.email,
|
|
783
793
|
storeId: item?.storeId,
|
|
@@ -796,7 +806,7 @@ export async function userDetails( req, res ) {
|
|
|
796
806
|
let teamUserDetails = await userService.find( { _id: { $in: teamDetails.users.map( ( item ) => item.userId ) } } );
|
|
797
807
|
teamUserDetails.forEach( ( item ) => {
|
|
798
808
|
userDetails.push( {
|
|
799
|
-
|
|
809
|
+
id: ele.assignId,
|
|
800
810
|
userName: item.userName,
|
|
801
811
|
userEmail: item.email,
|
|
802
812
|
storeId: ele?.storeId,
|
|
@@ -1081,12 +1091,11 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1081
1091
|
let getquestionQuery = [];
|
|
1082
1092
|
if ( dayjs( getCLconfig.publishDate ).format( 'YYYY-MM-DD' ) != dayjs( date ).format( 'YYYY-MM-DD' ) ) {
|
|
1083
1093
|
let todayDate = `${dayjs( date ).format( 'YYYY-MM-DD' )} 00:00 AM`;
|
|
1084
|
-
startTimeIso = dayjs( todayDate, 'YYYY-MM-DD HH:mm A' );
|
|
1094
|
+
startTimeIso = dayjs.utc( todayDate, 'YYYY-MM-DD HH:mm A' );
|
|
1085
1095
|
}
|
|
1086
1096
|
getquestionQuery.push( {
|
|
1087
1097
|
$match: {
|
|
1088
1098
|
checkListId: new ObjectId( checklistId ),
|
|
1089
|
-
checkFlag: true,
|
|
1090
1099
|
isdeleted: false,
|
|
1091
1100
|
},
|
|
1092
1101
|
} );
|
|
@@ -1105,9 +1114,35 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1105
1114
|
let idList = clusterDetails.flatMap( ( item ) => item.stores.map( ( ele ) => ele.store ) );
|
|
1106
1115
|
let getStoreDetails = await storeService.find( { _id: { $in: idList }, status: 'active' } );
|
|
1107
1116
|
if ( getStoreDetails.length ) {
|
|
1117
|
+
getStoreDetails = getStoreDetails.filter( ( store ) => {
|
|
1118
|
+
let findStore = allQuestion.find( ( storeList ) => storeList.assignId.toString() == store._id.toString() );
|
|
1119
|
+
if ( findStore ) {
|
|
1120
|
+
return store?.spocDetails?.[0]?.email.toLowerCase() != findStore.userEmail.toLowerCase();
|
|
1121
|
+
} else {
|
|
1122
|
+
return true;
|
|
1123
|
+
}
|
|
1124
|
+
} );
|
|
1108
1125
|
assignList = await Promise.all( getStoreDetails.map( async ( store ) => {
|
|
1109
|
-
let
|
|
1110
|
-
|
|
1126
|
+
let userQuery = [
|
|
1127
|
+
{
|
|
1128
|
+
$project: {
|
|
1129
|
+
newEmail: { $toLower: '$email' },
|
|
1130
|
+
isActive: 1,
|
|
1131
|
+
clientId: 1,
|
|
1132
|
+
userName: 1,
|
|
1133
|
+
email: 1,
|
|
1134
|
+
},
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
$match: {
|
|
1138
|
+
newEmail: store?.spocDetails?.[0]?.email.toLowerCase(),
|
|
1139
|
+
isActive: true,
|
|
1140
|
+
clientId: store.clientId,
|
|
1141
|
+
},
|
|
1142
|
+
},
|
|
1143
|
+
];
|
|
1144
|
+
let userDetails = await userService.aggregate( userQuery );
|
|
1145
|
+
if ( !userDetails.length ) {
|
|
1111
1146
|
let data = {
|
|
1112
1147
|
clientId: store.clientId,
|
|
1113
1148
|
userName: store.spocDetails?.[0]?.name,
|
|
@@ -1115,14 +1150,15 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1115
1150
|
email: store.spocDetails[0].email,
|
|
1116
1151
|
};
|
|
1117
1152
|
userDetails = await createUser( data );
|
|
1153
|
+
userDetails = [ userDetails ];
|
|
1118
1154
|
}
|
|
1119
1155
|
let data = {
|
|
1120
1156
|
store_id: store?.storeId,
|
|
1121
1157
|
storeName: store?.storeName,
|
|
1122
|
-
userId: userDetails
|
|
1123
|
-
userName: userDetails
|
|
1124
|
-
userEmail: userDetails
|
|
1125
|
-
userPhone: userDetails?.mobileNumber,
|
|
1158
|
+
userId: userDetails?.[0]?._id,
|
|
1159
|
+
userName: userDetails?.[0]?.userName,
|
|
1160
|
+
userEmail: userDetails?.[0]?.email,
|
|
1161
|
+
userPhone: userDetails?.[0]?.mobileNumber,
|
|
1126
1162
|
city: store?.storeProfile?.city,
|
|
1127
1163
|
country: store?.storeProfile?.country,
|
|
1128
1164
|
checkFlag: true,
|
|
@@ -1143,6 +1179,8 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1143
1179
|
let teamDetails = await teamsServices.findteams( { _id: { $in: teamsList } } );
|
|
1144
1180
|
if ( teamDetails.length ) {
|
|
1145
1181
|
let idList = teamDetails.flatMap( ( item ) => item.users.map( ( ele ) => ele.userId ) );
|
|
1182
|
+
let userIdList = allQuestion.filter( ( qn ) => !qn?.teamName ).map( ( qn ) => qn.assignId.toString() );
|
|
1183
|
+
idList = idList.filter( ( id ) => !userIdList.includes( id.toString() ) );
|
|
1146
1184
|
let getUserDetails = await userService.find( { _id: { $in: idList } } );
|
|
1147
1185
|
if ( getUserDetails.length ) {
|
|
1148
1186
|
assignList = getUserDetails.map( ( user ) => {
|
|
@@ -1218,10 +1256,10 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1218
1256
|
}
|
|
1219
1257
|
} ) );
|
|
1220
1258
|
if ( userIdList.length ) {
|
|
1221
|
-
|
|
1259
|
+
assignUserList = assignUserList.filter( ( item ) => typeof item._id == 'undefined' );
|
|
1222
1260
|
}
|
|
1223
1261
|
|
|
1224
|
-
if (
|
|
1262
|
+
if ( assignUserList ) {
|
|
1225
1263
|
let assigndeletequery = {
|
|
1226
1264
|
date_iso: date,
|
|
1227
1265
|
client_id: insertdata.client_id,
|
|
@@ -1244,7 +1282,7 @@ async function insertPCBulkV3( getCLconfig, checklistId, updatedchecklist, date,
|
|
|
1244
1282
|
|
|
1245
1283
|
const taskToRetain = await taskProcessedService.find( retainTaskQuery );
|
|
1246
1284
|
|
|
1247
|
-
const insertList =
|
|
1285
|
+
const insertList = assignUserList.filter( ( item2 ) =>
|
|
1248
1286
|
!taskToRetain.some( ( item1 ) =>
|
|
1249
1287
|
item1.store_id === item2.store_id && item1.userEmail === item2.userEmail,
|
|
1250
1288
|
),
|
|
@@ -3573,7 +3611,7 @@ export async function customertrial( params ) {
|
|
|
3573
3611
|
export async function taskAssign( req, res ) {
|
|
3574
3612
|
try {
|
|
3575
3613
|
if ( !req.body.taskId ) {
|
|
3576
|
-
return res.sendError( '
|
|
3614
|
+
return res.sendError( 'task id is required', 400 );
|
|
3577
3615
|
}
|
|
3578
3616
|
if ( !req.body.coverage ) {
|
|
3579
3617
|
return res.sendError( 'Coverage is required', 400 );
|
|
@@ -3670,6 +3708,7 @@ export async function updateAssign( req, res ) {
|
|
|
3670
3708
|
clientId: req.body.clientId,
|
|
3671
3709
|
};
|
|
3672
3710
|
userDetails = await createUser( userData );
|
|
3711
|
+
userDetails = [ userDetails ];
|
|
3673
3712
|
}
|
|
3674
3713
|
let data = {
|
|
3675
3714
|
...assign,
|
|
@@ -3678,7 +3717,7 @@ export async function updateAssign( req, res ) {
|
|
|
3678
3717
|
checkListId: req.body.taskId,
|
|
3679
3718
|
coverage: req.body.coverage,
|
|
3680
3719
|
assignId: assign._id,
|
|
3681
|
-
userId: userDetails
|
|
3720
|
+
userId: userDetails?.[0]?._id,
|
|
3682
3721
|
checkListName: taskDetails.checkListName,
|
|
3683
3722
|
};
|
|
3684
3723
|
delete data._id;
|