478dc1dd747789b8d66ce3e3675f6c0e22b09bfc
[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 _0x244e=['info','debug','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','MailMessage,\x20%s,\x20%s','message','result','status','json','offset','undefined','limit','count','set','Content-Range','update','name','send','index','MailMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','rows','show','fields','find','catch','body','params','describe','create','direction','out','split','MailAccount','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','service','host','port','authentication','user','auth','pass','secure','attachments','root','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','sendMail','format','YYYY-MM-DD\x20HH:mm:ss','accept','read','readAt','UserId','agent','get','MailInteraction','MailInteractionId','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','SELECT','contact','User','internal','manual','SIP/%s','motionChannel','event','fromString','EventManager','acceptmessage','reject','mail','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','sequelize','QueryTypes','email','channel','rejectmessage','join','files','server','message-%s.eml','from','bcc','subject','createdAt','Attachments','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','writeFileSync','download','unlinkSync','eml-format','moment','bluebird','util','path','lodash','ioredis','html-to-text','api','../../config/logger','mail-interactions','../../config/environment','redis','defaults','socket.io-emitter','html-entities','./mailMessage.socket','register','jayson/promise','client','http','request','then'];(function(_0x7f53c8,_0x224ce1){var _0x119522=function(_0x2417b6){while(--_0x2417b6){_0x7f53c8['push'](_0x7f53c8['shift']());}};_0x119522(++_0x224ce1);}(_0x244e,0x8b));var _0xe244=function(_0x257ada,_0x117063){_0x257ada=_0x257ada-0x0;var _0x38bbfd=_0x244e[_0x257ada];return _0x38bbfd;};'use strict';var emlformat=require(_0xe244('0x0'));var moment=require(_0xe244('0x1'));var BPromise=require(_0xe244('0x2'));var util=require(_0xe244('0x3'));var path=require(_0xe244('0x4'));var fs=require('fs');var _=require(_0xe244('0x5'));var Redis=require(_0xe244('0x6'));var htmlToText=require(_0xe244('0x7'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xe244('0x8'));var interaction_log=require(_0xe244('0x9'))(_0xe244('0xa'));var config=require(_0xe244('0xb'));var db=require('../../mysqldb')['db'];config[_0xe244('0xc')]=_[_0xe244('0xd')](config[_0xe244('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0xe244('0xe'))(new Redis(config[_0xe244('0xc')]));var htmlEntities=require(_0xe244('0xf'));require(_0xe244('0x10'))[_0xe244('0x11')](socket);var jayson=require(_0xe244('0x12'));var client=jayson[_0xe244('0x13')]['http']({'port':0x232c});var client9003=jayson[_0xe244('0x13')]['http']({'port':0x232b});var client9002=jayson[_0xe244('0x13')][_0xe244('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x3745eb,_0x1479e3,_0x4a076d,_0x3d5230){return new BPromise(function(_0x32c9bf,_0x26f4a1){var _0x110a70=_0x3d5230||client;return _0x110a70[_0xe244('0x15')](_0x3745eb,_0x4a076d)[_0xe244('0x16')](function(_0x48a2a9){logger[_0xe244('0x17')]('MailMessage,\x20%s,\x20%s',_0x1479e3,'request\x20sent');logger[_0xe244('0x18')](_0xe244('0x19'),_0x1479e3,_0xe244('0x1a'),JSON[_0xe244('0x1b')](_0x48a2a9));if(_0x48a2a9[_0xe244('0x1c')]){if(_0x48a2a9[_0xe244('0x1c')][_0xe244('0x1d')]===0x1f4){logger[_0xe244('0x1c')](_0xe244('0x1e'),_0x1479e3,_0x48a2a9[_0xe244('0x1c')]['message']);return _0x26f4a1(_0x48a2a9[_0xe244('0x1c')][_0xe244('0x1f')]);}logger[_0xe244('0x1c')](_0xe244('0x1e'),_0x1479e3,_0x48a2a9['error'][_0xe244('0x1f')]);return _0x32c9bf(_0x48a2a9[_0xe244('0x1c')][_0xe244('0x1f')]);}else{logger['info'](_0xe244('0x1e'),_0x1479e3,_0xe244('0x1a'));_0x32c9bf(_0x48a2a9[_0xe244('0x20')]['message']);}})['catch'](function(_0x237501){logger[_0xe244('0x1c')](_0xe244('0x1e'),_0x1479e3,_0x237501);_0x26f4a1(_0x237501);});});}function respondWithResult(_0x11829e,_0x22304b){_0x22304b=_0x22304b||0xc8;return function(_0x925133){if(_0x925133){return _0x11829e[_0xe244('0x21')](_0x22304b)[_0xe244('0x22')](_0x925133);}};}function respondWithFilteredResult(_0xf1c72e,_0x5f543f){return function(_0x4f5608){if(_0x4f5608){var _0x344040=typeof _0x5f543f[_0xe244('0x23')]===_0xe244('0x24')&&typeof _0x5f543f[_0xe244('0x25')]===_0xe244('0x24');var _0x82bcc8=_0x4f5608[_0xe244('0x26')];var _0x2a113a=_0x344040?0x0:_0x5f543f['offset'];var _0x25aa7b=_0x344040?_0x4f5608['count']:_0x5f543f['offset']+_0x5f543f['limit'];var _0x50b013;if(_0x25aa7b>=_0x82bcc8){_0x25aa7b=_0x82bcc8;_0x50b013=0xc8;}else{_0x50b013=0xce;}_0xf1c72e['status'](_0x50b013);return _0xf1c72e[_0xe244('0x27')](_0xe244('0x28'),_0x2a113a+'-'+_0x25aa7b+'/'+_0x82bcc8)['json'](_0x4f5608);}return null;};}function saveUpdates(_0x119018){return function(_0x168233){if(_0x168233){return _0x168233[_0xe244('0x29')](_0x119018)['then'](function(_0x125906){return _0x125906;});}return null;};}function removeEntity(_0x5bb68e){return function(_0x358521){if(_0x358521){return _0x358521['destroy']()[_0xe244('0x16')](function(){_0x5bb68e[_0xe244('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x48147c){return function(_0x4419d2){if(!_0x4419d2){_0x48147c['sendStatus'](0x194);}return _0x4419d2;};}function handleError(_0x4ad396,_0x49b335){_0x49b335=_0x49b335||0x1f4;return function(_0x37433c){logger[_0xe244('0x1c')](_0x37433c['stack']);if(_0x37433c[_0xe244('0x2a')]){delete _0x37433c[_0xe244('0x2a')];}_0x4ad396[_0xe244('0x21')](_0x49b335)[_0xe244('0x2b')](_0x37433c);};}exports[_0xe244('0x2c')]=function(_0x2a53f7,_0x1de987){var _0x6fa549={},_0x363351={},_0x34d960={'count':0x0,'rows':[]};var _0x1cb66f=_['map'](db[_0xe244('0x2d')][_0xe244('0x2e')],function(_0x354de3){return{'name':_0x354de3[_0xe244('0x2f')],'type':_0x354de3[_0xe244('0x30')][_0xe244('0x31')]};});_0x363351[_0xe244('0x32')]=_['map'](_0x1cb66f,_0xe244('0x2a'));_0x363351[_0xe244('0x33')]=_[_0xe244('0x34')](_0x2a53f7['query']);_0x363351[_0xe244('0x35')]=_['intersection'](_0x363351[_0xe244('0x32')],_0x363351[_0xe244('0x33')]);_0x6fa549[_0xe244('0x36')]=_[_0xe244('0x37')](_0x363351['model'],qs['fields'](_0x2a53f7[_0xe244('0x33')]['fields']));_0x6fa549[_0xe244('0x36')]=_0x6fa549[_0xe244('0x36')][_0xe244('0x38')]?_0x6fa549['attributes']:_0x363351[_0xe244('0x32')];if(!_0x2a53f7[_0xe244('0x33')][_0xe244('0x39')](_0xe244('0x3a'))){_0x6fa549[_0xe244('0x25')]=qs[_0xe244('0x25')](_0x2a53f7[_0xe244('0x33')]['limit']);_0x6fa549[_0xe244('0x23')]=qs[_0xe244('0x23')](_0x2a53f7[_0xe244('0x33')][_0xe244('0x23')]);}_0x6fa549['order']=qs[_0xe244('0x3b')](_0x2a53f7[_0xe244('0x33')][_0xe244('0x3b')]);_0x6fa549[_0xe244('0x3c')]=qs[_0xe244('0x35')](_[_0xe244('0x3d')](_0x2a53f7[_0xe244('0x33')],_0x363351[_0xe244('0x35')]),_0x1cb66f);if(_0x2a53f7[_0xe244('0x33')][_0xe244('0x3e')]){_0x6fa549[_0xe244('0x3c')]=_[_0xe244('0x3f')](_0x6fa549['where'],{'$or':_[_0xe244('0x40')](_0x1cb66f,function(_0xcad640){if(_0xcad640[_0xe244('0x30')]!==_0xe244('0x41')){var _0x3faaae={};_0x3faaae[_0xcad640[_0xe244('0x2a')]]={'$like':'%'+_0x2a53f7[_0xe244('0x33')][_0xe244('0x3e')]+'%'};return _0x3faaae;}})});}_0x6fa549=_['merge']({},_0x6fa549,_0x2a53f7[_0xe244('0x42')]);var _0x47241e={'where':_0x6fa549['where']};return db[_0xe244('0x2d')][_0xe244('0x26')](_0x47241e)[_0xe244('0x16')](function(_0x26118b){_0x34d960[_0xe244('0x26')]=_0x26118b;if(_0x2a53f7[_0xe244('0x33')][_0xe244('0x43')]){_0x6fa549['include']=[{'all':!![]}];}return db[_0xe244('0x2d')]['findAll'](_0x6fa549);})[_0xe244('0x16')](function(_0x551cee){_0x34d960[_0xe244('0x44')]=_0x551cee;return _0x34d960;})['then'](respondWithFilteredResult(_0x1de987,_0x6fa549))['catch'](handleError(_0x1de987,null));};exports[_0xe244('0x45')]=function(_0x5176d3,_0x498074){var _0x45b232={'raw':!![],'where':{'id':_0x5176d3['params']['id']}},_0x27bbd6={};_0x27bbd6[_0xe244('0x32')]=_['keys'](db[_0xe244('0x2d')]['rawAttributes']);_0x27bbd6[_0xe244('0x33')]=_[_0xe244('0x34')](_0x5176d3[_0xe244('0x33')]);_0x27bbd6[_0xe244('0x35')]=_[_0xe244('0x37')](_0x27bbd6[_0xe244('0x32')],_0x27bbd6[_0xe244('0x33')]);_0x45b232[_0xe244('0x36')]=_[_0xe244('0x37')](_0x27bbd6[_0xe244('0x32')],qs[_0xe244('0x46')](_0x5176d3['query'][_0xe244('0x46')]));_0x45b232[_0xe244('0x36')]=_0x45b232['attributes']['length']?_0x45b232[_0xe244('0x36')]:_0x27bbd6['model'];if(_0x5176d3['query'][_0xe244('0x43')]){_0x45b232['include']=[{'all':!![]}];}_0x45b232=_[_0xe244('0x3f')]({},_0x45b232,_0x5176d3[_0xe244('0x42')]);return db['MailMessage'][_0xe244('0x47')](_0x45b232)[_0xe244('0x16')](handleEntityNotFound(_0x498074,null))['then'](respondWithResult(_0x498074,null))[_0xe244('0x48')](handleError(_0x498074,null));};exports[_0xe244('0x29')]=function(_0x4056d3,_0x574f2c){if(_0x4056d3[_0xe244('0x49')]['id']){delete _0x4056d3[_0xe244('0x49')]['id'];}return db[_0xe244('0x2d')][_0xe244('0x47')]({'where':{'id':_0x4056d3[_0xe244('0x4a')]['id']}})[_0xe244('0x16')](handleEntityNotFound(_0x574f2c,null))[_0xe244('0x16')](saveUpdates(_0x4056d3[_0xe244('0x49')],null))[_0xe244('0x16')](respondWithResult(_0x574f2c,null))[_0xe244('0x48')](handleError(_0x574f2c,null));};exports['destroy']=function(_0x1376d7,_0x410eb7){return db[_0xe244('0x2d')][_0xe244('0x47')]({'where':{'id':_0x1376d7['params']['id']}})[_0xe244('0x16')](handleEntityNotFound(_0x410eb7,null))[_0xe244('0x16')](removeEntity(_0x410eb7,null))[_0xe244('0x48')](handleError(_0x410eb7,null));};exports[_0xe244('0x4b')]=function(_0x376f42,_0x3fd08f){return db[_0xe244('0x2d')][_0xe244('0x4b')]()[_0xe244('0x16')](respondWithResult(_0x3fd08f,null))[_0xe244('0x48')](handleError(_0x3fd08f,null));};exports[_0xe244('0x4c')]=function(_0x2ff3ff,_0x107979){return db['MailMessage'][_0xe244('0x4c')](_0x2ff3ff[_0xe244('0x49')])[_0xe244('0x16')](function(_0x480b54){if(_0x480b54){if(_0x480b54[_0xe244('0x4d')]===_0xe244('0x4e')&&!_0x480b54['secret']){var _0x4df14d,_0x103339,_0x2d375e;if(_0x2ff3ff[_0xe244('0x49')]['to']){_0x103339=_0x2ff3ff['body']['to'][_0xe244('0x4f')](',')[0x0];}return db[_0xe244('0x50')]['findOne']({'where':{'id':_0x480b54[_0xe244('0x51')]},'include':[{'model':db[_0xe244('0x52')],'as':_0xe244('0x53'),'include':[{'model':db[_0xe244('0x54')],'as':_0xe244('0x55'),'where':{'email':_0x103339},'limit':0x1,'order':[[_0xe244('0x56'),_0xe244('0x57')]]}]},{'model':db[_0xe244('0x58')],'as':'Smtp','raw':!![]}]})[_0xe244('0x16')](function(_0x401891){_0x4df14d=_0x401891;if(_0x4df14d&&_0x4df14d[_0xe244('0x59')]){var _0x4845d6={'tls':{'rejectUnauthorized':![]}};if(_[_0xe244('0x5a')](_0x4df14d[_0xe244('0x59')][_0xe244('0x5b')])){_0x4845d6['host']=_0x4df14d[_0xe244('0x59')][_0xe244('0x5c')];_0x4845d6[_0xe244('0x5d')]=_0x4df14d[_0xe244('0x59')][_0xe244('0x5d')];_0x4845d6['secure']=_0x4df14d[_0xe244('0x59')]['secure'];if(_0x4df14d[_0xe244('0x59')][_0xe244('0x5e')]){_0x4845d6['auth']={'user':_0x4df14d[_0xe244('0x59')][_0xe244('0x5f')],'pass':_0x4df14d[_0xe244('0x59')]['pass']};}}else{_0x4845d6[_0xe244('0x5b')]=_0x4df14d['Smtp'][_0xe244('0x5b')];_0x4845d6[_0xe244('0x60')]={'user':_0x4df14d[_0xe244('0x59')][_0xe244('0x5f')],'pass':_0x4df14d[_0xe244('0x59')][_0xe244('0x61')]};_0x4845d6[_0xe244('0x62')]=_0x4df14d['Smtp'][_0xe244('0x62')];}if(_0x2ff3ff['body'][_0xe244('0x63')]&&_0x2ff3ff[_0xe244('0x49')][_0xe244('0x63')]['length']){for(var _0x2469fc=0x0;_0x2469fc<_0x2ff3ff['body']['attachments'][_0xe244('0x38')];_0x2469fc+=0x1){_0x2ff3ff['body']['attachments'][_0x2469fc]={'filename':_0x2ff3ff[_0xe244('0x49')][_0xe244('0x63')][_0x2469fc]['name'],'path':path['join'](config[_0xe244('0x64')],_0xe244('0x65'),_0x2ff3ff[_0xe244('0x49')][_0xe244('0x63')][_0x2469fc][_0xe244('0x66')])};}}_0x2d375e={'account':_0x4845d6,'message':_0x2ff3ff[_0xe244('0x49')]};return;}})[_0xe244('0x16')](function(){if(_0x4df14d['List']){if(_0x4df14d[_0xe244('0x53')][_0xe244('0x55')][_0xe244('0x38')]){return _0x4df14d[_0xe244('0x53')][_0xe244('0x55')][0x0];}else{return db['CmContact']['create'](_[_0xe244('0xd')](_0x2ff3ff[_0xe244('0x49')],{'firstName':_0x2ff3ff[_0xe244('0x49')]['to'],'email':_0x2ff3ff[_0xe244('0x49')]['to'],'phone':_0x2ff3ff[_0xe244('0x49')]['to'],'ListId':_0x4df14d[_0xe244('0x67')]}));}}else{throw new Error(_0xe244('0x68'));}})[_0xe244('0x16')](function(){if(_0x2d375e){return respondWithRpcPromise(_0xe244('0x69'),_0xe244('0x6a'),_0x2d375e,client9003)[_0xe244('0x16')](function(_0x215a79){return _0x480b54[_0xe244('0x29')]({'read':!![],'messageId':_0x215a79['messageId'],'sentAt':moment()[_0xe244('0x6b')](_0xe244('0x6c'))});})[_0xe244('0x48')](function(_0x4b5a65){logger['error']('%s',JSON[_0xe244('0x1b')](_0x4b5a65));return _0x480b54;});}return _0x480b54;});}return _0x480b54;}})['then'](respondWithResult(_0x107979,0xc9))[_0xe244('0x48')](handleError(_0x107979,null));};exports[_0xe244('0x6d')]=function(_0x2c3029,_0x4d37a2){var _0x86ed4={'agent':{},'channel':'mail'};if(_0x2c3029['body']['id']){delete _0x2c3029['body']['id'];}_0x2c3029[_0xe244('0x49')][_0xe244('0x6e')]=!![];_0x2c3029[_0xe244('0x49')][_0xe244('0x6f')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x2c3029[_0xe244('0x49')][_0xe244('0x70')]=_0x2c3029[_0xe244('0x49')][_0xe244('0x70')]||_0x2c3029[_0xe244('0x5f')]['id'];_0x86ed4[_0xe244('0x71')]['id']=_0x2c3029[_0xe244('0x49')]['UserId'];return db[_0xe244('0x2d')][_0xe244('0x47')]({'where':{'id':_0x2c3029[_0xe244('0x4a')]['id'],'UserId':null}})[_0xe244('0x16')](handleEntityNotFound(_0x4d37a2,null))[_0xe244('0x16')](saveUpdates(_0x2c3029[_0xe244('0x49')],null))[_0xe244('0x16')](function(_0x1cb08e){if(_0x1cb08e){_0x86ed4[_0xe244('0x1f')]=_0x1cb08e[_0xe244('0x72')]({'plain':!![]});return db[_0xe244('0x73')]['find']({'where':{'id':_0x1cb08e[_0xe244('0x74')]}});}return null;})['then'](handleEntityNotFound(_0x4d37a2,null))[_0xe244('0x16')](function(_0x232677){if(_0x232677){return _0x232677[_0xe244('0x29')]({'UserId':_0x2c3029[_0xe244('0x49')][_0xe244('0x70')],'read1stAt':_['isNil'](_0x232677[_0xe244('0x75')])?moment()[_0xe244('0x6b')](_0xe244('0x6c')):undefined});}return null;})[_0xe244('0x16')](function(_0x1799b0){if(_0x1799b0){_0x86ed4[_0xe244('0x76')]=_0x1799b0[_0xe244('0x72')]({'plain':!![]});interaction_log[_0xe244('0x17')](_0xe244('0x77'),_0x2c3029['user']['id'],_0x2c3029[_0xe244('0x5f')]['name'],_0x2c3029[_0xe244('0x5f')][_0xe244('0x78')],_0x86ed4[_0xe244('0x76')]['id'],_0x2c3029[_0xe244('0x49')]?JSON[_0xe244('0x1b')](_0x2c3029[_0xe244('0x49')]):'null');return respondWithRpcPromise(_0xe244('0x79'),'acceptMessage',_0x86ed4);}return null;})[_0xe244('0x16')](function(_0x186553){var _0x3291c8=_0xe244('0x7a')+_0x186553[_0xe244('0x1f')][_0xe244('0x7b')];return db['sequelize'][_0xe244('0x33')](_0x3291c8,{'type':db[_0xe244('0x7c')]['QueryTypes'][_0xe244('0x7d')],'raw':!![]})[_0xe244('0x16')](function(_0x1079f7){return _0x1079f7;});})['then'](function(_0x297180){if(_0x297180){_0x86ed4['message'][_0xe244('0x7e')]=_0x297180[0x0];if(!_0x2c3029[_0xe244('0x49')][_0xe244('0x70')])return;return db[_0xe244('0x7f')][_0xe244('0x47')]({'where':{'id':_0x2c3029[_0xe244('0x49')][_0xe244('0x70')],'role':_0xe244('0x71')},'attributes':['id',_0xe244('0x2a'),'fullname','email',_0xe244('0x80')],'raw':!![]});}return null;})[_0xe244('0x16')](function(_0x2e30f5){if(!_0x2e30f5)return null;_0x86ed4[_0xe244('0x1f')][_0xe244('0x71')]=_0x2e30f5;return _0x86ed4;})[_0xe244('0x16')](function(_0xaa338f){if(_0xaa338f){if(_0x2c3029[_0xe244('0x49')][_0xe244('0x81')]){_0x86ed4[_0xe244('0x1f')]['interface']=util[_0xe244('0x6b')](_0xe244('0x82'),_0x2c3029[_0xe244('0x5f')][_0xe244('0x2a')]);_0x86ed4[_0xe244('0x1f')]['channel']=_0x86ed4['channel'];_0x86ed4[_0xe244('0x1f')][_0xe244('0x83')]=_0x86ed4['channel'];_0x86ed4[_0xe244('0x1f')][_0xe244('0x84')]='accept';_0x86ed4[_0xe244('0x1f')][_0xe244('0x49')]=htmlToText[_0xe244('0x85')](_0x86ed4[_0xe244('0x1f')]['body']);return respondWithRpcPromise(_0xe244('0x86'),_0xe244('0x86'),{'event':_0xe244('0x87'),'message':_0x86ed4[_0xe244('0x1f')]},client9002)['then'](function(){return _0x86ed4;});}return _0x86ed4;}return null;})[_0xe244('0x16')](respondWithResult(_0x4d37a2,null))['catch'](handleError(_0x4d37a2,null));};exports[_0xe244('0x88')]=function(_0x21c9bf,_0x5c1d1b){var _0x44c647={'agent':{},'channel':_0xe244('0x89')};if(_0x21c9bf[_0xe244('0x49')]['id']){delete _0x21c9bf[_0xe244('0x49')]['id'];}_0x21c9bf[_0xe244('0x49')][_0xe244('0x70')]=_0x21c9bf['body'][_0xe244('0x70')]||_0x21c9bf[_0xe244('0x5f')]['id'];_0x44c647['agent']['id']=_0x21c9bf[_0xe244('0x49')][_0xe244('0x70')];return db[_0xe244('0x2d')][_0xe244('0x47')]({'where':{'id':_0x21c9bf[_0xe244('0x4a')]['id'],'UserId':null}})[_0xe244('0x16')](handleEntityNotFound(_0x5c1d1b,null))[_0xe244('0x16')](function(_0xd125fe){if(_0xd125fe){_0x44c647[_0xe244('0x1f')]=_0xd125fe[_0xe244('0x72')]({'plain':!![]});return db['MailInteraction']['find']({'where':{'id':_0xd125fe[_0xe244('0x74')]}});}return null;})[_0xe244('0x16')](handleEntityNotFound(_0x5c1d1b,null))[_0xe244('0x16')](function(_0x5f2c89){if(_0x5f2c89){_0x44c647[_0xe244('0x76')]=_0x5f2c89[_0xe244('0x72')]({'plain':!![]});interaction_log['info'](_0xe244('0x8a'),_0x21c9bf['user']['id'],_0x21c9bf[_0xe244('0x5f')][_0xe244('0x2a')],_0x21c9bf[_0xe244('0x5f')]['role'],_0x44c647[_0xe244('0x76')]['id'],_0x21c9bf[_0xe244('0x49')]?JSON[_0xe244('0x1b')](_0x21c9bf[_0xe244('0x49')]):'null');return respondWithRpcPromise('RejectMessage',_0xe244('0x8b'),_0x44c647);}return null;})[_0xe244('0x16')](function(_0x51b9a7){var _0x4c64a4=_0xe244('0x7a')+_0x51b9a7[_0xe244('0x1f')][_0xe244('0x7b')];return db[_0xe244('0x8c')][_0xe244('0x33')](_0x4c64a4,{'type':db[_0xe244('0x7c')][_0xe244('0x8d')][_0xe244('0x7d')],'raw':!![]})['then'](function(_0xa40e6b){return _0xa40e6b;});})[_0xe244('0x16')](function(_0x43ac8e){if(_0x43ac8e){_0x44c647[_0xe244('0x1f')][_0xe244('0x7e')]=_0x43ac8e[0x0];if(!_0x21c9bf['body']['UserId'])return;return db[_0xe244('0x7f')][_0xe244('0x47')]({'where':{'id':_0x21c9bf[_0xe244('0x49')][_0xe244('0x70')],'role':_0xe244('0x71')},'attributes':['id',_0xe244('0x2a'),'fullname',_0xe244('0x8e'),_0xe244('0x80')],'raw':!![]});}return null;})[_0xe244('0x16')](function(_0x25d96e){if(!_0x25d96e)return null;_0x44c647[_0xe244('0x1f')][_0xe244('0x71')]=_0x25d96e;return _0x44c647;})[_0xe244('0x16')](function(_0x3dcbbb){if(_0x3dcbbb){_0x3dcbbb[_0xe244('0x1f')]['interface']=util[_0xe244('0x6b')](_0xe244('0x82'),_0x21c9bf[_0xe244('0x5f')][_0xe244('0x2a')]);_0x3dcbbb[_0xe244('0x1f')]['channel']=_0x44c647['channel'];_0x3dcbbb['message'][_0xe244('0x83')]=_0x44c647[_0xe244('0x8f')];_0x3dcbbb[_0xe244('0x1f')]['event']='reject';_0x3dcbbb[_0xe244('0x1f')]['body']=htmlToText[_0xe244('0x85')](_0x44c647[_0xe244('0x1f')][_0xe244('0x49')]);respondWithRpcPromise(_0xe244('0x86'),'EventManager',{'event':_0xe244('0x90'),'message':_0x3dcbbb[_0xe244('0x1f')]},client9002);return _0x44c647;}return null;})['then'](respondWithResult(_0x5c1d1b,null))[_0xe244('0x48')](handleError(_0x5c1d1b,null));};exports['download']=function(_0x56c918,_0x3e23a8){var _0x10eaf9=moment()['unix']()['toString']();var _0x2b665e=path[_0xe244('0x91')](config[_0xe244('0x64')],'server',_0xe244('0x92'),'tmp');var _0x3ae879=path[_0xe244('0x91')](config[_0xe244('0x64')],_0xe244('0x93'),_0xe244('0x92'),'attachments');var _0x26b386=util[_0xe244('0x6b')](_0xe244('0x94'),_0x10eaf9);return db['MailMessage'][_0xe244('0x47')]({'where':{'id':_0x56c918[_0xe244('0x4a')]['id']},'attributes':['id',_0xe244('0x49'),_0xe244('0x95'),'to','cc',_0xe244('0x96'),_0xe244('0x97'),_0xe244('0x98')],'include':_0x56c918['query'][_0xe244('0x63')]?[{'model':db['Attachment'],'as':_0xe244('0x99')}]:undefined})['then'](handleEntityNotFound(_0x3e23a8,null))['then'](function(_0x10808c){if(_0x10808c){var _0x1c0c77=_0x10808c;var _0x11408e={'from':_0x1c0c77[_0xe244('0x95')],'to':_0x1c0c77['to'],'subject':_0x1c0c77[_0xe244('0x97')],'html':htmlEntities[_0xe244('0x9a')](_0x1c0c77[_0xe244('0x49')]),'headers':{'Date':moment(_0x1c0c77[_0xe244('0x98')])['format'](_0xe244('0x9b'))},'attachments':[]};if(_0x10808c['cc']){_0x11408e[_0xe244('0x9c')]['Cc']=_0x10808c['cc'];}if(_0x10808c[_0xe244('0x96')]){_0x11408e['headers'][_0xe244('0x9d')]=_0x10808c[_0xe244('0x96')];}return new BPromise(function(_0x1bcb34,_0x5a6cd6){if(_0x10808c[_0xe244('0x99')]){for(var _0x3d466b=0x0;_0x3d466b<_0x10808c[_0xe244('0x99')]['length'];_0x3d466b++){var _0x411ba0=_0x10808c[_0xe244('0x99')][_0x3d466b];var _0x41ae12=path[_0xe244('0x91')](_0x3ae879,_0x411ba0['basename']);if(fs[_0xe244('0x9e')](_0x41ae12)){_0x11408e[_0xe244('0x63')]['push']({'name':_0x411ba0[_0xe244('0x2a')],'contentType':_0x411ba0[_0xe244('0x30')],'data':fs['readFileSync'](_0x41ae12)});}}}emlformat['build'](_0x11408e,function(_0x2aff92,_0x3b3bbf){if(_0x2aff92)return _0x5a6cd6(_0x2aff92);fs[_0xe244('0x9f')](path[_0xe244('0x91')](_0x2b665e,_0x26b386),_0x3b3bbf);return _0x1bcb34(_0x3b3bbf);});});}})[_0xe244('0x16')](function(_0x1024fe){if(_0x1024fe){return _0x3e23a8[_0xe244('0xa0')](path[_0xe244('0x91')](_0x2b665e,_0x26b386),_0x26b386,function(_0x190842){if(!_0x190842)fs[_0xe244('0xa1')](path['join'](_0x2b665e,_0x26b386));});}})[_0xe244('0x48')](handleError(_0x3e23a8,null));};