@resolveio/server-lib 9.0.7 → 9.0.9
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/managers/method.manager.js +1 -1
- package/managers/method.manager.js.map +1 -1
- package/managers/mongo.manager.d.ts +2 -2
- package/managers/mongo.manager.js +2 -2
- package/managers/mongo.manager.js.map +1 -1
- package/methods/aws.js +1 -1
- package/methods/aws.js.map +1 -1
- package/methods/collections.js +6 -6
- package/methods/collections.js.map +1 -1
- package/methods/cron-jobs.js +4 -4
- package/methods/cron-jobs.js.map +1 -1
- package/methods/pdf.js +115 -11
- package/methods/pdf.js.map +1 -1
- package/package.json +1 -1
|
@@ -409,7 +409,7 @@ var MethodManager = /** @class */ (function () {
|
|
|
409
409
|
}
|
|
410
410
|
var timeout = setTimeout(function () {
|
|
411
411
|
console.error('Timeout on method', update);
|
|
412
|
-
_this.callMethodInternal
|
|
412
|
+
_this.callMethodInternal('insertErrorLog', 'Timeout on method: ', [update]);
|
|
413
413
|
resolve('Timeout');
|
|
414
414
|
}, 5000);
|
|
415
415
|
// console.log('Run Method', update.method);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/method.manager.ts"],"names":[],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as imap from 'imap';\nimport * as aws from 'aws-sdk';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { QueueMethodModel } from '../models/queue-method.model';\nimport { MethodResponses } from '../collections/method-response.collection';\nimport { deepCopy, getBinarySize } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport * as moment from 'moment';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { EmailVerifies } from '../collections/email-verified.collection';\nimport { objectIdHexString } from './mongo.manager';\n\nconst Verifier = require('email-verifier');\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _imap: imap;\n\tprivate _aws: aws.S3;\n\tprivate serverConfig;\n\tprivate clientDir;\n\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: new aws.SES({\n\t\t\t\t\tapiVersion: '2010-12-01',\n\t\t\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\t\t\tregion: serverConfig.AWSSES_REGION\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: this.serverConfig['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: this.serverConfig['MAIL_PORT'], //587, // secure SMTP\n\t\t\t\tsecure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely\n\t\t\t\tauth: {\n\t\t\t\t\tuser: this.serverConfig['MAIL_USERNAME'],\n\t\t\t\t\tpass: this.serverConfig['MAIL_PASSWORD']\n\t\t\t\t},\n\t\t\t\ttls: {\n\t\t\t\t\tciphers: 'SSLv3'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// this._imap = new imap({\n\t\t// \tuser: this.serverConfig['ORDERS_EMAIL'],\n\t\t// \tpassword: this.serverConfig['ORDERS_PASSWORD'],\n\t\t// \thost: this.serverConfig['ORDERS_HOST'],\n\t\t// \tport: this.serverConfig['ORDERS_PORT'],\n\t\t// \ttls: this.serverConfig['ORDERS_TLS']\n\t\t// });\n\n\t\t// let that = this;\n\n\t\t// let chemicalNames = await Chemicals.find({}).select('description');\n\t\t// let jobNames = await Jobs.find({status: 'Active'}).select('well');\n\n\t\t// console.log(jobNames.map(a => a.well));\n\n\t\t// this._imap.once('ready', () => {\n\t\t// \tthis._imap.openBox('INBOX', true, function(err, box) {\n\t\t// \t\tif (err) {\n\t\t// \t\t\tthrow err;\n\t\t// \t\t}\n\n\t\t// \t\tthat._imap.search([ 'NEW' ], function(err, results) {\n\n\t\t// \t\t\tconsole.log(err, results);\n\n\t\t// \t\t\tif (err || !results.length) {\n\t\t// \t\t\t\treturn that._imap.end();\n\t\t// \t\t\t}\n\n\t\t// \t\t\tlet f = that._imap.fetch(results[0], { bodies: ['HEADER.FIELDS (FROM)', 'TEXT'] });\n\t\t// \t\t\tf.on('message', function(msg, seqno) {\n\t\t// \t\t\t\t// console.log('Message #%d', seqno);\n\t\t// \t\t\t\tlet prefix = '(#' + seqno + ') ';\n\t\t// \t\t\t\tmsg.on('body', function(stream, info) {\n\t\t// \t\t\t\t\tlet buffer = '', count = 0;\n\t\t// \t\t\t\t\tstream.on('data', function(chunk) {\n\t\t// \t\t\t\t\t\tcount += chunk.length;\n\t\t// \t\t\t\t\t\tbuffer += chunk.toString('utf8');\n\t\t// \t\t\t\t\t});\n\t\t// \t\t\t\t\tstream.once('end', function() {\n\t\t// \t\t\t\t\t\tif (info.which === 'TEXT') {\n\t\t// \t\t\t\t\t\t\t// console.log(buffer);\n\t\t// \t\t\t\t\t\t\t// console.log(typeof(buffer));\n\t\t// \t\t\t\t\t\t\tlet lines = buffer.split('\\r\\n');\n\t\t// \t\t\t\t\t\t\t// console.log(lines);\n\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\t// let i = 0;\n\t\t// \t\t\t\t\t\t\t// lines.forEach(line => {\n\n\t\t// \t\t\t\t\t\t\t// \tlet date: Date;\n\t\t// \t\t\t\t\t\t\t// \tlet dateString;\n\n\t\t// \t\t\t\t\t\t\t// \tif (line.includes('From')) {\n\t\t// \t\t\t\t\t\t\t// \t\tconsole.log(line);\n\t\t// \t\t\t\t\t\t\t// \t}\n\t\t// \t\t\t\t\t\t\t// \tif (!line.includes('class=3D') && !line.includes('style=3D')) {\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Well') || line.includes('Well Name') || line.includes('Job') || line.includes('Pad')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, jobNames.map(a => a.well)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Well', line);\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}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Product') || line.includes('Chemical')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, chemicalNames.map(a => a.description)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Chemical', line);\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}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Quantity') || line.includes('Qty') || line.includes('Amount')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Qty', line);\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Date')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Date', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tdate = moment(Date.parse(line)).toDate();\n\t\t// \t\t\t\t\t\t\t// \t\t\tdateString = line;\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Time')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Time', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(date.setTime(Date.parse(line))));\n\t\t// \t\t\t\t\t\t\t// \t\t}\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});\n\t\t\t\t\t\n\t\t// \t\t\t\tmsg.once('attributes', function(attrs) {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));\n\t\t// \t\t\t\t});\n\n\t\t// \t\t\t\tmsg.once('end', function() {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Finished');\n\t\t// \t\t\t\t});\n\t\t// \t\t\t});\n\t\t\t\t\t\n\t\t// \t\t\tf.once('error', function(error) {\n\t\t// \t\t\t\tconsole.log('Fetch error: ' + error);\n\t\t// \t\t\t});\n\n\t\t// \t\t\tf.once('end', function() {\n\t\t// \t\t\t\tconsole.log('Done fetching all messages!');\n\t\t// \t\t\t\tthat._imap.end();\n\t\t// \t\t\t});\n\t\t// \t\t});\n\t\t// \t});\n\t\t// });\n\n\t\t// this._imap.connect();\n\n\t\tthis._aws = new aws.S3({\n\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\tregion: serverConfig.AWSREGION\n\t\t});\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\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\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(sendItem.methodData)) < 200000 && getBinarySize(JSON.stringify(sendItem.data)) < 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: objectIdHexString(),\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: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Method: ' + sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify([sendItem.methodData, sendItem.data], null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tuser: ws['user'],\n\t\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'],\n\t\t\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\tresponse: sendItem.data,\n\t\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tdate: sendItem.date\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: objectIdHexString(),\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: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Method: ' + sendItem.method,\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: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tuser: ws['user'],\n\t\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\troute: ''\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}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 25);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(that._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthat._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error('Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData);\n\t}\n\n\tpublic callMethodQueue(update: QueueMethodModel) {\n\t\t// console.log('Call Method Queue', update);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet updateCopy = deepCopy(update);\n\t\t\n\t\t\tlet that = this;\n\n\t\t\tif (!that._methods[update.method]) {\n\t\t\t\tconsole.log('No Method: ' + update.method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + update.method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\n\t\t\t\treturn resolve('No Method: ' + update.method);\n\t\t\t}\n\n\t\t\tif ((update.method_data.length > 1 || update.method_data[0]) && !that._methods[update.method].skipValidation) {\n\t\t\t\tif (!that._methods[update.method].check) {\n\t\t\t\t\tconsole.error('No Check Function For Method ' + update.method);\n\n\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + update.method);\n\t\t\t\t\t\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t};\n\t\t\n\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\n\t\t\t\t\treturn resolve('No Check Function For Method ' + update.method);\n\t\t\t\t}\n\t\t\t\telse if (!that._methods[update.method].check._schema) {\n\t\t\t\t\tconsole.error('No Check Schema For Method ' + update.method);\n\n\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + update.method);\n\t\t\t\t\t\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t};\n\t\t\n\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\n\t\t\t\t\treturn resolve('No Check Schema For Method ' + update.method);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet valObj = {};\n\t\t\t\t\tlet valKeys = Object.keys(that._methods[update.method].check._schema);\n\n\t\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\t\n\t\t\t\t\tfor (let i = 0; i < update.method_data.length; i++) {\n\t\t\t\t\t\tvalObj[rootKeys[i]] = update.method_data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthat._methods[update.method].check.validate(valObj);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\tif (errors) {\n\t\t\t\t\t\t\tconsole.error('Error in Method Check (' + update.method + ')', errors);\n\n\t\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + update.method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\t\t\n\t\t\t\t\t\t\treturn resolve('Error in Method Check (' + update.method + ')');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet timeout = setTimeout(() => {\n\t\t\t\tconsole.error('Timeout on method', update);\n\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Timeout on method: ', [update]);\n\t\t\t\tresolve('Timeout');\n\t\t\t}, 5000);\n\n\t\t\t// console.log('Run Method', update.method);\n\t\t\t\n\t\t\tthat._methods[update.method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: update.id_user, user: update.user, id_ws: update.id_ws}), ...update.method_data).then(async (res) => {\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: false,\n\t\t\t\t\tdata: res\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tclearTimeout(timeout);\n\n\t\t\t\tlet latency = await LogMethodLatencies.findById(update.id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: update.id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\n\t\t\t\tresolve(serverRes);\n\t\t\t}, err => {\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: err\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tclearTimeout(timeout);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\n\t\t\t\tresolve(serverRes);\n\t\t\t});\n\t\t});\n\t}\n\n\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(that._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthat._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error('Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData).then(async (res) => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\tif (latency) {\n\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t}\n\t\t}, err => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet promise = that._methods[method].function.call(Object.assign({}, that, MethodManager.prototype), ...methodData);\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\t// if (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200' || sendTo.endsWith('@resolveio.com')) {\n\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\tto: sendTo,\n\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t\t\ttext: text,\n\t\t\t\t\thtml: html,\n\t\t\t\t\tattachments: attachments\n\t\t\t\t}, (err, info) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t\t\t\t\tuser: this['user'],\n\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t\t\t\t\tuser: this['user'],\n\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t// }\n\t\t\t// else {\n\t\t\t// \tlet oldVerfication = await EmailVerifies.findOne({email: sendTo});\n\n\t\t\t// \tif (oldVerfication) {\n\t\t\t// \t\tthis._mailer.sendMail({\n\t\t\t// \t\t\treplyTo: undefined,\n\t\t\t// \t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t// \t\t\tto: sendTo,\n\t\t\t// \t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t// \t\t\ttext: text,\n\t\t\t// \t\t\thtml: html,\n\t\t\t// \t\t\tattachments: attachments\n\t\t\t// \t\t}, (err, info) => {\n\t\t\t// \t\t\tif (err) {\n\t\t\t// \t\t\t\tconsole.log(err);\n\n\t\t\t// \t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\tverified: true\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\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: true,\n\t\t\t// \t\t\t\t\tverified: true\n\t\t\t// \t\t\t\t});\n\t\t\t// \t\t\t}\n\t\t\t\t\t\t\n\t\t\t// \t\t\tresolve();\n\t\t\t// \t\t});\n\t\t\t// \t}\n\t\t\t// \telse {\n\t\t\t// \t\tlet verifier = new Verifier(this.serverConfig['WHOISXMLAPI']);\n\t\t\t// \t\tverifier.verify(sendTo, {hardRefresh: true}, (errVerify, resVerify) => {\n\t\t\t// \t\t\tif (errVerify) {\n\t\t\t// \t\t\t\tconsole.log(errVerify);\n\n\t\t\t// \t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\tverified: false\n\t\t\t// \t\t\t\t});\n\n\t\t\t// \t\t\t\tresolve();\n\t\t\t// \t\t\t}\n\t\t\t// \t\t\telse {\n\t\t\t// \t\t\t\tEmailVerifies.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo\n\t\t\t// \t\t\t\t});\n\n\t\t\t// \t\t\t\tthis._mailer.sendMail({\n\t\t\t// \t\t\t\t\treplyTo: undefined,\n\t\t\t// \t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t// \t\t\t\t\tto: sendTo,\n\t\t\t// \t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t// \t\t\t\t\ttext: text,\n\t\t\t// \t\t\t\t\thtml: html,\n\t\t\t// \t\t\t\t\tattachments: attachments\n\t\t\t// \t\t\t\t}, (err, info) => {\n\t\t\t// \t\t\t\t\tif (err) {\n\t\t\t// \t\t\t\t\t\tconsole.log(err);\n\n\t\t\t// \t\t\t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\t\t\tverified: true\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\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\t\t\tsuccess: true,\n\t\t\t// \t\t\t\t\t\t\tverified: true\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\t\n\t\t\t// \t\t\t\t\tresolve();\n\t\t\t// \t\t\t\t});\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\n\tpublic getAWS(): aws.S3 {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\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\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\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/managers/method.manager.ts"],"names":[],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as imap from 'imap';\nimport * as aws from 'aws-sdk';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { QueueMethodModel } from '../models/queue-method.model';\nimport { MethodResponses } from '../collections/method-response.collection';\nimport { deepCopy, getBinarySize } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport * as moment from 'moment';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { EmailVerifies } from '../collections/email-verified.collection';\nimport { objectIdHexString } from './mongo.manager';\n\nconst Verifier = require('email-verifier');\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _imap: imap;\n\tprivate _aws: aws.S3;\n\tprivate serverConfig;\n\tprivate clientDir;\n\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: new aws.SES({\n\t\t\t\t\tapiVersion: '2010-12-01',\n\t\t\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\t\t\tregion: serverConfig.AWSSES_REGION\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: this.serverConfig['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: this.serverConfig['MAIL_PORT'], //587, // secure SMTP\n\t\t\t\tsecure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely\n\t\t\t\tauth: {\n\t\t\t\t\tuser: this.serverConfig['MAIL_USERNAME'],\n\t\t\t\t\tpass: this.serverConfig['MAIL_PASSWORD']\n\t\t\t\t},\n\t\t\t\ttls: {\n\t\t\t\t\tciphers: 'SSLv3'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// this._imap = new imap({\n\t\t// \tuser: this.serverConfig['ORDERS_EMAIL'],\n\t\t// \tpassword: this.serverConfig['ORDERS_PASSWORD'],\n\t\t// \thost: this.serverConfig['ORDERS_HOST'],\n\t\t// \tport: this.serverConfig['ORDERS_PORT'],\n\t\t// \ttls: this.serverConfig['ORDERS_TLS']\n\t\t// });\n\n\t\t// let that = this;\n\n\t\t// let chemicalNames = await Chemicals.find({}).select('description');\n\t\t// let jobNames = await Jobs.find({status: 'Active'}).select('well');\n\n\t\t// console.log(jobNames.map(a => a.well));\n\n\t\t// this._imap.once('ready', () => {\n\t\t// \tthis._imap.openBox('INBOX', true, function(err, box) {\n\t\t// \t\tif (err) {\n\t\t// \t\t\tthrow err;\n\t\t// \t\t}\n\n\t\t// \t\tthat._imap.search([ 'NEW' ], function(err, results) {\n\n\t\t// \t\t\tconsole.log(err, results);\n\n\t\t// \t\t\tif (err || !results.length) {\n\t\t// \t\t\t\treturn that._imap.end();\n\t\t// \t\t\t}\n\n\t\t// \t\t\tlet f = that._imap.fetch(results[0], { bodies: ['HEADER.FIELDS (FROM)', 'TEXT'] });\n\t\t// \t\t\tf.on('message', function(msg, seqno) {\n\t\t// \t\t\t\t// console.log('Message #%d', seqno);\n\t\t// \t\t\t\tlet prefix = '(#' + seqno + ') ';\n\t\t// \t\t\t\tmsg.on('body', function(stream, info) {\n\t\t// \t\t\t\t\tlet buffer = '', count = 0;\n\t\t// \t\t\t\t\tstream.on('data', function(chunk) {\n\t\t// \t\t\t\t\t\tcount += chunk.length;\n\t\t// \t\t\t\t\t\tbuffer += chunk.toString('utf8');\n\t\t// \t\t\t\t\t});\n\t\t// \t\t\t\t\tstream.once('end', function() {\n\t\t// \t\t\t\t\t\tif (info.which === 'TEXT') {\n\t\t// \t\t\t\t\t\t\t// console.log(buffer);\n\t\t// \t\t\t\t\t\t\t// console.log(typeof(buffer));\n\t\t// \t\t\t\t\t\t\tlet lines = buffer.split('\\r\\n');\n\t\t// \t\t\t\t\t\t\t// console.log(lines);\n\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\t// let i = 0;\n\t\t// \t\t\t\t\t\t\t// lines.forEach(line => {\n\n\t\t// \t\t\t\t\t\t\t// \tlet date: Date;\n\t\t// \t\t\t\t\t\t\t// \tlet dateString;\n\n\t\t// \t\t\t\t\t\t\t// \tif (line.includes('From')) {\n\t\t// \t\t\t\t\t\t\t// \t\tconsole.log(line);\n\t\t// \t\t\t\t\t\t\t// \t}\n\t\t// \t\t\t\t\t\t\t// \tif (!line.includes('class=3D') && !line.includes('style=3D')) {\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Well') || line.includes('Well Name') || line.includes('Job') || line.includes('Pad')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, jobNames.map(a => a.well)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Well', line);\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}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Product') || line.includes('Chemical')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, chemicalNames.map(a => a.description)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Chemical', line);\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}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Quantity') || line.includes('Qty') || line.includes('Amount')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Qty', line);\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Date')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Date', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tdate = moment(Date.parse(line)).toDate();\n\t\t// \t\t\t\t\t\t\t// \t\t\tdateString = line;\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Time')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Time', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(date.setTime(Date.parse(line))));\n\t\t// \t\t\t\t\t\t\t// \t\t}\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});\n\t\t\t\t\t\n\t\t// \t\t\t\tmsg.once('attributes', function(attrs) {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));\n\t\t// \t\t\t\t});\n\n\t\t// \t\t\t\tmsg.once('end', function() {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Finished');\n\t\t// \t\t\t\t});\n\t\t// \t\t\t});\n\t\t\t\t\t\n\t\t// \t\t\tf.once('error', function(error) {\n\t\t// \t\t\t\tconsole.log('Fetch error: ' + error);\n\t\t// \t\t\t});\n\n\t\t// \t\t\tf.once('end', function() {\n\t\t// \t\t\t\tconsole.log('Done fetching all messages!');\n\t\t// \t\t\t\tthat._imap.end();\n\t\t// \t\t\t});\n\t\t// \t\t});\n\t\t// \t});\n\t\t// });\n\n\t\t// this._imap.connect();\n\n\t\tthis._aws = new aws.S3({\n\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\tregion: serverConfig.AWSREGION\n\t\t});\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\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\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(sendItem.methodData)) < 200000 && getBinarySize(JSON.stringify(sendItem.data)) < 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: objectIdHexString(),\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: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Method: ' + sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify([sendItem.methodData, sendItem.data], null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tuser: ws['user'],\n\t\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'],\n\t\t\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\tresponse: sendItem.data,\n\t\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tdate: sendItem.date\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: objectIdHexString(),\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: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Method: ' + sendItem.method,\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: sendItem.method,\n\t\t\t\t\t\t\t\t\t\t\tuser: ws['user'],\n\t\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\t\troute: ''\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}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 25);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(that._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthat._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error('Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData);\n\t}\n\n\tpublic callMethodQueue(update: QueueMethodModel) {\n\t\t// console.log('Call Method Queue', update);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet updateCopy = deepCopy(update);\n\t\t\n\t\t\tlet that = this;\n\n\t\t\tif (!that._methods[update.method]) {\n\t\t\t\tconsole.log('No Method: ' + update.method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + update.method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\n\t\t\t\treturn resolve('No Method: ' + update.method);\n\t\t\t}\n\n\t\t\tif ((update.method_data.length > 1 || update.method_data[0]) && !that._methods[update.method].skipValidation) {\n\t\t\t\tif (!that._methods[update.method].check) {\n\t\t\t\t\tconsole.error('No Check Function For Method ' + update.method);\n\n\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + update.method);\n\t\t\t\t\t\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t};\n\t\t\n\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\n\t\t\t\t\treturn resolve('No Check Function For Method ' + update.method);\n\t\t\t\t}\n\t\t\t\telse if (!that._methods[update.method].check._schema) {\n\t\t\t\t\tconsole.error('No Check Schema For Method ' + update.method);\n\n\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + update.method);\n\t\t\t\t\t\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t};\n\t\t\n\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\n\t\t\t\t\treturn resolve('No Check Schema For Method ' + update.method);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet valObj = {};\n\t\t\t\t\tlet valKeys = Object.keys(that._methods[update.method].check._schema);\n\n\t\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\t\n\t\t\t\t\tfor (let i = 0; i < update.method_data.length; i++) {\n\t\t\t\t\t\tvalObj[rootKeys[i]] = update.method_data[i];\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthat._methods[update.method].check.validate(valObj);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\tif (errors) {\n\t\t\t\t\t\t\tconsole.error('Error in Method Check (' + update.method + ')', errors);\n\n\t\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + update.method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\t\t\t\t\n\t\t\t\t\t\t\treturn resolve('Error in Method Check (' + update.method + ')');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet timeout = setTimeout(() => {\n\t\t\t\tconsole.error('Timeout on method', update);\n\t\t\t\tthis.callMethodInternal('insertErrorLog', 'Timeout on method: ', [update]);\n\t\t\t\tresolve('Timeout');\n\t\t\t}, 5000);\n\n\t\t\t// console.log('Run Method', update.method);\n\t\t\t\n\t\t\tthat._methods[update.method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: update.id_user, user: update.user, id_ws: update.id_ws}), ...update.method_data).then(async (res) => {\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: false,\n\t\t\t\t\tdata: res\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tclearTimeout(timeout);\n\n\t\t\t\tlet latency = await LogMethodLatencies.findById(update.id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: update.id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\n\t\t\t\tresolve(serverRes);\n\t\t\t}, err => {\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: update.messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: err\n\t\t\t\t};\n\n\t\t\t\tthis._mainServer.getQueueManager().addMethodResponse(updateCopy, serverRes);\n\n\t\t\t\tclearTimeout(timeout);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: update.id_methodLatency});\n\n\t\t\t\tresolve(serverRes);\n\t\t\t});\n\t\t});\n\t}\n\n\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(that._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthat._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error('Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData).then(async (res) => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\tif (latency) {\n\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t}\n\t\t}, err => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + method);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + method);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet promise = that._methods[method].function.call(Object.assign({}, that, MethodManager.prototype), ...methodData);\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\t// if (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200' || sendTo.endsWith('@resolveio.com')) {\n\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\tto: sendTo,\n\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t\t\ttext: text,\n\t\t\t\t\thtml: html,\n\t\t\t\t\tattachments: attachments\n\t\t\t\t}, (err, info) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t\t\t\t\tuser: this['user'],\n\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t\t\t\t\tuser: this['user'],\n\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t// }\n\t\t\t// else {\n\t\t\t// \tlet oldVerfication = await EmailVerifies.findOne({email: sendTo});\n\n\t\t\t// \tif (oldVerfication) {\n\t\t\t// \t\tthis._mailer.sendMail({\n\t\t\t// \t\t\treplyTo: undefined,\n\t\t\t// \t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t// \t\t\tto: sendTo,\n\t\t\t// \t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t// \t\t\ttext: text,\n\t\t\t// \t\t\thtml: html,\n\t\t\t// \t\t\tattachments: attachments\n\t\t\t// \t\t}, (err, info) => {\n\t\t\t// \t\t\tif (err) {\n\t\t\t// \t\t\t\tconsole.log(err);\n\n\t\t\t// \t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\tverified: true\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\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: true,\n\t\t\t// \t\t\t\t\tverified: true\n\t\t\t// \t\t\t\t});\n\t\t\t// \t\t\t}\n\t\t\t\t\t\t\n\t\t\t// \t\t\tresolve();\n\t\t\t// \t\t});\n\t\t\t// \t}\n\t\t\t// \telse {\n\t\t\t// \t\tlet verifier = new Verifier(this.serverConfig['WHOISXMLAPI']);\n\t\t\t// \t\tverifier.verify(sendTo, {hardRefresh: true}, (errVerify, resVerify) => {\n\t\t\t// \t\t\tif (errVerify) {\n\t\t\t// \t\t\t\tconsole.log(errVerify);\n\n\t\t\t// \t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\tverified: false\n\t\t\t// \t\t\t\t});\n\n\t\t\t// \t\t\t\tresolve();\n\t\t\t// \t\t\t}\n\t\t\t// \t\t\telse {\n\t\t\t// \t\t\t\tEmailVerifies.create({\n\t\t\t// \t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\temail: sendTo\n\t\t\t// \t\t\t\t});\n\n\t\t\t// \t\t\t\tthis._mailer.sendMail({\n\t\t\t// \t\t\t\t\treplyTo: undefined,\n\t\t\t// \t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t// \t\t\t\t\tto: sendTo,\n\t\t\t// \t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t// \t\t\t\t\ttext: text,\n\t\t\t// \t\t\t\t\thtml: html,\n\t\t\t// \t\t\t\t\tattachments: attachments\n\t\t\t// \t\t\t\t}, (err, info) => {\n\t\t\t// \t\t\t\t\tif (err) {\n\t\t\t// \t\t\t\t\t\tconsole.log(err);\n\n\t\t\t// \t\t\t\t\t\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\t\t\tsuccess: false,\n\t\t\t// \t\t\t\t\t\t\tverified: true\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\tEmailHistories.create({\n\t\t\t// \t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t// \t\t\t\t\t\t\t__v: 0,\n\t\t\t// \t\t\t\t\t\t\tdate: new Date(),\n\t\t\t// \t\t\t\t\t\t\tid_user: this['id_user'],\n\t\t\t// \t\t\t\t\t\t\tuser: this['user'],\n\t\t\t// \t\t\t\t\t\t\temail: sendTo,\n\t\t\t// \t\t\t\t\t\t\tsuccess: true,\n\t\t\t// \t\t\t\t\t\t\tverified: true\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\t\n\t\t\t// \t\t\t\t\tresolve();\n\t\t\t// \t\t\t\t});\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\n\tpublic getAWS(): aws.S3 {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\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\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\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}"]}
|
|
@@ -27,7 +27,7 @@ export declare class Collection<T> {
|
|
|
27
27
|
aggregateCursor(pipeline: object[], options?: CollectionAggregationOptions): import("mongodb").AggregationCursor<any>;
|
|
28
28
|
aggregateStream(pipeline: object[], options?: CollectionAggregationOptions): import("mongodb").Cursor<any>;
|
|
29
29
|
countDocuments(filterQuery?: FilterQuery<T>, options?: MongoCountPreferences): Promise<number>;
|
|
30
|
-
create(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T[]>;
|
|
30
|
+
create(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T | T[]>;
|
|
31
31
|
createIndex(fieldOrSpec: any, options?: IndexOptions): Promise<string>;
|
|
32
32
|
createIndexes(indexSpecs: IndexSpecification[], options?: {
|
|
33
33
|
session?: ClientSession;
|
|
@@ -63,7 +63,7 @@ export declare class Collection<T> {
|
|
|
63
63
|
session: ClientSession;
|
|
64
64
|
}): Promise<boolean>;
|
|
65
65
|
insertMany(docs: T[], options?: CollectionInsertManyOptions): Promise<T[]>;
|
|
66
|
-
insertOne(doc: T, options?: CollectionInsertOneOptions): Promise<
|
|
66
|
+
insertOne(doc: T, options?: CollectionInsertOneOptions): Promise<T>;
|
|
67
67
|
listIndexes(options?: {
|
|
68
68
|
batchSize?: number;
|
|
69
69
|
readPreference?: ReadPreferenceOrMode;
|
|
@@ -151,7 +151,7 @@ var Collection = /** @class */ (function () {
|
|
|
151
151
|
Collection.prototype.create = function (f_docs, options) {
|
|
152
152
|
var docs = [];
|
|
153
153
|
if (!Array.isArray(f_docs)) {
|
|
154
|
-
|
|
154
|
+
return this.insertOne(f_docs, options);
|
|
155
155
|
}
|
|
156
156
|
return this.insertMany(docs, options);
|
|
157
157
|
};
|
|
@@ -263,7 +263,7 @@ var Collection = /** @class */ (function () {
|
|
|
263
263
|
return new Promise(function (resolve, reject) {
|
|
264
264
|
index_1.ResolveIOServer.getMainDB().collection(_this.collectionName).insertOne(doc, options).then(function (res) {
|
|
265
265
|
if (res.result.ok) {
|
|
266
|
-
resolve(
|
|
266
|
+
resolve(doc);
|
|
267
267
|
}
|
|
268
268
|
else {
|
|
269
269
|
reject(res.result.ok);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/mongo.manager.ts"],"names":[],"mappings":"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","file":"mongo.manager.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { ChangeStreamOptions, ClientSession, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CommonOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndReplaceOption, FindOneAndUpdateOption, FindOneOptions, IndexOptions, IndexSpecification, MongoCountPreferences, MongoDistinctPreferences, ReadPreferenceOrMode, ReplaceOneOptions, UpdateManyOptions, UpdateOneOptions, UpdateQuery, ObjectId } from 'mongodb';\nimport { LookupTables } from '../models/report-builder.model';\nimport { ResolveIOServer } from '../index';\nimport { Users } from '../collections/user.collection';\nimport { buildRbLookups, buildRbSchema, deepCopy } from '../util/common';\nimport { UserModel } from '../models/user.model';\nconst crypto = require('crypto');\nconst scmp = require('scmp');\n\nexport class MongoManager {\n\tprivate _server;\n\tprivate _collections: Collection<any>[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._server = mainServer;\n\t}\n\n\tregisterCollection(collection: Collection<any>) {\n\t\tthis._collections.push(collection);\n\t}\n\n\tcollections() {\n\t\treturn this._collections;\n\t}\n\n\tcollection(collectionName: string): Collection<any> | UserCollection<any> {\n\t\treturn this._collections.filter(a => a.collectionName === collectionName)[0];\n\t}\n}\n\nexport class Model<T> {\n\tcollection_main: Collection<T> | UserCollection<T> = null;\n\tcollection_version: Collection<T> | UserCollection<T> = null;\n\n\tconstructor(collectionName: string, schema: object, useVersionCollection = false, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tif (collectionName === 'users') {\n\t\t\tthis.collection_main = new UserCollection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\t\telse {\n\t\t\tthis.collection_main = new Collection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\n\t\tif (useVersionCollection) {\n\t\t\tlet versionSchema = deepCopy(schema);\n\t\t\tversionSchema['_id'].type = 'Object';\n\t\t\tversionSchema['_id'].blackbox = true;\n\n\t\t\tif (collectionName === 'users') {\n\t\t\t\tthis.collection_version = new UserCollection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.collection_version = new Collection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\tthis.collection_version.createIndex({'_id.__v': 1, '_id._id': 1});\n\t\t\tthis.collection_main.versionCollection = collectionName + '.versions';\n\t\t}\n\t}\n}\n\nexport class Collection<T> {\n\tcollectionName = '';\n\tsimplschema = null;\n\trbSchema = null;\n\ttimestamps = false;\n\tversionKey = '';\n\tversionCollection = '';\n\t\n\tconstructor(collectionName: string, schema: object, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tthis.collectionName = collectionName;\n\t\tthis.simplschema = new SimpleSchema(schema);\n\t\tthis.timestamps = timestamps;\n\n\t\tif (useReportBuilder) {\n\t\t\tlet schemaCopy = deepCopy(schema);\n\t\t\tlet rbSchema = buildRbLookups(reportBuilderLookupTables, schemaCopy, []);\n\t\t\tthis.rbSchema = buildRbSchema(rbSchema);\n\t\t}\n\n\t\tlet interval = setInterval(() => {\n\t\t\tif (ResolveIOServer && ResolveIOServer.getMainServer() && ResolveIOServer.getMainServer().getMongoServer()) {\n\t\t\t\tResolveIOServer.getMainServer().getMongoServer().registerCollection(this);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\taggregate(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).toArray();\n\t}\n\n\taggregateCount(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).count();\n\t}\n\n\taggregateCursor(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options);\n\t}\n\n\taggregateStream(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).stream();\n\t}\n\n\tcountDocuments(filterQuery: FilterQuery<T> = {}, options?: MongoCountPreferences) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).countDocuments(filterQuery, options);\n\t}\n\n\tcreate(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T[]> {\n\t\tlet docs = [];\n\n\t\tif (!Array.isArray(f_docs)) {\n\t\t\tdocs = [f_docs];\n\t\t}\n\n\t\treturn this.insertMany(docs, options);\n\t}\n\n\tcreateIndex(fieldOrSpec: any, options?: IndexOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndex(fieldOrSpec, options);\n\t}\n\n\tcreateIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndexes(indexSpecs, options);\n\t}\n\n\tdeleteMany(filterQuery: FilterQuery<T> = {}, options?: CommonOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteMany(filterQuery, options);\n\t}\n\n\tdeleteOne(filterQuery: FilterQuery<T> = {}, options?: CommonOptions & { bypassDocumentValidation?: boolean; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteOne(filterQuery, options);\n\t}\n\n\tdistinct(key: string, query?: FilterQuery<T>, options?: MongoDistinctPreferences): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).distinct(key, query, options);\n\t}\n\n\tdrop(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).drop(options);\n\t}\n\n\tdropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndex(indexName, options);\n\t}\n\n\tdropIndexes(options?: { session?: ClientSession; maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndexes(options);\n\t}\n\n\tfind(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).toArray();\n\t}\n\n\tfindById(id: string, options?: FindOneOptions<T extends any ? any : T>): Promise<T> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne({_id: id}, options);\n\t}\n\n\tfindCount(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).count();\n\t}\n\n\tfindCursor(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options);\n\t}\n\n\tfindStream(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>, streamOptions?: any) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).stream(streamOptions);\n\t}\n\n\tfindOne(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>): Promise<T> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne(filterQuery, options);\n\t}\n\n\tfindOneAndDelete(filterQuery: FilterQuery<T> = {}, options?: FindOneAndDeleteOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndDelete(filterQuery, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndReplace(filterQuery: FilterQuery<T> = {}, replacement: object, options?: FindOneAndReplaceOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndReplace(filterQuery, replacement, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndUpdate(filterQuery: FilterQuery<T> = {}, update: any, options?: FindOneAndUpdateOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndUpdate(filterQuery, update, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexes(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexes(options);\n\t}\n\n\tindexExists(indexes: string | string[], options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexExists(indexes, options);\n\t}\n\n\tinsertMany(docs: T[], options?: CollectionInsertManyOptions): Promise<T[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertMany(docs, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(docs);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tinsertOne(doc: T, options?: CollectionInsertOneOptions): Promise<string> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertOne(doc, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(res.insertedId);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tlistIndexes(options?: { batchSize?: number; readPreference?: ReadPreferenceOrMode; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).listIndexes(options);\n\t}\n\n\treIndex(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).reIndex(options);\n\t}\n\n\trename(newName: string, options?: { dropTarget?: boolean; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).rename(newName, options);\n\t}\n\n\treplaceOne(filter: FilterQuery<T>, doc: any, options?: ReplaceOneOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).replaceOne(filter, doc, options);\n\t}\n\n\tstats(options?: { scale: number; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).stats(options);\n\t}\n\n\tupdateMany(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateManyOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateMany(filter, update, options);\n\t}\n\n\tupdateOne(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateOneOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateOne(filter, update, options);\n\t}\n\t\n\twatchCollection(options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(options);\n\t}\n\n\twatchCollectionWithAggregate(pipeline?: object[], options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(pipeline, options);\n\t}\n}\n\nexport class UserCollection<T> extends Collection<T> {\n\tauthenticateStrategy() {\n\t\treturn async (username, password, cb) => {\n\t\t\tlet user = await Users.findOne({username: username});\n\t\t\tthis.authenticate(user, password).then(authUser => {\n\t\t\t\tif (authUser.data) {\n\t\t\t\t\tcb(null, user, null);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcb(null, null, authUser.error);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tcb(err, null, null);\n\t\t\t})\n\t\t};\n\t}\n\n\tauthenticate(user, password): Promise<{data: UserModel, error: string}> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst attemptsInterval = Math.pow(100, Math.log(user.attempts + 1));\n\t\t\tconst calculatedInterval = attemptsInterval < 300000 ? attemptsInterval : 300000;\n\t\t\n\t\t\tif (Date.now() - user.last < calculatedInterval) {\n\t\t\t\tuser.last = Date.now();\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last}});\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Attempt Too Soon'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\n\t\t\tif (user.attempts >= 5) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (!user.salt) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'No Salt Value Stored'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tpbkdf2(password, user.salt, {\n\t\t\t\titerations: 25000,\n\t\t\t\tkeylen: 512,\n\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t}, async (err, hashBuffer) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn reject(err);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (scmp(hashBuffer, Buffer.from(user.hash, 'hex'))) {\n\t\t\t\t\tuser.last = Date.now();\n\t\t\t\t\tuser.attempts = 0;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tdata: user,\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser.last = Date.now();\n\t\t\t\t\tuser.attempts = user.attempts + 1;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tif (user.attempts >= 5) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Invalid Username And Password'\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\n\tserializeUser() {\n\t\treturn (user, cb) => {\n\t\t\tcb(null, user.username);\n\t\t};\n\t}\n\n\tdeserializeUser() {\n\t\treturn (username, cb) => {\n\t\t\tUsers.findOne({username: username}).then(res => {\n\t\t\t\tcb(null, res);\n\t\t\t}, err => {\n\t\t\t\tcb(err, null);\n\t\t\t});\n\t\t};\n\t}\n\n\tsetPassword(user: UserModel, password: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('No User');\n\t\t\t}\n\t\t\telse if (!password) {\n\t\t\t\treject('No Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet saltBuffer = await randomBytes(32);\n\t\t\t\tlet salt = saltBuffer.toString('hex');\n\t\t\t\tlet hashRaw = await pbkdf2Promisified(password, salt, {\n\t\t\t\t\titerations: 25000,\n\t\t\t\t\tkeylen: 512,\n\t\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t\t});\n\t\t\t\tlet hash = Buffer.from(hashRaw, 'binary').toString('hex');\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {hash: hash, salt: salt, services: {}}});\n\t\t\t}\n\t\t});\n\t};\n\n\tchangePassword(user, oldPassword, newPassword) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('Missing User');\n\t\t\t}\n\t\t\telse if (!oldPassword || !newPassword) {\n\t\t\t\treject('Missing Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet authUser = await this.authenticate(user, oldPassword);\n\n\t\t\t\tif (!authUser['data']) {\n\t\t\t\t\treject(authUser['error']);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.setPassword(user, newPassword);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tregister(user, password) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user.username) {\n\t\t\t\treject('Missing Username');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet dbUser = await Users.findOne({username: user.username});\n\t\t\t\t\n\t\t\t\tif (dbUser) {\n\t\t\t\t\treject('Username Exists');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdbUser = await Users.findOne({email: user.email});\n\n\t\t\t\t\tif (dbUser) {\n\t\t\t\t\t\treject('Email Exists');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuser.setPassword(password);\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tresetAttempts(user: UserModel) {\n\t\treturn Users.updateOne({_id: user._id}, {$set: {attempts: 0}});\n\t}\n}\n\nexport function objectIdHexString() {\n\tlet objectId = new ObjectId();\n\treturn objectId.toHexString();\n}\n\nfunction pbkdf2(password, salt, options, callback) {\n\tcrypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);\n};\n\nfunction pbkdf2Promisified(password, salt, options): Promise<any> {\n\treturn new Promise((resolve, reject) => pbkdf2(password, salt, options, (err, hashRaw) => (err ? reject(err) : resolve(hashRaw))));\n}\n\nfunction randomBytes(saltlen): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => crypto.randomBytes(saltlen, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))));\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/managers/mongo.manager.ts"],"names":[],"mappings":"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","file":"mongo.manager.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { ChangeStreamOptions, ClientSession, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CommonOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndReplaceOption, FindOneAndUpdateOption, FindOneOptions, IndexOptions, IndexSpecification, MongoCountPreferences, MongoDistinctPreferences, ReadPreferenceOrMode, ReplaceOneOptions, UpdateManyOptions, UpdateOneOptions, UpdateQuery, ObjectId } from 'mongodb';\nimport { LookupTables } from '../models/report-builder.model';\nimport { ResolveIOServer } from '../index';\nimport { Users } from '../collections/user.collection';\nimport { buildRbLookups, buildRbSchema, deepCopy } from '../util/common';\nimport { UserModel } from '../models/user.model';\nconst crypto = require('crypto');\nconst scmp = require('scmp');\n\nexport class MongoManager {\n\tprivate _server;\n\tprivate _collections: Collection<any>[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._server = mainServer;\n\t}\n\n\tregisterCollection(collection: Collection<any>) {\n\t\tthis._collections.push(collection);\n\t}\n\n\tcollections() {\n\t\treturn this._collections;\n\t}\n\n\tcollection(collectionName: string): Collection<any> | UserCollection<any> {\n\t\treturn this._collections.filter(a => a.collectionName === collectionName)[0];\n\t}\n}\n\nexport class Model<T> {\n\tcollection_main: Collection<T> | UserCollection<T> = null;\n\tcollection_version: Collection<T> | UserCollection<T> = null;\n\n\tconstructor(collectionName: string, schema: object, useVersionCollection = false, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tif (collectionName === 'users') {\n\t\t\tthis.collection_main = new UserCollection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\t\telse {\n\t\t\tthis.collection_main = new Collection<T>(collectionName, schema, useReportBuilder, reportBuilderLookupTables, timestamps);\n\t\t}\n\n\t\tif (useVersionCollection) {\n\t\t\tlet versionSchema = deepCopy(schema);\n\t\t\tversionSchema['_id'].type = 'Object';\n\t\t\tversionSchema['_id'].blackbox = true;\n\n\t\t\tif (collectionName === 'users') {\n\t\t\t\tthis.collection_version = new UserCollection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.collection_version = new Collection<T>(collectionName + '.versions', versionSchema, false);\n\t\t\t}\n\t\t\tthis.collection_version.createIndex({'_id.__v': 1, '_id._id': 1});\n\t\t\tthis.collection_main.versionCollection = collectionName + '.versions';\n\t\t}\n\t}\n}\n\nexport class Collection<T> {\n\tcollectionName = '';\n\tsimplschema = null;\n\trbSchema = null;\n\ttimestamps = false;\n\tversionKey = '';\n\tversionCollection = '';\n\t\n\tconstructor(collectionName: string, schema: object, useReportBuilder = true, reportBuilderLookupTables: LookupTables[] = [], timestamps = true) {\n\t\tthis.collectionName = collectionName;\n\t\tthis.simplschema = new SimpleSchema(schema);\n\t\tthis.timestamps = timestamps;\n\n\t\tif (useReportBuilder) {\n\t\t\tlet schemaCopy = deepCopy(schema);\n\t\t\tlet rbSchema = buildRbLookups(reportBuilderLookupTables, schemaCopy, []);\n\t\t\tthis.rbSchema = buildRbSchema(rbSchema);\n\t\t}\n\n\t\tlet interval = setInterval(() => {\n\t\t\tif (ResolveIOServer && ResolveIOServer.getMainServer() && ResolveIOServer.getMainServer().getMongoServer()) {\n\t\t\t\tResolveIOServer.getMainServer().getMongoServer().registerCollection(this);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 0);\n\t}\n\n\taggregate(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).toArray();\n\t}\n\n\taggregateCount(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).count();\n\t}\n\n\taggregateCursor(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options);\n\t}\n\n\taggregateStream(pipeline: object[], options?: CollectionAggregationOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).aggregate(pipeline, options).stream();\n\t}\n\n\tcountDocuments(filterQuery: FilterQuery<T> = {}, options?: MongoCountPreferences) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).countDocuments(filterQuery, options);\n\t}\n\n\tcreate(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T | T[]> {\n\t\tlet docs = [];\n\n\t\tif (!Array.isArray(f_docs)) {\n\t\t\treturn this.insertOne(f_docs, options);\n\t\t}\n\n\t\treturn this.insertMany(docs, options);\n\t}\n\n\tcreateIndex(fieldOrSpec: any, options?: IndexOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndex(fieldOrSpec, options);\n\t}\n\n\tcreateIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).createIndexes(indexSpecs, options);\n\t}\n\n\tdeleteMany(filterQuery: FilterQuery<T> = {}, options?: CommonOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteMany(filterQuery, options);\n\t}\n\n\tdeleteOne(filterQuery: FilterQuery<T> = {}, options?: CommonOptions & { bypassDocumentValidation?: boolean; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).deleteOne(filterQuery, options);\n\t}\n\n\tdistinct(key: string, query?: FilterQuery<T>, options?: MongoDistinctPreferences): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).distinct(key, query, options);\n\t}\n\n\tdrop(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).drop(options);\n\t}\n\n\tdropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndex(indexName, options);\n\t}\n\n\tdropIndexes(options?: { session?: ClientSession; maxTimeMS?: number; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).dropIndexes(options);\n\t}\n\n\tfind(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>): Promise<T[]> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).toArray();\n\t}\n\n\tfindById(id: string, options?: FindOneOptions<T extends any ? any : T>): Promise<T> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne({_id: id}, options);\n\t}\n\n\tfindCount(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).count();\n\t}\n\n\tfindCursor(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options);\n\t}\n\n\tfindStream(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>, streamOptions?: any) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).find(filterQuery, options).stream(streamOptions);\n\t}\n\n\tfindOne(filterQuery: FilterQuery<T> = {}, options?: FindOneOptions<T extends any ? any : T>): Promise<T> {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).findOne(filterQuery, options);\n\t}\n\n\tfindOneAndDelete(filterQuery: FilterQuery<T> = {}, options?: FindOneAndDeleteOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndDelete(filterQuery, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndReplace(filterQuery: FilterQuery<T> = {}, replacement: object, options?: FindOneAndReplaceOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndReplace(filterQuery, replacement, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tfindOneAndUpdate(filterQuery: FilterQuery<T> = {}, update: any, options?: FindOneAndUpdateOption<T>): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).findOneAndUpdate(filterQuery, update, options).then(res => {\n\t\t\t\tresolve(res.value);\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexes(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexes(options);\n\t}\n\n\tindexExists(indexes: string | string[], options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).indexExists(indexes, options);\n\t}\n\n\tinsertMany(docs: T[], options?: CollectionInsertManyOptions): Promise<T[]> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertMany(docs, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(docs);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tinsertOne(doc: T, options?: CollectionInsertOneOptions): Promise<T> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tResolveIOServer.getMainDB().collection(this.collectionName).insertOne(doc, options).then(res => {\n\t\t\t\tif (res.result.ok) {\n\t\t\t\t\tresolve(doc);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treject(res.result.ok);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\treject(err);\n\t\t\t});\n\t\t});\n\t}\n\n\tlistIndexes(options?: { batchSize?: number; readPreference?: ReadPreferenceOrMode; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).listIndexes(options);\n\t}\n\n\treIndex(options?: { session: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).reIndex(options);\n\t}\n\n\trename(newName: string, options?: { dropTarget?: boolean; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).rename(newName, options);\n\t}\n\n\treplaceOne(filter: FilterQuery<T>, doc: any, options?: ReplaceOneOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).replaceOne(filter, doc, options);\n\t}\n\n\tstats(options?: { scale: number; session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).stats(options);\n\t}\n\n\tupdateMany(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateManyOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateMany(filter, update, options);\n\t}\n\n\tupdateOne(filter: FilterQuery<T>, update: UpdateQuery<T> | Partial<T>, options?: UpdateOneOptions) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).updateOne(filter, update, options);\n\t}\n\t\n\twatchCollection(options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(options);\n\t}\n\n\twatchCollectionWithAggregate(pipeline?: object[], options?: ChangeStreamOptions & { session?: ClientSession; }) {\n\t\treturn ResolveIOServer.getMainDB().collection(this.collectionName).watch(pipeline, options);\n\t}\n}\n\nexport class UserCollection<T> extends Collection<T> {\n\tauthenticateStrategy() {\n\t\treturn async (username, password, cb) => {\n\t\t\tlet user = await Users.findOne({username: username});\n\t\t\tthis.authenticate(user, password).then(authUser => {\n\t\t\t\tif (authUser.data) {\n\t\t\t\t\tcb(null, user, null);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcb(null, null, authUser.error);\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tcb(err, null, null);\n\t\t\t})\n\t\t};\n\t}\n\n\tauthenticate(user, password): Promise<{data: UserModel, error: string}> {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst attemptsInterval = Math.pow(100, Math.log(user.attempts + 1));\n\t\t\tconst calculatedInterval = attemptsInterval < 300000 ? attemptsInterval : 300000;\n\t\t\n\t\t\tif (Date.now() - user.last < calculatedInterval) {\n\t\t\t\tuser.last = Date.now();\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last}});\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Attempt Too Soon'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\n\t\t\tif (user.attempts >= 5) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (!user.salt) {\n\t\t\t\tresolve({\n\t\t\t\t\tdata: null,\n\t\t\t\t\terror: 'No Salt Value Stored'\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tpbkdf2(password, user.salt, {\n\t\t\t\titerations: 25000,\n\t\t\t\tkeylen: 512,\n\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t}, async (err, hashBuffer) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treturn reject(err);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (scmp(hashBuffer, Buffer.from(user.hash, 'hex'))) {\n\t\t\t\t\tuser.last = Date.now();\n\t\t\t\t\tuser.attempts = 0;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tdata: user,\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser.last = Date.now();\n\t\t\t\t\tuser.attempts = user.attempts + 1;\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {last: user.last, attempts: user.attempts}});\n\n\t\t\t\t\tif (user.attempts >= 5) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Too Many Attempts'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\terror: 'Invalid Username And Password'\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\n\tserializeUser() {\n\t\treturn (user, cb) => {\n\t\t\tcb(null, user.username);\n\t\t};\n\t}\n\n\tdeserializeUser() {\n\t\treturn (username, cb) => {\n\t\t\tUsers.findOne({username: username}).then(res => {\n\t\t\t\tcb(null, res);\n\t\t\t}, err => {\n\t\t\t\tcb(err, null);\n\t\t\t});\n\t\t};\n\t}\n\n\tsetPassword(user: UserModel, password: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('No User');\n\t\t\t}\n\t\t\telse if (!password) {\n\t\t\t\treject('No Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet saltBuffer = await randomBytes(32);\n\t\t\t\tlet salt = saltBuffer.toString('hex');\n\t\t\t\tlet hashRaw = await pbkdf2Promisified(password, salt, {\n\t\t\t\t\titerations: 25000,\n\t\t\t\t\tkeylen: 512,\n\t\t\t\t\tdigestAlgorithm: 'sha256'\n\t\t\t\t});\n\t\t\t\tlet hash = Buffer.from(hashRaw, 'binary').toString('hex');\n\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {hash: hash, salt: salt, services: {}}});\n\t\t\t}\n\t\t});\n\t};\n\n\tchangePassword(user, oldPassword, newPassword) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user) {\n\t\t\t\treject('Missing User');\n\t\t\t}\n\t\t\telse if (!oldPassword || !newPassword) {\n\t\t\t\treject('Missing Password');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet authUser = await this.authenticate(user, oldPassword);\n\n\t\t\t\tif (!authUser['data']) {\n\t\t\t\t\treject(authUser['error']);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.setPassword(user, newPassword);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tregister(user, password) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif (!user.username) {\n\t\t\t\treject('Missing Username');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet dbUser = await Users.findOne({username: user.username});\n\t\t\t\t\n\t\t\t\tif (dbUser) {\n\t\t\t\t\treject('Username Exists');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdbUser = await Users.findOne({email: user.email});\n\n\t\t\t\t\tif (dbUser) {\n\t\t\t\t\t\treject('Email Exists');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuser.setPassword(password);\n\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tresetAttempts(user: UserModel) {\n\t\treturn Users.updateOne({_id: user._id}, {$set: {attempts: 0}});\n\t}\n}\n\nexport function objectIdHexString() {\n\tlet objectId = new ObjectId();\n\treturn objectId.toHexString();\n}\n\nfunction pbkdf2(password, salt, options, callback) {\n\tcrypto.pbkdf2(password, salt, options.iterations, options.keylen, options.digestAlgorithm, callback);\n};\n\nfunction pbkdf2Promisified(password, salt, options): Promise<any> {\n\treturn new Promise((resolve, reject) => pbkdf2(password, salt, options, (err, hashRaw) => (err ? reject(err) : resolve(hashRaw))));\n}\n\nfunction randomBytes(saltlen): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => crypto.randomBytes(saltlen, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))));\n}"]}
|
package/methods/aws.js
CHANGED
|
@@ -87,7 +87,7 @@ function loadAWSMethods(methodManager) {
|
|
|
87
87
|
type: fileType
|
|
88
88
|
};
|
|
89
89
|
file_collection_1.Files.create(file_1).then(function (resFile) {
|
|
90
|
-
_this.callMethodInternal
|
|
90
|
+
_this.callMethodInternal('compressBase64AndUploadPDF', file_1._id, fileName, key_1, fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), function (errCompress, resCompress) {
|
|
91
91
|
resolve(resFile);
|
|
92
92
|
});
|
|
93
93
|
}, function (errFile) { return reject(errFile); });
|