95af003cd27078534478943cf81136ad35ad372e
[motion2.git] / server / api / mailMessage / mailMessage.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xc8ca=['MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','count','offset','limit','set','Content-Range','json','apply','reject','then','sendStatus','name','index','map','MailMessage','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','length','find','update','body','destroy','describe','create','direction','secret','CmList','CmContact','updatedAt','DESC','Smtp','isNil','service','host','port','secure','authentication','auth','user','pass','attachments','join','server/files/attachments','basename','List','Contacts','defaults','ListId','List\x20not\x20found','SendMail','sendMail','messageId','YYYY-MM-DD\x20HH:mm:ss','mail-interactions','accept','mail','readAt','format','UserId','Contact','get','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','rejectMessage','download','toString','root','server','files','tmp','message-%s.eml','bcc','subject','createdAt','Attachment','Attachments','from','headers','existsSync','push','type','readFileSync','build','log','err','unlinkSync','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./mailMessage.socket','register','client','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x493913,_0x35c8b5){var _0x347e75=function(_0x241669){while(--_0x241669){_0x493913['push'](_0x493913['shift']());}};_0x347e75(++_0x35c8b5);}(_0xc8ca,0x81));var _0xac8c=function(_0x1f0ca7,_0x403fe9){_0x1f0ca7=_0x1f0ca7-0x0;var _0x107ec2=_0xc8ca[_0x1f0ca7];return _0x107ec2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xac8c('0x0'));var rimraf=require(_0xac8c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xac8c('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xac8c('0x3'));var Mustache=require(_0xac8c('0x4'));var util=require(_0xac8c('0x5'));var path=require('path');var sox=require(_0xac8c('0x6'));var csv=require(_0xac8c('0x7'));var ejs=require(_0xac8c('0x8'));var fs=require('fs');var _=require(_0xac8c('0x9'));var squel=require(_0xac8c('0xa'));var crypto=require(_0xac8c('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xac8c('0xc'));var toCsv=require(_0xac8c('0x7'));var querystring=require(_0xac8c('0xd'));var Papa=require(_0xac8c('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xac8c('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xac8c('0x10'));var logger=require(_0xac8c('0x11'))(_0xac8c('0x12'));var utils=require(_0xac8c('0x13'));var config=require(_0xac8c('0x14'));var db=require(_0xac8c('0x15'))['db'];config[_0xac8c('0x16')]=_['defaults'](config['redis'],{'host':_0xac8c('0x17'),'port':0x18eb});var socket=require(_0xac8c('0x18'))(new Redis(config[_0xac8c('0x16')]));require(_0xac8c('0x19'))[_0xac8c('0x1a')](socket);var jayson=require('jayson/promise');var client=jayson[_0xac8c('0x1b')][_0xac8c('0x1c')]({'port':0x232c});var client9003=jayson[_0xac8c('0x1b')][_0xac8c('0x1c')]({'port':0x232b});var client9002=jayson[_0xac8c('0x1b')][_0xac8c('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x51c2e7,_0x4921cb,_0xa34372){if(_0xa34372){var _0x3eff3b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3eff3b[_0xac8c('0x1d')](_0x4921cb)){return _0x51c2e7;}else{throw new db[(_0xac8c('0x1e'))][(_0xac8c('0x1f'))](_0xac8c('0x20'));}}else{return _0x51c2e7;}}function respondWithRpcPromise(_0x24a3eb,_0x41582b,_0x6ad4fc,_0x52ca16){return new BPromise(function(_0xdc7d83,_0x31a3d2){var _0x2ed5d2=_0x52ca16||client;return _0x2ed5d2[_0xac8c('0x21')](_0x24a3eb,_0x6ad4fc)['then'](function(_0x4a51c2){logger[_0xac8c('0x22')](_0xac8c('0x23'),_0x41582b,_0xac8c('0x24'));logger[_0xac8c('0x25')](_0xac8c('0x26'),_0x41582b,_0xac8c('0x24'),JSON[_0xac8c('0x27')](_0x4a51c2));if(_0x4a51c2[_0xac8c('0x28')]){if(_0x4a51c2[_0xac8c('0x28')][_0xac8c('0x29')]===0x1f4){logger['error'](_0xac8c('0x23'),_0x41582b,_0x4a51c2[_0xac8c('0x28')][_0xac8c('0x2a')]);return _0x31a3d2(_0x4a51c2[_0xac8c('0x28')][_0xac8c('0x2a')]);}logger['error'](_0xac8c('0x23'),_0x41582b,_0x4a51c2[_0xac8c('0x28')][_0xac8c('0x2a')]);return _0xdc7d83(_0x4a51c2['error'][_0xac8c('0x2a')]);}else{logger[_0xac8c('0x22')](_0xac8c('0x23'),_0x41582b,'request\x20sent');_0xdc7d83(_0x4a51c2[_0xac8c('0x2b')][_0xac8c('0x2a')]);}})[_0xac8c('0x2c')](function(_0x134c9c){logger[_0xac8c('0x28')]('MailMessage,\x20%s,\x20%s',_0x41582b,_0x134c9c);_0x31a3d2(_0x134c9c);});});}function respondWithStatusCode(_0xaaa2cf,_0x5475e6){_0x5475e6=_0x5475e6||0xcc;return function(_0x14bc61){if(_0x14bc61){return _0xaaa2cf['sendStatus'](_0x5475e6);}return _0xaaa2cf[_0xac8c('0x2d')](_0x5475e6)[_0xac8c('0x2e')]();};}function respondWithResult(_0x4abfa4,_0x1b9239){_0x1b9239=_0x1b9239||0xc8;return function(_0x3192fe){if(_0x3192fe){return _0x4abfa4['status'](_0x1b9239)['json'](_0x3192fe);}};}function respondWithFilteredResult(_0x3dc775,_0x40fe9c){return function(_0x16e5bd){if(_0x16e5bd){var _0x3f253e=_0x16e5bd[_0xac8c('0x2f')],_0x295cd4=_0x40fe9c[_0xac8c('0x30')],_0x60875a=_0x40fe9c['offset']+_0x40fe9c[_0xac8c('0x31')],_0x534d4a;if(_0x60875a>=_0x3f253e){_0x60875a=_0x3f253e;_0x534d4a=0xc8;}else{_0x534d4a=0xce;}_0x3dc775[_0xac8c('0x2d')](_0x534d4a);return _0x3dc775[_0xac8c('0x32')](_0xac8c('0x33'),_0x295cd4+'-'+_0x60875a+'/'+_0x3f253e)[_0xac8c('0x34')](_0x16e5bd);}return null;};}function patchUpdates(_0x5125e9){return function(_0x5e51ee){try{jsonpatch[_0xac8c('0x35')](_0x5e51ee,_0x5125e9,!![]);}catch(_0x690240){return BPromise[_0xac8c('0x36')](_0x690240);}return _0x5e51ee['save']();};}function saveUpdates(_0x815df2,_0x3c635a){return function(_0x19b084){if(_0x19b084){return _0x19b084['update'](_0x815df2)[_0xac8c('0x37')](function(_0x51ada8){return _0x51ada8;});}return null;};}function removeEntity(_0x321176,_0x18697f){return function(_0x28bd7b){if(_0x28bd7b){return _0x28bd7b['destroy']()['then'](function(){_0x321176['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28e0ab,_0x27855b){return function(_0x10248c){if(!_0x10248c){_0x28e0ab[_0xac8c('0x38')](0x194);}return _0x10248c;};}function handleError(_0x2e56f9,_0x3ebaf0){_0x3ebaf0=_0x3ebaf0||0x1f4;return function(_0x947c8f){logger[_0xac8c('0x28')](_0x947c8f['stack']);if(_0x947c8f['name']){delete _0x947c8f[_0xac8c('0x39')];}_0x2e56f9[_0xac8c('0x2d')](_0x3ebaf0)['send'](_0x947c8f);};}exports[_0xac8c('0x3a')]=function(_0xce001,_0x4400da){var _0x342f97={},_0x543a8f={},_0x5b4827={'count':0x0,'rows':[]};var _0x15b050=_[_0xac8c('0x3b')](db[_0xac8c('0x3c')][_0xac8c('0x3d')],function(_0x58f86a){return{'name':_0x58f86a[_0xac8c('0x3e')],'type':_0x58f86a['type'][_0xac8c('0x3f')]};});_0x543a8f[_0xac8c('0x40')]=_[_0xac8c('0x3b')](_0x15b050,_0xac8c('0x39'));_0x543a8f[_0xac8c('0x41')]=_[_0xac8c('0x42')](_0xce001[_0xac8c('0x41')]);_0x543a8f[_0xac8c('0x43')]=_['intersection'](_0x543a8f[_0xac8c('0x40')],_0x543a8f['query']);_0x342f97[_0xac8c('0x44')]=_[_0xac8c('0x45')](_0x543a8f[_0xac8c('0x40')],qs[_0xac8c('0x46')](_0xce001['query'][_0xac8c('0x46')]));_0x342f97[_0xac8c('0x44')]=_0x342f97['attributes']['length']?_0x342f97['attributes']:_0x543a8f[_0xac8c('0x40')];if(!_0xce001[_0xac8c('0x41')][_0xac8c('0x47')](_0xac8c('0x48'))){_0x342f97[_0xac8c('0x31')]=qs[_0xac8c('0x31')](_0xce001[_0xac8c('0x41')][_0xac8c('0x31')]);_0x342f97[_0xac8c('0x30')]=qs['offset'](_0xce001[_0xac8c('0x41')][_0xac8c('0x30')]);}_0x342f97[_0xac8c('0x49')]=qs[_0xac8c('0x4a')](_0xce001[_0xac8c('0x41')][_0xac8c('0x4a')]);_0x342f97[_0xac8c('0x4b')]=qs[_0xac8c('0x43')](_['pick'](_0xce001[_0xac8c('0x41')],_0x543a8f[_0xac8c('0x43')]));if(_0xce001[_0xac8c('0x41')][_0xac8c('0x4c')]){_0x342f97[_0xac8c('0x4b')]=_[_0xac8c('0x4d')](_0x342f97[_0xac8c('0x4b')],{'$or':_[_0xac8c('0x3b')](_0x15b050,function(_0x6c9332){if(_0x6c9332['type']!==_0xac8c('0x4e')){var _0x136b52={};_0x136b52[_0x6c9332[_0xac8c('0x39')]]={'$like':'%'+_0xce001[_0xac8c('0x41')][_0xac8c('0x4c')]+'%'};return _0x136b52;}})});}_0x342f97=_[_0xac8c('0x4d')]({},_0x342f97,_0xce001[_0xac8c('0x4f')]);var _0x1128cf={'where':_0x342f97[_0xac8c('0x4b')]};return db[_0xac8c('0x3c')][_0xac8c('0x2f')](_0x1128cf)[_0xac8c('0x37')](function(_0x110356){_0x5b4827[_0xac8c('0x2f')]=_0x110356;if(_0xce001[_0xac8c('0x41')][_0xac8c('0x50')]){_0x342f97[_0xac8c('0x51')]=[{'all':!![]}];}return db[_0xac8c('0x3c')]['findAll'](_0x342f97);})['then'](function(_0x122d36){_0x5b4827[_0xac8c('0x52')]=_0x122d36;return _0x5b4827;})[_0xac8c('0x37')](respondWithFilteredResult(_0x4400da,_0x342f97))[_0xac8c('0x2c')](handleError(_0x4400da,null));};exports[_0xac8c('0x53')]=function(_0x4417f7,_0x52ef45){var _0x4562cd={'raw':!![],'where':{'id':_0x4417f7[_0xac8c('0x54')]['id']}},_0x21c29c={};_0x21c29c[_0xac8c('0x40')]=_[_0xac8c('0x42')](db['MailMessage']['rawAttributes']);_0x21c29c[_0xac8c('0x41')]=_['keys'](_0x4417f7['query']);_0x21c29c['filters']=_[_0xac8c('0x45')](_0x21c29c[_0xac8c('0x40')],_0x21c29c[_0xac8c('0x41')]);_0x4562cd[_0xac8c('0x44')]=_[_0xac8c('0x45')](_0x21c29c[_0xac8c('0x40')],qs[_0xac8c('0x46')](_0x4417f7[_0xac8c('0x41')][_0xac8c('0x46')]));_0x4562cd[_0xac8c('0x44')]=_0x4562cd['attributes'][_0xac8c('0x55')]?_0x4562cd['attributes']:_0x21c29c['model'];if(_0x4417f7['query'][_0xac8c('0x50')]){_0x4562cd[_0xac8c('0x51')]=[{'all':!![]}];}_0x4562cd=_[_0xac8c('0x4d')]({},_0x4562cd,_0x4417f7['options']);return db[_0xac8c('0x3c')][_0xac8c('0x56')](_0x4562cd)[_0xac8c('0x37')](handleEntityNotFound(_0x52ef45,null))['then'](respondWithResult(_0x52ef45,null))[_0xac8c('0x2c')](handleError(_0x52ef45,null));};exports[_0xac8c('0x57')]=function(_0x4eb9fd,_0xcfd5db){if(_0x4eb9fd['body']['id']){delete _0x4eb9fd[_0xac8c('0x58')]['id'];}return db[_0xac8c('0x3c')][_0xac8c('0x56')]({'where':{'id':_0x4eb9fd[_0xac8c('0x54')]['id']}})['then'](handleEntityNotFound(_0xcfd5db,null))[_0xac8c('0x37')](saveUpdates(_0x4eb9fd[_0xac8c('0x58')],null))[_0xac8c('0x37')](respondWithResult(_0xcfd5db,null))[_0xac8c('0x2c')](handleError(_0xcfd5db,null));};exports[_0xac8c('0x59')]=function(_0x1d9bfc,_0x5f2834){return db['MailMessage'][_0xac8c('0x56')]({'where':{'id':_0x1d9bfc[_0xac8c('0x54')]['id']}})[_0xac8c('0x37')](handleEntityNotFound(_0x5f2834,null))['then'](removeEntity(_0x5f2834,null))[_0xac8c('0x2c')](handleError(_0x5f2834,null));};exports[_0xac8c('0x5a')]=function(_0x5f1eca,_0x4a86d5){return db['MailMessage']['describe']()[_0xac8c('0x37')](respondWithResult(_0x4a86d5,null))[_0xac8c('0x2c')](handleError(_0x4a86d5,null));};exports['create']=function(_0x2cdfc0,_0x2cf23e){return db[_0xac8c('0x3c')][_0xac8c('0x5b')](_0x2cdfc0['body'])[_0xac8c('0x37')](function(_0x15dbdd){if(_0x15dbdd){if(_0x15dbdd[_0xac8c('0x5c')]==='out'&&!_0x15dbdd[_0xac8c('0x5d')]){var _0xa6145,_0x5d0f92,_0x267a33;if(_0x2cdfc0[_0xac8c('0x58')]['to']){_0x5d0f92=_0x2cdfc0['body']['to']['split'](',')[0x0];}return db['MailAccount']['findOne']({'where':{'id':_0x15dbdd['MailAccountId']},'include':[{'model':db[_0xac8c('0x5e')],'as':'List','include':[{'model':db[_0xac8c('0x5f')],'as':'Contacts','where':{'email':_0x5d0f92},'limit':0x1,'order':[[_0xac8c('0x60'),_0xac8c('0x61')]]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0xac8c('0x37')](function(_0xd03890){_0xa6145=_0xd03890;if(_0xa6145&&_0xa6145[_0xac8c('0x62')]){var _0x487133={'tls':{'rejectUnauthorized':![]}};if(_[_0xac8c('0x63')](_0xa6145[_0xac8c('0x62')][_0xac8c('0x64')])){_0x487133[_0xac8c('0x65')]=_0xa6145['Smtp'][_0xac8c('0x65')];_0x487133[_0xac8c('0x66')]=_0xa6145['Smtp']['port'];_0x487133[_0xac8c('0x67')]=_0xa6145[_0xac8c('0x62')][_0xac8c('0x67')];if(_0xa6145['Smtp'][_0xac8c('0x68')]){_0x487133[_0xac8c('0x69')]={'user':_0xa6145['Smtp'][_0xac8c('0x6a')],'pass':_0xa6145[_0xac8c('0x62')]['pass']};}}else{_0x487133[_0xac8c('0x64')]=_0xa6145[_0xac8c('0x62')]['service'];_0x487133[_0xac8c('0x69')]={'user':_0xa6145[_0xac8c('0x62')][_0xac8c('0x6a')],'pass':_0xa6145['Smtp'][_0xac8c('0x6b')]};_0x487133[_0xac8c('0x67')]=_0xa6145[_0xac8c('0x62')][_0xac8c('0x67')];}if(_0x2cdfc0[_0xac8c('0x58')]['attachments']&&_0x2cdfc0['body'][_0xac8c('0x6c')][_0xac8c('0x55')]){for(var _0xfd990=0x0;_0xfd990<_0x2cdfc0[_0xac8c('0x58')][_0xac8c('0x6c')]['length'];_0xfd990+=0x1){_0x2cdfc0[_0xac8c('0x58')][_0xac8c('0x6c')][_0xfd990]={'filename':_0x2cdfc0[_0xac8c('0x58')][_0xac8c('0x6c')][_0xfd990]['name'],'path':path[_0xac8c('0x6d')](config['root'],_0xac8c('0x6e'),_0x2cdfc0[_0xac8c('0x58')][_0xac8c('0x6c')][_0xfd990][_0xac8c('0x6f')])};}}_0x267a33={'account':_0x487133,'message':_0x2cdfc0[_0xac8c('0x58')]};return;}})['then'](function(){if(_0xa6145[_0xac8c('0x70')]){if(_0xa6145['List'][_0xac8c('0x71')]['length']){return _0xa6145[_0xac8c('0x70')][_0xac8c('0x71')][0x0];}else{return db[_0xac8c('0x5f')]['create'](_[_0xac8c('0x72')](_0x2cdfc0[_0xac8c('0x58')],{'firstName':_0x2cdfc0[_0xac8c('0x58')]['to'],'email':_0x2cdfc0[_0xac8c('0x58')]['to'],'phone':_0x2cdfc0[_0xac8c('0x58')]['to'],'ListId':_0xa6145[_0xac8c('0x73')]}));}}else{throw new Error(_0xac8c('0x74'));}})['then'](function(){if(_0x267a33){return respondWithRpcPromise(_0xac8c('0x75'),_0xac8c('0x76'),_0x267a33,client9003)[_0xac8c('0x37')](function(_0xa71546){return _0x15dbdd[_0xac8c('0x57')]({'read':!![],'messageId':_0xa71546[_0xac8c('0x77')],'sentAt':moment()['format'](_0xac8c('0x78'))});})[_0xac8c('0x2c')](function(_0x2a5203){logger[_0xac8c('0x28')]('%s',JSON[_0xac8c('0x27')](_0x2a5203));return _0x15dbdd;});}return _0x15dbdd;});}return _0x15dbdd;}})[_0xac8c('0x37')](respondWithResult(_0x2cf23e,0xc9))[_0xac8c('0x2c')](handleError(_0x2cf23e,null));};var interaction_log=require(_0xac8c('0x11'))(_0xac8c('0x79'));exports[_0xac8c('0x7a')]=function(_0x591d3a,_0x6e3bad,_0x2440a6){var _0x11e5d1={'channel':_0xac8c('0x7b')};if(_0x591d3a[_0xac8c('0x58')]['id']){delete _0x591d3a['body']['id'];}_0x591d3a[_0xac8c('0x58')]['read']=!![];_0x591d3a[_0xac8c('0x58')][_0xac8c('0x7c')]=moment()[_0xac8c('0x7d')](_0xac8c('0x78'));_0x591d3a[_0xac8c('0x58')]['UserId']=_0x591d3a['body'][_0xac8c('0x7e')]||_0x591d3a[_0xac8c('0x6a')]['id'];return db['MailMessage'][_0xac8c('0x56')]({'where':{'id':_0x591d3a[_0xac8c('0x54')]['id'],'UserId':null},'include':[{'model':db[_0xac8c('0x5f')],'as':_0xac8c('0x7f')}]})[_0xac8c('0x37')](handleEntityNotFound(_0x6e3bad,null))[_0xac8c('0x37')](saveUpdates(_0x591d3a['body'],null))['then'](function(_0x471d38){if(_0x471d38){_0x11e5d1[_0xac8c('0x2a')]=_0x471d38[_0xac8c('0x80')]({'plain':!![]});return db['MailInteraction']['find']({'where':{'id':_0x471d38['MailInteractionId']}});}return null;})[_0xac8c('0x37')](handleEntityNotFound(_0x6e3bad,null))[_0xac8c('0x37')](function(_0x29e935){if(_0x29e935){return _0x29e935[_0xac8c('0x57')]({'UserId':_0x591d3a[_0xac8c('0x58')][_0xac8c('0x7e')],'read1stAt':_[_0xac8c('0x63')](_0x29e935['read1stAt'])?moment()[_0xac8c('0x7d')](_0xac8c('0x78')):undefined});}return null;})['then'](function(_0x1f40d0){if(_0x1f40d0){_0x11e5d1[_0xac8c('0x81')]=_0x1f40d0[_0xac8c('0x80')]({'plain':!![]});interaction_log[_0xac8c('0x22')](_0xac8c('0x82'),_0x591d3a['user']['id'],_0x591d3a['user'][_0xac8c('0x39')],_0x591d3a[_0xac8c('0x6a')][_0xac8c('0x83')],_0x11e5d1['interaction']['id'],_0x591d3a[_0xac8c('0x58')]?JSON[_0xac8c('0x27')](_0x591d3a[_0xac8c('0x58')]):'null');return respondWithRpcPromise(_0xac8c('0x84'),_0xac8c('0x85'),_0x11e5d1);}return null;})[_0xac8c('0x37')](function(_0x281892){if(_0x281892){if(_0x591d3a[_0xac8c('0x58')][_0xac8c('0x86')]){_0x11e5d1[_0xac8c('0x2a')][_0xac8c('0x87')]=util[_0xac8c('0x7d')](_0xac8c('0x88'),_0x591d3a['user'][_0xac8c('0x39')]);_0x11e5d1[_0xac8c('0x2a')][_0xac8c('0x89')]=_0x11e5d1[_0xac8c('0x89')];_0x11e5d1['message'][_0xac8c('0x8a')]=_0xac8c('0x7a');return respondWithRpcPromise(_0xac8c('0x8b'),_0xac8c('0x8b'),{'event':_0xac8c('0x8c'),'message':_0x11e5d1[_0xac8c('0x2a')]},client9002)[_0xac8c('0x37')](function(){return _0x11e5d1;});}return _0x11e5d1;}return null;})['then'](respondWithResult(_0x6e3bad,null))['catch'](handleError(_0x6e3bad,null));};var interaction_log=require(_0xac8c('0x11'))('mail-interactions');exports[_0xac8c('0x36')]=function(_0x371a91,_0x9c2382,_0x5214ce){var _0x3286e4={'agent':{},'channel':_0xac8c('0x7b')};if(_0x371a91[_0xac8c('0x58')]['id']){delete _0x371a91[_0xac8c('0x58')]['id'];}_0x371a91['body'][_0xac8c('0x7e')]=_0x371a91[_0xac8c('0x58')][_0xac8c('0x7e')]||_0x371a91['user']['id'];_0x3286e4['agent']['id']=_0x371a91[_0xac8c('0x58')][_0xac8c('0x7e')];return db[_0xac8c('0x3c')][_0xac8c('0x56')]({'where':{'id':_0x371a91[_0xac8c('0x54')]['id'],'UserId':null}})[_0xac8c('0x37')](handleEntityNotFound(_0x9c2382,null))[_0xac8c('0x37')](function(_0x414567){if(_0x414567){_0x3286e4['message']=_0x414567[_0xac8c('0x80')]({'plain':!![]});return db['MailInteraction'][_0xac8c('0x56')]({'where':{'id':_0x414567[_0xac8c('0x8d')]}});}return null;})[_0xac8c('0x37')](handleEntityNotFound(_0x9c2382,null))[_0xac8c('0x37')](function(_0x2225f1){if(_0x2225f1){_0x3286e4[_0xac8c('0x81')]=_0x2225f1[_0xac8c('0x80')]({'plain':!![]});interaction_log[_0xac8c('0x22')](_0xac8c('0x8e'),_0x371a91[_0xac8c('0x6a')]['id'],_0x371a91[_0xac8c('0x6a')]['name'],_0x371a91[_0xac8c('0x6a')][_0xac8c('0x83')],_0x3286e4[_0xac8c('0x81')]['id'],_0x371a91[_0xac8c('0x58')]?JSON[_0xac8c('0x27')](_0x371a91[_0xac8c('0x58')]):_0xac8c('0x8f'));return respondWithRpcPromise('RejectMessage',_0xac8c('0x90'),_0x3286e4);}return null;})[_0xac8c('0x37')](function(_0x551c27){if(_0x551c27){_0x551c27[_0xac8c('0x2a')][_0xac8c('0x87')]=util[_0xac8c('0x7d')](_0xac8c('0x88'),_0x371a91[_0xac8c('0x6a')][_0xac8c('0x39')]);_0x551c27['message'][_0xac8c('0x89')]=_0x3286e4[_0xac8c('0x89')];_0x551c27[_0xac8c('0x2a')]['event']=_0xac8c('0x36');respondWithRpcPromise('EventManager','EventManager',{'event':'rejectmessage','message':_0x551c27[_0xac8c('0x2a')]},client9002);return _0x3286e4;}return null;})['then'](respondWithResult(_0x9c2382,null))[_0xac8c('0x2c')](handleError(_0x9c2382,null));};exports[_0xac8c('0x91')]=function(_0x1ce936,_0x3847e9){var _0x93564=moment()['unix']()[_0xac8c('0x92')]();var _0x57b185=path[_0xac8c('0x6d')](config[_0xac8c('0x93')],_0xac8c('0x94'),_0xac8c('0x95'),_0xac8c('0x96'));var _0x991ab5=path[_0xac8c('0x6d')](config[_0xac8c('0x93')],'server',_0xac8c('0x95'),_0xac8c('0x6c'));var _0x47584e=util[_0xac8c('0x7d')](_0xac8c('0x97'),_0x93564);return db[_0xac8c('0x3c')]['find']({'where':{'id':_0x1ce936['params']['id']},'attributes':['id',_0xac8c('0x58'),'from','to','cc',_0xac8c('0x98'),_0xac8c('0x99'),_0xac8c('0x9a')],'include':_0x1ce936[_0xac8c('0x41')][_0xac8c('0x6c')]?[{'model':db[_0xac8c('0x9b')],'as':_0xac8c('0x9c')}]:undefined})[_0xac8c('0x37')](handleEntityNotFound(_0x3847e9,null))[_0xac8c('0x37')](function(_0x56e868){if(_0x56e868){var _0x3f7cb5=_0x56e868;var _0x1adee0={'from':_0x3f7cb5[_0xac8c('0x9d')],'to':_0x3f7cb5['to'],'subject':_0x3f7cb5['subject'],'html':_0x3f7cb5[_0xac8c('0x58')],'headers':{'Date':moment(_0x3f7cb5[_0xac8c('0x9a')])[_0xac8c('0x7d')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x56e868['cc']){_0x1adee0[_0xac8c('0x9e')]['Cc']=_0x56e868['cc'];}if(_0x56e868[_0xac8c('0x98')]){_0x1adee0[_0xac8c('0x9e')]['Bcc']=_0x56e868[_0xac8c('0x98')];}return new BPromise(function(_0x22f482,_0x2e0102){if(_0x56e868['Attachments']){for(var _0x2e93cf=0x0;_0x2e93cf<_0x56e868['Attachments'][_0xac8c('0x55')];_0x2e93cf++){var _0x3f43a6=_0x56e868[_0xac8c('0x9c')][_0x2e93cf];var _0x183232=path[_0xac8c('0x6d')](_0x991ab5,_0x3f43a6['basename']);if(fs[_0xac8c('0x9f')](_0x183232)){_0x1adee0[_0xac8c('0x6c')][_0xac8c('0xa0')]({'name':_0x3f43a6[_0xac8c('0x39')],'contentType':_0x3f43a6[_0xac8c('0xa1')],'data':fs[_0xac8c('0xa2')](_0x183232)});}}}emlformat[_0xac8c('0xa3')](_0x1adee0,function(_0x5cf7ec,_0x494d57){if(_0x5cf7ec)return _0x2e0102(_0x5cf7ec);fs['writeFileSync'](path['join'](_0x57b185,_0x47584e),_0x494d57);return _0x22f482(_0x494d57);});});}})[_0xac8c('0x37')](function(_0x120629){if(_0x120629){return _0x3847e9[_0xac8c('0x91')](path[_0xac8c('0x6d')](_0x57b185,_0x47584e),_0x47584e,function(_0x43b61a){if(_0x43b61a){console[_0xac8c('0xa4')](_0xac8c('0xa5'),_0x43b61a);}else{fs[_0xac8c('0xa6')](path['join'](_0x57b185,_0x47584e));}});}})[_0xac8c('0x2c')](handleError(_0x3847e9,null));};