f6d7caec094093e758177e11f47cae5972bfdcb9
[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 _0x8ced=['unlinkSync','moment','bluebird','util','path','lodash','ioredis','html-to-text','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','html-entities','./mailMessage.socket','jayson/promise','client','http','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','type','VIRTUAL','options','MailMessage','includeAll','rows','show','params','length','merge','body','find','describe','create','direction','out','secret','MailAccount','findOne','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','CloudProvider','getSmtpOptions','attachments','join','root','server/files/attachments','ListId','List\x20not\x20found','SendMail','sendMail','messageId','stringify','accept','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','MailInteractionId','isNil','interaction','info','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','email','manual','interface','SIP/%s','channel','motionChannel','event','fromString','EventManager','acceptmessage','reject','mail','MailInteraction','get','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','User','rejectmessage','unix','toString','server','files','tmp','bcc','subject','createdAt','Attachment','Attachments','from','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','push','build','writeFileSync'];(function(_0x422a42,_0x2edb42){var _0x3ca02b=function(_0xb5e642){while(--_0xb5e642){_0x422a42['push'](_0x422a42['shift']());}};_0x3ca02b(++_0x2edb42);}(_0x8ced,0xa3));var _0xd8ce=function(_0x358806,_0x322b66){_0x358806=_0x358806-0x0;var _0x19fdcb=_0x8ced[_0x358806];return _0x19fdcb;};'use strict';var emlformat=require('eml-format');var moment=require(_0xd8ce('0x0'));var BPromise=require(_0xd8ce('0x1'));var util=require(_0xd8ce('0x2'));var path=require(_0xd8ce('0x3'));var fs=require('fs');var _=require(_0xd8ce('0x4'));var Redis=require(_0xd8ce('0x5'));var htmlToText=require(_0xd8ce('0x6'));var qs=require('../../components/parsers/qs');var logger=require(_0xd8ce('0x7'))('api');var interaction_log=require(_0xd8ce('0x7'))('mail-interactions');var config=require(_0xd8ce('0x8'));var db=require(_0xd8ce('0x9'))['db'];config[_0xd8ce('0xa')]=_[_0xd8ce('0xb')](config[_0xd8ce('0xa')],{'host':_0xd8ce('0xc'),'port':0x18eb});var socket=require(_0xd8ce('0xd'))(new Redis(config[_0xd8ce('0xa')]));var htmlEntities=require(_0xd8ce('0xe'));require(_0xd8ce('0xf'))['register'](socket);var jayson=require(_0xd8ce('0x10'));var client=jayson[_0xd8ce('0x11')]['http']({'port':0x232c});var client9003=jayson['client']['http']({'port':0x232b});var client9002=jayson[_0xd8ce('0x11')][_0xd8ce('0x12')]({'port':0x232a});function respondWithRpcPromise(_0x46d3ee,_0x2d86de,_0x115945,_0x5095b2){return new BPromise(function(_0x4dfd06,_0x5da91f){var _0x12c805=_0x5095b2||client;return _0x12c805['request'](_0x46d3ee,_0x115945)['then'](function(_0x4d60d5){logger['info'](_0xd8ce('0x13'),_0x2d86de,_0xd8ce('0x14'));logger[_0xd8ce('0x15')](_0xd8ce('0x16'),_0x2d86de,_0xd8ce('0x14'),JSON['stringify'](_0x4d60d5));if(_0x4d60d5['error']){if(_0x4d60d5[_0xd8ce('0x17')][_0xd8ce('0x18')]===0x1f4){logger[_0xd8ce('0x17')](_0xd8ce('0x13'),_0x2d86de,_0x4d60d5[_0xd8ce('0x17')][_0xd8ce('0x19')]);return _0x5da91f(_0x4d60d5[_0xd8ce('0x17')][_0xd8ce('0x19')]);}logger[_0xd8ce('0x17')](_0xd8ce('0x13'),_0x2d86de,_0x4d60d5[_0xd8ce('0x17')][_0xd8ce('0x19')]);return _0x4dfd06(_0x4d60d5[_0xd8ce('0x17')][_0xd8ce('0x19')]);}else{logger['info'](_0xd8ce('0x13'),_0x2d86de,_0xd8ce('0x14'));_0x4dfd06(_0x4d60d5[_0xd8ce('0x1a')][_0xd8ce('0x19')]);}})[_0xd8ce('0x1b')](function(_0x4e771f){logger['error'](_0xd8ce('0x13'),_0x2d86de,_0x4e771f);_0x5da91f(_0x4e771f);});});}function respondWithResult(_0x42e4d6,_0x4d502d){_0x4d502d=_0x4d502d||0xc8;return function(_0x13a119){if(_0x13a119){return _0x42e4d6[_0xd8ce('0x1c')](_0x4d502d)[_0xd8ce('0x1d')](_0x13a119);}};}function respondWithFilteredResult(_0x5de385,_0x1c6bba){return function(_0x257582){if(_0x257582){var _0x14f26c=typeof _0x1c6bba[_0xd8ce('0x1e')]===_0xd8ce('0x1f')&&typeof _0x1c6bba[_0xd8ce('0x20')]===_0xd8ce('0x1f');var _0xc4b9e7=_0x257582['count'];var _0x3d4bed=_0x14f26c?0x0:_0x1c6bba['offset'];var _0xfd092d=_0x14f26c?_0x257582[_0xd8ce('0x21')]:_0x1c6bba[_0xd8ce('0x1e')]+_0x1c6bba[_0xd8ce('0x20')];var _0x11aa68;if(_0xfd092d>=_0xc4b9e7){_0xfd092d=_0xc4b9e7;_0x11aa68=0xc8;}else{_0x11aa68=0xce;}_0x5de385[_0xd8ce('0x1c')](_0x11aa68);return _0x5de385[_0xd8ce('0x22')](_0xd8ce('0x23'),_0x3d4bed+'-'+_0xfd092d+'/'+_0xc4b9e7)[_0xd8ce('0x1d')](_0x257582);}return null;};}function saveUpdates(_0x1705d3){return function(_0x2f4fbb){if(_0x2f4fbb){return _0x2f4fbb[_0xd8ce('0x24')](_0x1705d3)['then'](function(_0x39c5b1){return _0x39c5b1;});}return null;};}function removeEntity(_0x42e3f5){return function(_0x1145f3){if(_0x1145f3){return _0x1145f3[_0xd8ce('0x25')]()[_0xd8ce('0x26')](function(){_0x42e3f5[_0xd8ce('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2dd4eb){return function(_0xbc0cf2){if(!_0xbc0cf2){_0x2dd4eb[_0xd8ce('0x27')](0x194);}return _0xbc0cf2;};}function handleError(_0x5ae252,_0x162f1d){_0x162f1d=_0x162f1d||0x1f4;return function(_0x4e9457){logger[_0xd8ce('0x17')](_0x4e9457[_0xd8ce('0x28')]);if(_0x4e9457['name']){delete _0x4e9457[_0xd8ce('0x29')];}_0x5ae252[_0xd8ce('0x1c')](_0x162f1d)[_0xd8ce('0x2a')](_0x4e9457);};}exports[_0xd8ce('0x2b')]=function(_0x252829,_0x200eda){var _0x489735={},_0x2d902d={},_0x5a1d7b={'count':0x0,'rows':[]};var _0x1cda89=_[_0xd8ce('0x2c')](db['MailMessage'][_0xd8ce('0x2d')],function(_0x25aaba){return{'name':_0x25aaba[_0xd8ce('0x2e')],'type':_0x25aaba['type'][_0xd8ce('0x2f')]};});_0x2d902d[_0xd8ce('0x30')]=_[_0xd8ce('0x2c')](_0x1cda89,'name');_0x2d902d[_0xd8ce('0x31')]=_['keys'](_0x252829[_0xd8ce('0x31')]);_0x2d902d[_0xd8ce('0x32')]=_[_0xd8ce('0x33')](_0x2d902d[_0xd8ce('0x30')],_0x2d902d[_0xd8ce('0x31')]);_0x489735[_0xd8ce('0x34')]=_['intersection'](_0x2d902d[_0xd8ce('0x30')],qs['fields'](_0x252829[_0xd8ce('0x31')][_0xd8ce('0x35')]));_0x489735[_0xd8ce('0x34')]=_0x489735['attributes']['length']?_0x489735[_0xd8ce('0x34')]:_0x2d902d[_0xd8ce('0x30')];if(!_0x252829[_0xd8ce('0x31')]['hasOwnProperty'](_0xd8ce('0x36'))){_0x489735['limit']=qs['limit'](_0x252829[_0xd8ce('0x31')][_0xd8ce('0x20')]);_0x489735[_0xd8ce('0x1e')]=qs[_0xd8ce('0x1e')](_0x252829[_0xd8ce('0x31')]['offset']);}_0x489735[_0xd8ce('0x37')]=qs[_0xd8ce('0x38')](_0x252829[_0xd8ce('0x31')][_0xd8ce('0x38')]);_0x489735[_0xd8ce('0x39')]=qs['filters'](_[_0xd8ce('0x3a')](_0x252829[_0xd8ce('0x31')],_0x2d902d[_0xd8ce('0x32')]),_0x1cda89);if(_0x252829['query'][_0xd8ce('0x3b')]){_0x489735['where']=_['merge'](_0x489735[_0xd8ce('0x39')],{'$or':_[_0xd8ce('0x2c')](_0x1cda89,function(_0x1ce3be){if(_0x1ce3be[_0xd8ce('0x3c')]!==_0xd8ce('0x3d')){var _0x39ca13={};_0x39ca13[_0x1ce3be[_0xd8ce('0x29')]]={'$like':'%'+_0x252829['query'][_0xd8ce('0x3b')]+'%'};return _0x39ca13;}})});}_0x489735=_['merge']({},_0x489735,_0x252829[_0xd8ce('0x3e')]);var _0x33fa79={'where':_0x489735[_0xd8ce('0x39')]};return db[_0xd8ce('0x3f')][_0xd8ce('0x21')](_0x33fa79)[_0xd8ce('0x26')](function(_0x18d882){_0x5a1d7b[_0xd8ce('0x21')]=_0x18d882;if(_0x252829[_0xd8ce('0x31')][_0xd8ce('0x40')]){_0x489735['include']=[{'all':!![]}];}return db[_0xd8ce('0x3f')]['findAll'](_0x489735);})[_0xd8ce('0x26')](function(_0x6d80f9){_0x5a1d7b[_0xd8ce('0x41')]=_0x6d80f9;return _0x5a1d7b;})[_0xd8ce('0x26')](respondWithFilteredResult(_0x200eda,_0x489735))[_0xd8ce('0x1b')](handleError(_0x200eda,null));};exports[_0xd8ce('0x42')]=function(_0x20fb5b,_0x19ae9b){var _0x3c64ef={'raw':!![],'where':{'id':_0x20fb5b[_0xd8ce('0x43')]['id']}},_0x28a961={};_0x28a961['model']=_['keys'](db[_0xd8ce('0x3f')][_0xd8ce('0x2d')]);_0x28a961[_0xd8ce('0x31')]=_['keys'](_0x20fb5b[_0xd8ce('0x31')]);_0x28a961[_0xd8ce('0x32')]=_['intersection'](_0x28a961[_0xd8ce('0x30')],_0x28a961[_0xd8ce('0x31')]);_0x3c64ef[_0xd8ce('0x34')]=_[_0xd8ce('0x33')](_0x28a961[_0xd8ce('0x30')],qs[_0xd8ce('0x35')](_0x20fb5b[_0xd8ce('0x31')]['fields']));_0x3c64ef[_0xd8ce('0x34')]=_0x3c64ef['attributes'][_0xd8ce('0x44')]?_0x3c64ef[_0xd8ce('0x34')]:_0x28a961[_0xd8ce('0x30')];if(_0x20fb5b[_0xd8ce('0x31')]['includeAll']){_0x3c64ef['include']=[{'all':!![]}];}_0x3c64ef=_[_0xd8ce('0x45')]({},_0x3c64ef,_0x20fb5b[_0xd8ce('0x3e')]);return db[_0xd8ce('0x3f')]['find'](_0x3c64ef)['then'](handleEntityNotFound(_0x19ae9b,null))['then'](respondWithResult(_0x19ae9b,null))[_0xd8ce('0x1b')](handleError(_0x19ae9b,null));};exports[_0xd8ce('0x24')]=function(_0x3b9782,_0x21289a){if(_0x3b9782[_0xd8ce('0x46')]['id']){delete _0x3b9782['body']['id'];}return db['MailMessage'][_0xd8ce('0x47')]({'where':{'id':_0x3b9782[_0xd8ce('0x43')]['id']}})[_0xd8ce('0x26')](handleEntityNotFound(_0x21289a,null))[_0xd8ce('0x26')](saveUpdates(_0x3b9782[_0xd8ce('0x46')],null))['then'](respondWithResult(_0x21289a,null))[_0xd8ce('0x1b')](handleError(_0x21289a,null));};exports[_0xd8ce('0x25')]=function(_0x5f3419,_0xf43477){return db[_0xd8ce('0x3f')][_0xd8ce('0x47')]({'where':{'id':_0x5f3419[_0xd8ce('0x43')]['id']}})[_0xd8ce('0x26')](handleEntityNotFound(_0xf43477,null))[_0xd8ce('0x26')](removeEntity(_0xf43477,null))[_0xd8ce('0x1b')](handleError(_0xf43477,null));};exports[_0xd8ce('0x48')]=function(_0x2f8592,_0x15c469){return db[_0xd8ce('0x3f')]['describe']()[_0xd8ce('0x26')](respondWithResult(_0x15c469,null))[_0xd8ce('0x1b')](handleError(_0x15c469,null));};exports[_0xd8ce('0x49')]=function(_0x230751,_0x32e355){return db[_0xd8ce('0x3f')][_0xd8ce('0x49')](_0x230751['body'])[_0xd8ce('0x26')](function(_0x58a1dd){if(_0x58a1dd){if(_0x58a1dd[_0xd8ce('0x4a')]===_0xd8ce('0x4b')&&!_0x58a1dd[_0xd8ce('0x4c')]){var _0x5cf0f0,_0x2db625,_0x5c9e70;if(_0x230751[_0xd8ce('0x46')]['to']){_0x2db625=_0x230751[_0xd8ce('0x46')]['to']['split'](',')[0x0];}return db[_0xd8ce('0x4d')][_0xd8ce('0x4e')]({'where':{'id':_0x58a1dd[_0xd8ce('0x4f')]},'include':[{'model':db[_0xd8ce('0x50')],'as':_0xd8ce('0x51'),'include':[{'model':db[_0xd8ce('0x52')],'as':_0xd8ce('0x53'),'where':{'email':_0x2db625},'limit':0x1,'order':[[_0xd8ce('0x54'),_0xd8ce('0x55')]]}]},{'model':db[_0xd8ce('0x56')],'as':_0xd8ce('0x57'),'raw':!![],'include':[{'model':db[_0xd8ce('0x58')],'as':_0xd8ce('0x58'),'raw':!![]}]}]})[_0xd8ce('0x26')](function(_0xff45b3){_0x5cf0f0=_0xff45b3;if(!_0x5cf0f0||!_0x5cf0f0[_0xd8ce('0x57')])return;var _0x450eb9=_0x5cf0f0[_0xd8ce('0x59')]();if(_0x230751['body'][_0xd8ce('0x5a')]&&_0x230751[_0xd8ce('0x46')][_0xd8ce('0x5a')][_0xd8ce('0x44')]){for(var _0x32edc7=0x0;_0x32edc7<_0x230751[_0xd8ce('0x46')][_0xd8ce('0x5a')][_0xd8ce('0x44')];_0x32edc7+=0x1){_0x230751[_0xd8ce('0x46')]['attachments'][_0x32edc7]={'filename':_0x230751[_0xd8ce('0x46')][_0xd8ce('0x5a')][_0x32edc7][_0xd8ce('0x29')],'path':path[_0xd8ce('0x5b')](config[_0xd8ce('0x5c')],_0xd8ce('0x5d'),_0x230751[_0xd8ce('0x46')][_0xd8ce('0x5a')][_0x32edc7]['basename'])};}}_0x5c9e70={'account':_0x450eb9,'message':_0x230751[_0xd8ce('0x46')]};return;})[_0xd8ce('0x26')](function(){if(_0x5cf0f0[_0xd8ce('0x51')]){if(_0x5cf0f0[_0xd8ce('0x51')]['Contacts'][_0xd8ce('0x44')]){return _0x5cf0f0[_0xd8ce('0x51')][_0xd8ce('0x53')][0x0];}else{return db[_0xd8ce('0x52')][_0xd8ce('0x49')](_[_0xd8ce('0xb')](_0x230751['body'],{'firstName':_0x230751['body']['to'],'email':_0x230751['body']['to'],'phone':_0x230751[_0xd8ce('0x46')]['to'],'ListId':_0x5cf0f0[_0xd8ce('0x5e')]}));}}else{throw new Error(_0xd8ce('0x5f'));}})[_0xd8ce('0x26')](function(){if(_0x5c9e70){return respondWithRpcPromise(_0xd8ce('0x60'),_0xd8ce('0x61'),_0x5c9e70,client9003)[_0xd8ce('0x26')](function(_0x344d42){return _0x58a1dd[_0xd8ce('0x24')]({'read':!![],'messageId':_0x344d42[_0xd8ce('0x62')],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')});})[_0xd8ce('0x1b')](function(_0x349c01){logger[_0xd8ce('0x17')]('%s',JSON[_0xd8ce('0x63')](_0x349c01));return _0x58a1dd;});}return _0x58a1dd;});}return _0x58a1dd;}})[_0xd8ce('0x26')](respondWithResult(_0x32e355,0xc9))['catch'](handleError(_0x32e355,null));};exports[_0xd8ce('0x64')]=function(_0x332fe0,_0x21a8b6){var _0x431e51={'agent':{},'channel':'mail'};if(_0x332fe0[_0xd8ce('0x46')]['id']){delete _0x332fe0[_0xd8ce('0x46')]['id'];}_0x332fe0['body']['read']=!![];_0x332fe0[_0xd8ce('0x46')][_0xd8ce('0x65')]=moment()[_0xd8ce('0x66')](_0xd8ce('0x67'));_0x332fe0[_0xd8ce('0x46')][_0xd8ce('0x68')]=_0x332fe0[_0xd8ce('0x46')]['UserId']||_0x332fe0[_0xd8ce('0x69')]['id'];_0x431e51[_0xd8ce('0x6a')]['id']=_0x332fe0[_0xd8ce('0x46')][_0xd8ce('0x68')];return db['MailMessage'][_0xd8ce('0x47')]({'where':{'id':_0x332fe0['params']['id'],'UserId':null}})[_0xd8ce('0x26')](handleEntityNotFound(_0x21a8b6,null))[_0xd8ce('0x26')](saveUpdates(_0x332fe0[_0xd8ce('0x46')],null))[_0xd8ce('0x26')](function(_0x90147e){if(_0x90147e){_0x431e51['message']=_0x90147e['get']({'plain':!![]});return db['MailInteraction'][_0xd8ce('0x47')]({'where':{'id':_0x90147e[_0xd8ce('0x6b')]}});}return null;})[_0xd8ce('0x26')](handleEntityNotFound(_0x21a8b6,null))[_0xd8ce('0x26')](function(_0x4320da){if(_0x4320da){return _0x4320da['update']({'UserId':_0x332fe0[_0xd8ce('0x46')][_0xd8ce('0x68')],'read1stAt':_[_0xd8ce('0x6c')](_0x4320da['read1stAt'])?moment()[_0xd8ce('0x66')](_0xd8ce('0x67')):undefined});}return null;})['then'](function(_0x43b84c){if(_0x43b84c){_0x431e51[_0xd8ce('0x6d')]=_0x43b84c['get']({'plain':!![]});interaction_log[_0xd8ce('0x6e')](_0xd8ce('0x6f'),_0x332fe0[_0xd8ce('0x69')]['id'],_0x332fe0[_0xd8ce('0x69')][_0xd8ce('0x29')],_0x332fe0['user'][_0xd8ce('0x70')],_0x431e51['interaction']['id'],_0x332fe0['body']?JSON[_0xd8ce('0x63')](_0x332fe0[_0xd8ce('0x46')]):_0xd8ce('0x71'));return respondWithRpcPromise('AcceptMessage',_0xd8ce('0x72'),_0x431e51);}return null;})[_0xd8ce('0x26')](function(_0x27b659){var _0x4df767=_0xd8ce('0x73')+_0x27b659[_0xd8ce('0x19')][_0xd8ce('0x74')];return db[_0xd8ce('0x75')][_0xd8ce('0x31')](_0x4df767,{'type':db[_0xd8ce('0x76')][_0xd8ce('0x77')][_0xd8ce('0x78')],'raw':!![]})[_0xd8ce('0x26')](function(_0x517601){return _0x517601;});})['then'](function(_0x43e9b0){if(_0x43e9b0){_0x431e51['message'][_0xd8ce('0x79')]=_0x43e9b0[0x0];if(!_0x332fe0[_0xd8ce('0x46')][_0xd8ce('0x68')])return;return db['User'][_0xd8ce('0x47')]({'where':{'id':_0x332fe0[_0xd8ce('0x46')]['UserId'],'role':_0xd8ce('0x6a')},'attributes':['id','name',_0xd8ce('0x7a'),_0xd8ce('0x7b'),'internal'],'raw':!![]});}return null;})[_0xd8ce('0x26')](function(_0x21d4fa){if(!_0x21d4fa)return null;_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x6a')]=_0x21d4fa;return _0x431e51;})[_0xd8ce('0x26')](function(_0x5ab3b2){if(_0x5ab3b2){if(_0x332fe0['body'][_0xd8ce('0x7c')]){_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x7d')]=util[_0xd8ce('0x66')](_0xd8ce('0x7e'),_0x332fe0[_0xd8ce('0x69')][_0xd8ce('0x29')]);_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x7f')]=_0x431e51[_0xd8ce('0x7f')];_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x80')]=_0x431e51[_0xd8ce('0x7f')];_0x431e51['message'][_0xd8ce('0x81')]='accept';_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x46')]=htmlToText[_0xd8ce('0x82')](_0x431e51[_0xd8ce('0x19')][_0xd8ce('0x46')]);return respondWithRpcPromise(_0xd8ce('0x83'),_0xd8ce('0x83'),{'event':_0xd8ce('0x84'),'message':_0x431e51['message']},client9002)['then'](function(){return _0x431e51;});}return _0x431e51;}return null;})[_0xd8ce('0x26')](respondWithResult(_0x21a8b6,null))[_0xd8ce('0x1b')](handleError(_0x21a8b6,null));};exports[_0xd8ce('0x85')]=function(_0x508471,_0x130e92){var _0x17c295={'agent':{},'channel':_0xd8ce('0x86')};if(_0x508471[_0xd8ce('0x46')]['id']){delete _0x508471[_0xd8ce('0x46')]['id'];}_0x508471['body'][_0xd8ce('0x68')]=_0x508471[_0xd8ce('0x46')]['UserId']||_0x508471[_0xd8ce('0x69')]['id'];_0x17c295['agent']['id']=_0x508471[_0xd8ce('0x46')]['UserId'];return db[_0xd8ce('0x3f')][_0xd8ce('0x47')]({'where':{'id':_0x508471[_0xd8ce('0x43')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x130e92,null))[_0xd8ce('0x26')](function(_0x298b94){if(_0x298b94){_0x17c295[_0xd8ce('0x19')]=_0x298b94['get']({'plain':!![]});return db[_0xd8ce('0x87')][_0xd8ce('0x47')]({'where':{'id':_0x298b94[_0xd8ce('0x6b')]}});}return null;})[_0xd8ce('0x26')](handleEntityNotFound(_0x130e92,null))['then'](function(_0x2f235d){if(_0x2f235d){_0x17c295[_0xd8ce('0x6d')]=_0x2f235d[_0xd8ce('0x88')]({'plain':!![]});interaction_log[_0xd8ce('0x6e')](_0xd8ce('0x89'),_0x508471[_0xd8ce('0x69')]['id'],_0x508471[_0xd8ce('0x69')][_0xd8ce('0x29')],_0x508471['user'][_0xd8ce('0x70')],_0x17c295[_0xd8ce('0x6d')]['id'],_0x508471['body']?JSON[_0xd8ce('0x63')](_0x508471[_0xd8ce('0x46')]):_0xd8ce('0x71'));return respondWithRpcPromise('RejectMessage',_0xd8ce('0x8a'),_0x17c295);}return null;})[_0xd8ce('0x26')](function(_0x2c3f44){var _0x4e6315=_0xd8ce('0x73')+_0x2c3f44['message'][_0xd8ce('0x74')];return db['sequelize']['query'](_0x4e6315,{'type':db[_0xd8ce('0x76')][_0xd8ce('0x77')][_0xd8ce('0x78')],'raw':!![]})[_0xd8ce('0x26')](function(_0x2a9565){return _0x2a9565;});})[_0xd8ce('0x26')](function(_0x5fde2d){if(_0x5fde2d){_0x17c295[_0xd8ce('0x19')]['contact']=_0x5fde2d[0x0];if(!_0x508471[_0xd8ce('0x46')][_0xd8ce('0x68')])return;return db[_0xd8ce('0x8b')]['find']({'where':{'id':_0x508471[_0xd8ce('0x46')][_0xd8ce('0x68')],'role':'agent'},'attributes':['id',_0xd8ce('0x29'),'fullname',_0xd8ce('0x7b'),'internal'],'raw':!![]});}return null;})[_0xd8ce('0x26')](function(_0xca7a82){if(!_0xca7a82)return null;_0x17c295['message'][_0xd8ce('0x6a')]=_0xca7a82;return _0x17c295;})['then'](function(_0x44612d){if(_0x44612d){_0x44612d[_0xd8ce('0x19')][_0xd8ce('0x7d')]=util[_0xd8ce('0x66')](_0xd8ce('0x7e'),_0x508471[_0xd8ce('0x69')][_0xd8ce('0x29')]);_0x44612d[_0xd8ce('0x19')][_0xd8ce('0x7f')]=_0x17c295['channel'];_0x44612d[_0xd8ce('0x19')][_0xd8ce('0x80')]=_0x17c295[_0xd8ce('0x7f')];_0x44612d[_0xd8ce('0x19')]['event']='reject';_0x44612d[_0xd8ce('0x19')][_0xd8ce('0x46')]=htmlToText[_0xd8ce('0x82')](_0x17c295[_0xd8ce('0x19')][_0xd8ce('0x46')]);respondWithRpcPromise(_0xd8ce('0x83'),_0xd8ce('0x83'),{'event':_0xd8ce('0x8c'),'message':_0x44612d[_0xd8ce('0x19')]},client9002);return _0x17c295;}return null;})[_0xd8ce('0x26')](respondWithResult(_0x130e92,null))['catch'](handleError(_0x130e92,null));};exports['download']=function(_0x3cf42e,_0x1f3aad){var _0x128727=moment()[_0xd8ce('0x8d')]()[_0xd8ce('0x8e')]();var _0xdc556a=path[_0xd8ce('0x5b')](config['root'],_0xd8ce('0x8f'),_0xd8ce('0x90'),_0xd8ce('0x91'));var _0x5ea432=path['join'](config[_0xd8ce('0x5c')],'server',_0xd8ce('0x90'),_0xd8ce('0x5a'));var _0x37951c=util[_0xd8ce('0x66')]('message-%s.eml',_0x128727);return db['MailMessage'][_0xd8ce('0x47')]({'where':{'id':_0x3cf42e['params']['id']},'attributes':['id',_0xd8ce('0x46'),'from','to','cc',_0xd8ce('0x92'),_0xd8ce('0x93'),_0xd8ce('0x94')],'include':_0x3cf42e[_0xd8ce('0x31')][_0xd8ce('0x5a')]?[{'model':db[_0xd8ce('0x95')],'as':_0xd8ce('0x96')}]:undefined})[_0xd8ce('0x26')](handleEntityNotFound(_0x1f3aad,null))[_0xd8ce('0x26')](function(_0x21c6b4){if(_0x21c6b4){var _0x599092=_0x21c6b4;var _0x32be10={'from':_0x599092[_0xd8ce('0x97')],'to':_0x599092['to'],'subject':_0x599092['subject'],'html':htmlEntities[_0xd8ce('0x98')](_0x599092[_0xd8ce('0x46')]),'headers':{'Date':moment(_0x599092[_0xd8ce('0x94')])[_0xd8ce('0x66')](_0xd8ce('0x99'))},'attachments':[]};if(_0x21c6b4['cc']){_0x32be10[_0xd8ce('0x9a')]['Cc']=_0x21c6b4['cc'];}if(_0x21c6b4[_0xd8ce('0x92')]){_0x32be10[_0xd8ce('0x9a')][_0xd8ce('0x9b')]=_0x21c6b4[_0xd8ce('0x92')];}return new BPromise(function(_0x27cb27,_0x86ec53){if(_0x21c6b4['Attachments']){for(var _0x439bb6=0x0;_0x439bb6<_0x21c6b4['Attachments'][_0xd8ce('0x44')];_0x439bb6++){var _0x43ca9d=_0x21c6b4[_0xd8ce('0x96')][_0x439bb6];var _0x108535=path[_0xd8ce('0x5b')](_0x5ea432,_0x43ca9d[_0xd8ce('0x9c')]);if(fs[_0xd8ce('0x9d')](_0x108535)){_0x32be10['attachments'][_0xd8ce('0x9e')]({'name':_0x43ca9d[_0xd8ce('0x29')],'contentType':_0x43ca9d[_0xd8ce('0x3c')],'data':fs['readFileSync'](_0x108535)});}}}emlformat[_0xd8ce('0x9f')](_0x32be10,function(_0x3718ca,_0x1b701f){if(_0x3718ca)return _0x86ec53(_0x3718ca);fs[_0xd8ce('0xa0')](path[_0xd8ce('0x5b')](_0xdc556a,_0x37951c),_0x1b701f);return _0x27cb27(_0x1b701f);});});}})[_0xd8ce('0x26')](function(_0xc1c78a){if(_0xc1c78a){return _0x1f3aad['download'](path[_0xd8ce('0x5b')](_0xdc556a,_0x37951c),_0x37951c,function(_0x4d64c3){if(!_0x4d64c3)fs[_0xd8ce('0xa1')](path['join'](_0xdc556a,_0x37951c));});}})[_0xd8ce('0x1b')](handleError(_0x1f3aad,null));};