@optimiser/common 1.0.295 → 1.0.297

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 +150 -80
  2. package/package.json +1 -1
@@ -1865,6 +1865,8 @@ function BuildGridFieldProjection(project, field, group) {
1865
1865
  // below code was added by Shahzaib on 05/09/2022
1866
1866
  case "lookup":
1867
1867
  case "multilookup":
1868
+ case "dropdown":
1869
+ case "multiselect":
1868
1870
  alias = fldName + constants_1.default.LookupAlias;
1869
1871
  project[fldName] = 1;
1870
1872
  project[alias] = 1;
@@ -1908,45 +1910,41 @@ function BuildGridFieldProjection(project, field, group) {
1908
1910
  // }
1909
1911
  // };
1910
1912
  // break;
1911
- case "dropdown":
1912
- alias = fldName + constants_1.default.LookupAlias;
1913
- project[fldName] = 1;
1914
- project[alias] = 1;
1915
- if (field.Schema.LookupObject) {
1916
- for (var i = 0; i < field.Schema.LookupFields.length; i++) {
1917
- //searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], ""] });
1918
- // added by Mohan, make int to string and concat
1919
- searchConcatArry.push({ "$ifNull": [{ $toString: '$' + alias + '.' + field.Schema.LookupFields[i] }, ""] });
1920
- if (i < field.Schema.LookupFields.length - 1) {
1921
- searchConcatArry.push(" ");
1922
- }
1923
- }
1924
- ;
1925
- project[fldName + '_SearchValue'] = { $concat: searchConcatArry };
1926
- }
1927
- else {
1928
- project[fldName + '_SearchValue'] = '$' + alias + '.Value';
1929
- }
1930
- break;
1931
- case "multiselect":
1932
- alias = fldName + constants_1.default.LookupAlias;
1933
- project[fldName] = 1;
1934
- project[alias] = 1;
1935
- if (field.Schema.LookupObject) {
1936
- for (var i = 0; i < field.Schema.LookupFields.length; i++) {
1937
- searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], [" "]] });
1938
- if (i < field.Schema.LookupFields.length - 1) {
1939
- searchConcatArry.push([" "]);
1940
- }
1941
- }
1942
- ;
1943
- project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1944
- }
1945
- else {
1946
- searchConcatArry.push('$' + alias + '.Value');
1947
- project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1948
- }
1949
- break;
1913
+ // case "dropdown":
1914
+ // alias = fldName + constants.LookupAlias;
1915
+ // project[fldName] = 1;
1916
+ // project[alias] = 1;
1917
+ // if (field.Schema.LookupObject) {
1918
+ // for (let i = 0; i < field.Schema.LookupFields.length; i++) {
1919
+ // //searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], ""] });
1920
+ // // added by Mohan, make int to string and concat
1921
+ // searchConcatArry.push({ "$ifNull": [{$toString : '$' + alias + '.' + field.Schema.LookupFields[i]}, ""] });
1922
+ // if (i < field.Schema.LookupFields.length - 1) {
1923
+ // searchConcatArry.push(" ");
1924
+ // }
1925
+ // };
1926
+ // project[fldName + '_SearchValue'] = { $concat: searchConcatArry };
1927
+ // } else {
1928
+ // project[fldName + '_SearchValue'] = '$' + alias + '.Value';
1929
+ // }
1930
+ // break;
1931
+ // case "multiselect":
1932
+ // alias = fldName + constants.LookupAlias;
1933
+ // project[fldName] = 1;
1934
+ // project[alias] = 1;
1935
+ // if (field.Schema.LookupObject) {
1936
+ // for (let i = 0; i < field.Schema.LookupFields.length; i++) {
1937
+ // searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], [" "] ] });
1938
+ // if (i < field.Schema.LookupFields.length - 1) {
1939
+ // searchConcatArry.push([" "]);
1940
+ // }
1941
+ // };
1942
+ // project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1943
+ // } else {
1944
+ // searchConcatArry.push('$' + alias + '.Value');
1945
+ // project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1946
+ // }
1947
+ // break;
1950
1948
  case "file":
1951
1949
  case "image":
1952
1950
  alias = fldName + constants_1.default.LookupAlias;
@@ -3445,7 +3443,7 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3445
3443
  }
