@optimiser/common 1.0.363 → 1.0.365

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.
@@ -22,11 +22,17 @@ declare function SyncChildObjectData(pageData: AnyObjectInterface, objectID: Obj
22
22
  declare function SyncParentObjectData(pageData: AnyObjectInterface, objectID: ObjectId, db: Db): Promise<void>;
23
23
  /**
24
24
  * Delete field in other collection after delete records
25
- * @param mongodbTransactionQueryopts to maintain session for transactions
25
+ * @param objectName : ObjectName of record to which we want to delete
26
+ * @param objectIDs : ObjectId of the created records of above object name collection
27
+ * @param db : database connection || Db
28
+ * @param params : It includes the object of remaining arguments passing here as an argument
29
+ * @param params.isBuiltOnPromise : optional param need to send with params obj for to confirm function is used with promise or not!!
30
+ * @param params.mongoQueryOpts :optional param sending with params obj for some specific mongodb query operation, to maintain session for transactions
31
+ * @param comMasterDb : optional param sending to get it update and sync with master db.
26
32
  */
27
- declare function DeleteFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db, params?: AnyObjectInterface): Promise<void>;
33
+ declare function DeleteFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db, params?: AnyObjectInterface, comMasterDb?: Db): Promise<void>;
28
34
  declare function ReactivateFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db): void;
29
- declare function SyncFieldInSameCollection(objectName: string, objectIDs: ObjectId[], db: Db, comMasterDb: Db): Promise<any>;
35
+ declare function SyncFieldInSameCollection(objectName: string, objectIDs: ObjectId[], db: Db, comMasterDb?: Db): Promise<any>;
30
36
  declare function SyncFieldInSameCollectionByObjectID(objectName: string, objectID: ObjectId, db: Db): void;
31
37
  declare function SyncFieldInSameCollectionByObjectIDWithPromise(objectName: string, objectID: ObjectId, db: Db): Promise<any>;
32
38
  declare function SyncFieldInOtherCollection(syncFields: AnyObjectInterface[], db: Db): Promise<any>;
