dafc1babac2b252dd3a3772f30c5a2a38224cd60
[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 _0xa886=['to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./mailMessage.socket','register','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','end','json','count','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','index','map','MailMessage','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','keys','length','find','body','params','describe','create','direction','out','secret','split','MailAccount','findOne','CmList','List','Contacts','updatedAt','DESC','Smtp','service','host','port','secure','authentication','user','pass','attachments','join','root','server/files/attachments','basename','CmContact','defaults','List\x20not\x20found','messageId','format','YYYY-MM-DD\x20HH:mm:ss','mail-interactions','accept','mail','readAt','MailInteraction','MailInteractionId','UserId','isNil','read1stAt','interaction','get','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','interface','SIP/%s','channel','event','EventManager','acceptmessage','../../config/logger','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','toString','tmp','files','message-%s.eml','createdAt','Attachment','Attachments','from','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','push','build','download','log','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox'];(function(_0x12151f,_0x36d93c){var _0x57052e=function(_0x85dd6){while(--_0x85dd6){_0x12151f['push'](_0x12151f['shift']());}};_0x57052e(++_0x36d93c);}(_0xa886,0x9d));var _0x6a88=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xa886[_0xa464c9];return _0x3d73c4;};'use strict';var pdf=require(_0x6a88('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6a88('0x1'));var zipdir=require(_0x6a88('0x2'));var jsonpatch=require(_0x6a88('0x3'));var rp=require('request-promise');var moment=require(_0x6a88('0x4'));var BPromise=require(_0x6a88('0x5'));var Mustache=require(_0x6a88('0x6'));var util=require(_0x6a88('0x7'));var path=require(_0x6a88('0x8'));var sox=require(_0x6a88('0x9'));var csv=require(_0x6a88('0xa'));var ejs=require(_0x6a88('0xb'));var fs=require('fs');var _=require(_0x6a88('0xc'));var squel=require(_0x6a88('0xd'));var crypto=require(_0x6a88('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6a88('0xa'));var querystring=require(_0x6a88('0xf'));var Papa=require(_0x6a88('0x10'));var Redis=require(_0x6a88('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6a88('0x12'));var as=require(_0x6a88('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6a88('0x14'));var utils=require(_0x6a88('0x15'));var config=require(_0x6a88('0x16'));var licenseUtil=require(_0x6a88('0x17'));var db=require(_0x6a88('0x18'))['db'];config[_0x6a88('0x19')]=_['defaults'](config[_0x6a88('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x6a88('0x1a'))(new Redis(config['redis']));require(_0x6a88('0x1b'))[_0x6a88('0x1c')](socket);var jayson=require(_0x6a88('0x1d'));var client=jayson[_0x6a88('0x1e')][_0x6a88('0x1f')]({'port':0x232c});var client9003=jayson['client'][_0x6a88('0x1f')]({'port':0x232b});var client9002=jayson[_0x6a88('0x1e')][_0x6a88('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x4277f6,_0x17f480,_0x17532d,_0x30c4a6){return new BPromise(function(_0x405468,_0x14e7ff){var _0x4b0679=_0x30c4a6||client;return _0x4b0679[_0x6a88('0x20')](_0x4277f6,_0x17532d)[_0x6a88('0x21')](function(_0x36576e){logger[_0x6a88('0x22')](_0x6a88('0x23'),_0x17f480,_0x6a88('0x24'));logger[_0x6a88('0x25')](_0x6a88('0x26'),_0x17f480,'request\x20sent',JSON[_0x6a88('0x27')](_0x36576e));if(_0x36576e[_0x6a88('0x28')]){if(_0x36576e[_0x6a88('0x28')]['code']===0x1f4){logger[_0x6a88('0x28')](_0x6a88('0x23'),_0x17f480,_0x36576e[_0x6a88('0x28')][_0x6a88('0x29')]);return _0x14e7ff(_0x36576e['error']['message']);}logger[_0x6a88('0x28')](_0x6a88('0x23'),_0x17f480,_0x36576e['error'][_0x6a88('0x29')]);return _0x405468(_0x36576e[_0x6a88('0x28')][_0x6a88('0x29')]);}else{logger[_0x6a88('0x22')]('MailMessage,\x20%s,\x20%s',_0x17f480,'request\x20sent');_0x405468(_0x36576e[_0x6a88('0x2a')]['message']);}})[_0x6a88('0x2b')](function(_0x447370){logger[_0x6a88('0x28')]('MailMessage,\x20%s,\x20%s',_0x17f480,_0x447370);_0x14e7ff(_0x447370);});});}function respondWithStatusCode(_0x17e3b2,_0xcd3e25){_0xcd3e25=_0xcd3e25||0xcc;return function(_0x2c3540){if(_0x2c3540){return _0x17e3b2['sendStatus'](_0xcd3e25);}return _0x17e3b2[_0x6a88('0x2c')](_0xcd3e25)[_0x6a88('0x2d')]();};}function respondWithResult(_0x545714,_0x87a279){_0x87a279=_0x87a279||0xc8;return function(_0x381f90){if(_0x381f90){return _0x545714[_0x6a88('0x2c')](_0x87a279)[_0x6a88('0x2e')](_0x381f90);}};}function respondWithFilteredResult(_0x59d119,_0xc44c6c){return function(_0x647b14){if(_0x647b14){var _0x5bdd7e=_0x647b14[_0x6a88('0x2f')],_0x1fb754=_0xc44c6c['offset'],_0x224259=_0xc44c6c['offset']+_0xc44c6c[_0x6a88('0x30')],_0x3f9894;if(_0x224259>=_0x5bdd7e){_0x224259=_0x5bdd7e;_0x3f9894=0xc8;}else{_0x3f9894=0xce;}_0x59d119[_0x6a88('0x2c')](_0x3f9894);return _0x59d119[_0x6a88('0x31')](_0x6a88('0x32'),_0x1fb754+'-'+_0x224259+'/'+_0x5bdd7e)[_0x6a88('0x2e')](_0x647b14);}return null;};}function patchUpdates(_0x32de70){return function(_0x17ec2a){try{jsonpatch[_0x6a88('0x33')](_0x17ec2a,_0x32de70,!![]);}catch(_0x409ed6){return BPromise[_0x6a88('0x34')](_0x409ed6);}return _0x17ec2a[_0x6a88('0x35')]();};}function saveUpdates(_0x42128a,_0x27a952){return function(_0x4e7824){if(_0x4e7824){return _0x4e7824[_0x6a88('0x36')](_0x42128a)['then'](function(_0x1fc260){return _0x1fc260;});}return null;};}function removeEntity(_0x22a108,_0x99214e){return function(_0x465392){if(_0x465392){return _0x465392[_0x6a88('0x37')]()['then'](function(){_0x22a108[_0x6a88('0x2c')](0xcc)[_0x6a88('0x2d')]();});}};}function handleEntityNotFound(_0x3a09ed,_0x2ea0b7){return function(_0x4a2ae6){if(!_0x4a2ae6){_0x3a09ed[_0x6a88('0x38')](0x194);}return _0x4a2ae6;};}function handleError(_0x9599ab,_0x4a127b){_0x4a127b=_0x4a127b||0x1f4;return function(_0x1f5e9f){logger[_0x6a88('0x28')](_0x1f5e9f[_0x6a88('0x39')]);if(_0x1f5e9f[_0x6a88('0x3a')]){delete _0x1f5e9f[_0x6a88('0x3a')];}_0x9599ab[_0x6a88('0x2c')](_0x4a127b)[_0x6a88('0x3b')](_0x1f5e9f);};}exports[_0x6a88('0x3c')]=function(_0x18e60a,_0x5da5f5){var _0x2f6725={},_0x43e622={},_0x455f31={'count':0x0,'rows':[]};var _0x48b8d1=_[_0x6a88('0x3d')](db[_0x6a88('0x3e')][_0x6a88('0x3f')],function(_0x3fce23){return{'name':_0x3fce23[_0x6a88('0x40')],'type':_0x3fce23[_0x6a88('0x41')][_0x6a88('0x42')]};});_0x43e622[_0x6a88('0x43')]=_['map'](_0x48b8d1,_0x6a88('0x3a'));_0x43e622[_0x6a88('0x44')]=_['keys'](_0x18e60a[_0x6a88('0x44')]);_0x43e622['filters']=_[_0x6a88('0x45')](_0x43e622[_0x6a88('0x43')],_0x43e622[_0x6a88('0x44')]);_0x2f6725[_0x6a88('0x46')]=_[_0x6a88('0x45')](_0x43e622[_0x6a88('0x43')],qs[_0x6a88('0x47')](_0x18e60a[_0x6a88('0x44')]['fields']));_0x2f6725[_0x6a88('0x46')]=_0x2f6725[_0x6a88('0x46')]['length']?_0x2f6725[_0x6a88('0x46')]:_0x43e622[_0x6a88('0x43')];if(!_0x18e60a['query'][_0x6a88('0x48')](_0x6a88('0x49'))){_0x2f6725[_0x6a88('0x30')]=qs[_0x6a88('0x30')](_0x18e60a[_0x6a88('0x44')][_0x6a88('0x30')]);_0x2f6725[_0x6a88('0x4a')]=qs['offset'](_0x18e60a[_0x6a88('0x44')]['offset']);}_0x2f6725[_0x6a88('0x4b')]=qs[_0x6a88('0x4c')](_0x18e60a[_0x6a88('0x44')][_0x6a88('0x4c')]);_0x2f6725[_0x6a88('0x4d')]=qs[_0x6a88('0x4e')](_[_0x6a88('0x4f')](_0x18e60a[_0x6a88('0x44')],_0x43e622['filters']),_0x48b8d1);if(_0x18e60a[_0x6a88('0x44')]['filter']){_0x2f6725['where']=_[_0x6a88('0x50')](_0x2f6725[_0x6a88('0x4d')],{'$or':_[_0x6a88('0x3d')](_0x48b8d1,function(_0x4ad570){if(_0x4ad570[_0x6a88('0x41')]!==_0x6a88('0x51')){var _0x280a24={};_0x280a24[_0x4ad570[_0x6a88('0x3a')]]={'$like':'%'+_0x18e60a[_0x6a88('0x44')][_0x6a88('0x52')]+'%'};return _0x280a24;}})});}_0x2f6725=_[_0x6a88('0x50')]({},_0x2f6725,_0x18e60a[_0x6a88('0x53')]);var _0x1ec1a7={'where':_0x2f6725[_0x6a88('0x4d')]};return db['MailMessage'][_0x6a88('0x2f')](_0x1ec1a7)[_0x6a88('0x21')](function(_0x402e74){_0x455f31[_0x6a88('0x2f')]=_0x402e74;if(_0x18e60a[_0x6a88('0x44')][_0x6a88('0x54')]){_0x2f6725[_0x6a88('0x55')]=[{'all':!![]}];}return db[_0x6a88('0x3e')][_0x6a88('0x56')](_0x2f6725);})[_0x6a88('0x21')](function(_0x716c3e){_0x455f31[_0x6a88('0x57')]=_0x716c3e;return _0x455f31;})[_0x6a88('0x21')](respondWithFilteredResult(_0x5da5f5,_0x2f6725))[_0x6a88('0x2b')](handleError(_0x5da5f5,null));};exports['show']=function(_0x49ef7b,_0x2bbe91){var _0x226c8e={'raw':!![],'where':{'id':_0x49ef7b['params']['id']}},_0x13ad3f={};_0x13ad3f[_0x6a88('0x43')]=_['keys'](db['MailMessage'][_0x6a88('0x3f')]);_0x13ad3f['query']=_[_0x6a88('0x58')](_0x49ef7b[_0x6a88('0x44')]);_0x13ad3f[_0x6a88('0x4e')]=_[_0x6a88('0x45')](_0x13ad3f[_0x6a88('0x43')],_0x13ad3f['query']);_0x226c8e[_0x6a88('0x46')]=_[_0x6a88('0x45')](_0x13ad3f[_0x6a88('0x43')],qs['fields'](_0x49ef7b['query'][_0x6a88('0x47')]));_0x226c8e[_0x6a88('0x46')]=_0x226c8e['attributes'][_0x6a88('0x59')]?_0x226c8e[_0x6a88('0x46')]:_0x13ad3f['model'];if(_0x49ef7b[_0x6a88('0x44')][_0x6a88('0x54')]){_0x226c8e[_0x6a88('0x55')]=[{'all':!![]}];}_0x226c8e=_[_0x6a88('0x50')]({},_0x226c8e,_0x49ef7b[_0x6a88('0x53')]);return db['MailMessage'][_0x6a88('0x5a')](_0x226c8e)['then'](handleEntityNotFound(_0x2bbe91,null))['then'](respondWithResult(_0x2bbe91,null))[_0x6a88('0x2b')](handleError(_0x2bbe91,null));};exports[_0x6a88('0x36')]=function(_0x45a759,_0x15480c){if(_0x45a759['body']['id']){delete _0x45a759[_0x6a88('0x5b')]['id'];}return db[_0x6a88('0x3e')][_0x6a88('0x5a')]({'where':{'id':_0x45a759[_0x6a88('0x5c')]['id']}})[_0x6a88('0x21')](handleEntityNotFound(_0x15480c,null))[_0x6a88('0x21')](saveUpdates(_0x45a759['body'],null))[_0x6a88('0x21')](respondWithResult(_0x15480c,null))[_0x6a88('0x2b')](handleError(_0x15480c,null));};exports[_0x6a88('0x37')]=function(_0x2ecb07,_0x57f6ac){return db['MailMessage']['find']({'where':{'id':_0x2ecb07[_0x6a88('0x5c')]['id']}})[_0x6a88('0x21')](handleEntityNotFound(_0x57f6ac,null))[_0x6a88('0x21')](removeEntity(_0x57f6ac,null))['catch'](handleError(_0x57f6ac,null));};exports[_0x6a88('0x5d')]=function(_0x426f30,_0x548692){return db[_0x6a88('0x3e')]['describe']()[_0x6a88('0x21')](respondWithResult(_0x548692,null))[_0x6a88('0x2b')](handleError(_0x548692,null));};exports[_0x6a88('0x5e')]=function(_0x4a7779,_0x5af536){return db[_0x6a88('0x3e')]['create'](_0x4a7779[_0x6a88('0x5b')])['then'](function(_0x3d10bd){if(_0x3d10bd){if(_0x3d10bd[_0x6a88('0x5f')]===_0x6a88('0x60')&&!_0x3d10bd[_0x6a88('0x61')]){var _0x30a61a,_0x507ad5,_0x2b4202;if(_0x4a7779[_0x6a88('0x5b')]['to']){_0x507ad5=_0x4a7779[_0x6a88('0x5b')]['to'][_0x6a88('0x62')](',')[0x0];}return db[_0x6a88('0x63')][_0x6a88('0x64')]({'where':{'id':_0x3d10bd['MailAccountId']},'include':[{'model':db[_0x6a88('0x65')],'as':_0x6a88('0x66'),'include':[{'model':db['CmContact'],'as':_0x6a88('0x67'),'where':{'email':_0x507ad5},'limit':0x1,'order':[[_0x6a88('0x68'),_0x6a88('0x69')]]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})['then'](function(_0x43a448){_0x30a61a=_0x43a448;if(_0x30a61a&&_0x30a61a[_0x6a88('0x6a')]){var _0x7bc08c={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x30a61a['Smtp'][_0x6a88('0x6b')])){_0x7bc08c[_0x6a88('0x6c')]=_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x6c')];_0x7bc08c[_0x6a88('0x6d')]=_0x30a61a['Smtp'][_0x6a88('0x6d')];_0x7bc08c[_0x6a88('0x6e')]=_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x6e')];if(_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x6f')]){_0x7bc08c['auth']={'user':_0x30a61a['Smtp'][_0x6a88('0x70')],'pass':_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x71')]};}}else{_0x7bc08c[_0x6a88('0x6b')]=_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x6b')];_0x7bc08c['auth']={'user':_0x30a61a['Smtp'][_0x6a88('0x70')],'pass':_0x30a61a[_0x6a88('0x6a')][_0x6a88('0x71')]};_0x7bc08c[_0x6a88('0x6e')]=_0x30a61a[_0x6a88('0x6a')]['secure'];}if(_0x4a7779[_0x6a88('0x5b')][_0x6a88('0x72')]&&_0x4a7779['body']['attachments'][_0x6a88('0x59')]){for(var _0x57a35a=0x0;_0x57a35a<_0x4a7779[_0x6a88('0x5b')][_0x6a88('0x72')][_0x6a88('0x59')];_0x57a35a+=0x1){_0x4a7779['body'][_0x6a88('0x72')][_0x57a35a]={'filename':_0x4a7779[_0x6a88('0x5b')][_0x6a88('0x72')][_0x57a35a][_0x6a88('0x3a')],'path':path[_0x6a88('0x73')](config[_0x6a88('0x74')],_0x6a88('0x75'),_0x4a7779[_0x6a88('0x5b')][_0x6a88('0x72')][_0x57a35a][_0x6a88('0x76')])};}}_0x2b4202={'account':_0x7bc08c,'message':_0x4a7779[_0x6a88('0x5b')]};return;}})[_0x6a88('0x21')](function(){if(_0x30a61a[_0x6a88('0x66')]){if(_0x30a61a[_0x6a88('0x66')]['Contacts'][_0x6a88('0x59')]){return _0x30a61a[_0x6a88('0x66')][_0x6a88('0x67')][0x0];}else{return db[_0x6a88('0x77')][_0x6a88('0x5e')](_[_0x6a88('0x78')](_0x4a7779[_0x6a88('0x5b')],{'firstName':_0x4a7779[_0x6a88('0x5b')]['to'],'email':_0x4a7779[_0x6a88('0x5b')]['to'],'phone':_0x4a7779[_0x6a88('0x5b')]['to'],'ListId':_0x30a61a['ListId']}));}}else{throw new Error(_0x6a88('0x79'));}})[_0x6a88('0x21')](function(){if(_0x2b4202){return respondWithRpcPromise('SendMail','sendMail',_0x2b4202,client9003)['then'](function(_0x45058c){return _0x3d10bd[_0x6a88('0x36')]({'read':!![],'messageId':_0x45058c[_0x6a88('0x7a')],'sentAt':moment()[_0x6a88('0x7b')](_0x6a88('0x7c'))});})[_0x6a88('0x2b')](function(_0x4d85b9){logger['error']('%s',JSON[_0x6a88('0x27')](_0x4d85b9));return _0x3d10bd;});}return _0x3d10bd;});}return _0x3d10bd;}})[_0x6a88('0x21')](respondWithResult(_0x5af536,0xc9))['catch'](handleError(_0x5af536,null));};var interaction_log=require('../../config/logger')(_0x6a88('0x7d'));exports[_0x6a88('0x7e')]=function(_0x10bac2,_0x4c3b37,_0xac4c20){var _0x5152bf={'channel':_0x6a88('0x7f')};if(_0x10bac2[_0x6a88('0x5b')]['id']){delete _0x10bac2[_0x6a88('0x5b')]['id'];}_0x10bac2[_0x6a88('0x5b')]['read']=!![];_0x10bac2['body'][_0x6a88('0x80')]=moment()[_0x6a88('0x7b')](_0x6a88('0x7c'));_0x10bac2['body']['UserId']=_0x10bac2[_0x6a88('0x5b')]['UserId']||_0x10bac2[_0x6a88('0x70')]['id'];return db['MailMessage'][_0x6a88('0x5a')]({'where':{'id':_0x10bac2[_0x6a88('0x5c')]['id'],'UserId':null},'include':[{'model':db[_0x6a88('0x77')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x4c3b37,null))[_0x6a88('0x21')](saveUpdates(_0x10bac2['body'],null))[_0x6a88('0x21')](function(_0x5f5495){if(_0x5f5495){_0x5152bf[_0x6a88('0x29')]=_0x5f5495['get']({'plain':!![]});return db[_0x6a88('0x81')][_0x6a88('0x5a')]({'where':{'id':_0x5f5495[_0x6a88('0x82')]}});}return null;})[_0x6a88('0x21')](handleEntityNotFound(_0x4c3b37,null))[_0x6a88('0x21')](function(_0x430d46){if(_0x430d46){return _0x430d46[_0x6a88('0x36')]({'UserId':_0x10bac2[_0x6a88('0x5b')][_0x6a88('0x83')],'read1stAt':_[_0x6a88('0x84')](_0x430d46[_0x6a88('0x85')])?moment()[_0x6a88('0x7b')](_0x6a88('0x7c')):undefined});}return null;})['then'](function(_0x6f8260){if(_0x6f8260){_0x5152bf[_0x6a88('0x86')]=_0x6f8260[_0x6a88('0x87')]({'plain':!![]});interaction_log[_0x6a88('0x22')](_0x6a88('0x88'),_0x10bac2[_0x6a88('0x70')]['id'],_0x10bac2['user'][_0x6a88('0x3a')],_0x10bac2[_0x6a88('0x70')][_0x6a88('0x89')],_0x5152bf[_0x6a88('0x86')]['id'],_0x10bac2[_0x6a88('0x5b')]?JSON['stringify'](_0x10bac2['body']):_0x6a88('0x8a'));return respondWithRpcPromise(_0x6a88('0x8b'),_0x6a88('0x8c'),_0x5152bf);}return null;})[_0x6a88('0x21')](function(_0x4ce8e9){if(_0x4ce8e9){if(_0x10bac2['body']['manual']){_0x5152bf['message'][_0x6a88('0x8d')]=util[_0x6a88('0x7b')](_0x6a88('0x8e'),_0x10bac2[_0x6a88('0x70')][_0x6a88('0x3a')]);_0x5152bf['message'][_0x6a88('0x8f')]=_0x5152bf[_0x6a88('0x8f')];_0x5152bf[_0x6a88('0x29')][_0x6a88('0x90')]=_0x6a88('0x7e');return respondWithRpcPromise(_0x6a88('0x91'),'EventManager',{'event':_0x6a88('0x92'),'message':_0x5152bf['message']},client9002)[_0x6a88('0x21')](function(){return _0x5152bf;});}return _0x5152bf;}return null;})[_0x6a88('0x21')](respondWithResult(_0x4c3b37,null))[_0x6a88('0x2b')](handleError(_0x4c3b37,null));};var interaction_log=require(_0x6a88('0x93'))(_0x6a88('0x7d'));exports[_0x6a88('0x34')]=function(_0x103e76,_0x40ca76,_0x2219f0){var _0x1446b7={'agent':{},'channel':_0x6a88('0x7f')};if(_0x103e76['body']['id']){delete _0x103e76[_0x6a88('0x5b')]['id'];}_0x103e76[_0x6a88('0x5b')][_0x6a88('0x83')]=_0x103e76[_0x6a88('0x5b')]['UserId']||_0x103e76['user']['id'];_0x1446b7['agent']['id']=_0x103e76[_0x6a88('0x5b')][_0x6a88('0x83')];return db[_0x6a88('0x3e')]['find']({'where':{'id':_0x103e76['params']['id'],'UserId':null}})[_0x6a88('0x21')](handleEntityNotFound(_0x40ca76,null))[_0x6a88('0x21')](function(_0x2a8d06){if(_0x2a8d06){_0x1446b7[_0x6a88('0x29')]=_0x2a8d06[_0x6a88('0x87')]({'plain':!![]});return db[_0x6a88('0x81')][_0x6a88('0x5a')]({'where':{'id':_0x2a8d06['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x40ca76,null))[_0x6a88('0x21')](function(_0x2eba9c){if(_0x2eba9c){_0x1446b7['interaction']=_0x2eba9c[_0x6a88('0x87')]({'plain':!![]});interaction_log[_0x6a88('0x22')](_0x6a88('0x94'),_0x103e76[_0x6a88('0x70')]['id'],_0x103e76[_0x6a88('0x70')][_0x6a88('0x3a')],_0x103e76[_0x6a88('0x70')][_0x6a88('0x89')],_0x1446b7[_0x6a88('0x86')]['id'],_0x103e76['body']?JSON[_0x6a88('0x27')](_0x103e76[_0x6a88('0x5b')]):_0x6a88('0x8a'));return respondWithRpcPromise(_0x6a88('0x95'),_0x6a88('0x96'),_0x1446b7);}return null;})[_0x6a88('0x21')](function(_0x3dae6c){if(_0x3dae6c){_0x3dae6c[_0x6a88('0x29')][_0x6a88('0x8d')]=util[_0x6a88('0x7b')](_0x6a88('0x8e'),_0x103e76[_0x6a88('0x70')][_0x6a88('0x3a')]);_0x3dae6c['message']['channel']=_0x1446b7[_0x6a88('0x8f')];_0x3dae6c[_0x6a88('0x29')][_0x6a88('0x90')]=_0x6a88('0x34');respondWithRpcPromise(_0x6a88('0x91'),_0x6a88('0x91'),{'event':'rejectmessage','message':_0x3dae6c[_0x6a88('0x29')]},client9002);return _0x1446b7;}return null;})[_0x6a88('0x21')](respondWithResult(_0x40ca76,null))[_0x6a88('0x2b')](handleError(_0x40ca76,null));};exports['download']=function(_0xc4f818,_0x592f1a){var _0x205c21=moment()['unix']()[_0x6a88('0x97')]();var _0x36cb5b=path['join'](config['root'],'server','files',_0x6a88('0x98'));var _0xe2bfc0=path[_0x6a88('0x73')](config[_0x6a88('0x74')],'server',_0x6a88('0x99'),'attachments');var _0x1c1fba=util['format'](_0x6a88('0x9a'),_0x205c21);return db[_0x6a88('0x3e')]['find']({'where':{'id':_0xc4f818['params']['id']},'attributes':['id',_0x6a88('0x5b'),'from','to','cc','bcc','subject',_0x6a88('0x9b')],'include':_0xc4f818['query']['attachments']?[{'model':db[_0x6a88('0x9c')],'as':_0x6a88('0x9d')}]:undefined})[_0x6a88('0x21')](handleEntityNotFound(_0x592f1a,null))['then'](function(_0x37af61){if(_0x37af61){var _0x1610b6=_0x37af61;var _0x5181d5={'from':_0x1610b6[_0x6a88('0x9e')],'to':_0x1610b6['to'],'subject':_0x1610b6['subject'],'html':_0x1610b6[_0x6a88('0x5b')],'headers':{'Date':moment(_0x1610b6['createdAt'])[_0x6a88('0x7b')](_0x6a88('0x9f'))},'attachments':[]};if(_0x37af61['cc']){_0x5181d5[_0x6a88('0xa0')]['Cc']=_0x37af61['cc'];}if(_0x37af61[_0x6a88('0xa1')]){_0x5181d5[_0x6a88('0xa0')][_0x6a88('0xa2')]=_0x37af61[_0x6a88('0xa1')];}return new BPromise(function(_0x5018f2,_0x435f43){if(_0x37af61['Attachments']){for(var _0xec60b0=0x0;_0xec60b0<_0x37af61[_0x6a88('0x9d')][_0x6a88('0x59')];_0xec60b0++){var _0x382acc=_0x37af61['Attachments'][_0xec60b0];var _0x529f3c=path['join'](_0xe2bfc0,_0x382acc['basename']);if(fs['existsSync'](_0x529f3c)){_0x5181d5[_0x6a88('0x72')][_0x6a88('0xa3')]({'name':_0x382acc['name'],'contentType':_0x382acc[_0x6a88('0x41')],'data':fs['readFileSync'](_0x529f3c)});}}}emlformat[_0x6a88('0xa4')](_0x5181d5,function(_0x3e3d3e,_0x3f2ae7){if(_0x3e3d3e)return _0x435f43(_0x3e3d3e);fs['writeFileSync'](path[_0x6a88('0x73')](_0x36cb5b,_0x1c1fba),_0x3f2ae7);return _0x5018f2(_0x3f2ae7);});});}})[_0x6a88('0x21')](function(_0x43da63){if(_0x43da63){return _0x592f1a[_0x6a88('0xa5')](path['join'](_0x36cb5b,_0x1c1fba),_0x1c1fba,function(_0x58d5b4){if(_0x58d5b4){console[_0x6a88('0xa6')]('err',_0x58d5b4);}else{fs['unlinkSync'](path[_0x6a88('0x73')](_0x36cb5b,_0x1c1fba));}});}})[_0x6a88('0x2b')](handleError(_0x592f1a,null));};