3446
3444
  ]).toArray(function (err, data) {
3447
3445
  return __awaiter(this, void 0, void 0, function () {
3448
- var modifiedObj, _i, data_1, obj, query, schemaData, fieldSchema, alias, i, query;
3446
+ var modifiedObj, _i, data_1, obj, query, schemaData, fieldSchema, alias, i, query, bulkOps;
3449
3447
  var _a, _b, _c, _d, _e, _f;
3450
3448
  return __generator(this, function (_g) {
3451
3449
  switch (_g.label) {
@@ -3458,7 +3456,7 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3458
3456
  _i = 0, data_1 = data;
3459
3457
  _g.label = 1;
3460
3458
  case 1:
3461
- if (!(_i < data_1.length)) return [3 /*break*/, 5];
3459
+ if (!(_i < data_1.length)) return [3 /*break*/, 7];
3462
3460
  obj = data_1[_i];
3463
3461
  query = {
3464
3462
  ObjectName: obj.Name
@@ -3470,60 +3468,66 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3470
3468
  return [4 /*yield*/, BuildLookupDataField(fieldSchema, modifiedObj, db)];
3471
3469
  case 3:
3472
3470
  _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);
3471
+ if (!(obj.Fields.ListSchemaName == syncFields.ListSchemaName || (obj.Fields.IsMultipleListSchemaName && obj.Fields.ListSchemaName.includes(syncFields.ListSchemaName)))) return [3 /*break*/, 5];
3472
+ alias = obj.Fields.Name + constants_1.default.LookupAlias;
3473
+ query.match = (_a = {},
3474
+ _a[obj.Fields.Name] = syncFields.ListKey,
3475
+ _a);
3476
+ if (obj.Fields.UIDataType == 'multiselect') {
3477
+ if (syncFields.IsDeleteValue)
3478
+ query.set = (_b = {}, _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false, _b);
3479
+ else
3480
+ query.set = (_c = {}, _c[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].Value'] = syncFields.Value, _c);
3481
+ query.arrayFilters = (_d = {},
3482
+ _d['e.Key'] = syncFields.ListKey,
3483
+ _d);
3494
3484
  }
3485
+ else {
3486
+ if (syncFields.IsDeleteValue)
3487
+ query.set = (_e = {}, _e[alias + '.IsActive'] = false, _e);
3488
+ else
3489
+ query.set = (_f = {}, _f[alias + '.Value'] = syncFields.Value, _f);
3490
+ }
3491
+ query.set = __assign(__assign({}, query.set), modifiedObj);
3492
+ if (!!syncFields.IsDeleteValue) return [3 /*break*/, 5];
3493
+ return [4 /*yield*/, BuildSearchValueQuery(syncFields, obj, query, db)];
3494
+ case 4:
3495
+ _g.sent();
3496
+ _g.label = 5;
3497
+ case 5:
3495
3498
  if (query.set && query.match) {
3496
3499
  querys.push(query);
3497
3500
  }
3498
- _g.label = 4;
3499
- case 4:
3501
+ _g.label = 6;
3502
+ case 6:
3500
3503
  _i++;
3501
3504
  return [3 /*break*/, 1];
3502
- case 5:
3505
+ case 7:
3503
3506
  if (!(querys.length > 0)) return [3 /*break*/, 11];
3504
3507
  i = 0;
3505
- _g.label = 6;
3506
- case 6:
3508
+ _g.label = 8;
3509
+ case 8:
3507
3510
  if (!(i < querys.length)) return [3 /*break*/, 11];
3508
3511
  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
- })];
3512
+ bulkOps = [];
3513
+ if (query.arrayFilters !== undefined) {
3514
+ // await db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, { arrayFilters: [query.arrayFilters] });
3515
+ bulkOps.push({ updateMany: { filter: query.match, update: { $set: query.set }, arrayFilters: [query.arrayFilters] } });
3516
+ }
3517
+ else {
3518
+ // await db.collection(query.ObjectName).updateMany(query.match, { $set: query.set });
3519
+ bulkOps.push({ updateMany: { filter: query.match, update: { $set: query.set } } });
3520
+ }
3521
+ if (query.setSearchValue && query.setSearchValue.length > 0) {
3522
+ bulkOps.push.apply(bulkOps, query.setSearchValue);
3523
+ }
3524
+ return [4 /*yield*/, db.collection(query.ObjectName).bulkWrite(bulkOps)];
3521
3525
  case 9:
3522
3526
  _g.sent();
3523
3527
  _g.label = 10;
3524
3528
  case 10:
3525
3529
  i++;
3526
- return [3 /*break*/, 6];
3530
+ return [3 /*break*/, 8];
3527
3531
  case 11:
3528
3532
  resolve();
3529
3533
  return [2 /*return*/];
@@ -3536,6 +3540,64 @@ function SyncListSchemaFieldInOtherCollection(syncFields, db, msp_d) {
3536
3540
  }); });
3537
3541
  }
3538
3542
  exports.SyncListSchemaFieldInOtherCollection = SyncListSchemaFieldInOtherCollection;
3543
+ //** Build _SearchValue to update in other collections, added by Shahzaib on 18-09-2022 */
3544
+ function BuildSearchValueQuery(syncObject, fieldObj, query, db) {
3545
+ var _a, _b;
3546
+ return __awaiter(this, void 0, void 0, function () {
3547
+ var field, alias, project, syncObjectsData, i, lookupRecord, setQuery, result, j, lookupRecordData, ex_2;
3548
+ var _c;
3549
+ return __generator(this, function (_d) {
3550
+ switch (_d.label) {
3551
+ case 0:
3552
+ _d.trys.push([0, 2, , 3]);
3553
+ field = fieldObj.Fields;
3554
+ alias = field.Name + '_LookupData';
3555
+ project = (_c = {}, _c[field.Name] = 1, _c[alias] = 1, _c);
3556
+ query.setSearchValue = [];
3557
+ return [4 /*yield*/, db.collection(query.ObjectName).find(query.match, { projection: project }).toArray()];
3558
+ case 1:
3559
+ syncObjectsData = _d.sent();
3560
+ if (syncObjectsData && syncObjectsData.length > 0) {
3561
+ for (i = 0; i < syncObjectsData.length; i++) {
3562
+ lookupRecord = syncObjectsData[i][alias];
3563
+ setQuery = {};
3564
+ switch (field.UIDataType) {
3565
+ case "dropdown":
3566
+ setQuery[field.Name + '_SearchValue'] = (_a = syncObject.Value) === null || _a === void 0 ? void 0 : _a.trim();
3567
+ query.setSearchValue.push({ updateOne: { filter: { '_id': syncObjectsData[i]._id }, update: { $set: setQuery } } });
3568
+ break;
3569
+ case "multiselect":
3570
+ {
3571
+ result = '';
3572
+ for (j = 0; j < lookupRecord.length; j++) {
3573
+ lookupRecordData = lookupRecord[j];
3574
+ if (lookupRecordData.Key == syncObject.ListKey) {
3575
+ if (syncObject.Value != undefined)
3576
+ result += syncObject.Value.toString() + ' ';
3577
+ }
3578
+ else {
3579
+ result += ((_b = lookupRecordData.Value) === null || _b === void 0 ? void 0 : _b.toString()) + ' ';
3580
+ }
3581
+ }
3582
+ setQuery[field.Name + '_SearchValue'] = result.trim();
3583
+ query.setSearchValue.push({ updateOne: { filter: { '_id': syncObjectsData[i]._id }, update: { $set: setQuery } } });
3584
+ }
3585
+ break;
3586
+ default:
3587
+ break;
3588
+ }
3589
+ }
3590
+ }
3591
+ return [3 /*break*/, 3];
3592
+ case 2:
3593
+ ex_2 = _d.sent();
3594
+ console.log(ex_2);
3595
+ return [3 /*break*/, 3];
3596
+ case 3: return [2 /*return*/];
3597
+ }
3598
+ });
3599
+ });
3600
+ }
3539
3601
  function UpdateTagCountAfterDelete(objectids, objectName, db, params) {
3540
3602
  return __awaiter(this, void 0, void 0, function () {
3541
3603
  var mongodbQueryOpts;
@@ -4688,6 +4750,10 @@ function ValidateUserInput(options) {
4688
4750
  case 21:
4689
4751
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 23];
4690
4752
  searchObj = { _id: fieldData };
4753
+ if (field.LookupKey) {
4754
+ searchObj = {};
4755
+ searchObj[field.LookupKey] = fieldData;
4756
+ }
4691
4757
  if (action == 'add') {
4692
4758
  searchObj.IsActive = true;
4693
4759
  }
@@ -4723,6 +4789,10 @@ function ValidateUserInput(options) {
4723
4789
  case 27:
4724
4790
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 29];
4725
4791
  searchObj = { _id: { $in: fieldData } };
4792
+ if (field.LookupKey) {
4793
+ searchObj = {};
4794
+ searchObj[field.LookupKey] = fieldData;
4795
+ }
4726
4796
  if (action == 'add') {
4727
4797
  searchObj.IsActive = true;
4728
4798
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.295",
3
+ "version": "1.0.297",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {