@resolveio/server-lib 1.0.0-rc4 → 1.0.0-rc6

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 (157) hide show
  1. package/collections/active-subscription.collection.d.ts +8 -0
  2. package/collections/active-subscription.collection.js +68 -2
  3. package/collections/app-status.collection.d.ts +8 -0
  4. package/collections/app-status.collection.js +43 -2
  5. package/collections/app-version.collection.d.ts +8 -0
  6. package/collections/app-version.collection.js +56 -2
  7. package/collections/counter.collection.d.ts +10 -0
  8. package/collections/counter.collection.js +73 -2
  9. package/collections/cron-job-history.collection.d.ts +8 -0
  10. package/collections/cron-job-history.collection.js +86 -2
  11. package/collections/cron-job.collection.d.ts +8 -0
  12. package/collections/cron-job.collection.js +89 -2
  13. package/collections/file.collection.d.ts +10 -0
  14. package/collections/file.collection.js +73 -2
  15. package/collections/flag.collection.d.ts +8 -0
  16. package/collections/flag.collection.js +47 -2
  17. package/collections/log.collection.d.ts +8 -0
  18. package/collections/log.collection.js +64 -2
  19. package/collections/logged-in-users.collection.d.ts +8 -0
  20. package/collections/logged-in-users.collection.js +70 -2
  21. package/collections/method-call.collection.d.ts +7 -0
  22. package/collections/method-call.collection.js +44 -2
  23. package/collections/method-response.collection.d.ts +7 -0
  24. package/collections/method-response.collection.js +48 -2
  25. package/collections/queue-flag.collection.d.ts +8 -0
  26. package/collections/queue-flag.collection.js +41 -2
  27. package/collections/queue-method.collection.d.ts +8 -0
  28. package/collections/queue-method.collection.js +116 -2
  29. package/collections/queue-response.collection.d.ts +8 -0
  30. package/collections/queue-response.collection.js +78 -2
  31. package/collections/support-ticket.collection.d.ts +8 -0
  32. package/collections/support-ticket.collection.js +146 -2
  33. package/collections/user.collection.d.ts +9 -0
  34. package/collections/user.collection.js +108 -2
  35. package/cron/cron.d.ts +6 -0
  36. package/cron/cron.js +160 -2
  37. package/fixtures/cron-jobs.d.ts +2 -0
  38. package/fixtures/cron-jobs.js +72 -2
  39. package/fixtures/init.d.ts +2 -0
  40. package/fixtures/init.js +73 -2
  41. package/http/auth.d.ts +3 -0
  42. package/http/auth.js +472 -2
  43. package/http/health.d.ts +2 -0
  44. package/http/health.js +8 -2
  45. package/index.d.ts +14 -0
  46. package/index.js +97 -2
  47. package/managers/cron.manager.d.ts +17 -0
  48. package/managers/cron.manager.js +193 -2
  49. package/managers/method.manager.d.ts +27 -0
  50. package/managers/method.manager.js +513 -2
  51. package/managers/queue-method.manager.d.ts +14 -0
  52. package/managers/queue-method.manager.js +239 -2
  53. package/managers/subscription.manager.d.ts +27 -0
  54. package/managers/subscription.manager.js +700 -2
  55. package/managers/support.manager.d.ts +18 -0
  56. package/managers/support.manager.js +208 -2
  57. package/methods/accounts.d.ts +3 -0
  58. package/methods/accounts.js +253 -2
  59. package/methods/aws.d.ts +3 -0
  60. package/methods/aws.js +323 -2
  61. package/methods/cloudconvert.d.ts +3 -0
  62. package/methods/cloudconvert.js +37 -2
  63. package/methods/collections.d.ts +3 -0
  64. package/methods/collections.js +738 -2
  65. package/methods/counters.d.ts +3 -0
  66. package/methods/counters.js +404 -2
  67. package/methods/cron-jobs.d.ts +3 -0
  68. package/methods/cron-jobs.js +63 -2
  69. package/methods/flags.d.ts +3 -0
  70. package/methods/flags.js +6 -2
  71. package/methods/logs.d.ts +3 -0
  72. package/methods/logs.js +29 -2
  73. package/methods/pdf.d.ts +3 -0
  74. package/methods/pdf.js +303 -2
  75. package/models/active-subscription.model.d.ts +14 -0
  76. package/models/active-subscription.model.js +2 -2
  77. package/models/app-status.model.d.ts +5 -0
  78. package/models/app-status.model.js +2 -2
  79. package/models/app-version.model.d.ts +5 -0
  80. package/models/app-version.model.js +2 -2
  81. package/models/collection-document.model.d.ts +7 -0
  82. package/models/collection-document.model.js +2 -2
  83. package/models/counter.model.d.ts +6 -0
  84. package/models/counter.model.js +2 -2
  85. package/models/cron-job-history.model.d.ts +13 -0
  86. package/models/cron-job-history.model.js +2 -2
  87. package/models/cron-job.model.d.ts +14 -0
  88. package/models/cron-job.model.js +2 -2
  89. package/models/dialog.model.d.ts +24 -0
  90. package/models/dialog.model.js +2 -2
  91. package/models/file.model.d.ts +10 -0
  92. package/models/file.model.js +2 -2
  93. package/models/flag.model.d.ts +6 -0
  94. package/models/flag.model.js +2 -2
  95. package/models/log.model.d.ts +12 -0
  96. package/models/log.model.js +2 -2
  97. package/models/logged-in-users.model.d.ts +10 -0
  98. package/models/logged-in-users.model.js +2 -2
  99. package/models/method-call.model.d.ts +8 -0
  100. package/models/method-call.model.js +2 -2
  101. package/models/method-response.model.d.ts +9 -0
  102. package/models/method-response.model.js +2 -2
  103. package/models/method.model.d.ts +11 -0
  104. package/models/method.model.js +2 -2
  105. package/models/pagination.model.d.ts +12 -0
  106. package/models/pagination.model.js +20 -2
  107. package/models/permission.model.d.ts +13 -0
  108. package/models/permission.model.js +2 -2
  109. package/models/queue-method.model.d.ts +10 -0
  110. package/models/queue-method.model.js +2 -2
  111. package/models/queue-response.model.d.ts +11 -0
  112. package/models/queue-response.model.js +2 -2
  113. package/models/select-data-label.model.d.ts +10 -0
  114. package/models/select-data-label.model.js +2 -2
  115. package/models/server-response.model.d.ts +6 -0
  116. package/models/server-response.model.js +2 -2
  117. package/models/subscription.model.d.ts +31 -0
  118. package/models/subscription.model.js +2 -2
  119. package/models/support-method.model.d.ts +10 -0
  120. package/models/support-method.model.js +2 -2
  121. package/models/support-ticket.model.d.ts +40 -0
  122. package/models/support-ticket.model.js +2 -2
  123. package/models/user.model.d.ts +15 -0
  124. package/models/user.model.js +2 -2
  125. package/package.json +3 -1
  126. package/publications/app-status.d.ts +3 -0
  127. package/publications/app-status.js +14 -2
  128. package/publications/app-version.d.ts +3 -0
  129. package/publications/app-version.js +14 -2
  130. package/publications/cron-jobs.d.ts +3 -0
  131. package/publications/cron-jobs.js +14 -2
  132. package/publications/files.d.ts +3 -0
  133. package/publications/files.js +71 -2
  134. package/publications/flags.d.ts +3 -0
  135. package/publications/flags.js +23 -2
  136. package/publications/logs.d.ts +3 -0
  137. package/publications/logs.js +26 -2
  138. package/publications/method-calls.d.ts +3 -0
  139. package/publications/method-calls.js +14 -2
  140. package/publications/method-responses.d.ts +3 -0
  141. package/publications/method-responses.js +14 -2
  142. package/publications/super-admin.d.ts +3 -0
  143. package/publications/super-admin.js +21 -2
  144. package/publications/support-tickets.d.ts +2 -0
  145. package/publications/support-tickets.js +118 -2
  146. package/server-app.d.ts +33 -0
  147. package/server-app.js +598 -2
  148. package/support-methods/aws.d.ts +3 -0
  149. package/support-methods/aws.js +276 -2
  150. package/support-methods/collections.d.ts +3 -0
  151. package/support-methods/collections.js +471 -2
  152. package/support-methods/counters.d.ts +3 -0
  153. package/support-methods/counters.js +189 -2
  154. package/support-methods/support.d.ts +3 -0
  155. package/support-methods/support.js +19 -2
  156. package/util/common.d.ts +15 -0
  157. package/util/common.js +334 -2
@@ -0,0 +1,3 @@
1
+ import { SupportManager } from '../managers/support.manager';
2
+ export declare function loadAWSMethods(supportManager: SupportManager): void;
3
+ //# sourceMappingURL=aws.d.ts.map
@@ -1,2 +1,276 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(o,c,l,u){return new(l||(l=Promise))(function(e,t){function n(e){try{r(u.next(e))}catch(e){t(e)}}function i(e){try{r(u.throw(e))}catch(e){t(e)}}function r(t){t.done?e(t.value):new l(function(e){e(t.value)}).then(n,i)}r((u=u.apply(o,c||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,o,c,e,l={label:0,sent:function(){if(1&c[0])throw c[1];return c[1]},trys:[],ops:[]};return e={next:t(0),throw:t(1),return:t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,o&&(c=2&t[0]?o.return:t[0]?o.throw||((c=o.return)&&c.call(o),0):o.next)&&!(c=c.call(o,t[1])).done)return c;switch(o=0,c&&(t=[2&t[0],c.value]),t[0]){case 0:case 1:c=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,o=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(c=0<(c=l.trys).length&&c[c.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!c||t[1]>c[0]&&t[1]<c[3])){l.label=t[1];break}if(6===t[0]&&l.label<c[1]){l.label=c[1],c=t;break}if(c&&l.label<c[2]){l.label=c[2],l.ops.push(t);break}c[2]&&l.ops.pop(),l.trys.pop();continue}t=i.call(n,l)}catch(e){t=[6,e],o=0}finally{r=c=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0});var file_collection_1=require("../collections/file.collection"),mongoose_1=require("mongoose"),simpl_schema_1=require("simpl-schema"),pdfCnt=1e6;function loadAWSMethods(e){e.supportMethods({uploadFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(o,t,c,l,u){var s=this;return new Promise(function(n,i){if(o){var r="uploads/"+Date.now()+"-"+pdfCnt+++"-"+o,e={Bucket:s.serverConfig.AWSBUCKET,Key:r,Body:Buffer.from(t.replace("data:"+t.split(",")[0].split(":")[1].split(";")[0]+";base64,",""),"base64"),ACL:"private",ContentType:t.split(",")[0].split(":")[1].split(";")[0],ContentDisposition:"inline"};s.getAWS().upload(e,function(e,t){e?i(e):t&&file_collection_1.SupportFiles.create({_id:mongoose_1.Types.ObjectId().toHexString(),name:o,size:c,key:r,order:l,type:u}).then(function(e){n(e)},function(e){return i(e)})})}})}},deleteFiles:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String}}),function:function(c){var e=this;return new Promise(function(r,o){return __awaiter(e,void 0,void 0,function(){var t,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.SupportFiles.find({key:{$in:c}})];case 1:return t=e.sent(),n=t.length,t.forEach(function(e){file_collection_1.SupportFiles.deleteOne({_id:e._id}).exec();var t={Bucket:i.serverConfig.AWSBUCKET,Key:e.key};i.getAWS().deleteObject(t,function(e,t){e?o(e):--n||r(t)})}),[2]}})})})}},deleteFile:{check:new simpl_schema_1.default({key:{type:String}}),function:function(o){var e=this;return new Promise(function(i,r){return __awaiter(e,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.SupportFiles.findOne({key:o})];case 1:return(t=e.sent())||r("Could not find file"),file_collection_1.SupportFiles.deleteOne({_id:t._id}).exec(),n={Bucket:this.serverConfig.AWSBUCKET,Key:o},this.getAWS().deleteObject(n,function(e,t){e?r(e):i(t)}),[2]}})})})}},deleteFileWithId:{check:new simpl_schema_1.default({id_file:{type:String}}),function:function(o){var e=this;return new Promise(function(i,r){return __awaiter(e,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.SupportFiles.findOne({_id:o})];case 1:return(t=e.sent())||r("Could not find file"),n={Bucket:this.serverConfig.AWSBUCKET,Key:t.key},this.getAWS().deleteObject(n,function(e,t){e?r(e):i(t)}),file_collection_1.SupportFiles.deleteOne({_id:t._id}).exec(),[2]}})})})}},getSignedUrlWithId:{check:new simpl_schema_1.default({id_file:{type:String},expires:{type:Number}}),function:function(o,c){var e=this;return new Promise(function(i,r){return __awaiter(e,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.SupportFiles.findOne({_id:o})];case 1:return t=e.sent(),n={Bucket:this.serverConfig.AWSBUCKET,Key:t.key,Expires:c},this.getAWS().getSignedUrl("getObject",n,function(e,t){e?r(e):i(t)}),[2]}})})})}},getSignedUrl:{check:new simpl_schema_1.default({key:{type:String},expires:{type:Number}}),function:function(t,r){var o=this;return new Promise(function(n,i){var e={Bucket:o.serverConfig.AWSBUCKET,Key:t,Expires:r};o.getAWS().getSignedUrl("getObject",e,function(e,t){e?i(e):n(t)})})}},getSignedUrls:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String},expires:{type:Number}}),function:function(i,r){var o=this;return new Promise(function(e,t){var n=[];i.forEach(function(e){var t={Bucket:o.serverConfig.AWSBUCKET,Key:e,Expires:r};n.push(o.getAWS().getSignedUrl("getObject",t))}),e(n)})}}})}exports.loadAWSMethods=loadAWSMethods;
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBwb3J0LW1ldGhvZHMvYXdzLnRzIl0sIm5hbWVzIjpbImZpbGVfY29sbGVjdGlvbl8xIiwicmVxdWlyZSIsIm1vbmdvb3NlXzEiLCJzaW1wbF9zY2hlbWFfMSIsInBkZkNudCIsImxvYWRBV1NNZXRob2RzIiwic3VwcG9ydE1hbmFnZXIiLCJzdXBwb3J0TWV0aG9kcyIsInVwbG9hZEZpbGVBbmRTYXZlIiwiY2hlY2siLCJkZWZhdWx0IiwiZmlsZU5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiZmlsZURhdGEiLCJmaWxlU2l6ZSIsIk51bWJlciIsImZpbGVPcmRlciIsImZpbGVUeXBlIiwiZnVuY3Rpb24iLCJ0aGF0IiwidGhpcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwia2V5XzEiLCJEYXRlIiwibm93IiwibmV3UGFyYW1zIiwiQnVja2V0Iiwic2VydmVyQ29uZmlnIiwiQVdTQlVDS0VUIiwiS2V5IiwiQm9keSIsIkJ1ZmZlciIsImZyb20iLCJyZXBsYWNlIiwic3BsaXQiLCJBQ0wiLCJDb250ZW50VHlwZSIsIkNvbnRlbnREaXNwb3NpdGlvbiIsImdldEFXUyIsInVwbG9hZCIsImVyciIsInJlcyIsIlN1cHBvcnRGaWxlcyIsImNyZWF0ZSIsIl9pZCIsIlR5cGVzIiwiT2JqZWN0SWQiLCJ0b0hleFN0cmluZyIsIm5hbWUiLCJzaXplIiwia2V5Iiwib3JkZXIiLCJ0aGVuIiwicmVzRmlsZSIsImVyckZpbGUiLCJkZWxldGVGaWxlcyIsImtleXMiLCJBcnJheSIsImtleXMuJCIsIl90aGlzIiwiX19hd2FpdGVyIiwiZmluZCIsIiRpbiIsImZpbGVzIiwiX2EiLCJzZW50IiwiZGVsZXRlQ250IiwibGVuZ3RoIiwiZm9yRWFjaCIsImZpbGUiLCJkZWxldGVPbmUiLCJleGVjIiwiZGVsUGFyYW1zIiwiZGVsZXRlT2JqZWN0IiwiZGVsZXRlRmlsZSIsImZpbmRPbmUiLCJkZWxldGVGaWxlV2l0aElkIiwiaWRfZmlsZSIsImdldFNpZ25lZFVybFdpdGhJZCIsImV4cGlyZXMiLCJwYXJhbXMiLCJFeHBpcmVzIiwiZ2V0U2lnbmVkVXJsIiwiZ2V0U2lnbmVkVXJscyIsInB1c2giLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoibzdDQUFBLElBQUFBLGtCQUFBQyxRQUFBLGtDQUNBQyxXQUFBRCxRQUFBLFlBQ0FFLGVBQUFGLFFBQUEsZ0JBR0lHLE9BQVMsSUFFYixTQUFnQkMsZUFBZUMsR0FDOUJBLEVBQWVDLGVBQWUsQ0FDN0JDLGtCQUFtQixDQUNsQkMsTUFBTyxJQUFJTixlQUFBTyxRQUFhLENBQ3ZCQyxTQUFVLENBQ1RDLEtBQU1DLFFBRVBDLFNBQVUsQ0FDVEYsS0FBTUMsUUFFUEUsU0FBVSxDQUNUSCxLQUFNSSxRQUVQQyxVQUFXLENBQ1ZMLEtBQU1JLFFBRVBFLFNBQVUsQ0FDVE4sS0FBTUMsVUFHUk0sU0FBVSxTQUFTUixFQUFrQkcsRUFBa0JDLEVBQWtCRSxFQUFtQkMsR0FDM0YsSUFBSUUsRUFBT0MsS0FDWCxPQUFPLElBQUlDLFFBQVEsU0FBQ0MsRUFBU0MsR0FDNUIsR0FBSWIsRUFBVSxDQUNiLElBQUljLEVBQU0sV0FBYUMsS0FBS0MsTUFBUSxJQUFPdkIsU0FBWSxJQUFNTyxFQUV6RGlCLEVBQVksQ0FBQ0MsT0FBUVQsRUFBS1UsYUFBYUMsVUFBV0MsSUFBS1AsRUFBS1EsS0FBTUMsT0FBT0MsS0FBS3JCLEVBQVNzQixRQUFRLFFBQVV0QixFQUFTdUIsTUFBTSxLQUFLLEdBQUdBLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBQUssR0FBSyxXQUFZLElBQUssVUFBV0MsSUFBSyxVQUFXQyxZQUFhekIsRUFBU3VCLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBQUssR0FBR0EsTUFBTSxLQUFLLEdBQUlHLG1CQUFvQixVQUVuU3BCLEVBQUtxQixTQUFTQyxPQUFPZCxFQUFXLFNBQUNlLEVBQUtDLEdBQ2pDRCxFQUNIbkIsRUFBT21CLEdBRUNDLEdBQ1I1QyxrQkFBQTZDLGFBQWFDLE9BQU8sQ0FDbkJDLElBQUs3QyxXQUFBOEMsTUFB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RDVELEVBQVFxQixTQWxOYjRDLFFBQUFuRixlQUFBQSIsImZpbGUiOiJzdXBwb3J0LW1ldGhvZHMvYXdzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VwcG9ydEZpbGVzIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvZmlsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnbW9uZ29vc2UnO1xuaW1wb3J0IFNpbXBsZVNjaGVtYSBmcm9tICdzaW1wbC1zY2hlbWEnO1xuaW1wb3J0IHsgU3VwcG9ydE1hbmFnZXIgfSBmcm9tICcuLi9tYW5hZ2Vycy9zdXBwb3J0Lm1hbmFnZXInO1xuXG5sZXQgcGRmQ250ID0gMTAwMDAwMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBV1NNZXRob2RzKHN1cHBvcnRNYW5hZ2VyOiBTdXBwb3J0TWFuYWdlcikge1xuXHRzdXBwb3J0TWFuYWdlci5zdXBwb3J0TWV0aG9kcyh7XG5cdFx0dXBsb2FkRmlsZUFuZFNhdmU6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0ZmlsZU5hbWU6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZURhdGE6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZVNpemU6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZU9yZGVyOiB7XG5cdFx0XHRcdFx0dHlwZTogTnVtYmVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZpbGVUeXBlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIGZpbGVEYXRhOiBzdHJpbmcsIGZpbGVTaXplOiBudW1iZXIsIGZpbGVPcmRlcjogbnVtYmVyLCBmaWxlVHlwZTogc3RyaW5nKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRpZiAoZmlsZU5hbWUpIHtcblx0XHRcdFx0XHRcdGxldCBrZXkgPSAndXBsb2Fkcy8nICsgRGF0ZS5ub3coKSArICctJyArIChwZGZDbnQrKykgKyAnLScgKyBmaWxlTmFtZTtcblx0XHRcblx0XHRcdFx0XHRcdGxldCBuZXdQYXJhbXMgPSB7QnVja2V0OiB0aGF0LnNlcnZlckNvbmZpZy5BV1NCVUNLRVQsIEtleToga2V5LCBCb2R5OiBCdWZmZXIuZnJvbShmaWxlRGF0YS5yZXBsYWNlKCdkYXRhOicgKyBmaWxlRGF0YS5zcGxpdCgnLCcpWzBdLnNwbGl0KCc6JylbMV0uc3BsaXQoJzsnKVswXSArICc7YmFzZTY0LCcsICcnKSwgJ2Jhc2U2NCcpLCBBQ0w6ICdwcml2YXRlJywgQ29udGVudFR5cGU6IGZpbGVEYXRhLnNwbGl0KCcsJylbMF0uc3BsaXQoJzonKVsxXS5zcGxpdCgnOycpWzBdLCBDb250ZW50RGlzcG9zaXRpb246ICdpbmxpbmUnfTtcblxuXHRcdFx0XHRcdFx0dGhhdC5nZXRBV1MoKS51cGxvYWQobmV3UGFyYW1zLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYgKHJlcykge1xuXHRcdFx0XHRcdFx0XHRcdFN1cHBvcnRGaWxlcy5jcmVhdGUoe1xuXHRcdFx0XHRcdFx0XHRcdFx0X2lkOiBUeXBlcy5PYmplY3RJZCgpLnRvSGV4U3RyaW5nKCksIG5hbWU6IGZpbGVOYW1lLCBzaXplOiBmaWxlU2l6ZSwga2V5OiBrZXksIG9yZGVyOiBmaWxlT3JkZXIsIHR5cGU6IGZpbGVUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSkudGhlbihyZXNGaWxlID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzRmlsZSk7XG5cdFx0XHRcdFx0XHRcdFx0fSwgZXJyRmlsZSA9PiByZWplY3QoZXJyRmlsZSkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0ZGVsZXRlRmlsZXM6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5czoge1xuXHRcdFx0XHRcdHR5cGU6IEFycmF5XG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdrZXlzLiQnOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleXM6IHN0cmluZ1tdKSB7XHRcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgZmlsZXMgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZCh7a2V5OiB7JGluOiBrZXlzfX0pO1xuXHRcdFxuXHRcdFx0XHRcdGxldCBkZWxldGVDbnQgPSBmaWxlcy5sZW5ndGg7XG5cdFx0XG5cdFx0XHRcdFx0ZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcblx0XHRcdFx0XHRcdFN1cHBvcnRGaWxlcy5kZWxldGVPbmUoe19pZDogZmlsZS5faWR9KS5leGVjKCk7XG5cdFx0XG5cdFx0XHRcdFx0XHRsZXQgZGVsUGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGZpbGUua2V5fTtcblx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5nZXRBV1MoKS5kZWxldGVPYmplY3QoZGVsUGFyYW1zLCBmdW5jdGlvbihlcnIsIHJlcykge1xuXHRcdFx0XHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0ZGVsZXRlQ250LS07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCFkZWxldGVDbnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRlbGV0ZUZpbGU6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5OiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleTogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGZpbGUgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZE9uZSh7a2V5OiBrZXl9KTtcblx0XHRcblx0XHRcdFx0XHRpZiAoIWZpbGUpIHtcblx0XHRcdFx0XHRcdHJlamVjdCgnQ291bGQgbm90IGZpbmQgZmlsZScpO1xuXHRcdFx0XHRcdH1cblx0XHRcblx0XHRcdFx0XHRTdXBwb3J0RmlsZXMuZGVsZXRlT25lKHtfaWQ6IGZpbGUuX2lkfSkuZXhlYygpO1xuXHRcdFxuXHRcdFx0XHRcdGxldCBkZWxQYXJhbXMgPSB7QnVja2V0OiB0aGlzLnNlcnZlckNvbmZpZ1snQVdTQlVDS0VUJ10sIEtleToga2V5fTtcblx0XHRcblx0XHRcdFx0XHR0aGlzLmdldEFXUygpLmRlbGV0ZU9iamVjdChkZWxQYXJhbXMsIGZ1bmN0aW9uKGVyciwgcmVzKSB7XG5cdFx0XHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRkZWxldGVGaWxlV2l0aElkOiB7XG5cdFx0XHRjaGVjazogbmV3IFNpbXBsZVNjaGVtYSh7XG5cdFx0XHRcdGlkX2ZpbGU6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oaWRfZmlsZTogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGZpbGUgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZE9uZSh7X2lkOiBpZF9maWxlfSk7XG5cdFx0XG5cdFx0XHRcdFx0aWYgKCFmaWxlKSB7XG5cdFx0XHRcdFx0XHRyZWplY3QoJ0NvdWxkIG5vdCBmaW5kIGZpbGUnKTtcblx0XHRcdFx0XHR9XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGRlbFBhcmFtcyA9IHtCdWNrZXQ6IHRoaXMuc2VydmVyQ29uZmlnWydBV1NCVUNLRVQnXSwgS2V5OiBmaWxlLmtleX07XG5cdFx0XG5cdFx0XHRcdFx0dGhpcy5nZXRBV1MoKS5kZWxldGVPYmplY3QoZGVsUGFyYW1zLCBmdW5jdGlvbihlcnIsIHJlcykge1xuXHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRTdXBwb3J0RmlsZXMuZGVsZXRlT25lKHtfaWQ6IGZpbGUuX2lkfSkuZXhlYygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdldFNpZ25lZFVybFdpdGhJZDoge1xuXHRcdFx0Y2hlY2s6IG5ldyBTaW1wbGVTY2hlbWEoe1xuXHRcdFx0XHRpZF9maWxlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGlyZXM6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oaWRfZmlsZTogc3RyaW5nLCBleHBpcmVzOiBudW1iZXIpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgZmlsZSA9IGF3YWl0IFN1cHBvcnRGaWxlcy5maW5kT25lKHtfaWQ6IGlkX2ZpbGV9KTtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGZpbGUua2V5LCBFeHBpcmVzOiBleHBpcmVzfTtcblxuXHRcdFx0XHRcdHRoaXMuZ2V0QVdTKCkuZ2V0U2lnbmVkVXJsKCdnZXRPYmplY3QnLCBwYXJhbXMsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Z2V0U2lnbmVkVXJsOiB7XG5cdFx0XHRjaGVjazogbmV3IFNpbXBsZVNjaGVtYSh7XG5cdFx0XHRcdGtleToge1xuXHRcdFx0XHRcdHR5cGU6IFN0cmluZ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBpcmVzOiB7XG5cdFx0XHRcdFx0dHlwZTogTnVtYmVyXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleTogc3RyaW5nLCBleHBpcmVzOiBudW1iZXIpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGtleSwgRXhwaXJlczogZXhwaXJlc307XG5cblx0XHRcdFx0XHR0aGlzLmdldEFXUygpLmdldFNpZ25lZFVybCgnZ2V0T2JqZWN0JywgcGFyYW1zLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdldFNpZ25lZFVybHM6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5czoge1xuXHRcdFx0XHRcdHR5cGU6IEFycmF5XG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdrZXlzLiQnOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGlyZXM6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oa2V5czogc3RyaW5nW10sIGV4cGlyZXM6IG51bWJlcikge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdGxldCByZXMgPSBbXTtcblxuXHRcdFx0XHRcdGtleXMuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0XHRcdFx0bGV0IHBhcmFtcyA9IHtCdWNrZXQ6IHRoaXMuc2VydmVyQ29uZmlnLkFXU0JVQ0tFVCwgS2V5OiBrZXksIEV4cGlyZXM6IGV4cGlyZXN9O1xuXG5cdFx0XHRcdFx0XHRyZXMucHVzaCh0aGlzLmdldEFXUygpLmdldFNpZ25lZFVybCgnZ2V0T2JqZWN0JywgcGFyYW1zKSk7XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG59Il19
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ var file_collection_1 = require("../collections/file.collection");
39
+ var mongoose_1 = require("mongoose");
40
+ var simpl_schema_1 = require("simpl-schema");
41
+ var pdfCnt = 1000000;
42
+ function loadAWSMethods(supportManager) {
43
+ supportManager.supportMethods({
44
+ uploadFileAndSave: {
45
+ check: new simpl_schema_1.default({
46
+ fileName: {
47
+ type: String
48
+ },
49
+ fileData: {
50
+ type: String
51
+ },
52
+ fileSize: {
53
+ type: Number
54
+ },
55
+ fileOrder: {
56
+ type: Number
57
+ },
58
+ fileType: {
59
+ type: String
60
+ }
61
+ }),
62
+ function: function (fileName, fileData, fileSize, fileOrder, fileType) {
63
+ var that = this;
64
+ return new Promise(function (resolve, reject) {
65
+ if (fileName) {
66
+ var key_1 = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
67
+ var newParams = { Bucket: that.serverConfig.AWSBUCKET, Key: key_1, 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' };
68
+ that.getAWS().upload(newParams, function (err, res) {
69
+ if (err) {
70
+ reject(err);
71
+ }
72
+ else if (res) {
73
+ file_collection_1.SupportFiles.create({
74
+ _id: mongoose_1.Types.ObjectId().toHexString(), name: fileName, size: fileSize, key: key_1, order: fileOrder, type: fileType
75
+ }).then(function (resFile) {
76
+ resolve(resFile);
77
+ }, function (errFile) { return reject(errFile); });
78
+ }
79
+ });
80
+ }
81
+ });
82
+ }
83
+ },
84
+ deleteFiles: {
85
+ check: new simpl_schema_1.default({
86
+ keys: {
87
+ type: Array
88
+ },
89
+ 'keys.$': {
90
+ type: String
91
+ }
92
+ }),
93
+ function: function (keys) {
94
+ var _this = this;
95
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
96
+ var files, deleteCnt;
97
+ var _this = this;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0: return [4 /*yield*/, file_collection_1.SupportFiles.find({ key: { $in: keys } })];
101
+ case 1:
102
+ files = _a.sent();
103
+ deleteCnt = files.length;
104
+ files.forEach(function (file) {
105
+ file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
106
+ var delParams = { Bucket: _this.serverConfig.AWSBUCKET, Key: file.key };
107
+ _this.getAWS().deleteObject(delParams, function (err, res) {
108
+ if (err) {
109
+ reject(err);
110
+ }
111
+ else {
112
+ deleteCnt--;
113
+ if (!deleteCnt) {
114
+ resolve(res);
115
+ }
116
+ }
117
+ });
118
+ });
119
+ return [2 /*return*/];
120
+ }
121
+ });
122
+ }); });
123
+ }
124
+ },
125
+ deleteFile: {
126
+ check: new simpl_schema_1.default({
127
+ key: {
128
+ type: String
129
+ }
130
+ }),
131
+ function: function (key) {
132
+ var _this = this;
133
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
134
+ var file, delParams;
135
+ return __generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ key: key })];
138
+ case 1:
139
+ file = _a.sent();
140
+ if (!file) {
141
+ reject('Could not find file');
142
+ }
143
+ file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
144
+ delParams = { Bucket: this.serverConfig['AWSBUCKET'], Key: key };
145
+ this.getAWS().deleteObject(delParams, function (err, res) {
146
+ if (err) {
147
+ reject(err);
148
+ }
149
+ else {
150
+ resolve(res);
151
+ }
152
+ });
153
+ return [2 /*return*/];
154
+ }
155
+ });
156
+ }); });
157
+ }
158
+ },
159
+ deleteFileWithId: {
160
+ check: new simpl_schema_1.default({
161
+ id_file: {
162
+ type: String
163
+ }
164
+ }),
165
+ function: function (id_file) {
166
+ var _this = this;
167
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
168
+ var file, delParams;
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ _id: id_file })];
172
+ case 1:
173
+ file = _a.sent();
174
+ if (!file) {
175
+ reject('Could not find file');
176
+ }
177
+ delParams = { Bucket: this.serverConfig['AWSBUCKET'], Key: file.key };
178
+ this.getAWS().deleteObject(delParams, function (err, res) {
179
+ if (err) {
180
+ reject(err);
181
+ }
182
+ else {
183
+ resolve(res);
184
+ }
185
+ });
186
+ file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
187
+ return [2 /*return*/];
188
+ }
189
+ });
190
+ }); });
191
+ }
192
+ },
193
+ getSignedUrlWithId: {
194
+ check: new simpl_schema_1.default({
195
+ id_file: {
196
+ type: String
197
+ },
198
+ expires: {
199
+ type: Number
200
+ }
201
+ }),
202
+ function: function (id_file, expires) {
203
+ var _this = this;
204
+ return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
205
+ var file, params;
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ _id: id_file })];
209
+ case 1:
210
+ file = _a.sent();
211
+ params = { Bucket: this.serverConfig.AWSBUCKET, Key: file.key, Expires: expires };
212
+ this.getAWS().getSignedUrl('getObject', params, function (err, res) {
213
+ if (err) {
214
+ reject(err);
215
+ }
216
+ else {
217
+ resolve(res);
218
+ }
219
+ });
220
+ return [2 /*return*/];
221
+ }
222
+ });
223
+ }); });
224
+ }
225
+ },
226
+ getSignedUrl: {
227
+ check: new simpl_schema_1.default({
228
+ key: {
229
+ type: String
230
+ },
231
+ expires: {
232
+ type: Number
233
+ }
234
+ }),
235
+ function: function (key, expires) {
236
+ var _this = this;
237
+ return new Promise(function (resolve, reject) {
238
+ var params = { Bucket: _this.serverConfig.AWSBUCKET, Key: key, Expires: expires };
239
+ _this.getAWS().getSignedUrl('getObject', params, function (err, res) {
240
+ if (err) {
241
+ reject(err);
242
+ }
243
+ else {
244
+ resolve(res);
245
+ }
246
+ });
247
+ });
248
+ }
249
+ },
250
+ getSignedUrls: {
251
+ check: new simpl_schema_1.default({
252
+ keys: {
253
+ type: Array
254
+ },
255
+ 'keys.$': {
256
+ type: String
257
+ },
258
+ expires: {
259
+ type: Number
260
+ }
261
+ }),
262
+ function: function (keys, expires) {
263
+ var _this = this;
264
+ return new Promise(function (resolve, reject) {
265
+ var res = [];
266
+ keys.forEach(function (key) {
267
+ var params = { Bucket: _this.serverConfig.AWSBUCKET, Key: key, Expires: expires };
268
+ res.push(_this.getAWS().getSignedUrl('getObject', params));
269
+ });
270
+ resolve(res);
271
+ });
272
+ }
273
+ }
274
+ });
275
+ }
276
+ exports.loadAWSMethods = loadAWSMethods;
@@ -0,0 +1,3 @@
1
+ import { SupportManager } from '../managers/support.manager';
2
+ export declare function loadSupportCollectionMethods(supportManager: SupportManager): void;
3
+ //# sourceMappingURL=collections.d.ts.map