@@ -762,10 +762,16 @@ function SyncParentObjectData(pageData, objectID, db) {
762
762
  exports.SyncParentObjectData = SyncParentObjectData;
763
763
  /**
764
764
  * Delete field in other collection after delete records
765
- * @param mongodbTransactionQueryopts to maintain session for transactions
765
+ * @param objectName : ObjectName of record to which we want to delete
766
+ * @param objectIDs : ObjectId of the created records of above object name collection
767
+ * @param db : database connection || Db
768
+ * @param params : It includes the object of remaining arguments passing here as an argument
769
+ * @param params.isBuiltOnPromise : optional param need to send with params obj for to confirm function is used with promise or not!!
770
+ * @param params.mongoQueryOpts :optional param sending with params obj for some specific mongodb query operation, to maintain session for transactions
771
+ * @param comMasterDb : optional param sending to get it update and sync with master db.
766
772
  */
767
773
  //
768
- function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
774
+ function DeleteFieldInOtherCollection(objectName, objectIDs, db, params, comMasterDb) {
769
775
  return __awaiter(this, void 0, void 0, function () {
770
776
  var mongoQueryOpts, querys_1;
771
777
  var _this = this;
@@ -776,102 +782,117 @@ function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
776
782
  mongoQueryOpts = __assign({}, params.mongodbQueryOpts);
777
783
  }
778
784
  return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
779
- var querys, data, i, obj, query, alias, j, alias, i, query, error_1;
785
+ var querys, data, i, obj, query, alias, j, alias, project, UseMasterDatabase, i, query, dbConnection, error_1;
780
786
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
781
787
  return __generator(this, function (_k) {
782
788
  switch (_k.label) {
783
789
  case 0:
784
- _k.trys.push([0, 8, , 9]);
790
+ _k.trys.push([0, 12, , 13]);
785
791
  querys = [];
786
792
  return [4 /*yield*/, db.collection('ObjectSchema').aggregate([{ $unwind: "$Fields" },
787
793
  { $match: { $or: [{ "Fields.LookupObject": objectName }, { "Fields.ExtraLookupObjects": { $elemMatch: { "from": objectName } } }] } },
788
794
  ], mongoQueryOpts).toArray()];
789
795
  case 1:
790
796
  data = _k.sent();
791
- if (!(data && data.length > 0)) return [3 /*break*/, 7];
792
- for (i = 0; i < data.length; i++) {
793
- obj = data[i];
794
- query = { ObjectName: obj.Name };
795
- if (obj.Fields.LookupObject == objectName) {
796
- alias = obj.Fields.Name + constants_1.default.LookupAlias;
797
- query.match = (_a = {},
798
- _a[alias + '._id'] = { $in: objectIDs },
799
- _a);
800
- if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
801
- query.set = (_b = {},
802
- _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
803
- _b);
804
- query.arrayFilters = (_c = {},
805
- _c['e._id'] = { $in: objectIDs },
806
- _c);
797
+ if (!(data && data.length > 0)) return [3 /*break*/, 11];
798
+ i = 0;
799
+ _k.label = 2;
800
+ case 2:
801
+ if (!(i < data.length)) return [3 /*break*/, 5];
802
+ obj = data[i];
803
+ query = { ObjectName: obj.Name };
804
+ if (obj.Fields.LookupObject == objectName) {
805
+ alias = obj.Fields.Name + constants_1.default.LookupAlias;
806
+ query.match = (_a = {},
807
+ _a[alias + '._id'] = { $in: objectIDs },
808
+ _a);
809
+ if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
810
+ query.set = (_b = {},
811
+ _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
812
+ _b);
813
+ query.arrayFilters = (_c = {},
814
+ _c['e._id'] = { $in: objectIDs },
815
+ _c);
816
+ }
817
+ else {
818
+ /*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
819
+ if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
820
+ query.set = (_d = {},
821
+ _d[obj.Fields.Name] = null,
822
+ _d[alias] = null,
823
+ _d);
807
824
  }
808
825
  else {
809
- /*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
810
- if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
811
- query.set = (_d = {},
812
- _d[obj.Fields.Name] = null,
813
- _d[alias] = null,
814
- _d);
815
- }
816
- else {
817
- query.set = (_e = {},
818
- _e[alias + '.IsActive'] = false,
819
- _e);
820
- }
826
+ query.set = (_e = {},
827
+ _e[alias + '.IsActive'] = false,
828
+ _e);
821
829
  }
822
830
  }
823
- else if (obj.Fields.ExtraLookupObjects) {
824
- for (j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
825
- if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
826
- alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
827
- query.match = (_f = {},
828
- _f[alias + '._id'] = { $in: objectIDs },
829
- _f);
830
- if (obj.Fields.UIDataType == 'multilookup') {
831
- query.set = (_g = {},
832
- _g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
833
- _g);
834
- query.arrayFilters = (_h = {},
835
- _h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
836
- _h);
837
- }
838
- else
839
- query.set = (_j = {},
840
- _j[alias + '.IsActive'] = false,
841
- _j);
831
+ }
832
+ else if (obj.Fields.ExtraLookupObjects) {
833
+ for (j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
834
+ if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
835
+ alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
836
+ query.match = (_f = {},
837
+ _f[alias + '._id'] = { $in: objectIDs },
838
+ _f);
839
+ if (obj.Fields.UIDataType == 'multilookup') {
840
+ query.set = (_g = {},
841
+ _g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
842
+ _g);
843
+ query.arrayFilters = (_h = {},
844
+ _h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
845
+ _h);
842
846
  }
847
+ else
848
+ query.set = (_j = {},
849
+ _j[alias + '.IsActive'] = false,
850
+ _j);
843
851
  }
844
852
  }
845
- if (query.set && query.match) {
846
- querys.push(query);
847
- }
848
853
  }
849
- if (!(querys.length > 0)) return [3 /*break*/, 7];
850
- i = 0;
851
- _k.label = 2;
852
- case 2:
853
- if (!(i < querys.length)) return [3 /*break*/, 7];
854
- query = querys[i];
855
- if (!(query.arrayFilters !== undefined)) return [3 /*break*/, 4];
856
- return [4 /*yield*/, db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts))];
854
+ project = { '_id': 0, 'UseMasterDatabase': 1 };
855
+ return [4 /*yield*/, db.collection('Page').findOne({ 'ObjectName': obj.Name, 'UseMasterDatabase': true }, project)];
857
856
  case 3:
858
- _k.sent();
859
- return [3 /*break*/, 6];
860
- case 4: return [4 /*yield*/, db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts)];
857
+ UseMasterDatabase = _k.sent();
858
+ if (UseMasterDatabase) {
859
+ query['UseMasterDatabase'] = true;
860
+ }
861
+ if (query.set && query.match) {
862
+ querys.push(query);
863
+ }
864
+ _k.label = 4;
865
+ case 4:
866
+ i++;
867
+ return [3 /*break*/, 2];
861
868
  case 5:
862
- _k.sent();
869
+ if (!(querys.length > 0)) return [3 /*break*/, 11];
870
+ i = 0;
863
871
  _k.label = 6;
864
872
  case 6:
865
- i++;
866
- return [3 /*break*/, 2];
873
+ if (!(i < querys.length)) return [3 /*break*/, 11];
874
+ query = querys[i];
875
+ dbConnection = (query.UseMasterDatabase) ? comMasterDb : db;
876
+ if (!(query.arrayFilters !== undefined)) return [3 /*break*/, 8];
877
+ return [4 /*yield*/, dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts))];
867
878
  case 7:
879
+ _k.sent();
880
+ return [3 /*break*/, 10];
881
+ case 8: return [4 /*yield*/, dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts)];
882
+ case 9:
883
+ _k.sent();
884
+ _k.label = 10;
885
+ case 10:
886
+ i++;
887
+ return [3 /*break*/, 6];
888
+ case 11:
868
889
  resolve();
869
- return [3 /*break*/, 9];
870
- case 8:
890
+ return [3 /*break*/, 13];
891
+ case 12:
871
892
  error_1 = _k.sent();
872
893
  reject(error_1);
873
- return [3 /*break*/, 9];
874
- case 9: return [2 /*return*/];
894
+ return [3 /*break*/, 13];
895
+ case 13: return [2 /*return*/];
875
896
  }
876
897
  });
