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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-task",
3
- "version": "3.2.1-beta-33",
3
+ "version": "3.2.1-beta-35",
4
4
  "description": "Task",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -518,8 +518,8 @@ export const validateUserv1 = async ( req, res ) => {
518
518
  }
519
519
  }
520
520
 
521
- let userEmailList = assignDetails.map( ( item ) => item.userEmail.toLowerCase() );
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
- 'storeName': { $toLower: '$storeName' },
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
- storeName: { $in: storeList },
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?.storeName );
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 getStoreId = storeDetails.find( ( store ) => store.storeName.toLowerCase() == item.storeName.toLowerCase() );
592
- if ( getStoreId ) {
593
- item._id = getStoreId._id;
594
- item.storeId = getStoreId.storeId;
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 getUserId = userDetails.find( ( user ) => user.newEmail.toLowerCase() == item.userEmail.toLowerCase() );
600
- if ( getUserId ) {
601
- item._id = getUserId._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
- if ( req.body.coverage == 'user' ) {
610
- await Promise.all( newUserList.map( async ( ele ) => {
611
- let findUserIndex = assignDetails.findIndex( ( item ) => item?.userEmail?.toLowerCase() == ele?.toLowerCase() );
612
- if ( findUserIndex != -1 ) {
613
- let data = {
614
- userName: assignDetails[findUserIndex]?.userName,
615
- email: ele,
616
- mobileNumber: assignDetails[findUserIndex]?.mobileNumber,
617
- clientId: req.body.clientId,
618
- };
619
- let response = await createUser( data );
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
- _id: ele.assignId,
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
- _id: ele.assignId,
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 userDetails = await userService.findOne( { email: store?.spocDetails?.[0]?.email, clientId: store.clientId } );
1110
- if ( !userDetails ) {
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._id,
1123
- userName: userDetails.userName,
1124
- userEmail: userDetails.email,
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
- allQuestion = allQuestion.filter( ( item ) => typeof item._id == 'undefined' );
1259
+ assignUserList = assignUserList.filter( ( item ) => typeof item._id == 'undefined' );
1222
1260
  }
1223
1261
 
1224
- if ( allQuestion ) {
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 = allQuestion.filter( ( item2 ) =>
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( 'Checklist id is required', 400 );
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._id,
3720
+ userId: userDetails?.[0]?._id,
3682
3721
  checkListName: taskDetails.checkListName,
3683
3722
  };
3684
3723
  delete data._id;