@optimiser/common 1.0.362 → 1.0.364
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.
- package/dist/lib/utility.d.ts +2 -2
- package/dist/lib/utility.js +179 -139
- package/package.json +1 -1
package/dist/lib/utility.d.ts
CHANGED
|
@@ -24,9 +24,9 @@ declare function SyncParentObjectData(pageData: AnyObjectInterface, objectID: Ob
|
|
|
24
24
|
* Delete field in other collection after delete records
|
|
25
25
|
* @param mongodbTransactionQueryopts to maintain session for transactions
|
|
26
26
|
*/
|
|
27
|
-
declare function DeleteFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db, params?: AnyObjectInterface): Promise<void>;
|
|
27
|
+
declare function DeleteFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db, params?: AnyObjectInterface, comMasterDb?: Db): Promise<void>;
|
|
28
28
|
declare function ReactivateFieldInOtherCollection(objectName: string, objectIDs: ObjectId, db: Db): void;
|
|
29
|
-
declare function SyncFieldInSameCollection(objectName: string, objectIDs: ObjectId[], db: Db): Promise<any>;
|
|
29
|
+
declare function SyncFieldInSameCollection(objectName: string, objectIDs: ObjectId[], db: Db, comMasterDb: Db): Promise<any>;
|
|
30
30
|
declare function SyncFieldInSameCollectionByObjectID(objectName: string, objectID: ObjectId, db: Db): void;
|
|
31
31
|
declare function SyncFieldInSameCollectionByObjectIDWithPromise(objectName: string, objectID: ObjectId, db: Db): Promise<any>;
|
|
32
32
|
declare function SyncFieldInOtherCollection(syncFields: AnyObjectInterface[], db: Db): Promise<any>;
|
package/dist/lib/utility.js
CHANGED
|
@@ -765,7 +765,7 @@ exports.SyncParentObjectData = SyncParentObjectData;
|
|
|
765
765
|
* @param mongodbTransactionQueryopts to maintain session for transactions
|
|
766
766
|
*/
|
|
767
767
|
//
|
|
768
|
-
function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
|
|
768
|
+
function DeleteFieldInOtherCollection(objectName, objectIDs, db, params, comMasterDb) {
|
|
769
769
|
return __awaiter(this, void 0, void 0, function () {
|
|
770
770
|
var mongoQueryOpts, querys_1;
|
|
771
771
|
var _this = this;
|
|
@@ -776,102 +776,117 @@ function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
|
|
|
776
776
|
mongoQueryOpts = __assign({}, params.mongodbQueryOpts);
|
|
777
777
|
}
|
|
778
778
|
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;
|
|
779
|
+
var querys, data, i, obj, query, alias, j, alias, project, UseMasterDatabase, i, query, dbConnection, error_1;
|
|
780
780
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
781
781
|
return __generator(this, function (_k) {
|
|
782
782
|
switch (_k.label) {
|
|
783
783
|
case 0:
|
|
784
|
-
_k.trys.push([0,
|
|
784
|
+
_k.trys.push([0, 12, , 13]);
|
|
785
785
|
querys = [];
|
|
786
786
|
return [4 /*yield*/, db.collection('ObjectSchema').aggregate([{ $unwind: "$Fields" },
|
|
787
787
|
{ $match: { $or: [{ "Fields.LookupObject": objectName }, { "Fields.ExtraLookupObjects": { $elemMatch: { "from": objectName } } }] } },
|
|
788
788
|
], mongoQueryOpts).toArray()];
|
|
789
789
|
case 1:
|
|
790
790
|
data = _k.sent();
|
|
791
|
-
if (!(data && data.length > 0)) return [3 /*break*/,
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
791
|
+
if (!(data && data.length > 0)) return [3 /*break*/, 11];
|
|
792
|
+
i = 0;
|
|
793
|
+
_k.label = 2;
|
|
794
|
+
case 2:
|
|
795
|
+
if (!(i < data.length)) return [3 /*break*/, 5];
|
|
796
|
+
obj = data[i];
|
|
797
|
+
query = { ObjectName: obj.Name };
|
|
798
|
+
if (obj.Fields.LookupObject == objectName) {
|
|
799
|
+
alias = obj.Fields.Name + constants_1.default.LookupAlias;
|
|
800
|
+
query.match = (_a = {},
|
|
801
|
+
_a[alias + '._id'] = { $in: objectIDs },
|
|
802
|
+
_a);
|
|
803
|
+
if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
|
|
804
|
+
query.set = (_b = {},
|
|
805
|
+
_b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
|
|
806
|
+
_b);
|
|
807
|
+
query.arrayFilters = (_c = {},
|
|
808
|
+
_c['e._id'] = { $in: objectIDs },
|
|
809
|
+
_c);
|
|
810
|
+
}
|
|
811
|
+
else {
|
|
812
|
+
/*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
|
|
813
|
+
if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
|
|
814
|
+
query.set = (_d = {},
|
|
815
|
+
_d[obj.Fields.Name] = null,
|
|
816
|
+
_d[alias] = null,
|
|
817
|
+
_d);
|
|
807
818
|
}
|
|
808
819
|
else {
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
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
|
-
}
|
|
820
|
+
query.set = (_e = {},
|
|
821
|
+
_e[alias + '.IsActive'] = false,
|
|
822
|
+
_e);
|
|
821
823
|
}
|
|
822
824
|
}
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
else
|
|
839
|
-
query.set = (_j = {},
|
|
840
|
-
_j[alias + '.IsActive'] = false,
|
|
841
|
-
_j);
|
|
825
|
+
}
|
|
826
|
+
else if (obj.Fields.ExtraLookupObjects) {
|
|
827
|
+
for (j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
|
|
828
|
+
if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
|
|
829
|
+
alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
|
|
830
|
+
query.match = (_f = {},
|
|
831
|
+
_f[alias + '._id'] = { $in: objectIDs },
|
|
832
|
+
_f);
|
|
833
|
+
if (obj.Fields.UIDataType == 'multilookup') {
|
|
834
|
+
query.set = (_g = {},
|
|
835
|
+
_g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
|
|
836
|
+
_g);
|
|
837
|
+
query.arrayFilters = (_h = {},
|
|
838
|
+
_h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
|
|
839
|
+
_h);
|
|
842
840
|
}
|
|
841
|
+
else
|
|
842
|
+
query.set = (_j = {},
|
|
843
|
+
_j[alias + '.IsActive'] = false,
|
|
844
|
+
_j);
|
|
843
845
|
}
|
|
844
846
|
}
|
|
845
|
-
if (query.set && query.match) {
|
|
846
|
-
querys.push(query);
|
|
847
|
-
}
|
|
848
847
|
}
|
|
849
|
-
|
|
850
|
-
|
|
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))];
|
|
848
|
+
project = { '_id': 0, 'UseMasterDatabase': 1 };
|
|
849
|
+
return [4 /*yield*/, db.collection('Page').findOne({ 'ObjectName': obj.Name, 'UseMasterDatabase': true }, project)];
|
|
857
850
|
case 3:
|
|
858
|
-
_k.sent();
|
|
859
|
-
|
|
860
|
-
|
|
851
|
+
UseMasterDatabase = _k.sent();
|
|
852
|
+
if (UseMasterDatabase) {
|
|
853
|
+
query['UseMasterDatabase'] = true;
|
|
854
|
+
}
|
|
855
|
+
if (query.set && query.match) {
|
|
856
|
+
querys.push(query);
|
|
857
|
+
}
|
|
858
|
+
_k.label = 4;
|
|
859
|
+
case 4:
|
|
860
|
+
i++;
|
|
861
|
+
return [3 /*break*/, 2];
|
|
861
862
|
case 5:
|
|
862
|
-
|
|
863
|
+
if (!(querys.length > 0)) return [3 /*break*/, 11];
|
|
864
|
+
i = 0;
|
|
863
865
|
_k.label = 6;
|
|
864
866
|
case 6:
|
|
865
|
-
i
|
|
866
|
-
|
|
867
|
+
if (!(i < querys.length)) return [3 /*break*/, 11];
|
|
868
|
+
query = querys[i];
|
|
869
|
+
dbConnection = (query.UseMasterDatabase) ? comMasterDb : db;
|
|
870
|
+
if (!(query.arrayFilters !== undefined)) return [3 /*break*/, 8];
|
|
871
|
+
return [4 /*yield*/, dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts))];
|
|
867
872
|
case 7:
|
|
873
|
+
_k.sent();
|
|
874
|
+
return [3 /*break*/, 10];
|
|
875
|
+
case 8: return [4 /*yield*/, dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts)];
|
|
876
|
+
case 9:
|
|
877
|
+
_k.sent();
|
|
878
|
+
_k.label = 10;
|
|
879
|
+
case 10:
|
|
880
|
+
i++;
|
|
881
|
+
return [3 /*break*/, 6];
|
|
882
|
+
case 11:
|
|
868
883
|
resolve();
|
|
869
|
-
return [3 /*break*/,
|
|
870
|
-
case
|
|
884
|
+
return [3 /*break*/, 13];
|
|
885
|
+
case 12:
|
|
871
886
|
error_1 = _k.sent();
|
|
872
887
|
reject(error_1);
|
|
873
|
-
return [3 /*break*/,
|
|
874
|
-
case
|
|
888
|
+
return [3 /*break*/, 13];
|
|
889
|
+
case 13: return [2 /*return*/];
|
|
875
890
|
}
|
|
876
891
|
});
|
|
877
892
|
}); })];
|
|
@@ -884,75 +899,99 @@ function DeleteFieldInOtherCollection(objectName, objectIDs, db, params) {
|
|
|
884
899
|
db.collection('ObjectSchema').aggregate([{ $unwind: "$Fields" },
|
|
885
900
|
{ $match: { $or: [{ "Fields.LookupObject": objectName }, { "Fields.ExtraLookupObjects": { $elemMatch: { "from": objectName } } }] } },
|
|
886
901
|
], mongoQueryOpts).toArray(function (err, data) {
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
902
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
903
|
+
var i, obj, query, alias, j, alias, project, UseMasterDatabase, i, query, dbConnection;
|
|
904
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
905
|
+
return __generator(this, function (_k) {
|
|
906
|
+
switch (_k.label) {
|
|
907
|
+
case 0:
|
|
908
|
+
if (!(data && data.length > 0)) return [3 /*break*/, 5];
|
|
909
|
+
i = 0;
|
|
910
|
+
_k.label = 1;
|
|
911
|
+
case 1:
|
|
912
|
+
if (!(i < data.length)) return [3 /*break*/, 4];
|
|
913
|
+
obj = data[i];
|
|
914
|
+
query = { ObjectName: obj.Name };
|
|
915
|
+
if (obj.Fields.LookupObject == objectName) {
|
|
916
|
+
alias = obj.Fields.Name + constants_1.default.LookupAlias;
|
|
917
|
+
query.match = (_a = {},
|
|
918
|
+
_a[alias + '._id'] = { $in: objectIDs },
|
|
919
|
+
_a);
|
|
920
|
+
if (obj.Fields.UIDataType == 'multilookup' || obj.Fields.UIDataType == 'multiselect') {
|
|
921
|
+
query.set = (_b = {},
|
|
922
|
+
_b[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].IsActive'] = false,
|
|
923
|
+
_b);
|
|
924
|
+
query.arrayFilters = (_c = {},
|
|
925
|
+
_c['e._id'] = { $in: objectIDs },
|
|
926
|
+
_c);
|
|
927
|
+
}
|
|
928
|
+
else {
|
|
929
|
+
/*On deletion of Pipeline or Event, Removing Pipeline/Event Id and LookupData from Activity*/
|
|
930
|
+
if (((objectName == "Pipeline" && obj.Fields.Name == "PipelineID") || (objectName == "Events" && obj.Fields.Name == "EventID")) && obj.Name == "Activity") {
|
|
931
|
+
query.set = (_d = {},
|
|
932
|
+
_d[obj.Fields.Name] = null,
|
|
933
|
+
_d[alias] = null,
|
|
934
|
+
_d);
|
|
935
|
+
}
|
|
936
|
+
else {
|
|
937
|
+
query.set = (_e = {},
|
|
938
|
+
_e[alias + '.IsActive'] = false,
|
|
939
|
+
_e);
|
|
940
|
+
}
|
|
941
|
+
}
|
|
912
942
|
}
|
|
913
|
-
else {
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
943
|
+
else if (obj.Fields.ExtraLookupObjects) {
|
|
944
|
+
for (j = 0; j < obj.Fields.ExtraLookupObjects.length; j++) {
|
|
945
|
+
if (obj.Fields.ExtraLookupObjects[j].from == objectName) {
|
|
946
|
+
alias = obj.Fields.Name + constants_1.default.LookupAlias + '.' + obj.Fields.ExtraLookupObjects[j].as;
|
|
947
|
+
query.match = (_f = {},
|
|
948
|
+
_f[alias + '._id'] = { $in: objectIDs },
|
|
949
|
+
_f);
|
|
950
|
+
if (obj.Fields.UIDataType == 'multilookup') {
|
|
951
|
+
query.set = (_g = {},
|
|
952
|
+
_g[obj.Fields.Name + constants_1.default.LookupAlias + '.$[e].' + obj.Fields.ExtraLookupObjects[j].as + '.IsActive'] = false,
|
|
953
|
+
_g);
|
|
954
|
+
query.arrayFilters = (_h = {},
|
|
955
|
+
_h['e.' + obj.Fields.ExtraLookupObjects[j].as + '._id'] = { $in: objectIDs },
|
|
956
|
+
_h);
|
|
957
|
+
}
|
|
958
|
+
else
|
|
959
|
+
query.set = (_j = {},
|
|
960
|
+
_j[alias + '.IsActive'] = false,
|
|
961
|
+
_j);
|
|
962
|
+
}
|
|
963
|
+
}
|
|
917
964
|
}
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
if (
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
965
|
+
project = { '_id': 0, 'UseMasterDatabase': 1 };
|
|
966
|
+
return [4 /*yield*/, db.collection('Page').findOne({ 'ObjectName': obj.Name, 'UseMasterDatabase': true }, project)];
|
|
967
|
+
case 2:
|
|
968
|
+
UseMasterDatabase = _k.sent();
|
|
969
|
+
if (UseMasterDatabase) {
|
|
970
|
+
query['UseMasterDatabase'] = true;
|
|
971
|
+
}
|
|
972
|
+
if (query.set && query.match) {
|
|
973
|
+
querys_1.push(query);
|
|
974
|
+
}
|
|
975
|
+
_k.label = 3;
|
|
976
|
+
case 3:
|
|
977
|
+
i++;
|
|
978
|
+
return [3 /*break*/, 1];
|
|
979
|
+
case 4:
|
|
980
|
+
if (querys_1.length > 0) {
|
|
981
|
+
for (i = 0; i < querys_1.length; i++) {
|
|
982
|
+
query = querys_1[i];
|
|
983
|
+
dbConnection = (query.UseMasterDatabase) ? comMasterDb : db;
|
|
984
|
+
if (query.arrayFilters !== undefined)
|
|
985
|
+
dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, __assign({ arrayFilters: [query.arrayFilters] }, mongoQueryOpts));
|
|
986
|
+
else
|
|
987
|
+
dbConnection.collection(query.ObjectName).updateMany(query.match, { $set: query.set }, mongoQueryOpts);
|
|
934
988
|
}
|
|
935
|
-
else
|
|
936
|
-
query.set = (_j = {},
|
|
937
|
-
_j[alias + '.IsActive'] = false,
|
|
938
|
-
_j);
|
|
939
989
|
}
|
|
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);
|
|
990
|
+
_k.label = 5;
|
|
991
|
+
case 5: return [2 /*return*/];
|
|
953
992
|
}
|
|
954
|
-
}
|
|
955
|
-
}
|
|
993
|
+
});
|
|
994
|
+
});
|
|
956
995
|
});
|
|
957
996
|
}
|
|
958
997
|
return [2 /*return*/];
|
|
@@ -1030,7 +1069,7 @@ function ReactivateFieldInOtherCollection(objectName, objectIDs, db) {
|
|
|
1030
1069
|
exports.ReactivateFieldInOtherCollection = ReactivateFieldInOtherCollection;
|
|
1031
1070
|
//Sync _LookupDataField field in same collection by Ids
|
|
1032
1071
|
//Note: if pass objectIDs as null or blank arry it will update all data
|
|
1033
|
-
function SyncFieldInSameCollection(objectName, objectIDs, db) {
|
|
1072
|
+
function SyncFieldInSameCollection(objectName, objectIDs, db, comMasterDb) {
|
|
1034
1073
|
var _this = this;
|
|
1035
1074
|
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
1036
1075
|
return __generator(this, function (_a) {
|
|
@@ -1052,7 +1091,8 @@ function SyncFieldInSameCollection(objectName, objectIDs, db) {
|
|
|
1052
1091
|
if (objectIDs && objectIDs.length > 0) {
|
|
1053
1092
|
findObj = { '_id': { '$in': objectIDs } };
|
|
1054
1093
|
}
|
|
1055
|
-
db.
|
|
1094
|
+
// added by komal, QPC-8260- getting the comMasterDb from dbconnection based on UseMasterDatabase flag for updating the master db also.
|
|
1095
|
+
comMasterDb.collection(objectName).find(findObj).forEach(function (objectData) {
|
|
1056
1096
|
return __awaiter(this, void 0, void 0, function () {
|
|
1057
1097
|
var updateObj, i, fieldSchema, lookupData, searchValue, ex_1;
|
|
1058
1098
|
return __generator(this, function (_a) {
|
|
@@ -1084,8 +1124,8 @@ function SyncFieldInSameCollection(objectName, objectIDs, db) {
|
|
|
1084
1124
|
i++;
|
|
1085
1125
|
return [3 /*break*/, 2];
|
|
1086
1126
|
case 5:
|
|
1087
|
-
if (Object.keys(updateObj).length > 0) {
|
|
1088
|
-
|
|
1127
|
+
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.
|
|
1128
|
+
comMasterDb.collection(objectName).updateOne({ _id: objectData._id }, { $set: updateObj });
|
|
1089
1129
|
}
|
|
1090
1130
|
return [3 /*break*/, 7];
|
|
1091
1131
|
case 6:
|