877
898
  }); })];
@@ -884,75 +905,99 @@ function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
884
905
  db.collection('ObjectSchema').aggregate([{ $unwind: "$Fields" },
885
906
  { $match: { $or: [{ "Fields.LookupObject": objectName }, { "Fields.ExtraLookupObjects": { $elemMatch: { "from": objectName } } }] } },
886
907
  ], mongoQueryOpts).toArray(function (err, data) {
887
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
888
- if (data && data.length > 0) {
889
- for (var i = 0; i < data.length; i++) {
890
- var obj = data[i];
891
- var query = { ObjectName: obj.Name };
892
- if (obj.Fields.LookupObject == objectName) {
893
- var alias = obj.Fields.Name + constants_1.default.LookupAlias;
894
- query.match = (_a = {},
895
- _a[alias + '._id'] = { $in: objectIDs },
896
- _a);
897
- if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
898
- query.set = (_b = {},
899
- _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
900
- _b);
901
- query.arrayFilters = (_c = {},
902
- _c['e._id'] = { $in: objectIDs },
903
- _c);
904
- }
905
- else {
906
- /*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
907
- if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
908
- query.set = (_d = {},
909
- _d[obj.Fields.Name] = null,
910
- _d[alias] = null,
911
- _d);
908
+ return __awaiter(this, void 0, void 0, function () {
909
+ var i, obj, query, alias, j, alias, project, UseMasterDatabase, i, query, dbConnection;
910
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
911
+ return __generator(this, function (_k) {
912
+ switch (_k.label) {
913
+ case 0:
914
+ if (!(data && data.length > 0)) return [3 /*break*/, 5];
915
+ i = 0;
916
+ _k.label = 1;
917
+ case 1:
918
+ if (!(i < data.length)) return [3 /*break*/, 4];
919
+ obj = data[i];
920
+ query = { ObjectName: obj.Name };
921
+ if (obj.Fields.LookupObject == objectName) {
922
+ alias = obj.Fields.Name + constants_1.default.LookupAlias;
923
+ query.match = (_a = {},
924
+ _a[alias + '._id'] = { $in: objectIDs },
925
+ _a);
926
+ if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
927
+ query.set = (_b = {},
928
+ _b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
929
+ _b);
930
+ query.arrayFilters = (_c = {},
931
+ _c['e._id'] = { $in: objectIDs },
932
+ _c);
933
+ }
934
+ else {
935
+ /*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
936
+ if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
937
+ query.set = (_d = {},
938
+ _d[obj.Fields.Name] = null,
939
+ _d[alias] = null,
940
+ _d);
941
+ }
942
+ else {
943
+ query.set = (_e = {},
944
+ _e[alias + '.IsActive'] = false,
945
+ _e);
946
+ }
947
+ }
912
948
  }
913
- else {
914
- query.set = (_e = {},
915
- _e[alias + '.IsActive'] = false,
916
- _e);
949
+ else if (obj.Fields.ExtraLookupObjects) {
950
+ for (j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
951
+ if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
952
+ alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
953
+ query.match = (_f = {},
954
+ _f[alias + '._id'] = { $in: objectIDs },
955
+ _f);
956
+ if (obj.Fields.UIDataType == 'multilookup') {
957
+ query.set = (_g = {},
958
+ _g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
959
+ _g);
960
+ query.arrayFilters = (_h = {},
961
+ _h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
962
+ _h);
963
+ }
964
+ else
965
+ query.set = (_j = {},
966
+ _j[alias + '.IsActive'] = false,
967
+ _j);
968
+ }
969
+ }
917
970
  }
918
- }
919
- }
920
- else if (obj.Fields.ExtraLookupObjects) {
921
- for (var j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
922
- if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
923
- var alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
924
- query.match = (_f = {},
925
- _f[alias + '._id'] = { $in: objectIDs },
926
- _f);
927
- if (obj.Fields.UIDataType == 'multilookup') {
928
- query.set = (_g = {},
929
- _g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
930
- _g);
931
- query.arrayFilters = (_h = {},
932
- _h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
933
- _h);
971
+ project = { '_id': 0, 'UseMasterDatabase': 1 };
972
+ return [4 /*yield*/, db.collection('Page').findOne({ 'ObjectName': obj.Name, 'UseMasterDatabase': true }, project)];
973
+ case 2:
974
+ UseMasterDatabase = _k.sent();
975
+ if (UseMasterDatabase) {
976
+ query['UseMasterDatabase'] = true;
977
+ }
978
+ if (query.set && query.match) {
979
+ querys_1.push(query);
980
+ }
981
+ _k.label = 3;
982
+ case 3:
983
+ i++;
984
+ return [3 /*break*/, 1];
985
+ case 4:
986
+ if (querys_1.length > 0) {
987
+ for (i = 0; i < querys_1.length; i++) {
988
+ query = querys_1[i];
989
+ dbConnection = (query.UseMasterDatabase) ? comMasterDb : db;
990
+ if (query.arrayFilters !== undefined)
991
+ dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts));
992
+ else
993
+ dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts);
934
994
  }
935
- else
936
- query.set = (_j = {},
937
- _j[alias + '.IsActive'] = false,
938
- _j);
939
995
  }
940
- }
941
- }
942
- if (query.set && query.match) {
943
- querys_1.push(query);
944
- }
945
- }
946
- if (querys_1.length > 0) {
947
- for (var i = 0; i < querys_1.length; i++) {
948
- var query = querys_1[i];
949
- if (query.arrayFilters !== undefined)
950
- db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts));
951
- else
952
- db.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts);
996
+ _k.label = 5;
997
+ case 5: return [2 /*return*/];
953
998
  }
