0471e09c652b634cc6c1faae04f0a5b5954ffebc
[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 _0xc8e6=['status','set','json','update','destroy','end','stack','name','index','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','map','merge','options','MailMessage','show','params','includeAll','include','find','body','describe','create','direction','out','MailAccount','findOne','CmList','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','CloudProvider','getSmtpOptions','attachments','join','root','server/files/attachments','basename','List','ListId','SendMail','sendMail','messageId','YYYY-MM-DD\x20HH:mm:ss','stringify','accept','readAt','format','UserId','user','agent','get','MailInteraction','MailInteractionId','isNil','read1stAt','interaction','role','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','User','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','fromString','EventManager','acceptmessage','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','fullname','rejectmessage','download','unix','tmp','server','files','message-%s.eml','from','createdAt','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','Attachments','existsSync','push','readFileSync','build','writeFileSync','unlinkSync','eml-format','moment','bluebird','util','path','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','mail-interactions','defaults','socket.io-emitter','redis','html-entities','./mailMessage.socket','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','offset','undefined','limit','count'];(function(_0x409171,_0x279383){var _0x499c2f=function(_0x173d40){while(--_0x173d40){_0x409171['push'](_0x409171['shift']());}};_0x499c2f(++_0x279383);}(_0xc8e6,0x78));var _0x6c8e=function(_0x200aa5,_0x197802){_0x200aa5=_0x200aa5-0x0;var _0x458200=_0xc8e6[_0x200aa5];return _0x458200;};'use strict';var emlformat=require(_0x6c8e('0x0'));var moment=require(_0x6c8e('0x1'));var BPromise=require(_0x6c8e('0x2'));var util=require(_0x6c8e('0x3'));var path=require(_0x6c8e('0x4'));var fs=require('fs');var _=require(_0x6c8e('0x5'));var Redis=require(_0x6c8e('0x6'));var htmlToText=require(_0x6c8e('0x7'));var qs=require(_0x6c8e('0x8'));var logger=require(_0x6c8e('0x9'))(_0x6c8e('0xa'));var interaction_log=require(_0x6c8e('0x9'))(_0x6c8e('0xb'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_[_0x6c8e('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x6c8e('0xd'))(new Redis(config[_0x6c8e('0xe')]));var htmlEntities=require(_0x6c8e('0xf'));require(_0x6c8e('0x10'))['register'](socket);var jayson=require(_0x6c8e('0x11'));var client=jayson[_0x6c8e('0x12')][_0x6c8e('0x13')]({'port':0x232c});var client9003=jayson[_0x6c8e('0x12')]['http']({'port':0x232b});var client9002=jayson[_0x6c8e('0x12')][_0x6c8e('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x1eba98,_0x3e7f76,_0x33ee86,_0x5116c2){return new BPromise(function(_0x5efa67,_0x1bbcc6){var _0x2fcf65=_0x5116c2||client;return _0x2fcf65[_0x6c8e('0x14')](_0x1eba98,_0x33ee86)[_0x6c8e('0x15')](function(_0x3e9230){logger['info'](_0x6c8e('0x16'),_0x3e7f76,_0x6c8e('0x17'));logger[_0x6c8e('0x18')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x3e7f76,_0x6c8e('0x17'),JSON['stringify'](_0x3e9230));if(_0x3e9230[_0x6c8e('0x19')]){if(_0x3e9230[_0x6c8e('0x19')][_0x6c8e('0x1a')]===0x1f4){logger['error']('MailMessage,\x20%s,\x20%s',_0x3e7f76,_0x3e9230['error']['message']);return _0x1bbcc6(_0x3e9230['error'][_0x6c8e('0x1b')]);}logger['error'](_0x6c8e('0x16'),_0x3e7f76,_0x3e9230[_0x6c8e('0x19')][_0x6c8e('0x1b')]);return _0x5efa67(_0x3e9230[_0x6c8e('0x19')][_0x6c8e('0x1b')]);}else{logger[_0x6c8e('0x1c')](_0x6c8e('0x16'),_0x3e7f76,_0x6c8e('0x17'));_0x5efa67(_0x3e9230[_0x6c8e('0x1d')][_0x6c8e('0x1b')]);}})[_0x6c8e('0x1e')](function(_0x554e17){logger[_0x6c8e('0x19')]('MailMessage,\x20%s,\x20%s',_0x3e7f76,_0x554e17);_0x1bbcc6(_0x554e17);});});}function respondWithResult(_0x52c2a4,_0x43695f){_0x43695f=_0x43695f||0xc8;return function(_0xf26daa){if(_0xf26daa){return _0x52c2a4['status'](_0x43695f)['json'](_0xf26daa);}};}function respondWithFilteredResult(_0x1601fc,_0x267bf7){return function(_0x36e5a9){if(_0x36e5a9){var _0x175fad=typeof _0x267bf7[_0x6c8e('0x1f')]===_0x6c8e('0x20')&&typeof _0x267bf7[_0x6c8e('0x21')]===_0x6c8e('0x20');var _0x7db58b=_0x36e5a9[_0x6c8e('0x22')];var _0x20a270=_0x175fad?0x0:_0x267bf7['offset'];var _0x1ca7a6=_0x175fad?_0x36e5a9[_0x6c8e('0x22')]:_0x267bf7[_0x6c8e('0x1f')]+_0x267bf7['limit'];var _0x29c572;if(_0x1ca7a6>=_0x7db58b){_0x1ca7a6=_0x7db58b;_0x29c572=0xc8;}else{_0x29c572=0xce;}_0x1601fc[_0x6c8e('0x23')](_0x29c572);return _0x1601fc[_0x6c8e('0x24')]('Content-Range',_0x20a270+'-'+_0x1ca7a6+'/'+_0x7db58b)[_0x6c8e('0x25')](_0x36e5a9);}return null;};}function saveUpdates(_0x4afd91){return function(_0x1e2b5b){if(_0x1e2b5b){return _0x1e2b5b[_0x6c8e('0x26')](_0x4afd91)[_0x6c8e('0x15')](function(_0x433045){return _0x433045;});}return null;};}function removeEntity(_0x272a2b){return function(_0x330a15){if(_0x330a15){return _0x330a15[_0x6c8e('0x27')]()[_0x6c8e('0x15')](function(){_0x272a2b[_0x6c8e('0x23')](0xcc)[_0x6c8e('0x28')]();});}};}function handleEntityNotFound(_0x29c57f){return function(_0x1b75dc){if(!_0x1b75dc){_0x29c57f['sendStatus'](0x194);}return _0x1b75dc;};}function handleError(_0x33bb4c,_0x48770c){_0x48770c=_0x48770c||0x1f4;return function(_0x505837){logger[_0x6c8e('0x19')](_0x505837[_0x6c8e('0x29')]);if(_0x505837[_0x6c8e('0x2a')]){delete _0x505837[_0x6c8e('0x2a')];}_0x33bb4c[_0x6c8e('0x23')](_0x48770c)['send'](_0x505837);};}exports[_0x6c8e('0x2b')]=function(_0x4e6a7e,_0x166b3a){var _0x4116dc={},_0x405288={},_0x2cb604={'count':0x0,'rows':[]};var _0x31f47c=_['map'](db['MailMessage'][_0x6c8e('0x2c')],function(_0x1c0749){return{'name':_0x1c0749[_0x6c8e('0x2d')],'type':_0x1c0749[_0x6c8e('0x2e')][_0x6c8e('0x2f')]};});_0x405288[_0x6c8e('0x30')]=_['map'](_0x31f47c,'name');_0x405288[_0x6c8e('0x31')]=_[_0x6c8e('0x32')](_0x4e6a7e[_0x6c8e('0x31')]);_0x405288[_0x6c8e('0x33')]=_[_0x6c8e('0x34')](_0x405288[_0x6c8e('0x30')],_0x405288['query']);_0x4116dc[_0x6c8e('0x35')]=_[_0x6c8e('0x34')](_0x405288[_0x6c8e('0x30')],qs[_0x6c8e('0x36')](_0x4e6a7e[_0x6c8e('0x31')][_0x6c8e('0x36')]));_0x4116dc['attributes']=_0x4116dc[_0x6c8e('0x35')][_0x6c8e('0x37')]?_0x4116dc[_0x6c8e('0x35')]:_0x405288[_0x6c8e('0x30')];if(!_0x4e6a7e['query'][_0x6c8e('0x38')]('nolimit')){_0x4116dc[_0x6c8e('0x21')]=qs[_0x6c8e('0x21')](_0x4e6a7e[_0x6c8e('0x31')]['limit']);_0x4116dc[_0x6c8e('0x1f')]=qs[_0x6c8e('0x1f')](_0x4e6a7e['query']['offset']);}_0x4116dc[_0x6c8e('0x39')]=qs[_0x6c8e('0x3a')](_0x4e6a7e[_0x6c8e('0x31')]['sort']);_0x4116dc[_0x6c8e('0x3b')]=qs[_0x6c8e('0x33')](_['pick'](_0x4e6a7e[_0x6c8e('0x31')],_0x405288[_0x6c8e('0x33')]),_0x31f47c);if(_0x4e6a7e[_0x6c8e('0x31')][_0x6c8e('0x3c')]){_0x4116dc[_0x6c8e('0x3b')]=_['merge'](_0x4116dc[_0x6c8e('0x3b')],{'$or':_[_0x6c8e('0x3d')](_0x31f47c,function(_0x2512ff){if(_0x2512ff[_0x6c8e('0x2e')]!=='VIRTUAL'){var _0x563c1f={};_0x563c1f[_0x2512ff[_0x6c8e('0x2a')]]={'$like':'%'+_0x4e6a7e[_0x6c8e('0x31')][_0x6c8e('0x3c')]+'%'};return _0x563c1f;}})});}_0x4116dc=_[_0x6c8e('0x3e')]({},_0x4116dc,_0x4e6a7e[_0x6c8e('0x3f')]);var _0x4d6b0d={'where':_0x4116dc[_0x6c8e('0x3b')]};return db[_0x6c8e('0x40')][_0x6c8e('0x22')](_0x4d6b0d)['then'](function(_0x1d8e55){_0x2cb604[_0x6c8e('0x22')]=_0x1d8e55;if(_0x4e6a7e['query']['includeAll']){_0x4116dc['include']=[{'all':!![]}];}return db[_0x6c8e('0x40')]['findAll'](_0x4116dc);})[_0x6c8e('0x15')](function(_0x5a69c5){_0x2cb604['rows']=_0x5a69c5;return _0x2cb604;})[_0x6c8e('0x15')](respondWithFilteredResult(_0x166b3a,_0x4116dc))['catch'](handleError(_0x166b3a,null));};exports[_0x6c8e('0x41')]=function(_0x429543,_0x10d496){var _0x25d5ea={'raw':!![],'where':{'id':_0x429543[_0x6c8e('0x42')]['id']}},_0x216a56={};_0x216a56[_0x6c8e('0x30')]=_[_0x6c8e('0x32')](db[_0x6c8e('0x40')][_0x6c8e('0x2c')]);_0x216a56[_0x6c8e('0x31')]=_[_0x6c8e('0x32')](_0x429543[_0x6c8e('0x31')]);_0x216a56[_0x6c8e('0x33')]=_[_0x6c8e('0x34')](_0x216a56[_0x6c8e('0x30')],_0x216a56[_0x6c8e('0x31')]);_0x25d5ea[_0x6c8e('0x35')]=_[_0x6c8e('0x34')](_0x216a56[_0x6c8e('0x30')],qs[_0x6c8e('0x36')](_0x429543[_0x6c8e('0x31')][_0x6c8e('0x36')]));_0x25d5ea[_0x6c8e('0x35')]=_0x25d5ea[_0x6c8e('0x35')][_0x6c8e('0x37')]?_0x25d5ea['attributes']:_0x216a56[_0x6c8e('0x30')];if(_0x429543[_0x6c8e('0x31')][_0x6c8e('0x43')]){_0x25d5ea[_0x6c8e('0x44')]=[{'all':!![]}];}_0x25d5ea=_[_0x6c8e('0x3e')]({},_0x25d5ea,_0x429543['options']);return db[_0x6c8e('0x40')][_0x6c8e('0x45')](_0x25d5ea)['then'](handleEntityNotFound(_0x10d496,null))[_0x6c8e('0x15')](respondWithResult(_0x10d496,null))[_0x6c8e('0x1e')](handleError(_0x10d496,null));};exports[_0x6c8e('0x26')]=function(_0x1c08e9,_0x40b205){if(_0x1c08e9[_0x6c8e('0x46')]['id']){delete _0x1c08e9[_0x6c8e('0x46')]['id'];}return db[_0x6c8e('0x40')][_0x6c8e('0x45')]({'where':{'id':_0x1c08e9[_0x6c8e('0x42')]['id']}})[_0x6c8e('0x15')](handleEntityNotFound(_0x40b205,null))[_0x6c8e('0x15')](saveUpdates(_0x1c08e9[_0x6c8e('0x46')],null))['then'](respondWithResult(_0x40b205,null))['catch'](handleError(_0x40b205,null));};exports['destroy']=function(_0x55c53b,_0x78ee4b){return db[_0x6c8e('0x40')][_0x6c8e('0x45')]({'where':{'id':_0x55c53b[_0x6c8e('0x42')]['id']}})['then'](handleEntityNotFound(_0x78ee4b,null))[_0x6c8e('0x15')](removeEntity(_0x78ee4b,null))['catch'](handleError(_0x78ee4b,null));};exports[_0x6c8e('0x47')]=function(_0x336d39,_0x5b0ccf){return db[_0x6c8e('0x40')]['describe']()['then'](respondWithResult(_0x5b0ccf,null))[_0x6c8e('0x1e')](handleError(_0x5b0ccf,null));};exports[_0x6c8e('0x48')]=function(_0x188946,_0x31ca79){return db[_0x6c8e('0x40')][_0x6c8e('0x48')](_0x188946[_0x6c8e('0x46')])[_0x6c8e('0x15')](function(_0x20f016){if(_0x20f016){if(_0x20f016[_0x6c8e('0x49')]===_0x6c8e('0x4a')&&!_0x20f016['secret']){var _0x2460f3,_0x230da9,_0x3a2558;if(_0x188946[_0x6c8e('0x46')]['to']){_0x230da9=_0x188946[_0x6c8e('0x46')]['to']['split'](',')[0x0];}return db[_0x6c8e('0x4b')][_0x6c8e('0x4c')]({'where':{'id':_0x20f016['MailAccountId']},'include':[{'model':db[_0x6c8e('0x4d')],'as':'List','include':[{'model':db[_0x6c8e('0x4e')],'as':_0x6c8e('0x4f'),'where':{'email':_0x230da9},'limit':0x1,'order':[[_0x6c8e('0x50'),_0x6c8e('0x51')]]}]},{'model':db[_0x6c8e('0x52')],'as':_0x6c8e('0x53'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':_0x6c8e('0x54'),'raw':!![]}]}]})['then'](function(_0x55a630){_0x2460f3=_0x55a630;if(!_0x2460f3||!_0x2460f3[_0x6c8e('0x53')])return;var _0xc75c1a=_0x2460f3[_0x6c8e('0x55')]();if(_0x188946['body'][_0x6c8e('0x56')]&&_0x188946['body'][_0x6c8e('0x56')][_0x6c8e('0x37')]){for(var _0x5b4d80=0x0;_0x5b4d80<_0x188946[_0x6c8e('0x46')][_0x6c8e('0x56')][_0x6c8e('0x37')];_0x5b4d80+=0x1){_0x188946[_0x6c8e('0x46')][_0x6c8e('0x56')][_0x5b4d80]={'filename':_0x188946[_0x6c8e('0x46')]['attachments'][_0x5b4d80][_0x6c8e('0x2a')],'path':path[_0x6c8e('0x57')](config[_0x6c8e('0x58')],_0x6c8e('0x59'),_0x188946[_0x6c8e('0x46')]['attachments'][_0x5b4d80][_0x6c8e('0x5a')])};}}_0x3a2558={'account':_0xc75c1a,'message':_0x188946[_0x6c8e('0x46')]};return;})[_0x6c8e('0x15')](function(){if(_0x2460f3[_0x6c8e('0x5b')]){if(_0x2460f3[_0x6c8e('0x5b')][_0x6c8e('0x4f')]['length']){return _0x2460f3[_0x6c8e('0x5b')]['Contacts'][0x0];}else{return db['CmContact'][_0x6c8e('0x48')](_[_0x6c8e('0xc')](_0x188946[_0x6c8e('0x46')],{'firstName':_0x188946['body']['to'],'email':_0x188946[_0x6c8e('0x46')]['to'],'phone':_0x188946[_0x6c8e('0x46')]['to'],'ListId':_0x2460f3[_0x6c8e('0x5c')]}));}}else{throw new Error('List\x20not\x20found');}})[_0x6c8e('0x15')](function(){if(_0x3a2558){return respondWithRpcPromise(_0x6c8e('0x5d'),_0x6c8e('0x5e'),_0x3a2558,client9003)[_0x6c8e('0x15')](function(_0x3d37e0){return _0x20f016[_0x6c8e('0x26')]({'read':!![],'messageId':_0x3d37e0[_0x6c8e('0x5f')],'sentAt':moment()['format'](_0x6c8e('0x60'))});})[_0x6c8e('0x1e')](function(_0x5f3256){logger[_0x6c8e('0x19')]('%s',JSON[_0x6c8e('0x61')](_0x5f3256));return _0x20f016;});}return _0x20f016;});}return _0x20f016;}})[_0x6c8e('0x15')](respondWithResult(_0x31ca79,0xc9))[_0x6c8e('0x1e')](handleError(_0x31ca79,null));};exports[_0x6c8e('0x62')]=function(_0x346984,_0x43947e){var _0x2c3dcf={'agent':{},'channel':'mail'};if(_0x346984[_0x6c8e('0x46')]['id']){delete _0x346984[_0x6c8e('0x46')]['id'];}_0x346984['body']['read']=!![];_0x346984[_0x6c8e('0x46')][_0x6c8e('0x63')]=moment()[_0x6c8e('0x64')](_0x6c8e('0x60'));_0x346984['body'][_0x6c8e('0x65')]=_0x346984['body'][_0x6c8e('0x65')]||_0x346984[_0x6c8e('0x66')]['id'];_0x2c3dcf[_0x6c8e('0x67')]['id']=_0x346984[_0x6c8e('0x46')][_0x6c8e('0x65')];return db[_0x6c8e('0x40')][_0x6c8e('0x45')]({'where':{'id':_0x346984[_0x6c8e('0x42')]['id'],'UserId':null}})[_0x6c8e('0x15')](handleEntityNotFound(_0x43947e,null))[_0x6c8e('0x15')](saveUpdates(_0x346984[_0x6c8e('0x46')],null))[_0x6c8e('0x15')](function(_0x2fcef1){if(_0x2fcef1){_0x2c3dcf[_0x6c8e('0x1b')]=_0x2fcef1[_0x6c8e('0x68')]({'plain':!![]});return db[_0x6c8e('0x69')][_0x6c8e('0x45')]({'where':{'id':_0x2fcef1[_0x6c8e('0x6a')]}});}return null;})[_0x6c8e('0x15')](handleEntityNotFound(_0x43947e,null))[_0x6c8e('0x15')](function(_0x42ee04){if(_0x42ee04){return _0x42ee04[_0x6c8e('0x26')]({'UserId':_0x346984[_0x6c8e('0x46')][_0x6c8e('0x65')],'read1stAt':_[_0x6c8e('0x6b')](_0x42ee04[_0x6c8e('0x6c')])?moment()[_0x6c8e('0x64')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x6c8e('0x15')](function(_0x3248c6){if(_0x3248c6){_0x2c3dcf[_0x6c8e('0x6d')]=_0x3248c6['get']({'plain':!![]});interaction_log[_0x6c8e('0x1c')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x346984['user']['id'],_0x346984[_0x6c8e('0x66')][_0x6c8e('0x2a')],_0x346984['user'][_0x6c8e('0x6e')],_0x2c3dcf[_0x6c8e('0x6d')]['id'],_0x346984[_0x6c8e('0x46')]?JSON['stringify'](_0x346984[_0x6c8e('0x46')]):_0x6c8e('0x6f'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x2c3dcf);}return null;})[_0x6c8e('0x15')](function(_0x37f9bd){var _0xe34ec8=_0x6c8e('0x70')+_0x37f9bd['message'][_0x6c8e('0x71')];return db[_0x6c8e('0x72')][_0x6c8e('0x31')](_0xe34ec8,{'type':db[_0x6c8e('0x73')]['QueryTypes'][_0x6c8e('0x74')],'raw':!![]})[_0x6c8e('0x15')](function(_0x185ed7){return _0x185ed7;});})[_0x6c8e('0x15')](function(_0x1faed0){if(_0x1faed0){_0x2c3dcf[_0x6c8e('0x1b')][_0x6c8e('0x75')]=_0x1faed0[0x0];if(!_0x346984[_0x6c8e('0x46')][_0x6c8e('0x65')])return;return db[_0x6c8e('0x76')][_0x6c8e('0x45')]({'where':{'id':_0x346984[_0x6c8e('0x46')][_0x6c8e('0x65')],'role':_0x6c8e('0x67')},'attributes':['id',_0x6c8e('0x2a'),'fullname',_0x6c8e('0x77'),_0x6c8e('0x78')],'raw':!![]});}return null;})['then'](function(_0x1040c4){if(!_0x1040c4)return null;_0x2c3dcf[_0x6c8e('0x1b')][_0x6c8e('0x67')]=_0x1040c4;return _0x2c3dcf;})[_0x6c8e('0x15')](function(_0x42ac98){if(_0x42ac98){if(_0x346984[_0x6c8e('0x46')][_0x6c8e('0x79')]){_0x2c3dcf[_0x6c8e('0x1b')][_0x6c8e('0x7a')]=util[_0x6c8e('0x64')](_0x6c8e('0x7b'),_0x346984[_0x6c8e('0x66')]['name']);_0x2c3dcf[_0x6c8e('0x1b')][_0x6c8e('0x7c')]=_0x2c3dcf[_0x6c8e('0x7c')];_0x2c3dcf[_0x6c8e('0x1b')][_0x6c8e('0x7d')]=_0x2c3dcf[_0x6c8e('0x7c')];_0x2c3dcf['message'][_0x6c8e('0x7e')]='accept';_0x2c3dcf['message'][_0x6c8e('0x46')]=htmlToText[_0x6c8e('0x7f')](_0x2c3dcf['message'][_0x6c8e('0x46')]);return respondWithRpcPromise(_0x6c8e('0x80'),_0x6c8e('0x80'),{'event':_0x6c8e('0x81'),'message':_0x2c3dcf['message']},client9002)['then'](function(){return _0x2c3dcf;});}return _0x2c3dcf;}return null;})[_0x6c8e('0x15')](respondWithResult(_0x43947e,null))['catch'](handleError(_0x43947e,null));};exports[_0x6c8e('0x82')]=function(_0xebe5f5,_0xef8f6){var _0x3c40ee={'agent':{},'channel':'mail'};if(_0xebe5f5[_0x6c8e('0x46')]['id']){delete _0xebe5f5[_0x6c8e('0x46')]['id'];}_0xebe5f5[_0x6c8e('0x46')][_0x6c8e('0x65')]=_0xebe5f5[_0x6c8e('0x46')][_0x6c8e('0x65')]||_0xebe5f5[_0x6c8e('0x66')]['id'];_0x3c40ee[_0x6c8e('0x67')]['id']=_0xebe5f5['body'][_0x6c8e('0x65')];return db[_0x6c8e('0x40')][_0x6c8e('0x45')]({'where':{'id':_0xebe5f5[_0x6c8e('0x42')]['id'],'UserId':null}})[_0x6c8e('0x15')](handleEntityNotFound(_0xef8f6,null))[_0x6c8e('0x15')](function(_0x1e6f8e){if(_0x1e6f8e){_0x3c40ee['message']=_0x1e6f8e[_0x6c8e('0x68')]({'plain':!![]});return db[_0x6c8e('0x69')][_0x6c8e('0x45')]({'where':{'id':_0x1e6f8e[_0x6c8e('0x6a')]}});}return null;})[_0x6c8e('0x15')](handleEntityNotFound(_0xef8f6,null))[_0x6c8e('0x15')](function(_0x5a85da){if(_0x5a85da){_0x3c40ee[_0x6c8e('0x6d')]=_0x5a85da['get']({'plain':!![]});interaction_log['info'](_0x6c8e('0x83'),_0xebe5f5[_0x6c8e('0x66')]['id'],_0xebe5f5['user']['name'],_0xebe5f5[_0x6c8e('0x66')]['role'],_0x3c40ee[_0x6c8e('0x6d')]['id'],_0xebe5f5['body']?JSON[_0x6c8e('0x61')](_0xebe5f5[_0x6c8e('0x46')]):_0x6c8e('0x6f'));return respondWithRpcPromise(_0x6c8e('0x84'),'rejectMessage',_0x3c40ee);}return null;})['then'](function(_0x19c2a8){var _0x53a5c0=_0x6c8e('0x70')+_0x19c2a8[_0x6c8e('0x1b')][_0x6c8e('0x71')];return db[_0x6c8e('0x72')][_0x6c8e('0x31')](_0x53a5c0,{'type':db[_0x6c8e('0x73')]['QueryTypes']['SELECT'],'raw':!![]})[_0x6c8e('0x15')](function(_0x5a46cc){return _0x5a46cc;});})[_0x6c8e('0x15')](function(_0xb186b5){if(_0xb186b5){_0x3c40ee['message'][_0x6c8e('0x75')]=_0xb186b5[0x0];if(!_0xebe5f5['body'][_0x6c8e('0x65')])return;return db['User']['find']({'where':{'id':_0xebe5f5[_0x6c8e('0x46')]['UserId'],'role':_0x6c8e('0x67')},'attributes':['id','name',_0x6c8e('0x85'),_0x6c8e('0x77'),_0x6c8e('0x78')],'raw':!![]});}return null;})['then'](function(_0x394105){if(!_0x394105)return null;_0x3c40ee[_0x6c8e('0x1b')][_0x6c8e('0x67')]=_0x394105;return _0x3c40ee;})[_0x6c8e('0x15')](function(_0x3b3e28){if(_0x3b3e28){_0x3b3e28[_0x6c8e('0x1b')]['interface']=util[_0x6c8e('0x64')](_0x6c8e('0x7b'),_0xebe5f5[_0x6c8e('0x66')][_0x6c8e('0x2a')]);_0x3b3e28[_0x6c8e('0x1b')]['channel']=_0x3c40ee[_0x6c8e('0x7c')];_0x3b3e28[_0x6c8e('0x1b')][_0x6c8e('0x7d')]=_0x3c40ee[_0x6c8e('0x7c')];_0x3b3e28[_0x6c8e('0x1b')][_0x6c8e('0x7e')]='reject';_0x3b3e28[_0x6c8e('0x1b')][_0x6c8e('0x46')]=htmlToText[_0x6c8e('0x7f')](_0x3c40ee[_0x6c8e('0x1b')][_0x6c8e('0x46')]);respondWithRpcPromise(_0x6c8e('0x80'),_0x6c8e('0x80'),{'event':_0x6c8e('0x86'),'message':_0x3b3e28[_0x6c8e('0x1b')]},client9002);return _0x3c40ee;}return null;})[_0x6c8e('0x15')](respondWithResult(_0xef8f6,null))[_0x6c8e('0x1e')](handleError(_0xef8f6,null));};exports[_0x6c8e('0x87')]=function(_0x234e7f,_0x1c91b3){var _0x47fdb1=moment()[_0x6c8e('0x88')]()['toString']();var _0x4b367d=path[_0x6c8e('0x57')](config[_0x6c8e('0x58')],'server','files',_0x6c8e('0x89'));var _0x4ba8d0=path[_0x6c8e('0x57')](config[_0x6c8e('0x58')],_0x6c8e('0x8a'),_0x6c8e('0x8b'),'attachments');var _0x19e4d9=util['format'](_0x6c8e('0x8c'),_0x47fdb1);return db[_0x6c8e('0x40')][_0x6c8e('0x45')]({'where':{'id':_0x234e7f[_0x6c8e('0x42')]['id']},'attributes':['id',_0x6c8e('0x46'),_0x6c8e('0x8d'),'to','cc','bcc','subject',_0x6c8e('0x8e')],'include':_0x234e7f[_0x6c8e('0x31')][_0x6c8e('0x56')]?[{'model':db['Attachment'],'as':'Attachments'}]:undefined})[_0x6c8e('0x15')](handleEntityNotFound(_0x1c91b3,null))[_0x6c8e('0x15')](function(_0x4dea52){if(_0x4dea52){var _0x505646=_0x4dea52;var _0xa3039d={'from':_0x505646[_0x6c8e('0x8d')],'to':_0x505646['to'],'subject':_0x505646[_0x6c8e('0x8f')],'html':htmlEntities['decode'](_0x505646[_0x6c8e('0x46')]),'headers':{'Date':moment(_0x505646[_0x6c8e('0x8e')])[_0x6c8e('0x64')](_0x6c8e('0x90'))},'attachments':[]};if(_0x4dea52['cc']){_0xa3039d[_0x6c8e('0x91')]['Cc']=_0x4dea52['cc'];}if(_0x4dea52[_0x6c8e('0x92')]){_0xa3039d[_0x6c8e('0x91')][_0x6c8e('0x93')]=_0x4dea52['bcc'];}return new BPromise(function(_0x40a596,_0x29d536){if(_0x4dea52[_0x6c8e('0x94')]){for(var _0x427c23=0x0;_0x427c23<_0x4dea52[_0x6c8e('0x94')]['length'];_0x427c23++){var _0x128782=_0x4dea52[_0x6c8e('0x94')][_0x427c23];var _0x2c94e5=path['join'](_0x4ba8d0,_0x128782['basename']);if(fs[_0x6c8e('0x95')](_0x2c94e5)){_0xa3039d[_0x6c8e('0x56')][_0x6c8e('0x96')]({'name':_0x128782[_0x6c8e('0x2a')],'contentType':_0x128782[_0x6c8e('0x2e')],'data':fs[_0x6c8e('0x97')](_0x2c94e5)});}}}emlformat[_0x6c8e('0x98')](_0xa3039d,function(_0x528d18,_0x28b9c7){if(_0x528d18)return _0x29d536(_0x528d18);fs[_0x6c8e('0x99')](path[_0x6c8e('0x57')](_0x4b367d,_0x19e4d9),_0x28b9c7);return _0x40a596(_0x28b9c7);});});}})[_0x6c8e('0x15')](function(_0x4b4494){if(_0x4b4494){return _0x1c91b3[_0x6c8e('0x87')](path[_0x6c8e('0x57')](_0x4b367d,_0x19e4d9),_0x19e4d9,function(_0x32d62e){if(!_0x32d62e)fs[_0x6c8e('0x9a')](path[_0x6c8e('0x57')](_0x4b367d,_0x19e4d9));});}})['catch'](handleError(_0x1c91b3,null));};