@resolveio/server-lib 5.2.39-newrole → 5.2.40

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.
Files changed (195) hide show
  1. package/client-server-app.js +2 -0
  2. package/client-server-app.js.map +1 -0
  3. package/collections/active-subscription.collection.js +2 -0
  4. package/collections/active-subscription.collection.js.map +1 -0
  5. package/collections/app-status.collection.js +2 -0
  6. package/collections/app-status.collection.js.map +1 -0
  7. package/collections/app-version.collection.js +2 -0
  8. package/collections/app-version.collection.js.map +1 -0
  9. package/collections/billing-logged-in-users.collection.js +2 -0
  10. package/collections/billing-logged-in-users.collection.js.map +1 -0
  11. package/collections/counter.collection.js +2 -0
  12. package/collections/counter.collection.js.map +1 -0
  13. package/collections/cron-job-history.collection.js +2 -0
  14. package/collections/cron-job-history.collection.js.map +1 -0
  15. package/collections/cron-job.collection.js +2 -0
  16. package/collections/cron-job.collection.js.map +1 -0
  17. package/collections/file.collection.js +2 -0
  18. package/collections/file.collection.js.map +1 -0
  19. package/collections/flag.collection.js +2 -0
  20. package/collections/flag.collection.js.map +1 -0
  21. package/collections/log-method-latency.collection.js +2 -0
  22. package/collections/log-method-latency.collection.js.map +1 -0
  23. package/collections/log-subscription.collection.js +2 -0
  24. package/collections/log-subscription.collection.js.map +1 -0
  25. package/collections/log.collection.js +2 -0
  26. package/collections/log.collection.js.map +1 -0
  27. package/collections/logged-in-users.collection.js +2 -0
  28. package/collections/logged-in-users.collection.js.map +1 -0
  29. package/collections/method-call.collection.js +2 -0
  30. package/collections/method-call.collection.js.map +1 -0
  31. package/collections/method-response.collection.js +2 -0
  32. package/collections/method-response.collection.js.map +1 -0
  33. package/collections/notification.collection.js +2 -0
  34. package/collections/notification.collection.js.map +1 -0
  35. package/collections/queue-flag.collection.js +2 -0
  36. package/collections/queue-flag.collection.js.map +1 -0
  37. package/collections/queue-method.collection.js +2 -0
  38. package/collections/queue-method.collection.js.map +1 -0
  39. package/collections/queue-response.collection.js +2 -0
  40. package/collections/queue-response.collection.js.map +1 -0
  41. package/collections/report-builder-report.collection.js +2 -0
  42. package/collections/report-builder-report.collection.js.map +1 -0
  43. package/collections/support-ticket.collection.js +2 -0
  44. package/collections/support-ticket.collection.js.map +1 -0
  45. package/collections/user.collection.js +34 -39
  46. package/collections/user.collection.js.map +1 -0
  47. package/cron/cron.js +2 -0
  48. package/cron/cron.js.map +1 -0
  49. package/fixtures/cron-jobs.js +2 -0
  50. package/fixtures/cron-jobs.js.map +1 -0
  51. package/fixtures/init.js +2 -0
  52. package/fixtures/init.js.map +1 -0
  53. package/http/auth.js +2 -0
  54. package/http/auth.js.map +1 -0
  55. package/http/health.js +2 -0
  56. package/http/health.js.map +1 -0
  57. package/http/home.js +2 -0
  58. package/http/home.js.map +1 -0
  59. package/index.js +2 -0
  60. package/index.js.map +1 -0
  61. package/managers/cron.manager.js +2 -0
  62. package/managers/cron.manager.js.map +1 -0
  63. package/managers/database.manager.js +2 -0
  64. package/managers/database.manager.js.map +1 -0
  65. package/managers/method.manager.js +2 -0
  66. package/managers/method.manager.js.map +1 -0
  67. package/managers/queue-method.manager.js +2 -0
  68. package/managers/queue-method.manager.js.map +1 -0
  69. package/managers/subscription.manager.js +2 -0
  70. package/managers/subscription.manager.js.map +1 -0
  71. package/managers/support.manager.js +2 -0
  72. package/managers/support.manager.js.map +1 -0
  73. package/methods/accounts.js +2 -0
  74. package/methods/accounts.js.map +1 -0
  75. package/methods/aws.js +2 -0
  76. package/methods/aws.js.map +1 -0
  77. package/methods/cloudconvert.js +2 -0
  78. package/methods/cloudconvert.js.map +1 -0
  79. package/methods/collections.js +2 -0
  80. package/methods/collections.js.map +1 -0
  81. package/methods/counters.js +2 -0
  82. package/methods/counters.js.map +1 -0
  83. package/methods/cron-jobs.js +2 -0
  84. package/methods/cron-jobs.js.map +1 -0
  85. package/methods/flags.js +2 -0
  86. package/methods/flags.js.map +1 -0
  87. package/methods/logs.js +2 -0
  88. package/methods/logs.js.map +1 -0
  89. package/methods/pdf.js +2 -0
  90. package/methods/pdf.js.map +1 -0
  91. package/methods/report-builder.js +2 -0
  92. package/methods/report-builder.js.map +1 -0
  93. package/models/active-subscription.model.js +2 -0
  94. package/models/active-subscription.model.js.map +1 -0
  95. package/models/app-status.model.js +2 -0
  96. package/models/app-status.model.js.map +1 -0
  97. package/models/app-version.model.js +2 -0
  98. package/models/app-version.model.js.map +1 -0
  99. package/models/billing-logged-in-users.model.js +2 -0
  100. package/models/billing-logged-in-users.model.js.map +1 -0
  101. package/models/collection-document.model.js +2 -0
  102. package/models/collection-document.model.js.map +1 -0
  103. package/models/counter.model.js +2 -0
  104. package/models/counter.model.js.map +1 -0
  105. package/models/cron-job-history.model.js +2 -0
  106. package/models/cron-job-history.model.js.map +1 -0
  107. package/models/cron-job.model.js +2 -0
  108. package/models/cron-job.model.js.map +1 -0
  109. package/models/dialog.model.js +2 -0
  110. package/models/dialog.model.js.map +1 -0
  111. package/models/file.model.js +2 -0
  112. package/models/file.model.js.map +1 -0
  113. package/models/flag.model.js +2 -0
  114. package/models/flag.model.js.map +1 -0
  115. package/models/log-method-latency.model.js +2 -0
  116. package/models/log-method-latency.model.js.map +1 -0
  117. package/models/log-subscription.model.js +2 -0
  118. package/models/log-subscription.model.js.map +1 -0
  119. package/models/log.model.js +2 -0
  120. package/models/log.model.js.map +1 -0
  121. package/models/logged-in-users.model.js +2 -0
  122. package/models/logged-in-users.model.js.map +1 -0
  123. package/models/method-call.model.js +2 -0
  124. package/models/method-call.model.js.map +1 -0
  125. package/models/method-response.model.js +2 -0
  126. package/models/method-response.model.js.map +1 -0
  127. package/models/method.model.js +2 -0
  128. package/models/method.model.js.map +1 -0
  129. package/models/notification.model.js +2 -0
  130. package/models/notification.model.js.map +1 -0
  131. package/models/pagination.model.js +2 -0
  132. package/models/pagination.model.js.map +1 -0
  133. package/models/permission.model.js +2 -0
  134. package/models/permission.model.js.map +1 -0
  135. package/models/queue-method.model.js +2 -0
  136. package/models/queue-method.model.js.map +1 -0
  137. package/models/queue-response.model.js +2 -0
  138. package/models/queue-response.model.js.map +1 -0
  139. package/models/report-builder-report.model.js +2 -0
  140. package/models/report-builder-report.model.js.map +1 -0
  141. package/models/report-builder.model.js +2 -0
  142. package/models/report-builder.model.js.map +1 -0
  143. package/models/select-data-label.model.js +2 -0
  144. package/models/select-data-label.model.js.map +1 -0
  145. package/models/server-response.model.js +2 -0
  146. package/models/server-response.model.js.map +1 -0
  147. package/models/subscription.model.js +2 -0
  148. package/models/subscription.model.js.map +1 -0
  149. package/models/support-method.model.js +2 -0
  150. package/models/support-method.model.js.map +1 -0
  151. package/models/support-ticket.model.js +2 -0
  152. package/models/support-ticket.model.js.map +1 -0
  153. package/models/user.model.js +2 -0
  154. package/models/user.model.js.map +1 -0
  155. package/package.json +1 -1
  156. package/publications/app-status.js +2 -0
  157. package/publications/app-status.js.map +1 -0
  158. package/publications/app-version.js +2 -0
  159. package/publications/app-version.js.map +1 -0
  160. package/publications/billing-logged-in-users.js +2 -0
  161. package/publications/billing-logged-in-users.js.map +1 -0
  162. package/publications/cron-jobs.js +2 -0
  163. package/publications/cron-jobs.js.map +1 -0
  164. package/publications/files.js +2 -0
  165. package/publications/files.js.map +1 -0
  166. package/publications/flags.js +2 -0
  167. package/publications/flags.js.map +1 -0
  168. package/publications/logs.js +2 -0
  169. package/publications/logs.js.map +1 -0
  170. package/publications/method-calls.js +2 -0
  171. package/publications/method-calls.js.map +1 -0
  172. package/publications/method-responses.js +2 -0
  173. package/publications/method-responses.js.map +1 -0
  174. package/publications/notifications.js +2 -0
  175. package/publications/notifications.js.map +1 -0
  176. package/publications/report-builder-reports.js +2 -0
  177. package/publications/report-builder-reports.js.map +1 -0
  178. package/publications/super-admin.js +2 -0
  179. package/publications/super-admin.js.map +1 -0
  180. package/publications/support-tickets.js +2 -0
  181. package/publications/support-tickets.js.map +1 -0
  182. package/server-app.js +2 -0
  183. package/server-app.js.map +1 -0
  184. package/support-methods/aws.js +2 -0
  185. package/support-methods/aws.js.map +1 -0
  186. package/support-methods/collections.js +2 -0
  187. package/support-methods/collections.js.map +1 -0
  188. package/support-methods/counters.js +2 -0
  189. package/support-methods/counters.js.map +1 -0
  190. package/support-methods/support.js +2 -0
  191. package/support-methods/support.js.map +1 -0
  192. package/util/common.js +2 -0
  193. package/util/common.js.map +1 -0
  194. package/util/schema-report-builder.js +18 -0
  195. package/util/schema-report-builder.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/managers/support.manager.ts"],"names":[],"mappings":"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","file":"support.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport * as nodemailer from 'nodemailer';\nimport * as aws from 'aws-sdk';\nimport { SupportMethodModel } from '../models/support-method.model';\nimport { loadSupportCollectionMethods } from '../support-methods/collections';\nimport { loadSupportMethods } from '../support-methods/support';\nimport { loadCounterMethods } from '../support-methods/counters';\n\nimport { Types } from 'mongoose';\nimport { getBinarySize } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { MethodManager } from './method.manager';\n\nimport * as path from 'path';\nimport * as fs from 'fs';\n\n\nexport class SupportManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _supportMethods: SupportMethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\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\tloadSupportCollectionMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadCounterMethods(this);\n\n\t\tthis._mailer = nodemailer.createTransport({\n\t\t\tSES: new aws.SES({\n\t\t\t\tapiVersion: '2010-12-01',\n\t\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\t\tregion: serverConfig.AWSSES_REGION\n\t\t\t})\n\t\t});\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\t// if (sendItem.method !== 'countQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave') {\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: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response - Support',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Support 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});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Client Response - Support',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + ws['user'] + ', MessageId: ' + sendItem.data.messageId + ', Support 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});\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 supportMethods(supportMethod: SupportMethodModel) {\n\t\tthis._supportMethods = Object.assign(this._supportMethods, supportMethod);\n\t}\n\n\t// Call/run method (Emit on Socket)\n\tpublic callSupportMethod(ws: WebSocket, messageId, supportMethod, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._supportMethods[supportMethod]) {\n\t\t\tconsole.log('No Support Method: ' + supportMethod);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Support Method: ' + supportMethod);\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, supportMethod, methodData, serverRes);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0])) {\n\t\t\tif (!that._supportMethods[supportMethod].check) {\n\t\t\t\tconsole.error('No Check Function For Support Method ' + supportMethod);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Support Method ' + supportMethod);\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, supportMethod, methodData, serverRes);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._supportMethods[supportMethod].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + supportMethod);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Support Method ' + supportMethod);\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, supportMethod, 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._supportMethods[supportMethod].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._supportMethods[supportMethod].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 Support Method Check (' + supportMethod + ')', errors);\n\n\t\t\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Match Error On Support Method ' + supportMethod + '\\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, supportMethod, methodData, serverRes);\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._supportMethods[supportMethod].function.call(Object.assign({}, that, SupportManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData).then(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, supportMethod, methodData, serverRes);\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, supportMethod, methodData, serverRes);\n\t\t});\n\t}\n\n\tpublic callSupportMethodInternal(supportMethod, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._supportMethods[supportMethod]) {\n\t\t\tconsole.log('No Support Method: ' + supportMethod);\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !that._supportMethods[supportMethod].skipValidation) {\n\t\t\tif (!that._supportMethods[supportMethod].check) {\n\t\t\t\tconsole.error('No Check Function For Method ' + supportMethod);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._supportMethods[supportMethod].check._schema) {\n\t\t\t\tconsole.error('No Check Schema For Method ' + supportMethod);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tlet promise = that._supportMethods[supportMethod].function.call(Object.assign({}, that, SupportManager.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\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._mainServer.getMethodManager()._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._mainServer.getMethodManager()._methods[method].skipValidation) {\n\t\t\tif (!that._mainServer.getMethodManager()._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._mainServer.getMethodManager()._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._mainServer.getMethodManager()._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, 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});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], from?: string) {\n\t\tthis._mailer.sendMail({\n\t\t\treplyTo: undefined,\n\t\t\tfrom: from ? from : this.serverConfig.MAIL_FROM,\n\t\t\tto: sendTo,\n\t\t\tsubject: subject,\n\t\t\ttext: text,\n\t\t\thtml: html,\n\t\t\tattachments: attachments\n\t\t}, (err, info) => {\n\t\t\tif (err) {\n\t\t\t\tconsole.log(err);\n\t\t\t}\n\t\t});\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}"]}
@@ -257,3 +257,5 @@ function randomString(length, chars) {
257
257
  }
258
258
  return result;
259
259
  }
260
+
261
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/accounts.ts"],"names":[],"mappings":"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","file":"accounts.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { Types } from 'mongoose';\nimport { Users } from '../collections/user.collection';\nimport * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport { LoggedInUsers } from '../collections/logged-in-users.collection';\nimport { QueueResponses } from '../collections/queue-response.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../index';\nimport { UserModel } from '../models/user.model';\n\nexport function loadAccountMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tsetWSAppVersion: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tversion: Number\n\t\t\t}),\n\t\t\tfunction: function(version) {\n\t\t\t\treturn LoggedInUsers.updateOne({id_ws: this.id_ws}, {$set: {app_version: version}}).exec();\n\t\t\t}\n\t\t},\n\t\treloadWS: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: function(id_ws) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tQueueResponses.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tmethod: 'reloadWSCommand',\n\t\t\t\t\t\tmethod_data: [],\n\t\t\t\t\t\tid_ws: id_ws,\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\tid_user: this.id_user,\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\t\thasError: false,\n\t\t\t\t\t\t\tdata: 'reloadWSCommand'\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then(val => {\n\t\t\t\t\t\t// console.log(val);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t});\n\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\treconnectWS: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: function(id_ws) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tQueueResponses.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tmethod: 'reconnectWSCommand',\n\t\t\t\t\t\tmethod_data: [],\n\t\t\t\t\t\tid_ws: id_ws,\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\tid_user: this.id_user,\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\t\thasError: false,\n\t\t\t\t\t\t\tdata: 'reconnectWSCommand'\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdisconnectWS: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: function(id_ws) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tQueueResponses.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tmethod: 'disconnectWSCommand',\n\t\t\t\t\t\tmethod_data: [],\n\t\t\t\t\t\tid_ws: id_ws,\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\tid_user: this.id_user,\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\t\thasError: false,\n\t\t\t\t\t\t\tdata: 'disconnectWSCommand'\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcreateUserAndEmailEnrollment: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdata: {\n\t\t\t\t\ttype: Users['simplschema']\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(data) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet userId = Types.ObjectId().toHexString();\n\n\t\t\t\t\tlet newUser = {\n\t\t\t\t\t\t_id: userId,\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tusername: data.username, \n\t\t\t\t\t\temail: data.email,\n\t\t\t\t\t\tfullname: data.fullname,\n\t\t\t\t\t\troles: data.roles,\n\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\tservices: {\n\t\t\t\t\t\t\tenrollment: jwt.sign({id_user: userId}, this.serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tphonenumber: data.phonenumber\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data['departments']) {\n\t\t\t\t\t\tnewUser['departments'] = data['departments'];\n\t\t\t\t\t}\n\n\t\t\t\t\tlet user = await Users.create(newUser);\n\n\t\t\t\t\tuser.setPassword(randomString(20, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), ((err, res) => {\n\t\t\t\t\t\tuser.resetAttempts();\n\n\t\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\t\tfullname: user.fullname,\n\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\turl: this.serverConfig['ROOT_URL'] + '/enroll-account?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + user.services.enrollment\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tthis.readFile('email-templates/enrollment.html').then(html => {\n\t\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\t\tthis.sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Enrollment Email', '', template(emailData));\n\t\t\n\t\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t\t}, errEmail => reject(errEmail));\n\t\t\t\t\t}));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresetUserPassword: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(userId: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\t\t\t\t\n\t\t\t\t\tlet user = await Users.findOne({_id: userId});\n\t\t\n\t\t\t\t\tif (user) {\n\n\t\t\t\t\t\tuser.services.forgot_password = jwt.sign({id_user: userId}, this.serverConfig['JWT_SECRET']);\n\n\t\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\t\tuserWhoResetPassword: this.user,\n\t\t\t\t\t\t\turl: this.serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + user.services.forgot_password\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tUsers.updateOne({_id: user._id}, {$set: {services: user.services}}).exec((err, res) => {\n\t\t\t\t\t\t\tthis.readFile('email-templates/forgot-password.html').then(html => {\n\t\t\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t\t\t});\n\t\t\t\n\t\t\t\t\t\t\t\tthis.sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData));\n\t\t\t\n\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t}, errEmail => reject(errEmail));\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\nfunction randomString(length, chars) {\n\tlet result = '';\n\tfor (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }\n\treturn result;\n}"]}
package/methods/aws.js CHANGED
@@ -456,3 +456,5 @@ function loadAWSMethods(methodManager) {
456
456
  });
457
457
  }