954
- }
955
- }
999
+ });
1000
+ });
956
1001
  });
957
1002
  }
958
1003
  return [2 /*return*/];
@@ -1038,7 +1083,7 @@ function SyncFieldInSameCollection(objectName, objectIDs, db, comMasterDb) {
1038
1083
  try {
1039
1084
  db.collection("ObjectSchema").findOne({ 'Name': objectName }, function (err, objectSchema) {
1040
1085
  return __awaiter(this, void 0, void 0, function () {
1041
- var fieldArr_1, findObj;
1086
+ var fieldArr_1, findObj, dbToUse_1;
1042
1087
  return __generator(this, function (_a) {
1043
1088
  if (err) {
1044
1089
  console.log("Error in function SyncFieldInSameCollection for object name ", objectName);
@@ -1052,8 +1097,8 @@ function SyncFieldInSameCollection(objectName, objectIDs, db, comMasterDb) {
1052
1097
  if (objectIDs && objectIDs.length > 0) {
1053
1098
  findObj = { '_id': { '$in': objectIDs } };
1054
1099
  }
1055
- // added by komal, QPC-8260- getting the comMasterDb from dbconnection based on UseMasterDatabase flag for updating the master db also.
1056
- comMasterDb.collection(objectName).find(findObj).forEach(function (objectData) {
1100
+ dbToUse_1 = comMasterDb ? comMasterDb : db;
1101
+ dbToUse_1.collection(objectName).find(findObj).forEach(function (objectData) {
1057
1102
  return __awaiter(this, void 0, void 0, function () {
1058
1103
  var updateObj, i, fieldSchema, lookupData, searchValue, ex_1;
1059
1104
  return __generator(this, function (_a) {
@@ -1086,7 +1131,7 @@ function SyncFieldInSameCollection(objectName, objectIDs, db, comMasterDb) {
1086
1131
  return [3 /*break*/, 2];
1087
1132
  case 5:
1088
1133
  if (Object.keys(updateObj).length > 0) { // added by komal, QPC-8260- getting the comMasterDb from dbconnection based on UseMasterDatabase flag for updating the master db also.
1089
- comMasterDb.collection(objectName).updateOne({ _id: objectData._id }, { $set: updateObj });
1134
+ dbToUse_1.collection(objectName).updateOne({ _id: objectData._id }, { $set: updateObj });
1090
1135
  }
1091
1136
  return [3 /*break*/, 7];
1092
1137
  case 6:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimiser/common",
3
- "version": "1.0.363",
3
+ "version": "1.0.365",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {