@resolveio/server-lib 6.2.7-newrole → 6.2.9-newrole

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/index.js CHANGED
@@ -56,6 +56,7 @@ var ResolveIOServer = /** @class */ (function () {
56
56
  mongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], {
57
57
  useNewUrlParser: true,
58
58
  useCreateIndex: true,
59
+ useUnifiedTopology: true
59
60
  }).then(function (db) { return __awaiter(_this, void 0, void 0, function () {
60
61
  var _this = this;
61
62
  return __generator(this, function (_a) {
@@ -63,6 +64,7 @@ var ResolveIOServer = /** @class */ (function () {
63
64
  mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], {
64
65
  useNewUrlParser: true,
65
66
  useCreateIndex: true,
67
+ useUnifiedTopology: true
66
68
  }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
67
69
  var serverApp;
68
70
  return __generator(this, function (_a) {
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import * as mongoose from 'mongoose';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _serverConfig = null;\n\tprivate static _mainDB: mongoose.Connection = null;\n\tprivate static _supportDB: mongoose.Connection = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _dontRunSupport = false;\n\tprivate static _sesMail = true;\n\n\tconstructor(serverConfig, client: string, clientDir, dontRunSupport = false, sesMail = true) {\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\n\t\tif (dontRunSupport) {\n\t\t\tResolveIOServer._dontRunSupport = dontRunSupport;\n\t\t}\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' && !this._dontRunSupport) {\n\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], <any>{ \n\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\t// useUnifiedTopology: true \n\t\t\t\t}).then(async (db) => {\n\t\t\t\t\tResolveIOServer._supportDB = db;\n\t\t\t\t\n\t\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], <any>{ \n\t\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\t\t// useUnifiedTopology: true \n\t\t\t\t\t}).then(async (dbMain) => {\n\t\t\t\t\t\tResolveIOServer._mainDB = dbMain;\n\n\t\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir, this._sesMail);\n\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}, (err) => {\n\t\t\t\t\t\tprocess.exit();\n\t\t\t\t\t\treject();\n\t\t\t\t\t});\n\t\t\t\t}, (err) => {\n\t\t\t\t\tprocess.exit();\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tResolveIOServer._supportDB = null;\n\t\t\t\t\n\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], <any>{ \n\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\t// useUnifiedTopology: true \n\t\t\t\t}).then(async (dbMain) => {\n\t\t\t\t\tResolveIOServer._mainDB = dbMain;\n\t\t\t\t\t\n\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir, this._sesMail);\n\n\t\t\t\t\tresolve();\n\t\t\t\t}, (err) => {\n\t\t\t\t\tprocess.exit();\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getSupportDB() {\n\t\treturn ResolveIOServer._supportDB;\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import * as mongoose from 'mongoose';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _serverConfig = null;\n\tprivate static _mainDB: mongoose.Connection = null;\n\tprivate static _supportDB: mongoose.Connection = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _dontRunSupport = false;\n\tprivate static _sesMail = true;\n\n\tconstructor(serverConfig, client: string, clientDir, dontRunSupport = false, sesMail = true) {\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\n\t\tif (dontRunSupport) {\n\t\t\tResolveIOServer._dontRunSupport = dontRunSupport;\n\t\t}\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' && !this._dontRunSupport) {\n\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], <any>{ \n\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\tuseUnifiedTopology: true \n\t\t\t\t}).then(async (db) => {\n\t\t\t\t\tResolveIOServer._supportDB = db;\n\t\t\t\t\n\t\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], <any>{ \n\t\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\t\tuseUnifiedTopology: true \n\t\t\t\t\t}).then(async (dbMain) => {\n\t\t\t\t\t\tResolveIOServer._mainDB = dbMain;\n\n\t\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir, this._sesMail);\n\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}, (err) => {\n\t\t\t\t\t\tprocess.exit();\n\t\t\t\t\t\treject();\n\t\t\t\t\t});\n\t\t\t\t}, (err) => {\n\t\t\t\t\tprocess.exit();\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tResolveIOServer._supportDB = null;\n\t\t\t\t\n\t\t\t\tmongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], <any>{ \n\t\t\t\t\tuseNewUrlParser: true, \n\t\t\t\t\tuseCreateIndex: true, \n\t\t\t\t\t// useUnifiedTopology: true \n\t\t\t\t}).then(async (dbMain) => {\n\t\t\t\t\tResolveIOServer._mainDB = dbMain;\n\t\t\t\t\t\n\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir, this._sesMail);\n\n\t\t\t\t\tresolve();\n\t\t\t\t}, (err) => {\n\t\t\t\t\tprocess.exit();\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getSupportDB() {\n\t\treturn ResolveIOServer._supportDB;\n\t}\n}"]}
@@ -906,6 +906,41 @@ function loadCollectionMethods(methodManager) {
906
906
  });
907
907
  });
908
908
  }
909
+ },
910
+ removeDocumentsWithQuery: {
911
+ check: new simpl_schema_1.default({
912
+ collection: {
913
+ type: String
914
+ },
915
+ query: {
916
+ type: Object,
917
+ blackbox: true
918
+ }
919
+ }),
920
+ function: function (collection, query) {
921
+ var _this = this;
922
+ return new Promise(function (resolve, reject) {
923
+ log_collection_1.Logs.create({
924
+ _id: mongoose_1.Types.ObjectId().toHexString(),
925
+ date: new Date(),
926
+ type: 'info',
927
+ title: 'Remove Documents (Query)',
928
+ message: 'User: ' + _this.user + ', Collection Type: ' + collection,
929
+ payload: JSON.stringify({ _id: query }, null, 2),
930
+ method: 'removeDocumentsWithQuery',
931
+ user: _this.user,
932
+ messageId: ''
933
+ });
934
+ index_1.ResolveIOServer.getMainDB().model(collection).deleteMany(query).exec(function (err, res) {
935
+ if (err) {
936
+ reject(err);
937
+ }
938
+ else {
939
+ resolve(res.ok);
940
+ }
941
+ });
942
+ });
943
+ }
909
944
  }
910
945
  });