458
458
  exports.loadAWSMethods = loadAWSMethods;
459
+
460
+ //# sourceMappingURL=aws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/aws.ts"],"names":[],"mappings":"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","file":"aws.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { Files } from '../collections/file.collection';\nimport { Types } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nlet request = require('request').defaults({ encoding: null });\n\nlet pdfCnt = 1000000;\n\nexport function loadAWSMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tuploadFileAndSave: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileData: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tcompress: {\n\t\t\t\t\ttype: Boolean\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string, compress: Boolean) {\n\t\t\t\tlet that = this;\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tif (fileName) {\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\n\t\t\t\t\t\tif (fileData.split(',')[0].split(':')[1].split(';')[0] === 'application/pdf' && compress) {\n\t\t\t\t\t\t\tlet file = {\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(), \n\t\t\t\t\t\t\t\t__v: 0, \n\t\t\t\t\t\t\t\tname: fileName, \n\t\t\t\t\t\t\t\tsize: fileSize, \n\t\t\t\t\t\t\t\tkey: key, \n\t\t\t\t\t\t\t\torder: fileOrder, \n\t\t\t\t\t\t\t\ttype: fileType\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tFiles.create(file).then(resFile => {\n\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'compressBase64AndUploadPDF', file._id, fileName, key, fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), (errCompress, resCompress) => {\n\t\t\t\t\t\t\t\t\tresolve(resFile);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}, errFile => reject(errFile));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet newParams = {Bucket: that.serverConfig.AWSBUCKET, Key: key, Body: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), ACL: 'private', ContentType: fileData.split(',')[0].split(':')[1].split(';')[0], ContentDisposition: 'inline'};\n\n\t\t\t\t\t\t\tthat.getAWS().upload(newParams, (err, res) => {\n\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (res) {\n\t\t\t\t\t\t\t\t\tFiles.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t\t\t}).then(resFile => {\n\t\t\t\t\t\t\t\t\t\tresolve(resFile);\n\t\t\t\t\t\t\t\t\t}, errFile => reject(errFile));\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});\n\t\t\t}\n\t\t},\n\t\tuploadNonPDFFileAndSave: {\t\n\t\t\tskipQueue: true,\t\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\treturn new Promise((resolve, reject) => {\t\n\t\t\t\t\tif (fileName) {\t\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\n\t\t\t\t\t\tlet newParams = {Bucket: this.serverConfig.AWSBUCKET, Key: key, Body: Buffer.from(fileData), ACL: 'private', ContentType: 'application/gzip', ContentDisposition: 'inline'};\t\n\n\t\t\t\t\t\tthis.getAWS().upload(newParams, function(err, res) {\t\n\t\t\t\t\t\t\tif (err) {\t\n\t\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\telse if (res) {\t\n\t\t\t\t\t\t\t\tFiles.create({\t\n\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\t\n\t\t\t\t\t\t\t\t}).then(resFile => {\t\n\t\t\t\t\t\t\t\t\tresolve(resFile);\t\n\t\t\t\t\t\t\t\t}, errFile => reject(errFile));\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\n\t\t},\n\t\tdeleteFiles: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(keys: string[]) {\t\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet files = await Files.find({key: {$in: keys}});\n\t\t\n\t\t\t\t\tlet deleteCnt = files.length;\n\t\t\n\t\t\t\t\tfiles.forEach(file => {\n\t\t\t\t\t\tFiles.deleteOne({_id: file._id}).exec();\n\t\t\n\t\t\t\t\t\tlet delParams = {Bucket: this.serverConfig.AWSBUCKET, Key: file.key};\n\t\t\t\n\t\t\t\t\t\tthis.getAWS().deleteObject(delParams, function(err, res) {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tdeleteCnt--;\n\t\t\t\t\t\t\t\tif (!deleteCnt) {\n\t\t\t\t\t\t\t\t\tresolve(res);\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});\n\t\t\t}\n\t\t},\n\t\tdeleteFile: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\n\t\t\t\t\tlet file = await Files.findOne({key: key});\n\t\t\n\t\t\t\t\tif (!file) {\n\t\t\t\t\t\treject('Could not find file');\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tFiles.deleteOne({_id: file._id}).exec();\n\t\t\n\t\t\t\t\tlet delParams = {Bucket: this.serverConfig['AWSBUCKET'], Key: key};\n\t\t\n\t\t\t\t\tthis.getAWS().deleteObject(delParams, function(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\tdeleteFileWithId: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\n\t\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\t\n\t\t\t\t\tif (!file) {\n\t\t\t\t\t\treject('Could not find file');\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tlet delParams = {Bucket: this.serverConfig['AWSBUCKET'], Key: file.key};\n\t\t\n\t\t\t\t\tthis.getAWS().deleteObject(delParams, function(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\n\t\t\t\t\tFiles.deleteOne({_id: file._id}).exec();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlsAndFilesWithId: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tids: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'ids.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(ids: string[], expires: number) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet res = [];\n\t\t\t\t\tlet fileArray = [];\n\n\t\t\t\t\tlet files = await Files.find({_id: {$in: ids}});\n\t\t\t\t\t\n\t\t\t\t\tfiles.forEach(file => {\n\t\t\t\t\t\tlet params = {Bucket: this.serverConfig.AWSBUCKET, Key: file.key, Expires: expires};\n\t\t\t\t\t\tres.push(this.getAWS().getSignedUrl('getObject', params));\n\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tresolve({res: res, fileArray: files.map(a => a.name)});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlWithId: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, expires: number) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\t\t\t\tlet params = {Bucket: this.serverConfig.AWSBUCKET, Key: file.key, Expires: expires};\n\n\t\t\t\t\tthis.getAWS().getSignedUrl('getObject', params, (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\tgetSignedUrl: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string, expires: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tlet params = {Bucket: this.serverConfig.AWSBUCKET, Key: key, Expires: expires};\n\n\t\t\t\t\tthis.getAWS().getSignedUrl('getObject', params, (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\tgetSignedUrls: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(keys: string[], expires: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tlet res = [];\n\n\t\t\t\t\tkeys.forEach(key => {\n\t\t\t\t\t\tlet params = {Bucket: this.serverConfig.AWSBUCKET, Key: key, Expires: expires};\n\n\t\t\t\t\t\tres.push(this.getAWS().getSignedUrl('getObject', params));\n\t\t\t\t\t});\n\n\t\t\t\t\tresolve(res);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetDataURIfromURL: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\turl: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(url: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\trequest.get(url, function (error, response, body) {\n\t\t\t\t\t\tif (!error && response.statusCode === 200) {\n\t\t\t\t\t\t\tlet data = 'data:' + response.headers['content-type'] + ';base64,' + new Buffer(body).toString('base64');\n\t\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject(error);\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\temailFile: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, email: string) {\n\t\t\t\tlet that = this;\n\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet file = await Files.findById(id_file);\n\n\t\t\t\t\tif (!file) {\n\t\t\t\t\t\treject('Could not find file');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthat.callMethodInternal.call(that, 'getSignedUrl', file.key, 259200, (errPDF, resPDF) => {\n\t\t\t\t\t\tif (resPDF) {\n\t\t\t\t\t\t\tif (file.size < 5000000) {\n\t\t\t\t\t\t\t\tthat.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, 'Attached is the file requested for email.', '', [{\n\t\t\t\t\t\t\t\t\tfilename: file.name,\n\t\t\t\t\t\t\t\t\tpath: resPDF\n\t\t\t\t\t\t\t\t}]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthat.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, 'Please click the link to the requested file. ' + resPDF, '');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('Could not get file URL');\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}"]}
@@ -35,3 +35,5 @@ function loadCloudConvertMethods(methodManager) {
35
35
  });
36
36
  }
37
37
  exports.loadCloudConvertMethods = loadCloudConvertMethods;
38
+
39
+ //# sourceMappingURL=cloudconvert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/cloudconvert.ts"],"names":[],"mappings":";;AACA,iCAAmC;AAEnC,SAAgB,uBAAuB,CAAC,aAA4B;IACnE,aAAa,CAAC,OAAO,CAAC;QACrB,eAAe,EAAE;YAChB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBAAA,iBAwBT;gBAvBA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;oBAClC,OAAO,CAAC;wBACP,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,sCAAsC;wBAC3C,OAAO,EAAE;4BACR,cAAc,EAAE,iCAAiC;yBACjD;wBACD,IAAI,EAAE;4BACL,QAAQ,EAAE,KAAI,CAAC,YAAY,CAAC,cAAc,CAAC;4BAC3C,MAAM,EAAE,SAAS;4BACjB,aAAa,EAAE,KAAK;4BACpB,cAAc,EAAE,KAAK;yBACrB;qBACD,EAAE,CAAC,UAAC,KAAK,EAAE,QAAQ,EAAE,IAAI;wBACzB,IAAI,CAAC,KAAK,EAAE;4BACX,OAAO,CAAC,IAAI,CAAC,CAAC;yBACd;6BACI;4BACJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC;4BACxC,MAAM,CAAC,KAAK,CAAC,CAAC;yBACd;oBACF,CAAC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACJ,CAAC;SACD;KACD,CAAC,CAAC;AACJ,CAAC;AA/BD,0DA+BC","file":"cloudconvert.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport * as request from 'request';\n\nexport function loadCloudConvertMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tgetCCProcessURL: {\n\t\t\tskipQueue: true,\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\trequest({\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: 'https://api.cloudconvert.com/process',\n\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t'Content-Type': 'application/json; charset=UTF-8'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\t'apikey': this.serverConfig['CLOUDCONVERT'],\n\t\t\t\t\t\t\t'mode': 'combine',\n\t\t\t\t\t\t\t'inputformat': 'pdf',\n\t\t\t\t\t\t\t'outputformat': 'pdf'\n\t\t\t\t\t\t}\n\t\t\t\t\t}, ((error, response, body) => {\n\t\t\t\t\t\tif (!error) {\n\t\t\t\t\t\t\tresolve(body);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('Error happened: ' + error);\n\t\t\t\t\t\t\treject(error);\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}"]}
@@ -910,3 +910,5 @@ function loadCollectionMethods(methodManager) {
910
910
  });
911
911
  }
912
912
  exports.loadCollectionMethods = loadCollectionMethods;
913
+
914
+ //# sourceMappingURL=collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/collections.ts"],"names":[],"mappings":"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","file":"collections.js","sourcesContent":["import { Document, Types} from 'mongoose';\nimport { MethodManager } from '../managers/method.manager';\nimport { getMongoUpdates, deepCopy, getMongoMergeUpdatedDoc, getBinarySize } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { Logs } from '../collections/log.collection';\nimport { ResolveIOServer } from '../index';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).findOne(query).exec();\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, sortQuery: Object = {}) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(sortQuery).exec();\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collection).find(query).sort(options.sort).limit(options.limit).skip(options.skip).select(options.fields).exec();\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((res, rej) => {\n\n\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\tfor (let i = 0; i < documents.length; i++) {\n\t\t\t\t\t\tlet document = documents[i];\n\n\t\t\t\t\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(document);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on insert - ' + collection, [schemaErrors, document]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(document)) < 200000) {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(document, null, 2),\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\ttitle: 'Insert Document',\n\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: 'insertDocument',\n\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tlet id = Types.ObjectId().toHexString();\n\t\t\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).create(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\tPromise.all(promises).then(vals => res(vals), err => console.log(err));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocument',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': f_document['__v']}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentProps',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).findOne({\n\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t{'_id.__v': doc__v}\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}).lean().exec((errOldDoc, oldDoc) => {\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\t\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: f_document['_id']}).lean().exec((errDoc, currDoc) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(f_document);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocument - ' + collection, [schemaErrors, f_document]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, f_document, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: f_document['_id']}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(f_document)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(f_document, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History - DB: ' + currDoc.__v + ', Trying to update with :' + f_document['__v']);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tf_oldDocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number, f_oldDocument: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).findOne({_id: doc_id}).lean().exec((errDoc, currDoc: Document) => {\n\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\t\n\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet schemaErrors = null;\n\t\t\t\t\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection)['simplschema'].validate(modifiedDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch (errors) {\n\t\t\t\t\t\t\t\t\tschemaErrors = errors;\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Schema Failed on updateDocumentProps - ' + collection, [schemaErrors, modifiedDoc]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (schemaErrors) {\n\t\t\t\t\t\t\t\t\tconsole.log(schemaErrors);\n\t\t\t\t\t\t\t\t\treject('Schema Errors');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet updates = getMongoUpdates(currDoc, modifiedDoc, true);\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': currDoc._id},\n\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: currDoc.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\tif (updates) {\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).updateOne({_id: modifiedDoc._id}, updates, {strict: false}).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (getBinarySize(JSON.stringify(updateParams)) < 200000) {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: JSON.stringify(updateParams, null, 2),\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Update Document Props',\n\t\t\t\t\t\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection + ', Id: ' + doc_id + ', ' + 'Version: ' + doc__v,\n\t\t\t\t\t\t\t\t\t\t\tpayload: 'Too Big',\n\t\t\t\t\t\t\t\t\t\t\tmethod: 'updateDocumentPropsOffline',\n\t\t\t\t\t\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\n\t\t\t\t\t\t\t\tif (f_oldDocument) {\n\t\t\t\t\t\t\t\t\tlet versionDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\t\tversionDoc._id = {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: currDoc.__v\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, f_oldDocument);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v++;\n\t\t\t\t\t\t\t\t\tupdatedDoc.updatedAt = new Date();\n\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(collection).replaceOne({_id: newCurrDocId}, updatedDoc).exec().then(res => {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).create(versionDoc).then(doc => {\n\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMainDB().model(ResolveIOServer.getMainDB().model(collection)['versionCollection']).deleteMany({\n\t\t\t\t\t\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id._id': versionDoc._id._id},\n\t\t\t\t\t\t\t\t\t\t\t\t\t{'_id.__v': {$lte: versionDoc._id.__v - 4}}\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}).exec().then(() => {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(res.nModified);\n\t\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + currDoc.__v + ', Trying to update with :' + modifiedDoc.__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('No Document');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: doc_id}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocument',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne({_id: doc_id}).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tLogs.create({\n\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t\ttitle: 'Remove Document (Query)',\n\t\t\t\t\t\tmessage: 'User: ' + this.user + ', Collection Type: ' + collection,\n\t\t\t\t\t\tpayload: JSON.stringify({_id: query}, null, 2),\n\t\t\t\t\t\tmethod: 'removeDocumentWithQuery',\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\tmessageId: ''\n\t\t\t\t\t});\n\n\t\t\t\t\tResolveIOServer.getMainDB().model(collection).deleteOne(query).exec((err, res) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res.ok);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}"]}
@@ -105,3 +105,5 @@ function loadCounterMethods(methodManager) {
105
105
  });
106
106
  }
107
107
  exports.loadCounterMethods = loadCounterMethods;
108
+
109
+ //# sourceMappingURL=counters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/counters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiC;AAEjC,wEAA6D;AAC7D,6CAAwC;AACxC,wBAAqC;AAErC,SAAgB,kBAAkB,CAAC,aAA4B;IAC9D,aAAa,CAAC,OAAO,CAAC;QACrB,UAAU,EAAE;YACX,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,WAAW,EAAE;oBACZ,IAAI,EAAE,MAAM;iBACZ;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,WAAmB;gBAA5B,iBAmBT;gBAlBA,OAAO,IAAI,OAAO,CAAC,UAAO,OAAO,EAAE,MAAM;;;;oCAC1B,qBAAM,6BAAQ,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,EAAA;;gCAArD,OAAO,GAAG,SAA2C;qCAErD,CAAC,OAAO,EAAR,wBAAQ;gCACX,6BAAQ,CAAC,MAAM,CAAC;oCACf,GAAG,EAAE,gBAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;oCACnC,KAAK,EAAE,CAAC;oCACR,IAAI,EAAE,WAAW;iCACjB,CAAC,CAAC;gCAEH,OAAO,CAAC,CAAC,CAAC,CAAC;;oCAGI,qBAAM,6BAAQ,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,IAAI,EAAE,EAAA;;gCAA1F,QAAQ,GAAG,SAA+E;gCAE9F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;;;;qBAEzB,CAAC,CAAC;YACJ,CAAC;SACD;QACD,wBAAwB,EAAE;YACzB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,cAAc,EAAE;oBACf,IAAI,EAAE,MAAM;iBACZ;gBACD,KAAK,EAAE;oBACN,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,cAAsB,EAAE,KAAa;gBACvD,OAAO,mBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3F,CAAC;SACD;QACD,eAAe,EAAE;YAChB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,sBAAY,CAAC;gBACvB,cAAc,EAAE;oBACf,IAAI,EAAE,MAAM;iBACZ;aACD,CAAC;YACF,QAAQ,EAAE,UAAS,cAAsB;gBACxC,OAAO,mBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACtF,CAAC;SACD;KACD,CAAC,CAAC;AACJ,CAAC;AAzDD,gDAyDC","file":"counters.js","sourcesContent":["import { Types } from 'mongoose';\nimport { MethodManager } from '../managers/method.manager';\nimport { Counters } from '../collections/counter.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '..';\n\nexport function loadCounterMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tincCounter: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcounterType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(counterType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet counter = await Counters.findOne({type: counterType});\n\n\t\t\t\t\tif (!counter) {\n\t\t\t\t\t\tCounters.create({\n\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(),\n\t\t\t\t\t\t\tcount: 2,\n\t\t\t\t\t\t\ttype: counterType\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet newCount = await Counters.findOneAndUpdate({type: counterType}, {$inc: {count: 1}}).exec();\n\n\t\t\t\t\t\tresolve(newCount.count);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcountCollectionWithQuery: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string, query: Object) {\t\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collectionType).collection.countDocuments(query);\n\t\t\t}\n\t\t},\n\t\tcountCollection: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string) {\t\n\t\t\t\treturn ResolveIOServer.getMainDB().model(collectionType).collection.countDocuments();\n\t\t\t}\n\t\t}\n\t});\n}"]}
@@ -847,3 +847,5 @@ function getTreeLeaves(items, resArray, allowLookups) {
847
847
  }
848
848
  });
849
849
  }
850
+
851
+ //# sourceMappingURL=cron-jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/methods/cron-jobs.ts"],"names":[],"mappings":"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","file":"cron-jobs.js","sourcesContent":["import { QueueMethods } from '../collections/queue-method.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { ClientUsers, Users } from '../collections/user.collection';\nimport { ReportBuilderReports } from '../collections/report-builder-report.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { Types } from 'mongoose';\nimport { mergeDeep, deepCopy } from '../util/common';\nimport { PaginationOptions } from '../models/pagination.model';\nimport * as moment from 'moment';\nimport { parseAsync } from 'json2csv';\n\nexport function loadCronJobMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tmethodQueue: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet updateCnt = await QueueMethods.collection.countDocuments();\n\n\t\t\t\t\tif (updateCnt) {\n\t\t\t\t\t\tmethodManager.getMainServer().getQueueManager().runMethodQueue();\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateClientUsers: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\t\t\tif (!ClientUsers) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n let users = await Users.find({});\n \n let count = 0;\n\n\t\t\t\t\tlet interval = setInterval(() => {\n\t\t\t\t\t\tlet updateChunk = users.slice(count * 10, Math.min(users.length, (count + 1) * 10));\n\t\t\t\t\t\tthis.callMethodInternal.call(this, 'updateClientUserChunk', updateChunk);\n\t\t\t\t\t\tcount++;\n\n\t\t\t\t\t\tif (count * 10 > users.length) {\n\t\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 1000);\n\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t}\n },\n updateClientUserChunk: {\n check: new SimpleSchema({\n\t\t\t\tusers: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'users.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(users: Array<any>) {\n return new Promise((resolve, reject) => {\n users.forEach(user => {\n\t\t\t\t\t\tuser['client'] = this.serverConfig['CLIENT_NAME'];\n\t\t\t\t\t\tClientUsers.updateOne({ \n $and: [\n {id_user: user._id },\n {client: user['client']}\n ]\n }, {$setOnInsert: {\n\t\t\t\t\t\t\t_id: Types.ObjectId().toHexString(), \n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tid_user: user._id,\n\t\t\t\t\t\t\tfullname: user.fullname, \n\t\t\t\t\t\t\tclient: user['client']\n\t\t\t\t\t\t}, \n\t\t\t\t\t\t$set: {email: user.email}}, {upsert: true, strict: false}).exec();\n });\n\n resolve();\n });\n\t\t\t}\n\t\t},\n\t\treportbuilderCronJob: {\n\t\t\tskipQueue: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdata: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(data: Object) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet report = await ReportBuilderReports.findById(data['id_report']);\n\n\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\tlet dotPath = field.fieldPath.replace(/\\.\\$/g, '');\n\t\t\t\t\t\tlet fieldData = dotPath.split('.');\n\t\t\t\t\t\tfield.fieldPathObj = null;\n\t\t\t\t\t\tfor (let i = fieldData.length - 1; i >= 0; i--) {\n\t\t\t\t\t\t\tif (!field.fieldPathObj) {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: 1};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfield.fieldPathObj = {[fieldData[i]]: field.fieldPathObj};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif ((report.fields_selected && report.fields_selected.length) || (report.groups_row && report.groups_row.length)) {\n\t\t\t\t\t\tlet fieldsObj = {};\n\n\t\t\t\t\t\tlet count = 0;\n\n\t\t\t\t\t\treport.fields_selected.forEach((field: any) => {\n\t\t\t\t\t\t\tif (field.collection_name === report.collection_root) {\n\t\t\t\t\t\t\t\tfieldsObj = mergeDeep(fieldsObj, field.fieldPathObj);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet sortIndex = report.fields_sort.findIndex(a => a.field === field['id']);\n\n\t\t\t\t\t\t\tif (sortIndex >= 0) {\n\t\t\t\t\t\t\t\treport.fields_sort[sortIndex].field = ('f_' + count);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfield['id'] = 'f_' + count;\n\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tlet sortObj = {};\n\t\t\t\t\t\tif (report.fields_sort.length) {\n\t\t\t\t\t\t\treport.fields_sort.forEach(sortField => {\n\t\t\t\t\t\t\t\tif (sortField.field.startsWith('gr_') && (report.type === 'Tabular' || report.type === 'Dated')) {\n\t\t\t\t\t\t\t\t\tsortObj['_id.' + sortField.field] = (sortField.order === 'asc' ? 1 : -1);\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\tsortObj[sortField.field] = (sortField.order === 'asc' ? 1 : -1);\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\tsortObj = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet rootOptions: PaginationOptions = {\n\t\t\t\t\t\t\tlimit: 0,\n\t\t\t\t\t\t\tskip: 0,\n\t\t\t\t\t\t\tfields: fieldsObj,\n\t\t\t\t\t\t\tsort: sortObj\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet filters = [];\n\n\t\t\t\t\t\treport.fields_filter.filter(a => !a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\tif (filter.condition && filter.field && filter.value !== null) {\n\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tfilters.push({[filter.field]: {'$gte': startDate}});\n\t\t\t\t\t\t\t\t\t\tfilters.push({[filter.field]: {'$lte': endDate}});\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\tfilters.push({[filter.field]: {'$gte': filter.value}});\n\t\t\t\t\t\t\t\t\t\tfilters.push({[filter.field]: {'$lte': filter.highValue}});\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\telse {\n\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\tlet or = [];\n\n\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tfilters.push({$or: or});\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\tfilters.push({[filter.field]: {['$' + filter.condition]: filter.value}});\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\n\t\t\t\t\t\tthis.callMethodInternal.call(this, 'reportBuilderBuildTree', report.collection_root, (errCollTree, collectionTree) => {\n\t\t\t\t\t\t\tif (collectionTree) {\n\t\t\t\t\t\t\t\tcollectionTree.layers = [collectionTree];\n\t\t\t\t\n\t\t\t\t\t\t\t\tlet treeLeaves = [];\n\t\t\t\t\t\t\t\tlet allLeaves = [];\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, treeLeaves);\n\t\t\t\t\t\t\t\tgetTreeLeaves(collectionTree.children, allLeaves, true);\n\n\t\t\t\t\t\t\t\tlet filterArrayFields = [];\n\t\t\t\t\t\t\t\tlet filterArrays = [];\n\n\t\t\t\t\t\t\t\treport.fields_filter.filter(a => a.field.includes('.$.')).forEach(filter => {\n\t\t\t\t\t\t\t\t\tfilterArrayFields.push(allLeaves.filter(a => a.fieldPath === filter.field)[0]);\n\t\t\t\t\t\t\t\t\tif (filter.condition && filter.field && filter.value !== null) {\n\t\t\t\t\t\t\t\t\t\tif (filter.condition === 'bw') {\n\t\t\t\t\t\t\t\t\t\t\tif (filter.fieldType === 'Date' && filter.is_rolling) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet startDate = null;\n\t\t\t\t\t\t\t\t\t\t\t\tlet endDate = null;\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (filter.rolling_interval === 'Q1') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\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\telse if (filter.rolling_interval === 'Q2') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\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\telse if (filter.rolling_interval === 'Q3') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\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\telse if (filter.rolling_interval === 'Q4') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('year').toDate();\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\telse if (filter.rolling_interval === 'Today') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Yesterday') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Last Week') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\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\telse if (filter.rolling_interval === 'Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Last Month') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\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\telse if (filter.rolling_interval === 'Last 30 Days') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\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\telse if (filter.rolling_interval === 'Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Last Quarter') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\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\telse if (filter.rolling_interval === 'Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\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\telse if (filter.rolling_interval === 'Last Year') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\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\telse if (filter.rolling_interval === 'All') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\tendDate = moment().endOf('day').toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({[filter.field]: {'$gte': startDate}});\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({[filter.field]: {'$lte': endDate}});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({[filter.field]: {'$gte': filter.value}});\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({[filter.field]: {'$lte': filter.highValue}});\t\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\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(filter.value)) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet or = [];\n\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.value.forEach(filt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tor.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: (Array.isArray(filt) ? filt[0] : filt)}});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({$or: or});\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tfilterArrays.push({[filter.field.replace(/\\.\\$/g, '')]: {['$' + filter.condition]: filter.value}});\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\n\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'reportBuilderGetResults', report.type, report.collection_root, rootOptions, filters, filterArrays, filterArrayFields, report.fields_selected, report.groups_row, report.fields_total, report.fields_link, report.id_date_field || null, report.date_interval || null, report.group_type, (err, res) => {\n\t\t\t\t\t\t\t\t\tif (res && res[0]) {\n\t\t\t\t\t\t\t\t\t\tconst fields = [];\n\n\t\t\t\t\t\t\t\t\t\tlet results = res[0].results;\n\t\t\t\t\t\t\t\t\t\tlet reportTotals = res[0].totals;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (report.type === 'Tabular') {\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (field.fieldType === 'Number' && field.leafFormatType === 'Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if ((field.fieldType === 'Number' || field.leafValueType === 'Count') && field.leafFormatType === 'Currency') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id].toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'String') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'Yes' : 'No';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && (!field.leafFormatType || field.leafFormatType === 'Boolean')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 'True' : 'False';\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Boolean' && field.leafFormatType === 'Boolean_Number') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = result[field.id] === true ? 1 : 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && (field.leafFormatType === 'Date')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('L');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Time') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LT');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('MM/DD/YYYY h:mm A');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Date_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'DateTime_long') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).format('LLL');\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse if (field.fieldType === 'Date' && field.leafFormatType === 'Timestamp') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresults.filter(a => a[field.id] !== null).forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult[field.id] = moment(result[field.id]).toDate().getTime();\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\tfields.push('_id.' + group.id);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.forEach(selectedField => {\n\t\t\t\t\t\t\t\t\t\t\t\tfields.push(selectedField.id);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tconst opts = { fields };\n\n\t\t\t\t\t\t\t\t\t\t\tparseAsync(results, opts)\n\t\t\t\t\t\t\t\t\t\t\t.then(csv => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet rows = csv.split(/(?:\\r\\n|\\n)+/).filter(function(el) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn el.length !== 0;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\trows[0] = rows[0].replace('_id.' + group.id, group.columnName);\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\t\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_selected.forEach(selectedField => {\n\t\t\t\t\t\t\t\t\t\t\t\t\trows[0] = rows[0].replace(selectedField.id, selectedField.columnName);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet newCSV = '';\n\n\t\t\t\t\t\t\t\t\t\t\t\trows.forEach((row, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += row;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (index < rows.length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += '\\r\\n';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'AAIMOS Scheduled Report - ' + report.report_name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b>AAIMOS Automated Report<b><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tReport Name: ` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tPrepared By: ` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this report in a CSV formatted file.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.csv',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: newCSV\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t.catch(errCSV => console.error(errCSV));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (report.type === 'Dated') {\n\t\t\t\t\t\t\t\t\t\t\tlet lines: any = [];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlet tmpHeaders = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\treport.groups_row.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[group.id] = group.columnName;\n\t\t\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\t\t\ttmpHeaders[''] = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedUniqueGroups = [];\n\n\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\tresults.forEach(dataPt => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (dataPt._id.month < 4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 7) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (dataPt._id.month < 10) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataPt._id.quarter = 4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete dataPt._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = results.length - 1; i >= 1; i--) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet dataPt = results[i];\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id)).length > 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = results.filter(a => JSON.stringify(a._id) === JSON.stringify(dataPt._id))[0];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpData).filter(a => a !== '_id').forEach(key => {\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData[key] += dataPt[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresults.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tlet tmpResults = deepCopy(results);\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.day;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.week;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.month;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.quarter;\n\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id.year;\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueGroups.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.push(tmp);\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\n\t\t\t\t\t\t\t\t\t\t\ttmpResults = deepCopy(results);\n\n\t\t\t\t\t\t\t\t\t\t\ttmpResults.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelete result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (!datedUniqueDates.filter(a => JSON.stringify(a) === JSON.stringify(tmp)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.push(tmp);\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\t\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(result => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!result.year) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'No Date';\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.date_interval === 'Daily') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month, result.day, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM DD YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Weekly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().day('Sunday').week(result.week + 1).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateLast = moment().day('Saturday').week(result.week + 1).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Week #' + (result.week + 1) + ' ' + result.year + '(' + moment(result.date).format('MM/DD/YY') + ' - ' + moment(result.dateLast).format('MM/DD/YY') + ')';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Monthly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year, result.month, 0, 0, 0, 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = moment(result.date).format('MMM YYYY');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Quarterly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = moment().quarter(result.quarter).year(result.year).toDate();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = 'Q' + result.quarter + ' ' + result.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse if (report.date_interval === 'Yearly') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.date = new Date(result.year);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult.dateString = result.year.toString();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates = datedUniqueDates.filter(a => !a.date).concat(datedUniqueDates.filter(a => a.date).sort((a, b) => a.date.getTime() - b.date.getTime()));\n\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalGroups = [];\n\t\t\t\t\t\t\t\t\t\t\tlet reportTotalDates = [];\n\t\t\t\t\t\t\t\t\t\t\tlet datedData = [];\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpData = [];\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalDated = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalCnt = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalType = {};\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\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = true;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(date).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== date[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t\t})[0];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(result);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result._id).filter(a => a).forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result._id[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(result).filter(a => a && a !== '_id').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (report.fields_total.filter(a => a.fields.includes(key)).length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalDated[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] = result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[key] += result[key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalCnt[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] = 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalCnt[key] += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalType[key] = report.fields_total.filter(a => a.fields.includes(key))[0].type;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpData.push(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(tmpTotalType).forEach(totalKey => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (tmpTotalType[totalKey] === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = tmpTotalDated[totalKey] / tmpTotalCnt[totalKey];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalDated[totalKey] = Math.round(tmpTotalDated[totalKey] * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalDates.push(tmpTotalDated);\n\t\t\t\t\t\t\t\t\t\t\t\tdatedData.push(tmpData);\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tdatedUniqueGroups.forEach(group => {\n\t\t\t\t\t\t\t\t\t\t\t\tlet tmpTotalGroup = {};\n\t\t\t\t\t\t\t\t\t\t\t\tlet filteredData = results.filter(a => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet res = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(group).filter(a => a !== 'date' && a !== 'dateLast' && a !== 'dateString' && a !== 'day' && a !== 'week' && a !== 'month' && a !== 'quarter' && a !== 'year').forEach(key => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (a._id[key] !== group[key]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tres = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn res;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treport.fields_total.forEach(total => {\n\t\t\t\t\t\t\t\t\t\t\t\t\ttotal.fields.forEach(field => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (filteredData.length) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!tmpTotalGroup[field]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = filteredData.filter(a => a && a[field]).map(a => a[field]).reduce((a, b) => a + b, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] += filteredData.filter(a => a && a[field]).map(a => a[field]).reduce((a, b) => a + b, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.type === 'avg') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = Math.round(tmpTotalGroup[field] / filteredData.length * 100) / 100;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmpTotalGroup[field] = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\treportTotalGroups.push(tmpTotalGroup);\n\t\t\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\t\t\tdatedUniqueDates.forEach(date => {\n\t\t\t\t\t\t\t\t\t\t\t\ttmpHeaders[date.dateString] = date.dateString;\n\t\t\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\t\t\ttmpHeaders['Totals'] = 'Totals';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tlines.push(tmpHeaders);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i <= datedUniqueGroups.length - 1; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet group = datedUniqueGroups[i];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j <= report.fields_selected.length - 1; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = report.fields_selected[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (j === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = group[groupRow.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[group[groupRow.id]] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[field.columnName] = field.columnName;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= datedData.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = datedData[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (result[i]) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = result[i][field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.fields_total.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = reportTotalGroups[i][field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + i + ' ' + j + ' ' + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\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\n\t\t\t\t\t\t\t\t\t\t\tif (reportTotals) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor (let j = 0; j <= report.fields_selected.length - 1; j++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet field = report.fields_selected[j];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet tmp = {};\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (j === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[total.type + k] = total.type + ' TOTALS';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp[total.type + k] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\n\t\t\t\t\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\t\t\t\t\ttmp[field.columnName] = field.columnName;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let k = 0; k <= datedData.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet result = datedData[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + j + ' ' + k + ' ' + l] = reportTotalDates[k][field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['total' + j + ' ' + k + ' ' + l] = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\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\t\t\t\t\tfor (let k = 0; k <= report.groups_row.length - 1; k++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet groupRow = report.groups_row[k];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(groupRow.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j + ' ' + k + ' ' + l] = reportTotals[total.id + groupRow.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\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\t\t\t\t\tfor (let l = 0; l <= report.fields_total.length - 1; l++) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet total = report.fields_total[l];\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (total.fields.includes(field.id)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttmp['totalreportTotals' + j + ' ' + l] = reportTotals[total.id + '_' + field.id];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tlines.push(tmp);\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\n\t\t\t\t\t\t\t\t\t\t\tlet newCSV = '';\n\n\t\t\t\t\t\t\t\t\t\t\tlines.forEach((row, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(row).forEach((key, keyIndex) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (row[key] && typeof(row[key]) === 'string') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trow[key] = row[key].replace(new RegExp(/,/g), '');\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += row[key];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (keyIndex < Object.keys(row).length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += ',';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (index < lines.length - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewCSV += '\\r\\n';\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\n\t\t\t\t\t\t\t\t\t\t\tdata['emails'].forEach(email => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendEmail(email,\n\t\t\t\t\t\t\t\t\t\t\t\t'AAIMOS Scheduled Report - ' + report.report_name,\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\t`\n\t\t\t\t\t\t\t\t\t\t\t\t<b>AAIMOS Automated Report<b><br>\n\t\t\t\t\t\t\t\t\t\t\t\tReport Name: ` + report.report_name + `<br>\n\t\t\t\t\t\t\t\t\t\t\t\tPrepared By: ` + data['user'] + `<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tAttached are the results of this report in a CSV formatted file.<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tHave a great day!<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIO<br><br>`,\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\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilename: report.report_name + '-' + moment().format('MM-DD-YYYY-hh-mm-A') + '.csv',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: newCSV\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\tthis.serverConfig['MAIL_FROM_REPORTS']\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\n\t\t\t\t\t\t\t\t\t\t\tresolve();\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\tconsole.log(res);\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal.call(this, 'insertErrorLog', 'Report Builder Cron Job - Report Builder Get Results', [\n\t\t\t\t\t\t\t\t\t\t\terr\n\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\treject(err);\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});\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction getTreeLeaves(items, resArray, allowLookups = false) {\n\titems.forEach(item => {\n\t\tif (item.isLeaf) {\n\t\t\tresArray.push(item);\n\t\t}\n\t\telse {\n\t\t\tif (!item.lookup_collection || allowLookups) {\n\t\t\t\tgetTreeLeaves(item.children, resArray, allowLookups);\n\t\t\t}\n\t\t}\n\t});\n}"]}
package/methods/flags.js CHANGED
@@ -4,3 +4,5 @@ function loadFlagMethods(methodManager) {
4
4
  methodManager.methods({});
5
5
  }
6
6
  exports.loadFlagMethods = loadFlagMethods;
7
+
8
+ //# sourceMappingURL=flags.js.map