@optimiser/common 1.0.323 → 1.0.325

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.
@@ -83,4 +83,11 @@ declare const IsValidPhoneNumber: (phoneNumber: string, countryCode: string) =>
83
83
  }
84
84
  */
85
85
  declare function ValidateData(db: Db, dataObj: AnyObjectInterface, objectType: string): Promise<unknown>;
86
- export { GetCompanyDetails, GetListSchema, GetEmailwiseUnsubscribeData, GenerateAutoIncrementFieldValue, GetAccountDetailByName, GetContactDetailByEmail, GetSystemEmailTemplate, UpdateContactDetails, CreateContact, MapAccountContact, UpdatePipelineMailStatus, AddLog, CheckDateExistInRange, GetDateRangeFromOperatorValue, GetEmailSubscribeStatus, SubscribeEmailForAllDomains, IsValidPhoneNumber, ValidateData };
86
+ /**
87
+ * Returns boolean - Whether given date is future or not
88
+ *
89
+ * @param {string} date date
90
+ * @return { boolean } true/false
91
+ */
92
+ declare const IsFutureDate: (date: any) => boolean;
93
+ export { GetCompanyDetails, GetListSchema, GetEmailwiseUnsubscribeData, GenerateAutoIncrementFieldValue, GetAccountDetailByName, GetContactDetailByEmail, GetSystemEmailTemplate, UpdateContactDetails, CreateContact, MapAccountContact, UpdatePipelineMailStatus, AddLog, CheckDateExistInRange, GetDateRangeFromOperatorValue, GetEmailSubscribeStatus, SubscribeEmailForAllDomains, IsValidPhoneNumber, ValidateData, IsFutureDate };
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.ValidateData = exports.IsValidPhoneNumber = exports.SubscribeEmailForAllDomains = exports.GetEmailSubscribeStatus = exports.GetDateRangeFromOperatorValue = exports.CheckDateExistInRange = exports.AddLog = exports.UpdatePipelineMailStatus = exports.MapAccountContact = exports.CreateContact = exports.UpdateContactDetails = exports.GetSystemEmailTemplate = exports.GetContactDetailByEmail = exports.GetAccountDetailByName = exports.GenerateAutoIncrementFieldValue = exports.GetEmailwiseUnsubscribeData = exports.GetListSchema = exports.GetCompanyDetails = void 0;
42
+ exports.IsFutureDate = exports.ValidateData = exports.IsValidPhoneNumber = exports.SubscribeEmailForAllDomains = exports.GetEmailSubscribeStatus = exports.GetDateRangeFromOperatorValue = exports.CheckDateExistInRange = exports.AddLog = exports.UpdatePipelineMailStatus = exports.MapAccountContact = exports.CreateContact = exports.UpdateContactDetails = exports.GetSystemEmailTemplate = exports.GetContactDetailByEmail = exports.GetAccountDetailByName = exports.GenerateAutoIncrementFieldValue = exports.GetEmailwiseUnsubscribeData = exports.GetListSchema = exports.GetCompanyDetails = void 0;
43
43
  var mongodb_1 = require("mongodb");
44
44
  var constants_1 = __importDefault(require("../constants"));
45
45
  var moment_1 = __importDefault(require("moment"));
@@ -993,3 +993,15 @@ function ValidateData(db, dataObj, objectType) {
993
993
  });
994
994
  }
995
995
  exports.ValidateData = ValidateData;
996
+ /**
997
+ * Returns boolean - Whether given date is future or not
998
+ *
999
+ * @param {string} date date
1000
+ * @return { boolean } true/false
1001
+ */
1002
+ var IsFutureDate = function (date) {
1003
+ var currentDate = +new Date();
1004
+ var reqDate = +new Date(date);
1005
+ return reqDate > currentDate;
1006
+ };
1007
+ exports.IsFutureDate = IsFutureDate;
@@ -4568,12 +4568,13 @@ function IsAnotherObjectField(pageData, fieldName) {
4568
4568
  */
4569
4569
  function ValidateUserInput(options) {
4570
4570
  return __awaiter(this, void 0, void 0, function () {
4571
- var inputFields, pageData, documentID, db, action, objectSchema, objectName, pageFields, schemaFields, inputField, msg, _loop_18, _i, inputField_1, name_1, state_1, _loop_19, isValid, isValid, validateResp, _a, pageFields_1, pageField, state_2, countryData, err_3;
4571
+ var inputFields, fieldsJsonData, pageData, documentID, db, action, objectSchema, objectName, pageFields, schemaFields, inputField, msg, _loop_18, _i, inputField_1, name_1, state_1, _loop_19, isValid, isValid, validateResp, _a, pageFields_1, pageField, state_2, countryData, err_3;
4572
4572
  return __generator(this, function (_b) {
4573
4573
  switch (_b.label) {
4574
4574
  case 0:
4575
4575
  _b.trys.push([0, 7, , 8]);
4576
4576
  inputFields = options.userInput;
4577
+ fieldsJsonData = bson_1.EJSON.parse(JSON.stringify(inputFields));
4577
4578
  pageData = options.pageData;
4578
4579
  documentID = options.objectID;
4579
4580
  db = options.db;
@@ -4604,7 +4605,7 @@ function ValidateUserInput(options) {
4604
4605
  }
4605
4606
  }
4606
4607
  _loop_19 = function (pageField) {
4607
- var fieldName, fieldData, field, searchQuery, result, _a, minValue, maxValue, 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;
4608
+ var fieldName, fieldData, field, searchQuery, result, fld, _a, minValue, maxValue, 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;
4608
4609
  return __generator(this, function (_d) {
4609
4610
  switch (_d.label) {
4610
4611
  case 0:
@@ -4652,6 +4653,14 @@ function ValidateUserInput(options) {
4652
4653
  }
4653
4654
  _d.label = 2;
4654
4655
  case 2:
4656
+ // Added by Shahzaib to check conditional field criteria
4657
+ if (field.IsConditionalField) {
4658
+ fld = JSON.parse(JSON.stringify(pageField));
4659
+ fld.Schema = field;
4660
+ msg = CheckConditionalField(fld, fieldsJsonData, action);
4661
+ if (msg != "")
4662
+ return [2 /*return*/, "break"];
4663
+ }
4655
4664
  if (!inputField.includes(fieldName)) return [3 /*break*/, 54];
4656
4665
  if (!(fieldData || fieldData === 0 || fieldData === false)) return [3 /*break*/, 54];
4657
4666
  _a = field.UIDataType;
@@ -5036,6 +5045,48 @@ function ValidateUserInput(options) {
5036
5045
  });
5037
5046
  }
5038
5047
  exports.ValidateUserInput = ValidateUserInput;
5048
+ /**
5049
+ * TODO: Check conditional field criteria with user inputs
5050
+ *
5051
+ * @param {object} field Contains shcema
5052
+ * @param {object} record contains user inputs
5053
+ * @param {string} action shows add or update
5054
+ * @return message in string
5055
+ */
5056
+ function CheckConditionalField(field, record, action) {
5057
+ var msg = '';
5058
+ var fieldData = record[field.Name];
5059
+ if (field.Schema.ConditionalAction == 'enabled' && field.IsRequired == true) {
5060
+ if (fieldData === '' || fieldData === null || (fieldData === undefined && action == "add")) {
5061
+ msg = ((field.DisplayName || field.Schema.DisplayName) || field.Name) + ' is required!';
5062
+ }
5063
+ }
5064
+ else if (record != undefined && eval(field.Schema.ConditionalExpression) == true) {
5065
+ switch (field.Schema.ConditionalAction) {
5066
+ case "mandatory":
5067
+ case "enabled-mandatory":
5068
+ case "show-enabled-mandatory":
5069
+ case "show-disabled-mandatory":
5070
+ if (fieldData === '' || fieldData === null || (fieldData === undefined && action == "add")) {
5071
+ msg = ((field.DisplayName || field.Schema.DisplayName) || field.Name) + ' is conditionally required!';
5072
+ }
5073
+ break;
5074
+ }
5075
+ }
5076
+ else {
5077
+ switch (field.Schema.ConditionalAction) {
5078
+ case "show-disabled-mandatory":
5079
+ case "show-disabled-nonmandatory":
5080
+ case "show-enabled-mandatory":
5081
+ case "show-enabled-nonmandatory":
5082
+ if (fieldData) {
5083
+ msg = ((field.DisplayName || field.Schema.DisplayName) || field.Name) + ' is a hidden field and should not contain value.';
5084
+ }
5085
+ break;
5086
+ }
5087
+ }
5088
+ return msg;
5089
+ }
5039
5090
  /**
5040
5091
  * TODO: Create lookup of fields of list schema for Vat Setting data
5041
5092
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.323",
3
+ "version": "1.0.325",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -43,6 +43,7 @@
43
43
  "devDependencies": {
44
44
  "@types/aws-sdk": "^2.7.0",
45
45
  "@types/bson": "^4.0.2",
46
+ "@types/exceljs": "^1.3.0",
46
47
  "@types/express": "^4.17.8",
47
48
  "@types/ioredis": "^4.17.4",
48
49
  "@types/moment": "^2.13.0",