@optimiser/common 1.0.295 → 1.0.296

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.
Files changed (2) hide show
  1. package/dist/lib/utility.js +113 -41
  2. package/package.json +1 -1
@@ -3445,7 +3445,7 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3445
3445
  }
3446
3446
  ]).toArray(function (err, data) {
3447
3447
  return __awaiter(this, void 0, void 0, function () {
3448
- var modifiedObj, _i, data_1, obj, query, schemaData, fieldSchema, alias, i, query;
3448
+ var modifiedObj, _i, data_1, obj, query, schemaData, fieldSchema, alias, i, query, bulkOps;
3449
3449
  var _a, _b, _c, _d, _e, _f;
3450
3450
  return __generator(this, function (_g) {
3451
3451
  switch (_g.label) {
@@ -3458,7 +3458,7 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3458
3458
  _i = 0, data_1 = data;
3459
3459
  _g.label = 1;
3460
3460
  case 1:
3461
- if (!(_i < data_1.length)) return [3 /*break*/, 5];
3461
+ if (!(_i < data_1.length)) return [3 /*break*/, 7];
3462
3462
  obj = data_1[_i];
3463
3463
  query = {
3464
3464
  ObjectName: obj.Name
@@ -3470,60 +3470,66 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3470
3470
  return [4 /*yield*/, BuildLookupDataField(fieldSchema, modifiedObj, db)];
3471
3471
  case 3:
3472
3472
  _g.sent();
3473
- if (obj.Fields.ListSchemaName == syncFields.ListSchemaName || (obj.Fields.IsMultipleListSchemaName && obj.Fields.ListSchemaName.includes(syncFields.ListSchemaName))) {
3474
- alias = obj.Fields.Name + constants_1.default.LookupAlias;
3475
- query.match = (_a = {},
3476
- _a[obj.Fields.Name] = syncFields.ListKey,
3477
- _a);
3478
- if (obj.Fields.UIDataType == 'multiselect') {
3479
- if (syncFields.IsDeleteValue)
3480
- query.set = (_b = {}, _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false, _b);
3481
- else
3482
- query.set = (_c = {}, _c[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].Value'] = syncFields.Value, _c);
3483
- query.arrayFilters = (_d = {},
3484
- _d['e.Key'] = syncFields.ListKey,
3485
- _d);
3486
- }
3487
- else {
3488
- if (syncFields.IsDeleteValue)
3489
- query.set = (_e = {}, _e[alias + '.IsActive'] = false, _e);
3490
- else
3491
- query.set = (_f = {}, _f[alias + '.Value'] = syncFields.Value, _f);
3492
- }
3493
- query.set = __assign(__assign({}, query.set), modifiedObj);
3473
+ if (!(obj.Fields.ListSchemaName == syncFields.ListSchemaName || (obj.Fields.IsMultipleListSchemaName && obj.Fields.ListSchemaName.includes(syncFields.ListSchemaName)))) return [3 /*break*/, 5];
3474
+ alias = obj.Fields.Name + constants_1.default.LookupAlias;
3475
+ query.match = (_a = {},
3476
+ _a[obj.Fields.Name] = syncFields.ListKey,
3477
+ _a);
3478
+ if (obj.Fields.UIDataType == 'multiselect') {
3479
+ if (syncFields.IsDeleteValue)
3480
+ query.set = (_b = {}, _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false, _b);
3481
+ else
3482
+ query.set = (_c = {}, _c[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].Value'] = syncFields.Value, _c);
3483
+ query.arrayFilters = (_d = {},
3484
+ _d['e.Key'] = syncFields.ListKey,
3485
+ _d);
3486
+ }
3487
+ else {
3488
+ if (syncFields.IsDeleteValue)
3489
+ query.set = (_e = {}, _e[alias + '.IsActive'] = false, _e);
3490
+ else
3491
+ query.set = (_f = {}, _f[alias + '.Value'] = syncFields.Value, _f);
3494
3492
  }
3493
+ query.set = __assign(__assign({}, query.set), modifiedObj);
3494
+ if (!!syncFields.IsDeleteValue) return [3 /*break*/, 5];
3495
+ return [4 /*yield*/, BuildSearchValueQuery(syncFields, obj, query, db)];
3496
+ case 4:
3497
+ _g.sent();
3498
+ _g.label = 5;
3499
+ case 5:
3495
3500
  if (query.set && query.match) {
3496
3501
  querys.push(query);
3497
3502
  }
3498
- _g.label = 4;
3499
- case 4:
3503
+ _g.label = 6;
3504
+ case 6:
3500
3505
  _i++;
3501
3506
  return [3 /*break*/, 1];
3502
- case 5:
3507
+ case 7:
3503
3508
  if (!(querys.length > 0)) return [3 /*break*/, 11];
3504
3509
  i = 0;
3505
- _g.label = 6;
3506
- case 6:
3510
+ _g.label = 8;
3511
+ case 8:
3507
3512
  if (!(i < querys.length)) return [3 /*break*/, 11];
3508
3513
  query = querys[i];
3509
- if (!(query.arrayFilters !== undefined)) return [3 /*break*/, 8];
3510
- return [4 /*yield*/, db.collection(query.ObjectName).updateMany(query.match, {
3511
- $set: query.set
3512
- }, {
3513
- arrayFilters: [query.arrayFilters]
3514
- })];
3515
- case 7:
3516
- _g.sent();
3517
- return [3 /*break*/, 10];
3518
- case 8: return [4 /*yield*/, db.collection(query.ObjectName).updateMany(query.match, {
3519
- $set: query.set
3520
- })];
3514
+ bulkOps = [];
3515
+ if (query.arrayFilters !== undefined) {
3516
+ // await db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, { arrayFilters: [query.arrayFilters] });
3517
+ bulkOps.push({ updateMany: { filter: query.match, update: { $set: query.set }, arrayFilters: [query.arrayFilters] } });
3518
+ }
3519
+ else {
3520
+ // await db.collection(query.ObjectName).updateMany(query.match, { $set: query.set });
3521
+ bulkOps.push({ updateMany: { filter: query.match, update: { $set: query.set } } });
3522
+ }
3523
+ if (query.setSearchValue && query.setSearchValue.length > 0) {
3524
+ bulkOps.push.apply(bulkOps, query.setSearchValue);
3525
+ }
3526
+ return [4 /*yield*/, db.collection(query.ObjectName).bulkWrite(bulkOps)];
3521
3527
  case 9:
3522
3528
  _g.sent();
3523
3529
  _g.label = 10;
3524
3530
  case 10:
3525
3531
  i++;
3526
- return [3 /*break*/, 6];
3532
+ return [3 /*break*/, 8];
3527
3533
  case 11:
3528
3534
  resolve();
3529
3535
  return [2 /*return*/];
@@ -3536,6 +3542,64 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3536
3542
  }); });
3537
3543
  }
3538
3544
  exports.SyncListSchemaFieldInOtherCollection = SyncListSchemaFieldInOtherCollection;
3545
+ //** Build _SearchValue to update in other collections, added by Shahzaib on 18-09-2022 */
3546
+ function BuildSearchValueQuery(syncObject, fieldObj, query, db) {
3547
+ var _a, _b;
3548
+ return __awaiter(this, void 0, void 0, function () {
3549
+ var field, alias, project, syncObjectsData, i, lookupRecord, setQuery, result, j, lookupRecordData, ex_2;
3550
+ var _c;
3551
+ return __generator(this, function (_d) {
3552
+ switch (_d.label) {
3553
+ case 0:
3554
+ _d.trys.push([0, 2, , 3]);
3555
+ field = fieldObj.Fields;
3556
+ alias = field.Name + '_LookupData';
3557
+ project = (_c = {}, _c[field.Name] = 1, _c[alias] = 1, _c);
3558
+ query.setSearchValue = [];
3559
+ return [4 /*yield*/, db.collection(query.ObjectName).find(query.match, { projection: project }).toArray()];
3560
+ case 1:
3561
+ syncObjectsData = _d.sent();
3562
+ if (syncObjectsData && syncObjectsData.length > 0) {
3563
+ for (i = 0; i < syncObjectsData.length; i++) {
3564
+ lookupRecord = syncObjectsData[i][alias];
3565
+ setQuery = {};
3566
+ switch (field.UIDataType) {
3567
+ case "dropdown":
3568
+ setQuery[field.Name + '_SearchValue'] = (_a = syncObject.Value) === null || _a === void 0 ? void 0 : _a.trim();
3569
+ query.setSearchValue.push({ updateOne: { filter: { '_id': syncObjectsData[i]._id }, update: { $set: setQuery } } });
3570
+ break;
3571
+ case "multiselect":
3572
+ {
3573
+ result = '';
3574
+ for (j = 0; j < lookupRecord.length; j++) {
3575
+ lookupRecordData = lookupRecord[j];
3576
+ if (lookupRecordData.Key == syncObject.ListKey) {
3577
+ if (syncObject.Value != undefined)
3578
+ result += syncObject.Value.toString() + ' ';
3579
+ }
3580
+ else {
3581
+ result += ((_b = lookupRecordData.Value) === null || _b === void 0 ? void 0 : _b.toString()) + ' ';
3582
+ }
3583
+ }
3584
+ setQuery[field.Name + '_SearchValue'] = result.trim();
3585
+ query.setSearchValue.push({ updateOne: { filter: { '_id': syncObjectsData[i]._id }, update: { $set: setQuery } } });
3586
+ }
3587
+ break;
3588
+ default:
3589
+ break;
3590
+ }
3591
+ }
3592
+ }
3593
+ return [3 /*break*/, 3];
3594
+ case 2:
3595
+ ex_2 = _d.sent();
3596
+ console.log(ex_2);
3597
+ return [3 /*break*/, 3];
3598
+ case 3: return [2 /*return*/];
3599
+ }
3600
+ });
3601
+ });
3602
+ }
3539
3603
  function UpdateTagCountAfterDelete(objectids, objectName, db, params) {
3540
3604
  return __awaiter(this, void 0, void 0, function () {
3541
3605
  var mongodbQueryOpts;
@@ -4688,6 +4752,10 @@ function ValidateUserInput(options) {
4688
4752
  case 21:
4689
4753
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 23];
4690
4754
  searchObj = { _id: fieldData };
4755
+ if (field.LookupKey) {
4756
+ searchObj = {};
4757
+ searchObj[field.LookupKey] = fieldData;
4758
+ }
4691
4759
  if (action == 'add') {
4692
4760
  searchObj.IsActive = true;
4693
4761
  }
@@ -4723,6 +4791,10 @@ function ValidateUserInput(options) {
4723
4791
  case 27:
4724
4792
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 29];
4725
4793
  searchObj = { _id: { $in: fieldData } };
4794
+ if (field.LookupKey) {
4795
+ searchObj = {};
4796
+ searchObj[field.LookupKey] = fieldData;
4797
+ }
4726
4798
  if (action == 'add') {
4727
4799
  searchObj.IsActive = true;
4728
4800
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.295",
3
+ "version": "1.0.296",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {