@optimiser/common 1.0.290 → 1.0.292

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 +175 -130
  2. package/package.json +1 -1
@@ -1021,7 +1021,7 @@ function SyncFieldInSameCollection(objectName, objectIDs, db) {
1021
1021
  }
1022
1022
  db.collection(objectName).find(findObj).forEach(function (objectData) {
1023
1023
  return __awaiter(this, void 0, void 0, function () {
1024
- var updateObj, i, fieldSchema, lookupData, ex_1;
1024
+ var updateObj, i, fieldSchema, lookupData, searchValue, ex_1;
1025
1025
  return __generator(this, function (_a) {
1026
1026
  switch (_a.label) {
1027
1027
  case 0:
@@ -1042,6 +1042,10 @@ function SyncFieldInSameCollection(objectName, objectIDs, db) {
1042
1042
  if (lookupData !== undefined) {
1043
1043
  updateObj[fieldSchema.Name + constants_1.default.LookupAlias] = lookupData;
1044
1044
  }
1045
+ searchValue = objectData[fieldSchema.Name + constants_1.default.SearchValueAlias];
1046
+ if (searchValue !== undefined) {
1047
+ updateObj[fieldSchema.Name + constants_1.default.SearchValueAlias] = searchValue;
1048
+ }
1045
1049
  _a.label = 4;
1046
1050
  case 4:
1047
1051
  i++;
@@ -1097,7 +1101,7 @@ function SyncFieldInSameCollectionByObjectID(objectName, objectID, db) {
1097
1101
  if (fieldArr_2) {
1098
1102
  db.collection(objectName).findOne({ '_id': objectID }, function (err, objectData) {
1099
1103
  return __awaiter(this, void 0, void 0, function () {
1100
- var updateObj, i, fieldSchema, lookupData;
1104
+ var updateObj, i, fieldSchema, lookupData, searchValue;
1101
1105
  return __generator(this, function (_a) {
1102
1106
  switch (_a.label) {
1103
1107
  case 0:
@@ -1115,6 +1119,10 @@ function SyncFieldInSameCollectionByObjectID(objectName, objectID, db) {
1115
1119
  if (lookupData !== undefined) {
1116
1120
  updateObj[fieldSchema.Name + constants_1.default.LookupAlias] = lookupData;
1117
1121
  }
1122
+ searchValue = objectData[fieldSchema.Name + constants_1.default.SearchValueAlias];
1123
+ if (searchValue !== undefined) {
1124
+ updateObj[fieldSchema.Name + constants_1.default.SearchValueAlias] = searchValue;
1125
+ }
1118
1126
  _a.label = 3;
1119
1127
  case 3:
1120
1128
  i++;
@@ -1143,7 +1151,7 @@ function SyncFieldInSameCollectionByObjectIDWithPromise(objectName, objectID, db
1143
1151
  if (fieldArr_3) {
1144
1152
  db.collection(objectName).findOne({ '_id': objectID }, function (err, objectData) {
1145
1153
  return __awaiter(this, void 0, void 0, function () {
1146
- var updateObj, i, fieldSchema, lookupData;
1154
+ var updateObj, i, fieldSchema, lookupData, searchValue;
1147
1155
  return __generator(this, function (_a) {
1148
1156
  switch (_a.label) {
1149
1157
  case 0:
@@ -1161,6 +1169,10 @@ function SyncFieldInSameCollectionByObjectIDWithPromise(objectName, objectID, db
1161
1169
  if (lookupData !== undefined) {
1162
1170
  updateObj[fieldSchema.Name + constants_1.default.LookupAlias] = lookupData;
1163
1171
  }
1172
+ searchValue = objectData[fieldSchema.Name + constants_1.default.SearchValueAlias];
1173
+ if (searchValue !== undefined) {
1174
+ updateObj[fieldSchema.Name + constants_1.default.SearchValueAlias] = searchValue;
1175
+ }
1164
1176
  _a.label = 3;
1165
1177
  case 3:
1166
1178
  i++;
@@ -1462,7 +1474,7 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1462
1474
  var fldName = fieldSchema.Name;
1463
1475
  var fldValue_1 = updateObj[fldName];
1464
1476
  var alias_1 = fldName + constants_1.default.LookupAlias;
1465
- var searchAlias = fldName + constants_1.default.SearchValueAlias;
1477
+ var searchAlias_1 = fldName + constants_1.default.SearchValueAlias;
1466
1478
  var fldLookupData_1 = null;
1467
1479
  if (fldValue_1) {
1468
1480
  var aggregateArry = [];
@@ -1505,17 +1517,20 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1505
1517
  fldLookupData_1 = data[0];
1506
1518
  updateObj[alias_1] = fldLookupData_1;
1507
1519
  //** Below code is added by Shahzaib on 05/09/2022 to create SearchValue */
1508
- // let result = '';
1509
- // if (fieldSchema.LookupFields != undefined) {
1510
- // for (let j = 0; j < fieldSchema.LookupFields.length; j++) {
1511
- // if (fieldSchema.ExcludeLookupFieldsOnSearch && fieldSchema.ExcludeLookupFieldsOnSearch.filter((x: AnyObjectInterface) => x == fieldSchema.LookupFields[j]).length != 0) {
1512
- // continue;
1513
- // }
1514
- // if (fldLookupData[fieldSchema.LookupFields[j]] != undefined)
1515
- // result += fldLookupData[fieldSchema.LookupFields[j]].toString() + ' ';
1516
- // }
1517
- // }
1518
- // updateObj[searchAlias] = result?.trim();
1520
+ var result = '';
1521
+ if (fieldSchema.LookupFields != undefined) {
1522
+ var _loop_10 = function (j) {
1523
+ if (fieldSchema.ExcludeLookupFieldsOnSearch && fieldSchema.ExcludeLookupFieldsOnSearch.filter(function (x) { return x == fieldSchema.LookupFields[j]; }).length != 0) {
1524
+ return "continue";
1525
+ }
1526
+ if (fldLookupData_1[fieldSchema.LookupFields[j]] != undefined)
1527
+ result += fldLookupData_1[fieldSchema.LookupFields[j]].toString() + ' ';
1528
+ };
1529
+ for (var j = 0; j < fieldSchema.LookupFields.length; j++) {
1530
+ _loop_10(j);
1531
+ }
1532
+ }
1533
+ updateObj[searchAlias_1] = result === null || result === void 0 ? void 0 : result.trim();
1519
1534
  //** Ends here */
1520
1535
  }
1521
1536
  resolve();
@@ -1547,17 +1562,17 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1547
1562
  fldLookupData_1 = data;
1548
1563
  updateObj[alias_1] = fldLookupData_1;
1549
1564
  //** Below code is added by Shahzaib on 05/09/2022 to create SearchValue */
1550
- // let result = '';
1551
- // for (let i = 0; i < data.length; i++) {
1552
- // let lookupRecord = data[i];
1553
- // if (fieldSchema.LookupFields != undefined) {
1554
- // for (let j = 0; j < fieldSchema.LookupFields.length; j++) {
1555
- // if (lookupRecord[fieldSchema.LookupFields[j]] != undefined)
1556
- // result += lookupRecord[fieldSchema.LookupFields[j]].toString() + ' ';
1557
- // }
1558
- // }
1559
- // }
1560
- // updateObj[searchAlias] = result?.trim();
1565
+ var result = '';
1566
+ for (var i = 0; i < data.length; i++) {
1567
+ var lookupRecord = data[i];
1568
+ if (fieldSchema.LookupFields != undefined) {
1569
+ for (var j = 0; j < fieldSchema.LookupFields.length; j++) {
1570
+ if (lookupRecord[fieldSchema.LookupFields[j]] != undefined)
1571
+ result += lookupRecord[fieldSchema.LookupFields[j]].toString() + ' ';
1572
+ }
1573
+ }
1574
+ }
1575
+ updateObj[searchAlias_1] = result === null || result === void 0 ? void 0 : result.trim();
1561
1576
  //** Ends here */
1562
1577
  }
1563
1578
  resolve();
@@ -1661,9 +1676,9 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1661
1676
  else {
1662
1677
  updateObj[alias_1] = fldLookupData_1;
1663
1678
  // Below if cond was added by Shahzaib on 05/09/2022
1664
- // if (fieldSchema.UIDataType == 'lookup' || fieldSchema.UIDataType == 'multilookup') {
1665
- // updateObj[searchAlias] = fldLookupData;
1666
- // }
1679
+ if (fieldSchema.UIDataType == 'lookup' || fieldSchema.UIDataType == 'multilookup') {
1680
+ updateObj[searchAlias_1] = fldLookupData_1;
1681
+ }
1667
1682
  resolve();
1668
1683
  }
1669
1684
  }
@@ -1676,11 +1691,11 @@ exports.BuildLookupDataField = BuildLookupDataField;
1676
1691
  //CheckDataBeforeAdd it sync object before add
1677
1692
  function CheckDataBeforeAdd(updateObj, objectSchema, db) {
1678
1693
  return __awaiter(this, void 0, void 0, function () {
1679
- var _loop_10, _i, _a, fldName;
1694
+ var _loop_11, _i, _a, fldName;
1680
1695
  return __generator(this, function (_b) {
1681
1696
  switch (_b.label) {
1682
1697
  case 0:
1683
- _loop_10 = function (fldName) {
1698
+ _loop_11 = function (fldName) {
1684
1699
  var fieldSchema, sequenceDocument, val, j, item, num;
1685
1700
  return __generator(this, function (_a) {
1686
1701
  switch (_a.label) {
@@ -1726,7 +1741,7 @@ function CheckDataBeforeAdd(updateObj, objectSchema, db) {
1726
1741
  case 1:
1727
1742
  if (!(_i < _a.length)) return [3 /*break*/, 4];
1728
1743
  fldName = _a[_i];
1729
- return [5 /*yield**/, _loop_10(fldName)];
1744
+ return [5 /*yield**/, _loop_11(fldName)];
1730
1745
  case 2:
1731
1746
  _b.sent();
1732
1747
  _b.label = 3;
@@ -1742,11 +1757,11 @@ exports.CheckDataBeforeAdd = CheckDataBeforeAdd;
1742
1757
  //CheckDataBeforeAdd it sync object before update
1743
1758
  function CheckDataBeforeUpdate(updateObj, objectData, objectSchema, db) {
1744
1759
  return __awaiter(this, void 0, void 0, function () {
1745
- var _loop_11, _i, _a, fldName;
1760
+ var _loop_12, _i, _a, fldName;
1746
1761
  return __generator(this, function (_b) {
1747
1762
  switch (_b.label) {
1748
1763
  case 0:
1749
- _loop_11 = function (fldName) {
1764
+ _loop_12 = function (fldName) {
1750
1765
  var fieldSchema, oldValue, newValue, isSame;
1751
1766
  return __generator(this, function (_a) {
1752
1767
  switch (_a.label) {
@@ -1789,7 +1804,7 @@ function CheckDataBeforeUpdate(updateObj, objectData, objectSchema, db) {
1789
1804
  case 1:
1790
1805
  if (!(_i < _a.length)) return [3 /*break*/, 4];
1791
1806
  fldName = _a[_i];
1792
- return [5 /*yield**/, _loop_11(fldName)];
1807
+ return [5 /*yield**/, _loop_12(fldName)];
1793
1808
  case 2:
1794
1809
  _b.sent();
1795
1810
  _b.label = 3;
@@ -1812,56 +1827,51 @@ function BuildGridFieldProjection(project, field, group) {
1812
1827
  var searchConcatArry = [];
1813
1828
  switch (field.Schema.UIDataType) {
1814
1829
  // below code was added by Shahzaib on 05/09/2022
1815
- // case "lookup":
1816
- // case "multilookup":
1817
- // alias = fldName + constants.LookupAlias;
1818
- // project[fldName] = 1;
1819
- // project[alias] = 1;
1820
- // project[searchAlias] = 1;
1821
- // break;
1822
- // Below code was commented by Shahzaib on 05/09/2022, searchAlias was added instead of it.
1823
1830
  case "lookup":
1824
- alias = fldName + constants_1.default.LookupAlias;
1825
- project[fldName] = 1;
1826
- project[alias] = 1;
1827
- var _loop_12 = function (i) {
1828
- if (field.Schema.ExcludeLookupFieldsOnSearch && field.Schema.ExcludeLookupFieldsOnSearch.filter(function (x) { return x == field.Schema.LookupFields[i]; }).length != 0) {
1829
- return "continue";
1830
- }
1831
- // searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], ""] });
1832
- // added by Shahzaib, make int to string and concat
1833
- searchConcatArry.push({ "$ifNull": [{ $toString: '$' + alias + '.' + field.Schema.LookupFields[i] }, ""] });
1834
- if (i < field.Schema.LookupFields.length - 1) {
1835
- searchConcatArry.push(" ");
1836
- }
1837
- };
1838
- for (var i = 0; i < field.Schema.LookupFields.length; i++) {
1839
- _loop_12(i);
1840
- }
1841
- ;
1842
- project[fldName + '_SearchValue'] = { $concat: searchConcatArry };
1843
- break;
1844
1831
  case "multilookup":
1845
1832
  alias = fldName + constants_1.default.LookupAlias;
1846
1833
  project[fldName] = 1;
1847
1834
  project[alias] = 1;
1848
- for (var i = 0; i < field.Schema.LookupFields.length; i++) {
1849
- searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], [" "]] });
1850
- if (i < field.Schema.LookupFields.length - 1) {
1851
- searchConcatArry.push([" "]);
1852
- }
1853
- }
1854
- ;
1855
- //project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1856
- project[fldName + '_SearchValue'] = {
1857
- $reduce: {
1858
- input: { $concatArrays: searchConcatArry },
1859
- initialValue: "",
1860
- //in: { $concat: ["$$value", "$$this"] } // Commented by and below line was added by Shahzaib, make int to string
1861
- in: { $concat: ["$$value", { $toString: "$$this" }] }
1862
- }
1863
- };
1835
+ project[searchAlias] = 1;
1864
1836
  break;
1837
+ // Below code was commented by Shahzaib on 05/09/2022, searchAlias was added instead of it.
1838
+ // case "lookup":
1839
+ // alias = fldName + constants.LookupAlias;
1840
+ // project[fldName] = 1;
1841
+ // project[alias] = 1;
1842
+ // for (let i = 0; i < field.Schema.LookupFields.length; i++) {
1843
+ // if (field.Schema.ExcludeLookupFieldsOnSearch && field.Schema.ExcludeLookupFieldsOnSearch.filter((x: AnyObjectInterface) => x == field.Schema.LookupFields[i]).length != 0) {
1844
+ // continue;
1845
+ // }
1846
+ // // searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], ""] });
1847
+ // // added by Shahzaib, make int to string and concat
1848
+ // searchConcatArry.push({ "$ifNull": [{$toString : '$' + alias + '.' + field.Schema.LookupFields[i]}, ""] });
1849
+ // if (i < field.Schema.LookupFields.length - 1) {
1850
+ // searchConcatArry.push(" ");
1851
+ // }
1852
+ // };
1853
+ // project[fldName + '_SearchValue'] = { $concat: searchConcatArry };
1854
+ // break;
1855
+ // case "multilookup":
1856
+ // alias = fldName + constants.LookupAlias;
1857
+ // project[fldName] = 1;
1858
+ // project[alias] = 1;
1859
+ // for (let i = 0; i < field.Schema.LookupFields.length; i++) {
1860
+ // searchConcatArry.push({ "$ifNull": ['$' + alias + '.' + field.Schema.LookupFields[i], [" "]] });
1861
+ // if (i < field.Schema.LookupFields.length - 1) {
1862
+ // searchConcatArry.push([" "]);
1863
+ // }
1864
+ // };
1865
+ // //project[fldName + '_SearchValue'] = { $concatArrays: searchConcatArry };
1866
+ // project[fldName + '_SearchValue'] = {
1867
+ // $reduce: {
1868
+ // input: { $concatArrays: searchConcatArry },
1869
+ // initialValue: "",
1870
+ // //in: { $concat: ["$$value", "$$this"] } // Commented by and below line was added by Shahzaib, make int to string
1871
+ // in: { $concat: ["$$value", { $toString : "$$this" }] }
1872
+ // }
1873
+ // };
1874
+ // break;
1865
1875
  case "dropdown":
1866
1876
  alias = fldName + constants_1.default.LookupAlias;
1867
1877
  project[fldName] = 1;
@@ -4422,11 +4432,11 @@ function IsAnotherObjectField(pageData, fieldName) {
4422
4432
  */
4423
4433
  function ValidateUserInput(options) {
4424
4434
  return __awaiter(this, void 0, void 0, function () {
4425
- var inputFields, pageData, documentID, db, action, objectSchema, objectName, pageFields, schemaFields, inputField, msg, _loop_18, _i, inputField_1, name_1, state_1, _loop_19, isValid, _a, pageFields_1, pageField, state_2, err_3;
4435
+ var inputFields, pageData, documentID, db, action, objectSchema, objectName, pageFields, schemaFields, inputField, msg, _loop_18, _i, inputField_1, name_1, state_1, _loop_19, isValid, validateResp, _a, pageFields_1, pageField, state_2, countryData, err_3;
4426
4436
  return __generator(this, function (_b) {
4427
4437
  switch (_b.label) {
4428
4438
  case 0:
4429
- _b.trys.push([0, 5, , 6]);
4439
+ _b.trys.push([0, 7, , 8]);
4430
4440
  inputFields = options.userInput;
4431
4441
  pageData = options.pageData;
4432
4442
  documentID = options.objectID;
@@ -4458,9 +4468,9 @@ function ValidateUserInput(options) {
4458
4468
  }
4459
4469
  }
4460
4470
  _loop_19 = function (pageField) {
4461
- var fieldName, fieldData, field, searchQuery, result, _a, filter, searchObj, result, searchObj, totalRecord, _b, schemaData, result, searchObj, result, schemaData, result, searchObj, totalRecord, regexpression, phone, files, _i, fieldData_1, obj, searchObj, totalRecord, searchObj, result;
4462
- return __generator(this, function (_c) {
4463
- switch (_c.label) {
4471
+ var fieldName, fieldData, field, searchQuery, result, _a, filter, searchObj, result, searchObj, totalRecord, _b, schemaData, result, searchObj, result, schemaData, result, searchObj, totalRecord, regexpression, phone, files, _i, fieldData_1, obj, searchObj, totalRecord, searchObj, result, _c, fieldData_2, obj;
4472
+ return __generator(this, function (_d) {
4473
+ switch (_d.label) {
4464
4474
  case 0:
4465
4475
  if (msg != "") {
4466
4476
  return [2 /*return*/, "break"];
@@ -4468,7 +4478,7 @@ function ValidateUserInput(options) {
4468
4478
  fieldName = pageField.Name;
4469
4479
  fieldData = inputFields[fieldName];
4470
4480
  field = schemaFields.find(function (x) { return x.Name == fieldName; });
4471
- if (!field) return [3 /*break*/, 47];
4481
+ if (!field) return [3 /*break*/, 52];
4472
4482
  if (fieldData && IsStringValue(fieldData) && field.UIDataType != 'dropdown') {
4473
4483
  fieldData = fieldData.trim();
4474
4484
  if (["text", "email", "phone"].includes(field.UIDataType)) {
@@ -4490,15 +4500,15 @@ function ValidateUserInput(options) {
4490
4500
  }
4491
4501
  return [4 /*yield*/, db.collection(objectSchema.Name).findOne(searchQuery)];
4492
4502
  case 1:
4493
- result = _c.sent();
4503
+ result = _d.sent();
4494
4504
  if (result != null) {
4495
4505
  msg = 'Email already exists for ' + field.DisplayName + '!';
4496
4506
  return [2 /*return*/, "break"];
4497
4507
  }
4498
- _c.label = 2;
4508
+ _d.label = 2;
4499
4509
  case 2:
4500
- if (!inputField.includes(fieldName)) return [3 /*break*/, 46];
4501
- if (!(fieldData || fieldData === 0 || fieldData === false)) return [3 /*break*/, 46];
4510
+ if (!inputField.includes(fieldName)) return [3 /*break*/, 51];
4511
+ if (!(fieldData || fieldData === 0 || fieldData === false)) return [3 /*break*/, 51];
4502
4512
  _a = field.UIDataType;
4503
4513
  switch (_a) {
4504
4514
  case 'int': return [3 /*break*/, 3];
@@ -4519,8 +4529,9 @@ function ValidateUserInput(options) {
4519
4529
  case 'textarea': return [3 /*break*/, 45];
4520
4530
  case 'text': return [3 /*break*/, 45];
4521
4531
  case 'texteditor': return [3 /*break*/, 45];
4532
+ case 'collection': return [3 /*break*/, 46];
4522
4533
  }
4523
- return [3 /*break*/, 46];
4534
+ return [3 /*break*/, 51];
4524
4535
  case 3:
4525
4536
  {
4526
4537
  if (IsStringValue(fieldData)) {
@@ -4539,14 +4550,14 @@ function ValidateUserInput(options) {
4539
4550
  msg = field.DisplayName + ' value must be smaller then or equal to ' + field.MaxValue;
4540
4551
  }
4541
4552
  }
4542
- return [3 /*break*/, 46];
4553
+ return [3 /*break*/, 51];
4543
4554
  case 4:
4544
4555
  {
4545
4556
  if ((fieldData instanceof Date && !isNaN(inputFields[fieldName])) == false) {
4546
4557
  msg = 'Invalid date for ' + field.DisplayName + '!';
4547
4558
  }
4548
4559
  }
4549
- return [3 /*break*/, 46];
4560
+ return [3 /*break*/, 51];
4550
4561
  case 5:
4551
4562
  {
4552
4563
  isValid = /^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/.test(fieldData);
@@ -4554,7 +4565,7 @@ function ValidateUserInput(options) {
4554
4565
  msg = 'Invalid time for ' + field.DisplayName + '!';
4555
4566
  }
4556
4567
  }
4557
- return [3 /*break*/, 46];
4568
+ return [3 /*break*/, 51];
4558
4569
  case 6:
4559
4570
  {
4560
4571
  filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
@@ -4562,14 +4573,14 @@ function ValidateUserInput(options) {
4562
4573
  msg = 'Invalid email for ' + field.DisplayName + '!';
4563
4574
  }
4564
4575
  }
4565
- return [3 /*break*/, 46];
4576
+ return [3 /*break*/, 51];
4566
4577
  case 7:
4567
4578
  {
4568
4579
  if (fieldData !== true && fieldData !== false) {
4569
4580
  msg = 'Invalid user input for ' + field.DisplayName + '!';
4570
4581
  }
4571
4582
  }
4572
- return [3 /*break*/, 46];
4583
+ return [3 /*break*/, 51];
4573
4584
  case 8:
4574
4585
  searchObj = { _id: fieldData };
4575
4586
  if (action == 'add') {
@@ -4578,11 +4589,11 @@ function ValidateUserInput(options) {
4578
4589
  ;
4579
4590
  return [4 /*yield*/, db.collection(field.LookupObject).findOne(searchObj)];
4580
4591
  case 9:
4581
- result = _c.sent();
4592
+ result = _d.sent();
4582
4593
  if (result == null) {
4583
4594
  msg = field.DisplayName + ' does not exist!';
4584
4595
  }
4585
- return [3 /*break*/, 46];
4596
+ return [3 /*break*/, 51];
4586
4597
  case 10:
4587
4598
  if (!Array.isArray(fieldData)) return [3 /*break*/, 16];
4588
4599
  if (!fieldData.length) return [3 /*break*/, 14];
@@ -4593,13 +4604,13 @@ function ValidateUserInput(options) {
4593
4604
  ;
4594
4605
  return [4 /*yield*/, db.collection(field.LookupObject).find(searchObj).count()];
4595
4606
  case 11:
4596
- totalRecord = _c.sent();
4607
+ totalRecord = _d.sent();
4597
4608
  if (!(objectName == "Activity" && field.Name == 'Attendees')) return [3 /*break*/, 13];
4598
4609
  _b = totalRecord;
4599
4610
  return [4 /*yield*/, db.collection('Contact').find(searchObj).count()];
4600
4611
  case 12:
4601
- totalRecord = _b + _c.sent();
4602
- _c.label = 13;
4612
+ totalRecord = _b + _d.sent();
4613
+ _d.label = 13;
4603
4614
  case 13:
4604
4615
  if (totalRecord !== fieldData.length) {
4605
4616
  msg = field.DisplayName + ' does not exist!';
@@ -4609,25 +4620,25 @@ function ValidateUserInput(options) {
4609
4620
  if (field.IsRequired) {
4610
4621
  msg = field.DisplayName + ' is required!';
4611
4622
  }
4612
- _c.label = 15;
4623
+ _d.label = 15;
4613
4624
  case 15: return [3 /*break*/, 17];
4614
4625
  case 16:
4615
4626
  msg = 'Invalid value for ' + field.DisplayName;
4616
- _c.label = 17;
4617
- case 17: return [3 /*break*/, 46];
4627
+ _d.label = 17;
4628
+ case 17: return [3 /*break*/, 51];
4618
4629
  case 18:
4619
4630
  if (!(field.ListSchemaName !== undefined)) return [3 /*break*/, 21];
4620
4631
  if (!!field.IsMultipleListSchemaName) return [3 /*break*/, 20];
4621
4632
  schemaData = null;
4622
4633
  return [4 /*yield*/, db.collection('ListSchema').findOne({ Name: field.ListSchemaName })];
4623
4634
  case 19:
4624
- result = _c.sent();
4635
+ result = _d.sent();
4625
4636
  if (result && result.Data)
4626
4637
  schemaData = result.Data.find(function (x) { return x.Key == fieldData; });
4627
4638
  if (schemaData == null || (action == 'add' && schemaData.IsActive == false)) {
4628
4639
  msg = field.DisplayName + ' does not exist!';
4629
4640
  }
4630
- _c.label = 20;
4641
+ _d.label = 20;
4631
4642
  case 20: return [3 /*break*/, 23];
4632
4643
  case 21:
4633
4644
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 23];
@@ -4638,12 +4649,12 @@ function ValidateUserInput(options) {
4638
4649
  ;
4639
4650
  return [4 /*yield*/, db.collection(field.LookupObject).findOne(searchObj)];
4640
4651
  case 22:
4641
- result = _c.sent();
4652
+ result = _d.sent();
4642
4653
  if (result == null) {
4643
4654
  msg = field.DisplayName + ' does not exist!';
4644
4655
  }
4645
- _c.label = 23;
4646
- case 23: return [3 /*break*/, 46];
4656
+ _d.label = 23;
4657
+ case 23: return [3 /*break*/, 51];
4647
4658
  case 24:
4648
4659
  if (!Array.isArray(fieldData)) return [3 /*break*/, 32];
4649
4660
  if (!fieldData.length) return [3 /*break*/, 30];
@@ -4652,7 +4663,7 @@ function ValidateUserInput(options) {
4652
4663
  schemaData = [];
4653
4664
  return [4 /*yield*/, db.collection('ListSchema').findOne({ Name: field.ListSchemaName })];
4654
4665
  case 25:
4655
- result = _c.sent();
4666
+ result = _d.sent();
4656
4667
  if (result && result.Data) {
4657
4668
  if (action == 'add')
4658
4669
  schemaData = result.Data.filter(function (x) { return x.IsActive == true && fieldData.includes(x.Key.toString()); });
@@ -4662,7 +4673,7 @@ function ValidateUserInput(options) {
4662
4673
  if (schemaData.length != fieldData.length) {
4663
4674
  msg = field.DisplayName + ' does not exist!';
4664
4675
  }
4665
- _c.label = 26;
4676
+ _d.label = 26;
4666
4677
  case 26: return [3 /*break*/, 29];
4667
4678
  case 27:
4668
4679
  if (!(field.LookupObject !== undefined)) return [3 /*break*/, 29];
@@ -4673,22 +4684,22 @@ function ValidateUserInput(options) {
4673
4684
  ;
4674
4685
  return [4 /*yield*/, db.collection(field.LookupObject).find(searchObj).count()];
4675
4686
  case 28:
4676
- totalRecord = _c.sent();
4687
+ totalRecord = _d.sent();
4677
4688
  if (totalRecord !== fieldData.length) {
4678
4689
  msg = field.DisplayName + ' does not exist!';
4679
4690
  }
4680
- _c.label = 29;
4691
+ _d.label = 29;
4681
4692
  case 29: return [3 /*break*/, 31];
4682
4693
  case 30:
4683
4694
  if (field.IsRequired) {
4684
4695
  msg = field.DisplayName + ' is required!';
4685
4696
  }
4686
- _c.label = 31;
4697
+ _d.label = 31;
4687
4698
  case 31: return [3 /*break*/, 33];
4688
4699
  case 32:
4689
4700
  msg = 'Invalid value for ' + field.DisplayName;
4690
- _c.label = 33;
4691
- case 33: return [3 /*break*/, 46];
4701
+ _d.label = 33;
4702
+ case 33: return [3 /*break*/, 51];
4692
4703
  case 34:
4693
4704
  {
4694
4705
  regexpression = new RegExp('^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+@,:=#()]*)*(\\?[;&a-z\\d%_@,.:()~+=-]*)?(\\#[-a-z\\d_]*)?$', 'i');
@@ -4696,7 +4707,7 @@ function ValidateUserInput(options) {
4696
4707
  msg = 'Invalid URL for ' + field.DisplayName + '!';
4697
4708
  }
4698
4709
  }
4699
- return [3 /*break*/, 46];
4710
+ return [3 /*break*/, 51];
4700
4711
  case 35:
4701
4712
  {
4702
4713
  if (field.IncludeCountryCode) {
@@ -4711,7 +4722,7 @@ function ValidateUserInput(options) {
4711
4722
  }
4712
4723
  }
4713
4724
  }
4714
- return [3 /*break*/, 46];
4725
+ return [3 /*break*/, 51];
4715
4726
  case 36:
4716
4727
  if (!field.IsMultiple) return [3 /*break*/, 42];
4717
4728
  if (!Array.isArray(fieldData)) return [3 /*break*/, 40];
@@ -4728,7 +4739,7 @@ function ValidateUserInput(options) {
4728
4739
  ;
4729
4740
  return [4 /*yield*/, db.collection("Drive").find(searchObj).count()];
4730
4741
  case 37:
4731
- totalRecord = _c.sent();
4742
+ totalRecord = _d.sent();
4732
4743
  if (totalRecord !== fieldData.length) {
4733
4744
  msg = field.DisplayName + ' does not exist!';
4734
4745
  }
@@ -4737,11 +4748,11 @@ function ValidateUserInput(options) {
4737
4748
  if (field.IsRequired) {
4738
4749
  msg = field.DisplayName + ' is required!';
4739
4750
  }
4740
- _c.label = 39;
4751
+ _d.label = 39;
4741
4752
  case 39: return [3 /*break*/, 41];
4742
4753
  case 40:
4743
4754
  msg = 'Invalid value for ' + field.DisplayName;
4744
- _c.label = 41;
4755
+ _d.label = 41;
4745
4756
  case 41: return [3 /*break*/, 44];
4746
4757
  case 42:
4747
4758
  searchObj = { _id: fieldData };
@@ -4751,12 +4762,12 @@ function ValidateUserInput(options) {
4751
4762
  ;
4752
4763
  return [4 /*yield*/, db.collection("Drive").findOne(searchObj)];
4753
4764
  case 43:
4754
- result = _c.sent();
4765
+ result = _d.sent();
4755
4766
  if (result == null) {
4756
4767
  msg = field.DisplayName + ' does not exist!';
4757
4768
  }
4758
- _c.label = 44;
4759
- case 44: return [3 /*break*/, 46];
4769
+ _d.label = 44;
4770
+ case 44: return [3 /*break*/, 51];
4760
4771
  case 45:
4761
4772
  {
4762
4773
  // Maxlength check;
@@ -4767,15 +4778,34 @@ function ValidateUserInput(options) {
4767
4778
  msg = 'Invalid value for ' + field.DisplayName;
4768
4779
  }
4769
4780
  }
4770
- return [3 /*break*/, 46];
4771
- case 46: return [3 /*break*/, 48];
4781
+ return [3 /*break*/, 51];
4782
+ case 46:
4783
+ if (!fieldData.length) return [3 /*break*/, 50];
4784
+ _c = 0, fieldData_2 = fieldData;
4785
+ _d.label = 47;
4772
4786
  case 47:
4787
+ if (!(_c < fieldData_2.length)) return [3 /*break*/, 50];
4788
+ obj = fieldData_2[_c];
4789
+ return [4 /*yield*/, ValidateUserInput({ 'userInput': obj, 'pageData': pageData, 'objectID': documentID, 'db': db, 'collectionField': fieldName })];
4790
+ case 48:
4791
+ validateResp = _d.sent();
4792
+ if (validateResp && validateResp != "") {
4793
+ msg = validateResp;
4794
+ return [3 /*break*/, 50];
4795
+ }
4796
+ _d.label = 49;
4797
+ case 49:
4798
+ _c++;
4799
+ return [3 /*break*/, 47];
4800
+ case 50: return [3 /*break*/, 51];
4801
+ case 51: return [3 /*break*/, 53];
4802
+ case 52:
4773
4803
  if (!IsSystemField(objectName, fieldName) && !IsAnotherObjectField(pageData, fieldName)) {
4774
4804
  msg = fieldName + " is not valid schema!";
4775
4805
  return [2 /*return*/, "break"];
4776
4806
  }
4777
- _c.label = 48;
4778
- case 48: return [2 /*return*/];
4807
+ _d.label = 53;
4808
+ case 53: return [2 /*return*/];
4779
4809
  }
4780
4810
  });
4781
4811
  };
@@ -4793,12 +4823,27 @@ function ValidateUserInput(options) {
4793
4823
  case 3:
4794
4824
  _a++;
4795
4825
  return [3 /*break*/, 1];
4796
- case 4: return [2 /*return*/, msg];
4826
+ case 4:
4827
+ if (msg != "") {
4828
+ return [2 /*return*/, msg];
4829
+ }
4830
+ if (!(objectName == 'City')) return [3 /*break*/, 6];
4831
+ return [4 /*yield*/, db.collection("Country").findOne({ '_id': inputFields.CountryID, 'IsActive': true })];
4797
4832
  case 5:
4833
+ countryData = _b.sent();
4834
+ if (countryData) {
4835
+ inputFields.CountryName = countryData.Name;
4836
+ }
4837
+ else {
4838
+ msg = "Invalid country code!";
4839
+ }
4840
+ _b.label = 6;
4841
+ case 6: return [2 /*return*/, msg];
4842
+ case 7:
4798
4843
  err_3 = _b.sent();
4799
4844
  console.log("Error in ValidateUserInput", err_3);
4800
- return [3 /*break*/, 6];
4801
- case 6: return [2 /*return*/];
4845
+ return [3 /*break*/, 8];
4846
+ case 8: return [2 /*return*/];
4802
4847
  }
4803
4848
  });
4804
4849
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.290",
3
+ "version": "1.0.292",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {