@optimiser/common 1.0.262 → 1.0.265

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.
@@ -316,25 +316,54 @@ var Connection = /** @class */ (function () {
316
316
  */
317
317
  Connection.prototype.FindAndReturnDBConnection = function (DBName, DBAddress) {
318
318
  var _this = this;
319
+ /*Code Updated By Suraj on 07-Apr-2022, Try catch and some If conditions added to prevent from breaking the code.*/
319
320
  return new Promise(function (resolve, reject) {
320
- if (DBAddress && _this.connections[Buffer.from(DBAddress).toString('base64')]) {
321
- _this.connections[Buffer.from(DBAddress).toString('base64')].db(DBName);
322
- }
323
- var masterDb = _this.connections[Buffer.from(_this.masterConfig.MASTER_CONNECTION_STRING).toString('base64')].db(_this.masterConfig.MASTER_DB_NAME);
324
- if (DBName == _this.masterConfig.MASTER_DB_NAME) {
325
- return resolve(masterDb);
326
- }
327
- masterDb.collection("Company").findOne({ DBName: DBName }).then(function (companyData) {
328
- if (companyData) {
329
- _this.ConnectToDb({
330
- DBAddress: companyData.DBAddress,
331
- DBName: companyData.DBName
332
- }).then(function (success) { return resolve(_this.connections[Buffer.from(companyData.DBAddress).toString('base64')].db(companyData.DBName)); });
321
+ try {
322
+ if (DBAddress && _this.connections[Buffer.from(DBAddress).toString('base64')]) {
323
+ _this.connections[Buffer.from(DBAddress).toString('base64')].db(DBName);
324
+ }
325
+ var masterDb = null;
326
+ if (_this.connections[Buffer.from(_this.masterConfig.MASTER_CONNECTION_STRING).toString('base64')]) {
327
+ masterDb = _this.connections[Buffer.from(_this.masterConfig.MASTER_CONNECTION_STRING).toString('base64')].db(_this.masterConfig.MASTER_DB_NAME);
328
+ }
329
+ //checking master db connection
330
+ if (!masterDb) {
331
+ console.log("Master db connection not available");
332
+ reject(new Error("Master db connection not available"));
333
+ return;
333
334
  }
334
- else {
335
- reject();
335
+ if (DBName == _this.masterConfig.MASTER_DB_NAME) {
336
+ return resolve(masterDb);
336
337
  }
337
- }, function (error) { return reject(error); });
338
+ masterDb.collection("Company").findOne({ DBName: DBName }).then(function (companyData) {
339
+ if (companyData) {
340
+ _this.ConnectToDb({
341
+ DBAddress: companyData.DBAddress,
342
+ DBName: companyData.DBName
343
+ }).then(function () {
344
+ //Checking company connection first, if exists then resolve
345
+ if (_this.connections[Buffer.from(companyData.DBAddress).toString('base64')]) {
346
+ resolve(_this.connections[Buffer.from(companyData.DBAddress).toString('base64')].db(companyData.DBName));
347
+ }
348
+ else {
349
+ console.log("Company db connection not established");
350
+ reject(new Error("Company db connection not established"));
351
+ }
352
+ });
353
+ }
354
+ else {
355
+ reject();
356
+ }
357
+ }, function (error) {
358
+ console.log("Error occurred :", error);
359
+ reject(error);
360
+ });
361
+ }
362
+ catch (ex) {
363
+ console.log("Error occurred :", ex);
364
+ ex.message += "- db connection error";
365
+ reject(ex);
366
+ }
338
367
  });
339
368
  };
340
369
  /**
@@ -344,7 +373,6 @@ var Connection = /** @class */ (function () {
344
373
  */
345
374
  Connection.prototype.ConnectToCompanyDB = function (DBName, DBAddress) {
346
375
  return __awaiter(this, void 0, void 0, function () {
347
- var masterdb;
348
376
  return __generator(this, function (_a) {
349
377
  switch (_a.label) {
350
378
  case 0:
@@ -355,7 +383,7 @@ var Connection = /** @class */ (function () {
355
383
  DBName: this.masterConfig.MASTER_DB_NAME
356
384
  })];
357
385
  case 2:
358
- masterdb = _a.sent();
386
+ _a.sent();
359
387
  return [2 /*return*/, this.FindAndReturnDBConnection(DBName, DBAddress)];
360
388
  }
361
389
  });
@@ -620,6 +620,15 @@ var GetDateRangeFromOperatorValue = function (operator, fiscalMonth, fiscalFrom)
620
620
  startDate = momentObj.clone().add(1, "years").startOf('year').format(requiredDateFormat);
621
621
  endDate = momentObj.clone().add(1, "years").endOf('year').format(requiredDateFormat);
622
622
  break;
623
+ case "Year to Date":
624
+ endDate = momentObj.clone().format(requiredDateFormat);
625
+ if (parseInt(momentObj.format('M')) > 3) {
626
+ startDate = momentObj.clone().startOf('month').month("Apr").format(requiredDateFormat);
627
+ }
628
+ else {
629
+ startDate = momentObj.clone().subtract(1, "years").startOf('month').month("Apr").format(requiredDateFormat);
630
+ }
631
+ break;
623
632
  default:
624
633
  break;
625
634
  }
@@ -205,4 +205,14 @@ declare function ValidateSanitizeUserInput(inputFields: AnyObjectInterface, page
205
205
  * @return N/A
206
206
  */
207
207
  declare function CreateBanquetingVATSettingsData(msp_d: AnyObjectInterface, db: Db, sdata: AnyObjectInterface, next: NextFunction): Promise<void>;
208
- export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, ValidateSanitizeUserInput, CreateBanquetingVATSettingsData };
208
+ /**
209
+ * TODO: To Check if given user has access to Report Folder - THIS FUNCTION IS COPIED FROM report_controller.js
210
+ *
211
+ * @param {object} report Contains Report information
212
+ * @param {object} db Database connection object
213
+ * @param {object} msp_d Contains User id information
214
+ * @param folderActiveStatus boolean default value true
215
+ * @return N/A
216
+ */
217
+ declare function CheckReportFolderAccess(report: AnyObjectInterface, db: Db, msp_d: AnyObjectInterface, folderActiveStatus?: boolean): Promise<boolean>;
218
+ export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, BuildLookupDataField, CheckDataBeforeAdd, CheckDataBeforeUpdate, BuildGridFieldProjection, BuildFieldProjection, BuildLookupFieldProjection, FilterConditions, GirdHeaderFilters, FieldsGridHeaderFilters, AddLog, CheckFilterFieldsProjection, VerifyEmailPassword, GetMyTeamUsers, ExtractChildUsersTree, GetMaxKeyValueListSchema, VerifyAWSEmailConfig, GenerateId, SyncUserDetailsWithMasterDB, SignoutUserFromAllDevices, SignoutUsersWithPromise, SignoutMultipleUsersFromAllDevices, UserLicenseConsumeCalculate, sendMailWithUserAccount, GetEmailClientConfigs, GetCompanyEncryptionKey, ExecuteDynamicDMLQuery, ExecuteDynamicDQLQuery, GetUserProfilePermissions, MakeUserPasswordInvalid, ConvertJsonToXLXS, SendResetPasswordMail, SendMailToSupport, MailTemplateStructure, SendMailToCustomer, parseMSPCookie, GetIPDetailsFromReq, isEmptyObj, SyncListSchemaFieldInOtherCollection, UpdateTagCountAfterDelete, SyncTagCountAfterUpdate, ReactivateFieldInOtherCollection, SyncUserLicenceConsumedCount, BroadCastEventToAllCompanyUsers, CheckDataPermission, SyncCompanyLicenceInMasterCompanyAfterAdd, NextServiceDateForDashboard, CheckDateNotInPast, GetWeekDayByDayAndOccurance, GetInterValFromOccurance, GetWeekDayInfoInMonth, GetDayIndex, RemoveFieldsFromFilters, GetUserProfile, CheckPageAuthentication, ErrorHandlerForServices, CheckCaptcha, ValidateSanitizeUserInput, CreateBanquetingVATSettingsData, CheckReportFolderAccess };
@@ -80,7 +80,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
80
80
  return (mod && mod.__esModule) ? mod : { "default": mod };
81
81
  };
82
82
  Object.defineProperty(exports, "__esModule", { value: true });
83
- exports.CreateBanquetingVATSettingsData = exports.ValidateSanitizeUserInput = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = exports.MakeUserPasswordInvalid = exports.GetUserProfilePermissions = exports.ExecuteDynamicDQLQuery = exports.ExecuteDynamicDMLQuery = exports.GetCompanyEncryptionKey = exports.GetEmailClientConfigs = exports.sendMailWithUserAccount = exports.UserLicenseConsumeCalculate = exports.SignoutMultipleUsersFromAllDevices = exports.SignoutUsersWithPromise = exports.SignoutUserFromAllDevices = exports.SyncUserDetailsWithMasterDB = exports.GenerateId = exports.VerifyAWSEmailConfig = exports.GetMaxKeyValueListSchema = exports.ExtractChildUsersTree = exports.GetMyTeamUsers = exports.VerifyEmailPassword = exports.CheckFilterFieldsProjection = exports.AddLog = exports.FieldsGridHeaderFilters = exports.GirdHeaderFilters = exports.FilterConditions = exports.BuildLookupFieldProjection = exports.BuildFieldProjection = exports.BuildGridFieldProjection = exports.CheckDataBeforeUpdate = exports.CheckDataBeforeAdd = exports.BuildLookupDataField = exports.SyncUserInOtherCollection = exports.SyncFieldInOtherCollection = exports.SyncFieldInSameCollectionByObjectIDWithPromise = exports.SyncFieldInSameCollectionByObjectID = exports.SyncFieldInSameCollection = exports.DeleteFieldInOtherCollection = exports.SyncParentObjectData = exports.SyncChildObjectData = exports.UpdateRecentViewFields = exports.UpdateRecentViewObject = exports.GetFieldDetail = exports.GetPageObjectSchema = exports.GetPageFieldData = exports.CheckUserProfileField = exports.IsEqualValue = exports.IsEqualArrays = exports.GetObjectByKeyValueFromList = exports.ConvertFileByteSize = exports.ReturnJsonResponse = exports.CheckForWhiteListedDomain = void 0;
83
+ exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.ValidateSanitizeUserInput = exports.CheckCaptcha = exports.ErrorHandlerForServices = exports.CheckPageAuthentication = exports.GetUserProfile = exports.RemoveFieldsFromFilters = exports.GetDayIndex = exports.GetWeekDayInfoInMonth = exports.GetInterValFromOccurance = exports.GetWeekDayByDayAndOccurance = exports.CheckDateNotInPast = exports.NextServiceDateForDashboard = exports.SyncCompanyLicenceInMasterCompanyAfterAdd = exports.CheckDataPermission = exports.BroadCastEventToAllCompanyUsers = exports.SyncUserLicenceConsumedCount = exports.ReactivateFieldInOtherCollection = exports.SyncTagCountAfterUpdate = exports.UpdateTagCountAfterDelete = exports.SyncListSchemaFieldInOtherCollection = exports.isEmptyObj = exports.GetIPDetailsFromReq = exports.parseMSPCookie = exports.SendMailToCustomer = exports.MailTemplateStructure = exports.SendMailToSupport = exports.SendResetPasswordMail = exports.ConvertJsonToXLXS = exports.MakeUserPasswordInvalid = exports.GetUserProfilePermissions = exports.ExecuteDynamicDQLQuery = exports.ExecuteDynamicDMLQuery = exports.GetCompanyEncryptionKey = exports.GetEmailClientConfigs = exports.sendMailWithUserAccount = exports.UserLicenseConsumeCalculate = exports.SignoutMultipleUsersFromAllDevices = exports.SignoutUsersWithPromise = exports.SignoutUserFromAllDevices = exports.SyncUserDetailsWithMasterDB = exports.GenerateId = exports.VerifyAWSEmailConfig = exports.GetMaxKeyValueListSchema = exports.ExtractChildUsersTree = exports.GetMyTeamUsers = exports.VerifyEmailPassword = exports.CheckFilterFieldsProjection = exports.AddLog = exports.FieldsGridHeaderFilters = exports.GirdHeaderFilters = exports.FilterConditions = exports.BuildLookupFieldProjection = exports.BuildFieldProjection = exports.BuildGridFieldProjection = exports.CheckDataBeforeUpdate = exports.CheckDataBeforeAdd = exports.BuildLookupDataField = exports.SyncUserInOtherCollection = exports.SyncFieldInOtherCollection = exports.SyncFieldInSameCollectionByObjectIDWithPromise = exports.SyncFieldInSameCollectionByObjectID = exports.SyncFieldInSameCollection = exports.DeleteFieldInOtherCollection = exports.SyncParentObjectData = exports.SyncChildObjectData = exports.UpdateRecentViewFields = exports.UpdateRecentViewObject = exports.GetFieldDetail = exports.GetPageObjectSchema = exports.GetPageFieldData = exports.CheckUserProfileField = exports.IsEqualValue = exports.IsEqualArrays = exports.GetObjectByKeyValueFromList = exports.ConvertFileByteSize = exports.ReturnJsonResponse = exports.CheckForWhiteListedDomain = void 0;
84
84
  var moment_1 = __importDefault(require("moment"));
85
85
  var nodemailer_1 = __importDefault(require("nodemailer"));
86
86
  var mongodb_1 = require("mongodb");
@@ -1420,12 +1420,29 @@ exports.SyncUserInOtherCollection = SyncUserInOtherCollection;
1420
1420
  //Build _LookupDataField before save
1421
1421
  function BuildLookupDataField(fieldSchema, updateObj, db) {
1422
1422
  return new Promise(function (resolve, reject) {
1423
+ /**
1424
+ * Added By Suraj on 06-Apr-2022,
1425
+ * helper function for all below cases to print error log on console.
1426
+ * @param fieldValue value of a field
1427
+ * @param err error occurred during processing
1428
+ */
1429
+ var errorHandler = function (fieldValue, err) {
1430
+ var fieldValueType = (Array.isArray(fieldValue) ? 'array' : '');
1431
+ if (!fieldValueType) {
1432
+ fieldValueType = typeof (fieldValue);
1433
+ }
1434
+ var errorInfo = "##### COMMON MOUDLE ERROR INFO ####";
1435
+ errorInfo += "\n Function Name : BuildLookupDataField";
1436
+ errorInfo += "\n Error Info: Error while building Lookup Data for Company - " + (db.databaseName) + ", ObjectName - " + (fieldSchema.LookupObject || '') + ", FieldName - " + (fieldSchema.Name || '') + " for value - " + fieldValue + " and data type of values is " + (fieldValueType || '') + " ";
1437
+ console.log("Error Information : ", errorInfo);
1438
+ console.log("Error Full Object : ", err);
1439
+ };
1423
1440
  if (fieldSchema.UIDataType && constants_1.default.LookupTypeFields.includes(fieldSchema.UIDataType)) {
1424
1441
  var fldName = fieldSchema.Name;
1425
- var fldValue = updateObj[fldName];
1442
+ var fldValue_1 = updateObj[fldName];
1426
1443
  var alias_1 = fldName + constants_1.default.LookupAlias;
1427
1444
  var fldLookupData_1 = null;
1428
- if (fldValue) {
1445
+ if (fldValue_1) {
1429
1446
  var aggregateArry = [];
1430
1447
  var project = { '_id': 1, IsActive: 1 };
1431
1448
  if (fieldSchema.ExtraLookupObjects) {
@@ -1456,13 +1473,13 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1456
1473
  }
1457
1474
  switch (fieldSchema.UIDataType) {
1458
1475
  case "lookup":
1459
- aggregateArry.push({ $match: { '_id': fldValue } });
1476
+ aggregateArry.push({ $match: { '_id': fldValue_1 } });
1460
1477
  aggregateArry.push({ $project: project });
1461
1478
  db.collection(fieldSchema.LookupObject).aggregate(aggregateArry).toArray(function (err, data) {
1462
1479
  if (err) {
1463
- //not handel
1480
+ errorHandler(fldValue_1, err);
1464
1481
  }
1465
- if (data && data.length > 0) {
1482
+ else if (data && data.length > 0) {
1466
1483
  fldLookupData_1 = data[0];
1467
1484
  updateObj[alias_1] = fldLookupData_1;
1468
1485
  }
@@ -1470,7 +1487,7 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1470
1487
  });
1471
1488
  break;
1472
1489
  case "multilookup":
1473
- aggregateArry.push({ $match: { '_id': { $in: fldValue } } });
1490
+ aggregateArry.push({ $match: { '_id': { $in: fldValue_1 } } });
1474
1491
  aggregateArry.push({ $project: project });
1475
1492
  if (fieldSchema.UnionWith && fieldSchema.UnionWith.length > 0) {
1476
1493
  for (var i = 0; i < fieldSchema.UnionWith.length; i++) {
@@ -1478,7 +1495,7 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1478
1495
  if (unionDetail) {
1479
1496
  var unionPipeline = [];
1480
1497
  unionPipeline.push({
1481
- $match: { '_id': { $in: fldValue } }
1498
+ $match: { '_id': { $in: fldValue_1 } }
1482
1499
  });
1483
1500
  unionPipeline.push({ $project: project });
1484
1501
  var unionObj = { coll: unionDetail.LookupObject, pipeline: unionPipeline };
@@ -1488,9 +1505,10 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1488
1505
  }
1489
1506
  db.collection(fieldSchema.LookupObject).aggregate(aggregateArry).toArray(function (err, data) {
1490
1507
  if (err) {
1491
- throw new Error(err.toString());
1508
+ // throw new Error(err.toString());
1509
+ errorHandler(fldValue_1, err);
1492
1510
  }
1493
- if (data && data.length > 0) {
1511
+ else if (data && data.length > 0) {
1494
1512
  fldLookupData_1 = data;
1495
1513
  updateObj[alias_1] = fldLookupData_1;
1496
1514
  }
@@ -1499,13 +1517,13 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1499
1517
  break;
1500
1518
  case "dropdown":
1501
1519
  if (fieldSchema.LookupObject) {
1502
- aggregateArry.push({ $match: { _id: fldValue } });
1520
+ aggregateArry.push({ $match: { _id: fldValue_1 } });
1503
1521
  aggregateArry.push({ $project: project });
1504
1522
  db.collection(fieldSchema.LookupObject).aggregate(aggregateArry).toArray(function (err, data) {
1505
1523
  if (err) {
1506
- //not handel
1524
+ errorHandler(fldValue_1, err);
1507
1525
  }
1508
- if (data && data.length > 0) {
1526
+ else if (data && data.length > 0) {
1509
1527
  fldLookupData_1 = data[0];
1510
1528
  updateObj[alias_1] = fldLookupData_1;
1511
1529
  }
@@ -1521,12 +1539,12 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1521
1539
  }
1522
1540
  aggregateArry.push({ $unwind: { path: '$Data' } });
1523
1541
  aggregateArry.push({ $project: { _id: 0, Key: '$Data.Key', Value: '$Data.Value', IsActive: '$Data.IsActive' } });
1524
- aggregateArry.push({ $match: { 'Key': fldValue } });
1542
+ aggregateArry.push({ $match: { 'Key': fldValue_1 } });
1525
1543
  db.collection('ListSchema').aggregate(aggregateArry).toArray(function (err, data) {
1526
1544
  if (err) {
1527
- //not handel
1545
+ errorHandler(fldValue_1, err);
1528
1546
  }
1529
- if (data && data.length > 0) {
1547
+ else if (data && data.length > 0) {
1530
1548
  fldLookupData_1 = data[0];
1531
1549
  updateObj[alias_1] = fldLookupData_1;
1532
1550
  }
@@ -1536,13 +1554,13 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1536
1554
  break;
1537
1555
  case "multiselect":
1538
1556
  if (fieldSchema.LookupObject) {
1539
- aggregateArry.push({ $match: { '_id': { $in: fldValue } } });
1557
+ aggregateArry.push({ $match: { '_id': { $in: fldValue_1 } } });
1540
1558
  aggregateArry.push({ $project: project });
1541
1559
  db.collection(fieldSchema.LookupObject).aggregate(aggregateArry).toArray(function (err, data) {
1542
1560
  if (err) {
1543
- //not handel
1561
+ errorHandler(fldValue_1, err);
1544
1562
  }
1545
- if (data && data.length > 0) {
1563
+ else if (data && data.length > 0) {
1546
1564
  fldLookupData_1 = data;
1547
1565
  updateObj[alias_1] = fldLookupData_1;
1548
1566
  }
@@ -1553,12 +1571,12 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1553
1571
  aggregateArry.push({ $match: { 'Name': fieldSchema.ListSchemaName } });
1554
1572
  aggregateArry.push({ $unwind: { path: '$Data' } });
1555
1573
  aggregateArry.push({ $project: { _id: 0, Key: '$Data.Key', Value: '$Data.Value', IsActive: '$Data.IsActive' } });
1556
- aggregateArry.push({ $match: { 'Key': { $in: fldValue } } });
1574
+ aggregateArry.push({ $match: { 'Key': { $in: fldValue_1 } } });
1557
1575
  db.collection('ListSchema').aggregate(aggregateArry).toArray(function (err, data) {
1558
1576
  if (err) {
1559
- //not handel
1577
+ errorHandler(fldValue_1, err);
1560
1578
  }
1561
- if (data && data.length > 0) {
1579
+ else if (data && data.length > 0) {
1562
1580
  fldLookupData_1 = data;
1563
1581
  updateObj[alias_1] = fldLookupData_1;
1564
1582
  }
@@ -1569,14 +1587,14 @@ function BuildLookupDataField(fieldSchema, updateObj, db) {
1569
1587
  case "file":
1570
1588
  case "image":
1571
1589
  if (!fieldSchema.IsMultiple) {
1572
- aggregateArry.push({ $match: { '_id': fldValue } });
1590
+ aggregateArry.push({ $match: { '_id': fldValue_1 } });
1573
1591
  project['FileName'] = 1;
1574
1592
  aggregateArry.push({ $project: project });
1575
1593
  db.collection('Drive').aggregate(aggregateArry).toArray(function (err, data) {
1576
1594
  if (err) {
1577
- //not handel
1595
+ errorHandler(fldValue_1, err);
1578
1596
  }
1579
- if (data && data.length > 0) {
1597
+ else if (data && data.length > 0) {
1580
1598
  fldLookupData_1 = data[0];
1581
1599
  updateObj[alias_1] = fldLookupData_1;
1582
1600
  }
@@ -4274,3 +4292,52 @@ function CreateBanquetingVATSettingsData(msp_d, db, sdata, next) {
4274
4292
  });
4275
4293
  }
4276
4294
  exports.CreateBanquetingVATSettingsData = CreateBanquetingVATSettingsData;
4295
+ /**
4296
+ * TODO: To Check if given user has access to Report Folder - THIS FUNCTION IS COPIED FROM report_controller.js
4297
+ *
4298
+ * @param {object} report Contains Report information
4299
+ * @param {object} db Database connection object
4300
+ * @param {object} msp_d Contains User id information
4301
+ * @param folderActiveStatus boolean default value true
4302
+ * @return N/A
4303
+ */
4304
+ function CheckReportFolderAccess(report, db, msp_d, folderActiveStatus) {
4305
+ if (folderActiveStatus === void 0) { folderActiveStatus = true; }
4306
+ return __awaiter(this, void 0, void 0, function () {
4307
+ var shareFolderIds, userID, FolderList, User, currentUserDateTime, shareFolderList, folderIsActive, hasAccess, i;
4308
+ return __generator(this, function (_a) {
4309
+ switch (_a.label) {
4310
+ case 0:
4311
+ shareFolderIds = [];
4312
+ userID = new mongodb_1.ObjectID(msp_d.ui);
4313
+ FolderList = [];
4314
+ return [4 /*yield*/, db.collection('User').findOne({ _id: userID }, { projection: { MySettings: 1 } })];
4315
+ case 1:
4316
+ User = _a.sent();
4317
+ currentUserDateTime = new Date(moment_1.default().tz(User.MySettings.Timezone).format("YYYY-MM-DDTHH:mm:ss").split("T")[0]);
4318
+ return [4 /*yield*/, db.collection('ReportFolderSharing').find({ UserID: userID, $or: [{ Applicable: null }, { Applicable: { $gte: currentUserDateTime } }], IsActive: true }, { projection: { ReportFolderID: 1 } }).toArray()];
4319
+ case 2:
4320
+ shareFolderList = _a.sent();
4321
+ if (shareFolderList && shareFolderList.length > 0) {
4322
+ shareFolderIds = shareFolderList.map(function (x) { return x.ReportFolderID; });
4323
+ }
4324
+ folderIsActive = {};
4325
+ if (folderActiveStatus) {
4326
+ folderIsActive = { IsActive: true };
4327
+ }
4328
+ return [4 /*yield*/, db.collection('ReportFolder').find(__assign({ $or: [{ OwnerID: userID }, { _id: { $in: shareFolderIds } }] }, folderIsActive)).toArray()];
4329
+ case 3:
4330
+ FolderList = _a.sent();
4331
+ FolderList = FolderList.map(function (x) { return x._id; });
4332
+ hasAccess = false;
4333
+ for (i = 0; i < FolderList.length; i++) {
4334
+ if (FolderList[i].equals(report.ReportFolder)) {
4335
+ hasAccess = true;
4336
+ }
4337
+ }
4338
+ return [2 /*return*/, hasAccess];
4339
+ }
4340
+ });
4341
+ });
4342
+ }
4343
+ exports.CheckReportFolderAccess = CheckReportFolderAccess;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.262",
3
+ "version": "1.0.265",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {