@optimiser/common 1.0.342 → 1.0.344

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.
@@ -263,15 +263,6 @@ declare function InvitationMailReplyContent(fromUser: string, fromEmail: string)
263
263
  * @return boolean
264
264
  */
265
265
  declare function HasFiscalOperator(filter: any): boolean;
266
- /**
267
- * TODO: Return bulk object of Update URL data
268
- *
269
- * @param eventIds - ObjectId[]
270
- * @param companyId - string
271
- * @param secretKey - string
272
- * @return object[]
273
- */
274
- declare function GetBulkUpdateURLData(eventIds: ObjectId[], companyId: string, secretKey: string): any[];
275
266
  /**
276
267
  * TODO: Return Encrypted URL
277
268
  *
@@ -281,4 +272,13 @@ declare function GetBulkUpdateURLData(eventIds: ObjectId[], companyId: string, s
281
272
  * @return object
282
273
  */
283
274
  declare function GetEncryptedURL(options: GetEncryptedURLOptions): any[];
284
- export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, GetObjectByString, 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, IsStringValue, ValidateSanitizeUserInput, ValidateUserInput, CheckConditionalField, CheckExpressionOnDateField, AddDaysToDate, CreateBanquetingVATSettingsData, CheckReportFolderAccess, GetMailFromString, InvitationMailReplyContent, HasFiscalOperator, GetBulkUpdateURLData, GetEncryptedURL };
275
+ declare function GenerateBase64QRCodeData(data: string, options?: any): Promise<any>;
276
+ /**
277
+ * QPC-7137: getting Drive sharing
278
+ *
279
+ * @param parentFolderID - folder id
280
+ * @param db - object db connecttion
281
+ * @return array of all sharing of child file folders
282
+ */
283
+ declare function GetFileFolderDetailsInFolderForDriveSharing(parentFolderID: any, db: Db): Promise<any>;
284
+ export { CheckForWhiteListedDomain, ReturnJsonResponse, ConvertFileByteSize, GetObjectByKeyValueFromList, IsEqualArrays, IsEqualValue, CheckUserProfileField, GetPageFieldData, GetPageObjectSchema, GetFieldDetail, UpdateRecentViewObject, UpdateRecentViewFields, SyncChildObjectData, SyncParentObjectData, DeleteFieldInOtherCollection, SyncFieldInSameCollection, SyncFieldInSameCollectionByObjectID, SyncFieldInSameCollectionByObjectIDWithPromise, SyncFieldInOtherCollection, SyncUserInOtherCollection, GetObjectByString, 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, IsStringValue, ValidateSanitizeUserInput, ValidateUserInput, CheckConditionalField, CheckExpressionOnDateField, AddDaysToDate, CreateBanquetingVATSettingsData, CheckReportFolderAccess, GetMailFromString, InvitationMailReplyContent, HasFiscalOperator, GetEncryptedURL, GenerateBase64QRCodeData, GetFileFolderDetailsInFolderForDriveSharing };
@@ -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.GetEncryptedURL = exports.GetBulkUpdateURLData = exports.HasFiscalOperator = exports.InvitationMailReplyContent = exports.GetMailFromString = exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.AddDaysToDate = exports.CheckExpressionOnDateField = exports.CheckConditionalField = exports.ValidateUserInput = exports.ValidateSanitizeUserInput = exports.IsStringValue = 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.GetObjectByString = 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.GetFileFolderDetailsInFolderForDriveSharing = exports.GenerateBase64QRCodeData = exports.GetEncryptedURL = exports.HasFiscalOperator = exports.InvitationMailReplyContent = exports.GetMailFromString = exports.CheckReportFolderAccess = exports.CreateBanquetingVATSettingsData = exports.AddDaysToDate = exports.CheckExpressionOnDateField = exports.CheckConditionalField = exports.ValidateUserInput = exports.ValidateSanitizeUserInput = exports.IsStringValue = 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.GetObjectByString = 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");
@@ -99,6 +99,7 @@ require("moment-timezone");
99
99
  var helper_1 = require("./helper");
100
100
  var sanitize = require('mongo-sanitize');
101
101
  var phoneUtil = require("google-libphonenumber").PhoneNumberUtil.getInstance();
102
+ var qrcode = require('qrcode');
102
103
  var _settingData = {};
103
104
  function GetObjectByKeyValueFromList(list, key, val) {
104
105
  if (list && list.length > 0) {
@@ -5361,34 +5362,6 @@ function HasFiscalOperator(filter) {
5361
5362
  return false;
5362
5363
  }
5363
5364
  exports.HasFiscalOperator = HasFiscalOperator;
5364
- /**
5365
- * TODO: Return bulk object of Update URL data
5366
- *
5367
- * @param eventIds - ObjectId[]
5368
- * @param companyId - string
5369
- * @param secretKey - string
5370
- * @return object[]
5371
- */
5372
- function GetBulkUpdateURLData(eventIds, companyId, secretKey) {
5373
- var bulkOps = [];
5374
- eventIds.forEach(function (event) {
5375
- // Process each value in the array
5376
- console.log(event);
5377
- var eventIdStr = event.toString();
5378
- var url = cryptoService.encrypt(secretKey, companyId + "-" + eventIdStr).cipherText;
5379
- bulkOps.push({
5380
- updateOne: {
5381
- filter: {
5382
- "_id": event,
5383
- "StartDate": { $gt: new Date() }
5384
- },
5385
- update: { $set: { UniqueURL: url } }
5386
- }
5387
- });
5388
- });
5389
- return bulkOps;
5390
- }
5391
- exports.GetBulkUpdateURLData = GetBulkUpdateURLData;
5392
5365
  /**
5393
5366
  * TODO: Return Encrypted URL
5394
5367
  *
@@ -5398,28 +5371,26 @@ exports.GetBulkUpdateURLData = GetBulkUpdateURLData;
5398
5371
  * @return object
5399
5372
  */
5400
5373
  function GetEncryptedURL(options) {
5401
- var recordIds = options.recordIds, companyId = options.companyId, secretKey = options.secretKey, prefixUrl = options.prefixUrl, apiUrl = options.apiUrl, fieldName = options.fieldName, filterKey = options.filterKey;
5402
- var bulkOps = [];
5374
+ var recordIds = options.recordIds, companyId = options.companyId, secretKey = options.secretKey, prefixUrl = options.prefixUrl, apiUrl = options.apiUrl;
5375
+ var data = {};
5403
5376
  recordIds.forEach(function (record) {
5404
- var _a, _b;
5405
5377
  // Process each value in the array
5406
5378
  var recordIdStr = record.toString();
5407
5379
  var url = cryptoService.encrypt(secretKey, companyId + "-" + recordIdStr).cipherText;
5408
5380
  var apiEncryptedURL = "" + prefixUrl + apiUrl + url;
5409
- var qrFieldWithAlias = fieldName + "_" + constants_1.default.QrPendingAlias;
5410
- bulkOps.push({
5411
- updateMany: {
5412
- filter: (_a = {},
5413
- _a[fieldName] = { $exists: false },
5414
- _a[filterKey] = record,
5415
- _a),
5416
- update: { $set: (_b = {}, _b[fieldName] = apiEncryptedURL, _b[qrFieldWithAlias] = false, _b) }
5417
- }
5418
- });
5381
+ data[recordIdStr] = apiEncryptedURL;
5419
5382
  });
5420
- return bulkOps;
5383
+ return data;
5421
5384
  }
5422
5385
  exports.GetEncryptedURL = GetEncryptedURL;
5386
+ /**
5387
+ * TODO: Build QRField/PENDING field true
5388
+ *
5389
+ * @param fieldSchema - AnyObjectInterface field related schema information
5390
+ * @param updateObj - object contains data
5391
+ * @param db - object db connecttion
5392
+ * @return object
5393
+ */
5423
5394
  function BuildQRDataField(fieldSchema, updateObj, db) {
5424
5395
  if (constants_1.default.QrPendingFields === fieldSchema.UIDataType) {
5425
5396
  var fldValue = null;
@@ -5432,3 +5403,97 @@ function BuildQRDataField(fieldSchema, updateObj, db) {
5432
5403
  }
5433
5404
  return updateObj;
5434
5405
  }
5406
+ function GenerateBase64QRCodeData(data, options) {
5407
+ if (options === void 0) { options = {}; }
5408
+ return __awaiter(this, void 0, void 0, function () {
5409
+ var qrOptions, qrCodeB64Image, error_8;
5410
+ return __generator(this, function (_a) {
5411
+ switch (_a.label) {
5412
+ case 0:
5413
+ _a.trys.push([0, 2, , 3]);
5414
+ qrOptions = {
5415
+ width: options.width || 600,
5416
+ height: options.height || 600,
5417
+ color: {
5418
+ dark: options.color.dark || '#000000',
5419
+ light: options.color.light || '#ffffff',
5420
+ },
5421
+ correctLevel: options.correctLevel || 'M',
5422
+ };
5423
+ return [4 /*yield*/, qrcode.toDataURL(data, qrOptions)];
5424
+ case 1:
5425
+ qrCodeB64Image = _a.sent();
5426
+ return [2 /*return*/, qrCodeB64Image];
5427
+ case 2:
5428
+ error_8 = _a.sent();
5429
+ console.error('Error while Generating BASE64 of QR URL ', error_8);
5430
+ return [3 /*break*/, 3];
5431
+ case 3: return [2 /*return*/];
5432
+ }
5433
+ });
5434
+ });
5435
+ }
5436
+ exports.GenerateBase64QRCodeData = GenerateBase64QRCodeData;
5437
+ /**
5438
+ * QPC-7137: getting Drive sharing
5439
+ *
5440
+ * @param parentFolderID - folder id
5441
+ * @param db - object db connecttion
5442
+ * @return array of all sharing of child file folders
5443
+ */
5444
+ function GetFileFolderDetailsInFolderForDriveSharing(parentFolderID, db) {
5445
+ return new Promise(function (resolve, reject) {
5446
+ return __awaiter(this, void 0, void 0, function () {
5447
+ var totalFiles, totalFolders, size, fileData, folderData, fileIds, folderIds, entityData, i, entity, resData;
5448
+ return __generator(this, function (_a) {
5449
+ switch (_a.label) {
5450
+ case 0:
5451
+ totalFiles = 0;
5452
+ totalFolders = 0;
5453
+ size = 0;
5454
+ fileData = [];
5455
+ folderData = [];
5456
+ fileIds = [];
5457
+ folderIds = [];
5458
+ return [4 /*yield*/, db.collection("DriveSharing").find({ FolderId: parentFolderID, IsActive: true }).toArray()];
5459
+ case 1:
5460
+ entityData = _a.sent();
5461
+ i = 0;
5462
+ _a.label = 2;
5463
+ case 2:
5464
+ if (!(i < entityData.length)) return [3 /*break*/, 6];
5465
+ entity = entityData[i];
5466
+ if (!(entity.Type == "file")) return [3 /*break*/, 3];
5467
+ totalFiles++;
5468
+ fileData.push(entity);
5469
+ fileIds.push(entity._id);
5470
+ size += entity.Size;
5471
+ return [3 /*break*/, 5];
5472
+ case 3:
5473
+ if (!(entity.Type == "folder")) return [3 /*break*/, 5];
5474
+ totalFolders++;
5475
+ folderData.push(entity);
5476
+ folderIds.push(entity._id);
5477
+ return [4 /*yield*/, GetFileFolderDetailsInFolderForDriveSharing(entity.FileId, db)];
5478
+ case 4:
5479
+ resData = _a.sent();
5480
+ totalFiles += resData.totalFiles;
5481
+ totalFolders += resData.totalFolders;
5482
+ size += resData.size;
5483
+ fileData.push.apply(fileData, resData.fileData);
5484
+ folderData.push.apply(folderData, resData.folderData);
5485
+ fileIds.push.apply(fileIds, resData.fileIds);
5486
+ folderIds.push.apply(folderIds, resData.folderIds);
5487
+ _a.label = 5;
5488
+ case 5:
5489
+ i++;
5490
+ return [3 /*break*/, 2];
5491
+ case 6:
5492
+ resolve({ totalFiles: totalFiles, totalFolders: totalFolders, fileData: fileData, folderData: folderData, size: size, folderIds: folderIds, fileIds: fileIds });
5493
+ return [2 /*return*/];
5494
+ }
5495
+ });
5496
+ });
5497
+ });
5498
+ }
5499
+ exports.GetFileFolderDetailsInFolderForDriveSharing = GetFileFolderDetailsInFolderForDriveSharing;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.342",
3
+ "version": "1.0.344",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -35,6 +35,7 @@
35
35
  "mongodb": "^3.6.2",
36
36
  "nodemailer": "^6.4.11",
37
37
  "promise.allsettled": "^1.0.2",
38
+ "qrcode": "^1.5.3",
38
39
  "request": "^2.88.2",
39
40
  "sequelize": "^6.3.5",
40
41
  "unzipper": "^0.10.11",