Built motion from commit f25620e4.|2.6.30
[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 _0x4c20=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','include','findAll','rows','show','params','includeAll','options','find','catch','update','body','describe','create','direction','out','secret','split','MailAccountId','CmList','List','Contacts','CloudProvider','Smtp','getSmtpOptions','attachments','root','server/files/attachments','CmContact','ListId','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','stringify','accept','mail','read','UserId','user','agent','get','MailInteraction','MailInteractionId','isNil','read1stAt','interaction','AcceptMessage','acceptMessage','ContactId','sequelize','QueryTypes','contact','User','fullname','email','internal','manual','interface','channel','motionChannel','event','EventManager','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','SELECT','SIP/%s','fromString','rejectmessage','download','unix','toString','join','server','files','tmp','message-%s.eml','from','bcc','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','basename','build','writeFileSync','bluebird','util','path','lodash','ioredis','html-to-text','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','html-entities','register','jayson/promise','http','client','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','error','message','info','status','json','offset','undefined','count','limit','set','Content-Range','destroy','end','stack','name','send','index','map','MailMessage','rawAttributes','type','model','keys','query','filters','intersection','attributes'];(function(_0x3cdd16,_0x58d2d6){var _0x15cad7=function(_0x2cdd6c){while(--_0x2cdd6c){_0x3cdd16['push'](_0x3cdd16['shift']());}};_0x15cad7(++_0x58d2d6);}(_0x4c20,0x66));var _0x04c2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4c20[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var moment=require('moment');var BPromise=require(_0x04c2('0x0'));var util=require(_0x04c2('0x1'));var path=require(_0x04c2('0x2'));var fs=require('fs');var _=require(_0x04c2('0x3'));var Redis=require(_0x04c2('0x4'));var htmlToText=require(_0x04c2('0x5'));var qs=require('../../components/parsers/qs');var logger=require(_0x04c2('0x6'))(_0x04c2('0x7'));var interaction_log=require(_0x04c2('0x6'))('mail-interactions');var config=require(_0x04c2('0x8'));var db=require(_0x04c2('0x9'))['db'];config[_0x04c2('0xa')]=_[_0x04c2('0xb')](config[_0x04c2('0xa')],{'host':_0x04c2('0xc'),'port':0x18eb});var socket=require(_0x04c2('0xd'))(new Redis(config['redis']));var htmlEntities=require(_0x04c2('0xe'));require('./mailMessage.socket')[_0x04c2('0xf')](socket);var jayson=require(_0x04c2('0x10'));var client=jayson['client'][_0x04c2('0x11')]({'port':0x232c});var client9003=jayson[_0x04c2('0x12')]['http']({'port':0x232b});var client9002=jayson[_0x04c2('0x12')][_0x04c2('0x11')]({'port':0x232a});function respondWithRpcPromise(_0x4553a8,_0x1ad04c,_0x1091a2,_0x24c090){return new BPromise(function(_0x1a20bd,_0x94f67c){var _0x5b2f99=_0x24c090||client;return _0x5b2f99[_0x04c2('0x13')](_0x4553a8,_0x1091a2)[_0x04c2('0x14')](function(_0x3122dd){logger['info'](_0x04c2('0x15'),_0x1ad04c,_0x04c2('0x16'));logger[_0x04c2('0x17')](_0x04c2('0x18'),_0x1ad04c,'request\x20sent',JSON['stringify'](_0x3122dd));if(_0x3122dd[_0x04c2('0x19')]){if(_0x3122dd[_0x04c2('0x19')]['code']===0x1f4){logger['error'](_0x04c2('0x15'),_0x1ad04c,_0x3122dd['error'][_0x04c2('0x1a')]);return _0x94f67c(_0x3122dd[_0x04c2('0x19')]['message']);}logger['error'](_0x04c2('0x15'),_0x1ad04c,_0x3122dd['error'][_0x04c2('0x1a')]);return _0x1a20bd(_0x3122dd[_0x04c2('0x19')]['message']);}else{logger[_0x04c2('0x1b')](_0x04c2('0x15'),_0x1ad04c,_0x04c2('0x16'));_0x1a20bd(_0x3122dd['result']['message']);}})['catch'](function(_0x2db6ac){logger[_0x04c2('0x19')]('MailMessage,\x20%s,\x20%s',_0x1ad04c,_0x2db6ac);_0x94f67c(_0x2db6ac);});});}function respondWithResult(_0x438f3f,_0x122c7e){_0x122c7e=_0x122c7e||0xc8;return function(_0x26435b){if(_0x26435b){return _0x438f3f[_0x04c2('0x1c')](_0x122c7e)[_0x04c2('0x1d')](_0x26435b);}};}function respondWithFilteredResult(_0x4238d1,_0x535c82){return function(_0x21c4b6){if(_0x21c4b6){var _0x341ec6=typeof _0x535c82[_0x04c2('0x1e')]===_0x04c2('0x1f')&&typeof _0x535c82['limit']==='undefined';var _0x45413e=_0x21c4b6['count'];var _0x121c08=_0x341ec6?0x0:_0x535c82[_0x04c2('0x1e')];var _0x37765a=_0x341ec6?_0x21c4b6[_0x04c2('0x20')]:_0x535c82[_0x04c2('0x1e')]+_0x535c82[_0x04c2('0x21')];var _0x1afce2;if(_0x37765a>=_0x45413e){_0x37765a=_0x45413e;_0x1afce2=0xc8;}else{_0x1afce2=0xce;}_0x4238d1[_0x04c2('0x1c')](_0x1afce2);return _0x4238d1[_0x04c2('0x22')](_0x04c2('0x23'),_0x121c08+'-'+_0x37765a+'/'+_0x45413e)[_0x04c2('0x1d')](_0x21c4b6);}return null;};}function saveUpdates(_0x5ae579){return function(_0x497907){if(_0x497907){return _0x497907['update'](_0x5ae579)[_0x04c2('0x14')](function(_0x4c1534){return _0x4c1534;});}return null;};}function removeEntity(_0xed3de9){return function(_0x2c789d){if(_0x2c789d){return _0x2c789d[_0x04c2('0x24')]()['then'](function(){_0xed3de9[_0x04c2('0x1c')](0xcc)[_0x04c2('0x25')]();});}};}function handleEntityNotFound(_0x34d20b){return function(_0x45d775){if(!_0x45d775){_0x34d20b['sendStatus'](0x194);}return _0x45d775;};}function handleError(_0x53d676,_0x563ee4){_0x563ee4=_0x563ee4||0x1f4;return function(_0x1c50c7){logger[_0x04c2('0x19')](_0x1c50c7[_0x04c2('0x26')]);if(_0x1c50c7['name']){delete _0x1c50c7[_0x04c2('0x27')];}_0x53d676[_0x04c2('0x1c')](_0x563ee4)[_0x04c2('0x28')](_0x1c50c7);};}exports[_0x04c2('0x29')]=function(_0x234b9c,_0x66bbbf){var _0x115ec5={},_0x4e9535={},_0x437fa0={'count':0x0,'rows':[]};var _0x556331=_[_0x04c2('0x2a')](db[_0x04c2('0x2b')][_0x04c2('0x2c')],function(_0x3922ae){return{'name':_0x3922ae['fieldName'],'type':_0x3922ae[_0x04c2('0x2d')]['key']};});_0x4e9535[_0x04c2('0x2e')]=_[_0x04c2('0x2a')](_0x556331,_0x04c2('0x27'));_0x4e9535['query']=_[_0x04c2('0x2f')](_0x234b9c[_0x04c2('0x30')]);_0x4e9535[_0x04c2('0x31')]=_[_0x04c2('0x32')](_0x4e9535['model'],_0x4e9535['query']);_0x115ec5[_0x04c2('0x33')]=_['intersection'](_0x4e9535[_0x04c2('0x2e')],qs['fields'](_0x234b9c['query'][_0x04c2('0x34')]));_0x115ec5[_0x04c2('0x33')]=_0x115ec5[_0x04c2('0x33')][_0x04c2('0x35')]?_0x115ec5[_0x04c2('0x33')]:_0x4e9535[_0x04c2('0x2e')];if(!_0x234b9c[_0x04c2('0x30')][_0x04c2('0x36')](_0x04c2('0x37'))){_0x115ec5['limit']=qs[_0x04c2('0x21')](_0x234b9c[_0x04c2('0x30')]['limit']);_0x115ec5['offset']=qs[_0x04c2('0x1e')](_0x234b9c[_0x04c2('0x30')][_0x04c2('0x1e')]);}_0x115ec5[_0x04c2('0x38')]=qs[_0x04c2('0x39')](_0x234b9c[_0x04c2('0x30')][_0x04c2('0x39')]);_0x115ec5[_0x04c2('0x3a')]=qs[_0x04c2('0x31')](_[_0x04c2('0x3b')](_0x234b9c['query'],_0x4e9535[_0x04c2('0x31')]),_0x556331);if(_0x234b9c[_0x04c2('0x30')]['filter']){_0x115ec5[_0x04c2('0x3a')]=_[_0x04c2('0x3c')](_0x115ec5[_0x04c2('0x3a')],{'$or':_[_0x04c2('0x2a')](_0x556331,function(_0x554340){if(_0x554340[_0x04c2('0x2d')]!==_0x04c2('0x3d')){var _0x14aa24={};_0x14aa24[_0x554340[_0x04c2('0x27')]]={'$like':'%'+_0x234b9c[_0x04c2('0x30')]['filter']+'%'};return _0x14aa24;}})});}_0x115ec5=_[_0x04c2('0x3c')]({},_0x115ec5,_0x234b9c['options']);var _0x55001b={'where':_0x115ec5[_0x04c2('0x3a')]};return db[_0x04c2('0x2b')]['count'](_0x55001b)[_0x04c2('0x14')](function(_0x36ef79){_0x437fa0[_0x04c2('0x20')]=_0x36ef79;if(_0x234b9c[_0x04c2('0x30')]['includeAll']){_0x115ec5[_0x04c2('0x3e')]=[{'all':!![]}];}return db['MailMessage'][_0x04c2('0x3f')](_0x115ec5);})[_0x04c2('0x14')](function(_0x428806){_0x437fa0[_0x04c2('0x40')]=_0x428806;return _0x437fa0;})[_0x04c2('0x14')](respondWithFilteredResult(_0x66bbbf,_0x115ec5))['catch'](handleError(_0x66bbbf,null));};exports[_0x04c2('0x41')]=function(_0x5dd6a9,_0x1255b7){var _0x50f988={'raw':!![],'where':{'id':_0x5dd6a9[_0x04c2('0x42')]['id']}},_0x34f0ce={};_0x34f0ce['model']=_['keys'](db[_0x04c2('0x2b')]['rawAttributes']);_0x34f0ce[_0x04c2('0x30')]=_['keys'](_0x5dd6a9[_0x04c2('0x30')]);_0x34f0ce['filters']=_[_0x04c2('0x32')](_0x34f0ce['model'],_0x34f0ce['query']);_0x50f988[_0x04c2('0x33')]=_[_0x04c2('0x32')](_0x34f0ce[_0x04c2('0x2e')],qs['fields'](_0x5dd6a9['query'][_0x04c2('0x34')]));_0x50f988[_0x04c2('0x33')]=_0x50f988[_0x04c2('0x33')][_0x04c2('0x35')]?_0x50f988[_0x04c2('0x33')]:_0x34f0ce[_0x04c2('0x2e')];if(_0x5dd6a9[_0x04c2('0x30')][_0x04c2('0x43')]){_0x50f988[_0x04c2('0x3e')]=[{'all':!![]}];}_0x50f988=_['merge']({},_0x50f988,_0x5dd6a9[_0x04c2('0x44')]);return db['MailMessage'][_0x04c2('0x45')](_0x50f988)[_0x04c2('0x14')](handleEntityNotFound(_0x1255b7,null))['then'](respondWithResult(_0x1255b7,null))[_0x04c2('0x46')](handleError(_0x1255b7,null));};exports[_0x04c2('0x47')]=function(_0x4f62d8,_0x4337b6){if(_0x4f62d8['body']['id']){delete _0x4f62d8[_0x04c2('0x48')]['id'];}return db[_0x04c2('0x2b')]['find']({'where':{'id':_0x4f62d8[_0x04c2('0x42')]['id']}})[_0x04c2('0x14')](handleEntityNotFound(_0x4337b6,null))['then'](saveUpdates(_0x4f62d8[_0x04c2('0x48')],null))['then'](respondWithResult(_0x4337b6,null))[_0x04c2('0x46')](handleError(_0x4337b6,null));};exports[_0x04c2('0x24')]=function(_0x301d17,_0x57dd2f){return db['MailMessage'][_0x04c2('0x45')]({'where':{'id':_0x301d17['params']['id']}})['then'](handleEntityNotFound(_0x57dd2f,null))[_0x04c2('0x14')](removeEntity(_0x57dd2f,null))[_0x04c2('0x46')](handleError(_0x57dd2f,null));};exports[_0x04c2('0x49')]=function(_0x455179,_0x567684){return db[_0x04c2('0x2b')][_0x04c2('0x49')]()[_0x04c2('0x14')](respondWithResult(_0x567684,null))['catch'](handleError(_0x567684,null));};exports[_0x04c2('0x4a')]=function(_0x4cf06d,_0x47656e){return db[_0x04c2('0x2b')][_0x04c2('0x4a')](_0x4cf06d['body'])[_0x04c2('0x14')](function(_0xc83ed9){if(_0xc83ed9){if(_0xc83ed9[_0x04c2('0x4b')]===_0x04c2('0x4c')&&!_0xc83ed9[_0x04c2('0x4d')]){var _0x65f4e6,_0x5e408f,_0x500f14;if(_0x4cf06d[_0x04c2('0x48')]['to']){_0x5e408f=_0x4cf06d[_0x04c2('0x48')]['to'][_0x04c2('0x4e')](',')[0x0];}return db['MailAccount']['findOne']({'where':{'id':_0xc83ed9[_0x04c2('0x4f')]},'include':[{'model':db[_0x04c2('0x50')],'as':_0x04c2('0x51'),'include':[{'model':db['CmContact'],'as':_0x04c2('0x52'),'where':{'email':_0x5e408f},'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![],'include':[{'model':db[_0x04c2('0x53')],'as':_0x04c2('0x53'),'raw':!![]}]}]})[_0x04c2('0x14')](function(_0xd0d3d0){_0x65f4e6=_0xd0d3d0;if(!_0x65f4e6||!_0x65f4e6[_0x04c2('0x54')])return;var _0x213566=_0x65f4e6[_0x04c2('0x55')]();if(_0x4cf06d[_0x04c2('0x48')][_0x04c2('0x56')]&&_0x4cf06d[_0x04c2('0x48')][_0x04c2('0x56')]['length']){for(var _0x425c3b=0x0;_0x425c3b<_0x4cf06d[_0x04c2('0x48')][_0x04c2('0x56')][_0x04c2('0x35')];_0x425c3b+=0x1){_0x4cf06d[_0x04c2('0x48')][_0x04c2('0x56')][_0x425c3b]={'filename':_0x4cf06d['body'][_0x04c2('0x56')][_0x425c3b][_0x04c2('0x27')],'path':path['join'](config[_0x04c2('0x57')],_0x04c2('0x58'),_0x4cf06d['body']['attachments'][_0x425c3b]['basename'])};}}_0x500f14={'account':_0x213566,'message':_0x4cf06d[_0x04c2('0x48')]};return;})[_0x04c2('0x14')](function(){if(_0x65f4e6[_0x04c2('0x51')]){if(_0x65f4e6['List'][_0x04c2('0x52')][_0x04c2('0x35')]){return _0x65f4e6[_0x04c2('0x51')][_0x04c2('0x52')][0x0];}else{return db[_0x04c2('0x59')]['create'](_['defaults'](_0x4cf06d[_0x04c2('0x48')],{'firstName':_0x4cf06d[_0x04c2('0x48')]['to'],'email':_0x4cf06d['body']['to'],'phone':_0x4cf06d[_0x04c2('0x48')]['to'],'ListId':_0x65f4e6[_0x04c2('0x5a')]}));}}else{throw new Error(_0x04c2('0x5b'));}})['then'](function(){if(_0x500f14){return respondWithRpcPromise(_0x04c2('0x5c'),_0x04c2('0x5d'),_0x500f14,client9003)[_0x04c2('0x14')](function(_0x4c6782){return _0xc83ed9[_0x04c2('0x47')]({'read':!![],'messageId':_0x4c6782[_0x04c2('0x5e')],'sentAt':moment()[_0x04c2('0x5f')](_0x04c2('0x60'))});})[_0x04c2('0x46')](function(_0x288f47){logger[_0x04c2('0x19')]('%s',JSON[_0x04c2('0x61')](_0x288f47));return _0xc83ed9;});}return _0xc83ed9;});}return _0xc83ed9;}})[_0x04c2('0x14')](respondWithResult(_0x47656e,0xc9))[_0x04c2('0x46')](handleError(_0x47656e,null));};exports[_0x04c2('0x62')]=function(_0x33128b,_0x56cca5){var _0x51a06e={'agent':{},'channel':_0x04c2('0x63')};if(_0x33128b[_0x04c2('0x48')]['id']){delete _0x33128b[_0x04c2('0x48')]['id'];}_0x33128b[_0x04c2('0x48')][_0x04c2('0x64')]=!![];_0x33128b[_0x04c2('0x48')]['readAt']=moment()[_0x04c2('0x5f')](_0x04c2('0x60'));_0x33128b[_0x04c2('0x48')][_0x04c2('0x65')]=_0x33128b[_0x04c2('0x48')][_0x04c2('0x65')]||_0x33128b[_0x04c2('0x66')]['id'];_0x51a06e[_0x04c2('0x67')]['id']=_0x33128b[_0x04c2('0x48')][_0x04c2('0x65')];return db[_0x04c2('0x2b')][_0x04c2('0x45')]({'where':{'id':_0x33128b[_0x04c2('0x42')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x56cca5,null))[_0x04c2('0x14')](saveUpdates(_0x33128b[_0x04c2('0x48')],null))[_0x04c2('0x14')](function(_0x27f408){if(_0x27f408){_0x51a06e[_0x04c2('0x1a')]=_0x27f408[_0x04c2('0x68')]({'plain':!![]});return db[_0x04c2('0x69')][_0x04c2('0x45')]({'where':{'id':_0x27f408[_0x04c2('0x6a')]}});}return null;})[_0x04c2('0x14')](handleEntityNotFound(_0x56cca5,null))[_0x04c2('0x14')](function(_0x3610c2){if(_0x3610c2){return _0x3610c2['update']({'UserId':_0x33128b[_0x04c2('0x48')][_0x04c2('0x65')],'read1stAt':_[_0x04c2('0x6b')](_0x3610c2[_0x04c2('0x6c')])?moment()[_0x04c2('0x5f')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x04c2('0x14')](function(_0x2de003){if(_0x2de003){_0x51a06e[_0x04c2('0x6d')]=_0x2de003[_0x04c2('0x68')]({'plain':!![]});interaction_log['info']('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x33128b[_0x04c2('0x66')]['id'],_0x33128b[_0x04c2('0x66')][_0x04c2('0x27')],_0x33128b['user']['role'],_0x51a06e[_0x04c2('0x6d')]['id'],_0x33128b[_0x04c2('0x48')]?JSON[_0x04c2('0x61')](_0x33128b[_0x04c2('0x48')]):'null');return respondWithRpcPromise(_0x04c2('0x6e'),_0x04c2('0x6f'),_0x51a06e);}return null;})['then'](function(_0x3b1ffd){var _0x393da7='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3b1ffd['message'][_0x04c2('0x70')];return db[_0x04c2('0x71')][_0x04c2('0x30')](_0x393da7,{'type':db['Sequelize'][_0x04c2('0x72')]['SELECT'],'raw':!![]})['then'](function(_0x50a37f){return _0x50a37f;});})['then'](function(_0x83ea8d){if(_0x83ea8d){_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x73')]=_0x83ea8d[0x0];if(!_0x33128b[_0x04c2('0x48')]['UserId'])return;return db[_0x04c2('0x74')][_0x04c2('0x45')]({'where':{'id':_0x33128b[_0x04c2('0x48')][_0x04c2('0x65')],'role':_0x04c2('0x67')},'attributes':['id',_0x04c2('0x27'),_0x04c2('0x75'),_0x04c2('0x76'),_0x04c2('0x77')],'raw':!![]});}return null;})['then'](function(_0x5380c1){if(!_0x5380c1)return null;_0x51a06e[_0x04c2('0x1a')]['agent']=_0x5380c1;return _0x51a06e;})['then'](function(_0x84dea4){if(_0x84dea4){if(_0x33128b[_0x04c2('0x48')][_0x04c2('0x78')]){_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x79')]=util[_0x04c2('0x5f')]('SIP/%s',_0x33128b[_0x04c2('0x66')][_0x04c2('0x27')]);_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x7a')]=_0x51a06e[_0x04c2('0x7a')];_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x7b')]=_0x51a06e[_0x04c2('0x7a')];_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x7c')]='accept';_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x48')]=htmlToText['fromString'](_0x51a06e[_0x04c2('0x1a')][_0x04c2('0x48')]);return respondWithRpcPromise(_0x04c2('0x7d'),_0x04c2('0x7d'),{'event':'acceptmessage','message':_0x51a06e[_0x04c2('0x1a')]},client9002)[_0x04c2('0x14')](function(){return _0x51a06e;});}return _0x51a06e;}return null;})[_0x04c2('0x14')](respondWithResult(_0x56cca5,null))[_0x04c2('0x46')](handleError(_0x56cca5,null));};exports[_0x04c2('0x7e')]=function(_0x3ae94,_0x53dfc6){var _0x1e1315={'agent':{},'channel':_0x04c2('0x63')};if(_0x3ae94[_0x04c2('0x48')]['id']){delete _0x3ae94['body']['id'];}_0x3ae94['body']['UserId']=_0x3ae94[_0x04c2('0x48')][_0x04c2('0x65')]||_0x3ae94['user']['id'];_0x1e1315[_0x04c2('0x67')]['id']=_0x3ae94[_0x04c2('0x48')][_0x04c2('0x65')];return db['MailMessage'][_0x04c2('0x45')]({'where':{'id':_0x3ae94[_0x04c2('0x42')]['id'],'UserId':null}})[_0x04c2('0x14')](handleEntityNotFound(_0x53dfc6,null))[_0x04c2('0x14')](function(_0x4902a9){if(_0x4902a9){_0x1e1315[_0x04c2('0x1a')]=_0x4902a9[_0x04c2('0x68')]({'plain':!![]});return db['MailInteraction'][_0x04c2('0x45')]({'where':{'id':_0x4902a9[_0x04c2('0x6a')]}});}return null;})[_0x04c2('0x14')](handleEntityNotFound(_0x53dfc6,null))[_0x04c2('0x14')](function(_0x2442f){if(_0x2442f){_0x1e1315['interaction']=_0x2442f[_0x04c2('0x68')]({'plain':!![]});interaction_log[_0x04c2('0x1b')](_0x04c2('0x7f'),_0x3ae94[_0x04c2('0x66')]['id'],_0x3ae94['user'][_0x04c2('0x27')],_0x3ae94[_0x04c2('0x66')]['role'],_0x1e1315[_0x04c2('0x6d')]['id'],_0x3ae94[_0x04c2('0x48')]?JSON[_0x04c2('0x61')](_0x3ae94['body']):_0x04c2('0x80'));return respondWithRpcPromise(_0x04c2('0x81'),'rejectMessage',_0x1e1315);}return null;})[_0x04c2('0x14')](function(_0x10d423){var _0x362f34=_0x04c2('0x82')+_0x10d423[_0x04c2('0x1a')]['ContactId'];return db[_0x04c2('0x71')][_0x04c2('0x30')](_0x362f34,{'type':db[_0x04c2('0x83')]['QueryTypes'][_0x04c2('0x84')],'raw':!![]})[_0x04c2('0x14')](function(_0x9793d2){return _0x9793d2;});})[_0x04c2('0x14')](function(_0x4a378b){if(_0x4a378b){_0x1e1315[_0x04c2('0x1a')][_0x04c2('0x73')]=_0x4a378b[0x0];if(!_0x3ae94['body'][_0x04c2('0x65')])return;return db[_0x04c2('0x74')][_0x04c2('0x45')]({'where':{'id':_0x3ae94[_0x04c2('0x48')][_0x04c2('0x65')],'role':_0x04c2('0x67')},'attributes':['id',_0x04c2('0x27'),_0x04c2('0x75'),_0x04c2('0x76'),'internal'],'raw':!![]});}return null;})[_0x04c2('0x14')](function(_0x18ebfe){if(!_0x18ebfe)return null;_0x1e1315[_0x04c2('0x1a')][_0x04c2('0x67')]=_0x18ebfe;return _0x1e1315;})[_0x04c2('0x14')](function(_0x429245){if(_0x429245){_0x429245['message']['interface']=util['format'](_0x04c2('0x85'),_0x3ae94['user'][_0x04c2('0x27')]);_0x429245[_0x04c2('0x1a')][_0x04c2('0x7a')]=_0x1e1315[_0x04c2('0x7a')];_0x429245[_0x04c2('0x1a')][_0x04c2('0x7b')]=_0x1e1315['channel'];_0x429245[_0x04c2('0x1a')][_0x04c2('0x7c')]='reject';_0x429245[_0x04c2('0x1a')]['body']=htmlToText[_0x04c2('0x86')](_0x1e1315[_0x04c2('0x1a')][_0x04c2('0x48')]);respondWithRpcPromise('EventManager',_0x04c2('0x7d'),{'event':_0x04c2('0x87'),'message':_0x429245[_0x04c2('0x1a')]},client9002);return _0x1e1315;}return null;})[_0x04c2('0x14')](respondWithResult(_0x53dfc6,null))['catch'](handleError(_0x53dfc6,null));};exports[_0x04c2('0x88')]=function(_0x31d297,_0x3a811c){var _0x3c96ae=moment()[_0x04c2('0x89')]()[_0x04c2('0x8a')]();var _0x25ada7=path[_0x04c2('0x8b')](config['root'],_0x04c2('0x8c'),_0x04c2('0x8d'),_0x04c2('0x8e'));var _0x281e7a=path[_0x04c2('0x8b')](config[_0x04c2('0x57')],'server','files','attachments');var _0x8cb090=util[_0x04c2('0x5f')](_0x04c2('0x8f'),_0x3c96ae);return db[_0x04c2('0x2b')][_0x04c2('0x45')]({'where':{'id':_0x31d297['params']['id']},'attributes':['id',_0x04c2('0x48'),_0x04c2('0x90'),'to','cc',_0x04c2('0x91'),'subject',_0x04c2('0x92')],'include':_0x31d297[_0x04c2('0x30')]['attachments']?[{'model':db[_0x04c2('0x93')],'as':_0x04c2('0x94')}]:undefined})['then'](handleEntityNotFound(_0x3a811c,null))['then'](function(_0x272951){if(_0x272951){var _0x5d2af4=_0x272951;var _0x3aa4ec={'from':_0x5d2af4['from'],'to':_0x5d2af4['to'],'subject':_0x5d2af4['subject'],'html':htmlEntities['decode'](_0x5d2af4['body']),'headers':{'Date':moment(_0x5d2af4['createdAt'])[_0x04c2('0x5f')](_0x04c2('0x95'))},'attachments':[]};if(_0x272951['cc']){_0x3aa4ec[_0x04c2('0x96')]['Cc']=_0x272951['cc'];}if(_0x272951[_0x04c2('0x91')]){_0x3aa4ec['headers']['Bcc']=_0x272951[_0x04c2('0x91')];}return new BPromise(function(_0x1b4710,_0x19ee86){if(_0x272951['Attachments']){for(var _0x5f5962=0x0;_0x5f5962<_0x272951[_0x04c2('0x94')][_0x04c2('0x35')];_0x5f5962++){var _0x3839d0=_0x272951[_0x04c2('0x94')][_0x5f5962];var _0x5b7217=path['join'](_0x281e7a,_0x3839d0[_0x04c2('0x97')]);if(fs['existsSync'](_0x5b7217)){_0x3aa4ec[_0x04c2('0x56')]['push']({'name':_0x3839d0[_0x04c2('0x27')],'contentType':_0x3839d0[_0x04c2('0x2d')],'data':fs['readFileSync'](_0x5b7217)});}}}emlformat[_0x04c2('0x98')](_0x3aa4ec,function(_0x4cb8a7,_0x1edf54){if(_0x4cb8a7)return _0x19ee86(_0x4cb8a7);fs[_0x04c2('0x99')](path[_0x04c2('0x8b')](_0x25ada7,_0x8cb090),_0x1edf54);return _0x1b4710(_0x1edf54);});});}})[_0x04c2('0x14')](function(_0x26e3bb){if(_0x26e3bb){return _0x3a811c['download'](path[_0x04c2('0x8b')](_0x25ada7,_0x8cb090),_0x8cb090,function(_0xe4d51c){if(!_0xe4d51c)fs['unlinkSync'](path[_0x04c2('0x8b')](_0x25ada7,_0x8cb090));});}})['catch'](handleError(_0x3a811c,null));};