911
946
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import { Document, Types} from 'mongoose';\nimport { MethodManager } from '../managers/method.manager';\nimport { getMongoUpdates, deepCopy, getMongoMergeUpdatedDoc, getBinarySize } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { Logs } from '../collections/log.collection';\nimport { ResolveIOServer } from '../index';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).findOne(query).exec();\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, sortQuery: Object = {}) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(sortQuery).exec();\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(options.sort).limit(options.limit).skip(options.skip).select(options.fields).exec();\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((res, rej) => {\n\n\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\tfor (let i = 0; i < documents.length; i++) {\n\t\t\t\t\t\tlet document = documents[i];\n\n\t\t\t\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\tPromise.all(promises).then(vals => res(vals), err => console.log(err));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': f_document['__v']}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': doc__v}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\t\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + modifiedDoc.__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: doc_id}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocument',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne({_id: doc_id}).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document (Query)',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: query}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocumentWithQuery',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne(query).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import { Document, Types} from 'mongoose';\nimport { MethodManager } from '../managers/method.manager';\nimport { getMongoUpdates, deepCopy, getMongoMergeUpdatedDoc, getBinarySize } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { Logs } from '../collections/log.collection';\nimport { ResolveIOServer } from '../index';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).findOne(query).exec();\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, sortQuery: Object = {}) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(sortQuery).exec();\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(options.sort).limit(options.limit).skip(options.skip).select(options.fields).exec();\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((res, rej) => {\n\n\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\tfor (let i = 0; i < documents.length; i++) {\n\t\t\t\t\t\tlet document = documents[i];\n\n\t\t\t\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\tPromise.all(promises).then(vals => res(vals), err => console.log(err));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': f_document['__v']}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': doc__v}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\t\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + modifiedDoc.__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: doc_id}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocument',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne({_id: doc_id}).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document (Query)',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: query}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocumentWithQuery',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne(query).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Documents (Query)',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: query}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocumentsWithQuery',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteMany(query).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "6.2.7-newrole",
3
+ "version": "6.2.9-newrole",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {