1e339b6d86cb558abbc24fb8110c14d9f8090f8b
[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 _0x1add=['sequelize','Sequelize','QueryTypes','SELECT','contact','User','agent','email','manual','interface','SIP/%s','channel','motionChannel','event','fromString','EventManager','acceptmessage','reject','RejectMessage','rejectMessage','internal','toString','join','server','files','tmp','createdAt','Attachment','Attachments','from','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','existsSync','push','build','download','eml-format','moment','bluebird','util','path','../../components/parsers/qs','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','defaults','localhost','html-entities','register','jayson/promise','client','http','request','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','json','undefined','limit','offset','status','set','Content-Range','update','then','destroy','sendStatus','name','send','MailMessage','rawAttributes','fieldName','model','map','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','count','findAll','rows','includeAll','find','body','params','describe','create','out','secret','findOne','MailAccountId','CmList','List','CmContact','updatedAt','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','attachments','root','basename','Contacts','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','read','readAt','UserId','get','MailInteraction','MailInteractionId','isNil','read1stAt','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId'];(function(_0x31b5b2,_0x5ab927){var _0x364f13=function(_0x163bd0){while(--_0x163bd0){_0x31b5b2['push'](_0x31b5b2['shift']());}};_0x364f13(++_0x5ab927);}(_0x1add,0x165));var _0xd1ad=function(_0x24676d,_0x3c0fd2){_0x24676d=_0x24676d-0x0;var _0x29c01a=_0x1add[_0x24676d];return _0x29c01a;};'use strict';var emlformat=require(_0xd1ad('0x0'));var moment=require(_0xd1ad('0x1'));var BPromise=require(_0xd1ad('0x2'));var util=require(_0xd1ad('0x3'));var path=require(_0xd1ad('0x4'));var fs=require('fs');var _=require('lodash');var Redis=require('ioredis');var htmlToText=require('html-to-text');var qs=require(_0xd1ad('0x5'));var logger=require(_0xd1ad('0x6'))(_0xd1ad('0x7'));var interaction_log=require(_0xd1ad('0x6'))(_0xd1ad('0x8'));var config=require(_0xd1ad('0x9'));var db=require(_0xd1ad('0xa'))['db'];config[_0xd1ad('0xb')]=_[_0xd1ad('0xc')](config[_0xd1ad('0xb')],{'host':_0xd1ad('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));var htmlEntities=require(_0xd1ad('0xe'));require('./mailMessage.socket')[_0xd1ad('0xf')](socket);var jayson=require(_0xd1ad('0x10'));var client=jayson[_0xd1ad('0x11')][_0xd1ad('0x12')]({'port':0x232c});var client9003=jayson[_0xd1ad('0x11')][_0xd1ad('0x12')]({'port':0x232b});var client9002=jayson[_0xd1ad('0x11')][_0xd1ad('0x12')]({'port':0x232a});function respondWithRpcPromise(_0xc2703,_0x467e3f,_0x4e92b5,_0x1bffe1){return new BPromise(function(_0x4adfd9,_0x1fcdcf){var _0x3fdbfd=_0x1bffe1||client;return _0x3fdbfd[_0xd1ad('0x13')](_0xc2703,_0x4e92b5)['then'](function(_0x2a2e61){logger[_0xd1ad('0x14')](_0xd1ad('0x15'),_0x467e3f,_0xd1ad('0x16'));logger[_0xd1ad('0x17')](_0xd1ad('0x18'),_0x467e3f,_0xd1ad('0x16'),JSON[_0xd1ad('0x19')](_0x2a2e61));if(_0x2a2e61[_0xd1ad('0x1a')]){if(_0x2a2e61[_0xd1ad('0x1a')][_0xd1ad('0x1b')]===0x1f4){logger[_0xd1ad('0x1a')](_0xd1ad('0x15'),_0x467e3f,_0x2a2e61['error']['message']);return _0x1fcdcf(_0x2a2e61[_0xd1ad('0x1a')]['message']);}logger[_0xd1ad('0x1a')](_0xd1ad('0x15'),_0x467e3f,_0x2a2e61[_0xd1ad('0x1a')][_0xd1ad('0x1c')]);return _0x4adfd9(_0x2a2e61[_0xd1ad('0x1a')][_0xd1ad('0x1c')]);}else{logger['info'](_0xd1ad('0x15'),_0x467e3f,_0xd1ad('0x16'));_0x4adfd9(_0x2a2e61[_0xd1ad('0x1d')][_0xd1ad('0x1c')]);}})[_0xd1ad('0x1e')](function(_0xf3ca99){logger[_0xd1ad('0x1a')](_0xd1ad('0x15'),_0x467e3f,_0xf3ca99);_0x1fcdcf(_0xf3ca99);});});}function respondWithResult(_0x377a86,_0x30a47c){_0x30a47c=_0x30a47c||0xc8;return function(_0x422654){if(_0x422654){return _0x377a86['status'](_0x30a47c)[_0xd1ad('0x1f')](_0x422654);}};}function respondWithFilteredResult(_0x27be74,_0x1d467c){return function(_0x2e494d){if(_0x2e494d){var _0xe9c6c7=typeof _0x1d467c['offset']===_0xd1ad('0x20')&&typeof _0x1d467c[_0xd1ad('0x21')]===_0xd1ad('0x20');var _0x5e63d1=_0x2e494d['count'];var _0xa61d76=_0xe9c6c7?0x0:_0x1d467c[_0xd1ad('0x22')];var _0x438c6e=_0xe9c6c7?_0x2e494d['count']:_0x1d467c['offset']+_0x1d467c['limit'];var _0x48b6c4;if(_0x438c6e>=_0x5e63d1){_0x438c6e=_0x5e63d1;_0x48b6c4=0xc8;}else{_0x48b6c4=0xce;}_0x27be74[_0xd1ad('0x23')](_0x48b6c4);return _0x27be74[_0xd1ad('0x24')](_0xd1ad('0x25'),_0xa61d76+'-'+_0x438c6e+'/'+_0x5e63d1)[_0xd1ad('0x1f')](_0x2e494d);}return null;};}function saveUpdates(_0x15e9fe){return function(_0xa7141b){if(_0xa7141b){return _0xa7141b[_0xd1ad('0x26')](_0x15e9fe)[_0xd1ad('0x27')](function(_0x35db70){return _0x35db70;});}return null;};}function removeEntity(_0x55a539){return function(_0x3873fa){if(_0x3873fa){return _0x3873fa[_0xd1ad('0x28')]()['then'](function(){_0x55a539[_0xd1ad('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d6db4){return function(_0x5a76a1){if(!_0x5a76a1){_0x2d6db4[_0xd1ad('0x29')](0x194);}return _0x5a76a1;};}function handleError(_0x62372c,_0x359679){_0x359679=_0x359679||0x1f4;return function(_0x4367dc){logger['error'](_0x4367dc['stack']);if(_0x4367dc[_0xd1ad('0x2a')]){delete _0x4367dc[_0xd1ad('0x2a')];}_0x62372c[_0xd1ad('0x23')](_0x359679)[_0xd1ad('0x2b')](_0x4367dc);};}exports['index']=function(_0x4a4acf,_0x122852){var _0x2a0de5={},_0x193fb2={},_0x353f9e={'count':0x0,'rows':[]};var _0x1c37b5=_['map'](db[_0xd1ad('0x2c')][_0xd1ad('0x2d')],function(_0x7608aa){return{'name':_0x7608aa[_0xd1ad('0x2e')],'type':_0x7608aa['type']['key']};});_0x193fb2[_0xd1ad('0x2f')]=_[_0xd1ad('0x30')](_0x1c37b5,_0xd1ad('0x2a'));_0x193fb2['query']=_[_0xd1ad('0x31')](_0x4a4acf[_0xd1ad('0x32')]);_0x193fb2[_0xd1ad('0x33')]=_[_0xd1ad('0x34')](_0x193fb2[_0xd1ad('0x2f')],_0x193fb2[_0xd1ad('0x32')]);_0x2a0de5[_0xd1ad('0x35')]=_['intersection'](_0x193fb2[_0xd1ad('0x2f')],qs['fields'](_0x4a4acf[_0xd1ad('0x32')][_0xd1ad('0x36')]));_0x2a0de5[_0xd1ad('0x35')]=_0x2a0de5['attributes'][_0xd1ad('0x37')]?_0x2a0de5[_0xd1ad('0x35')]:_0x193fb2['model'];if(!_0x4a4acf[_0xd1ad('0x32')]['hasOwnProperty'](_0xd1ad('0x38'))){_0x2a0de5[_0xd1ad('0x21')]=qs['limit'](_0x4a4acf[_0xd1ad('0x32')][_0xd1ad('0x21')]);_0x2a0de5[_0xd1ad('0x22')]=qs[_0xd1ad('0x22')](_0x4a4acf[_0xd1ad('0x32')][_0xd1ad('0x22')]);}_0x2a0de5[_0xd1ad('0x39')]=qs[_0xd1ad('0x3a')](_0x4a4acf[_0xd1ad('0x32')]['sort']);_0x2a0de5[_0xd1ad('0x3b')]=qs[_0xd1ad('0x33')](_[_0xd1ad('0x3c')](_0x4a4acf['query'],_0x193fb2[_0xd1ad('0x33')]),_0x1c37b5);if(_0x4a4acf[_0xd1ad('0x32')]['filter']){_0x2a0de5['where']=_[_0xd1ad('0x3d')](_0x2a0de5[_0xd1ad('0x3b')],{'$or':_[_0xd1ad('0x30')](_0x1c37b5,function(_0x57ca86){if(_0x57ca86[_0xd1ad('0x3e')]!==_0xd1ad('0x3f')){var _0x59bec1={};_0x59bec1[_0x57ca86[_0xd1ad('0x2a')]]={'$like':'%'+_0x4a4acf['query'][_0xd1ad('0x40')]+'%'};return _0x59bec1;}})});}_0x2a0de5=_[_0xd1ad('0x3d')]({},_0x2a0de5,_0x4a4acf[_0xd1ad('0x41')]);var _0x1defb6={'where':_0x2a0de5[_0xd1ad('0x3b')]};return db['MailMessage'][_0xd1ad('0x42')](_0x1defb6)[_0xd1ad('0x27')](function(_0x508a7b){_0x353f9e[_0xd1ad('0x42')]=_0x508a7b;if(_0x4a4acf[_0xd1ad('0x32')]['includeAll']){_0x2a0de5['include']=[{'all':!![]}];}return db[_0xd1ad('0x2c')][_0xd1ad('0x43')](_0x2a0de5);})[_0xd1ad('0x27')](function(_0x408755){_0x353f9e[_0xd1ad('0x44')]=_0x408755;return _0x353f9e;})['then'](respondWithFilteredResult(_0x122852,_0x2a0de5))[_0xd1ad('0x1e')](handleError(_0x122852,null));};exports['show']=function(_0x4002dd,_0xea6eb4){var _0x453316={'raw':!![],'where':{'id':_0x4002dd['params']['id']}},_0x262bf0={};_0x262bf0[_0xd1ad('0x2f')]=_['keys'](db[_0xd1ad('0x2c')][_0xd1ad('0x2d')]);_0x262bf0[_0xd1ad('0x32')]=_['keys'](_0x4002dd[_0xd1ad('0x32')]);_0x262bf0['filters']=_['intersection'](_0x262bf0[_0xd1ad('0x2f')],_0x262bf0[_0xd1ad('0x32')]);_0x453316[_0xd1ad('0x35')]=_['intersection'](_0x262bf0['model'],qs[_0xd1ad('0x36')](_0x4002dd[_0xd1ad('0x32')][_0xd1ad('0x36')]));_0x453316[_0xd1ad('0x35')]=_0x453316[_0xd1ad('0x35')][_0xd1ad('0x37')]?_0x453316['attributes']:_0x262bf0[_0xd1ad('0x2f')];if(_0x4002dd['query'][_0xd1ad('0x45')]){_0x453316['include']=[{'all':!![]}];}_0x453316=_[_0xd1ad('0x3d')]({},_0x453316,_0x4002dd[_0xd1ad('0x41')]);return db['MailMessage'][_0xd1ad('0x46')](_0x453316)[_0xd1ad('0x27')](handleEntityNotFound(_0xea6eb4,null))[_0xd1ad('0x27')](respondWithResult(_0xea6eb4,null))[_0xd1ad('0x1e')](handleError(_0xea6eb4,null));};exports[_0xd1ad('0x26')]=function(_0x32c688,_0x48a5b9){if(_0x32c688[_0xd1ad('0x47')]['id']){delete _0x32c688[_0xd1ad('0x47')]['id'];}return db['MailMessage'][_0xd1ad('0x46')]({'where':{'id':_0x32c688['params']['id']}})[_0xd1ad('0x27')](handleEntityNotFound(_0x48a5b9,null))[_0xd1ad('0x27')](saveUpdates(_0x32c688[_0xd1ad('0x47')],null))['then'](respondWithResult(_0x48a5b9,null))[_0xd1ad('0x1e')](handleError(_0x48a5b9,null));};exports[_0xd1ad('0x28')]=function(_0x84e9d3,_0x3a93a9){return db[_0xd1ad('0x2c')][_0xd1ad('0x46')]({'where':{'id':_0x84e9d3[_0xd1ad('0x48')]['id']}})[_0xd1ad('0x27')](handleEntityNotFound(_0x3a93a9,null))['then'](removeEntity(_0x3a93a9,null))['catch'](handleError(_0x3a93a9,null));};exports[_0xd1ad('0x49')]=function(_0x5d711f,_0x426637){return db['MailMessage'][_0xd1ad('0x49')]()[_0xd1ad('0x27')](respondWithResult(_0x426637,null))[_0xd1ad('0x1e')](handleError(_0x426637,null));};exports['create']=function(_0x2cbdd7,_0x1d9e95){return db[_0xd1ad('0x2c')][_0xd1ad('0x4a')](_0x2cbdd7[_0xd1ad('0x47')])[_0xd1ad('0x27')](function(_0x5c67dc){if(_0x5c67dc){if(_0x5c67dc['direction']===_0xd1ad('0x4b')&&!_0x5c67dc[_0xd1ad('0x4c')]){var _0x1c676b,_0x1603ac,_0x3ce065;if(_0x2cbdd7[_0xd1ad('0x47')]['to']){_0x1603ac=_0x2cbdd7[_0xd1ad('0x47')]['to']['split'](',')[0x0];}return db['MailAccount'][_0xd1ad('0x4d')]({'where':{'id':_0x5c67dc[_0xd1ad('0x4e')]},'include':[{'model':db[_0xd1ad('0x4f')],'as':_0xd1ad('0x50'),'include':[{'model':db[_0xd1ad('0x51')],'as':'Contacts','where':{'email':_0x1603ac},'limit':0x1,'order':[[_0xd1ad('0x52'),'DESC']]}]},{'model':db[_0xd1ad('0x53')],'as':_0xd1ad('0x54'),'raw':!![]}]})[_0xd1ad('0x27')](function(_0x14e073){_0x1c676b=_0x14e073;if(_0x1c676b&&_0x1c676b['Smtp']){var _0x54549f={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x1c676b['Smtp'][_0xd1ad('0x55')])){_0x54549f[_0xd1ad('0x56')]=_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x56')];_0x54549f['port']=_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x57')];_0x54549f[_0xd1ad('0x58')]=_0x1c676b[_0xd1ad('0x54')]['secure'];if(_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x59')]){_0x54549f[_0xd1ad('0x5a')]={'user':_0x1c676b['Smtp'][_0xd1ad('0x5b')],'pass':_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x5c')]};}}else{_0x54549f[_0xd1ad('0x55')]=_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x55')];_0x54549f[_0xd1ad('0x5a')]={'user':_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x5b')],'pass':_0x1c676b['Smtp'][_0xd1ad('0x5c')]};_0x54549f[_0xd1ad('0x58')]=_0x1c676b[_0xd1ad('0x54')][_0xd1ad('0x58')];}if(_0x2cbdd7[_0xd1ad('0x47')][_0xd1ad('0x5d')]&&_0x2cbdd7[_0xd1ad('0x47')]['attachments'][_0xd1ad('0x37')]){for(var _0x5251d5=0x0;_0x5251d5<_0x2cbdd7[_0xd1ad('0x47')][_0xd1ad('0x5d')]['length'];_0x5251d5+=0x1){_0x2cbdd7['body']['attachments'][_0x5251d5]={'filename':_0x2cbdd7[_0xd1ad('0x47')][_0xd1ad('0x5d')][_0x5251d5][_0xd1ad('0x2a')],'path':path['join'](config[_0xd1ad('0x5e')],'server/files/attachments',_0x2cbdd7[_0xd1ad('0x47')]['attachments'][_0x5251d5][_0xd1ad('0x5f')])};}}_0x3ce065={'account':_0x54549f,'message':_0x2cbdd7['body']};return;}})[_0xd1ad('0x27')](function(){if(_0x1c676b['List']){if(_0x1c676b['List'][_0xd1ad('0x60')][_0xd1ad('0x37')]){return _0x1c676b[_0xd1ad('0x50')]['Contacts'][0x0];}else{return db[_0xd1ad('0x51')][_0xd1ad('0x4a')](_['defaults'](_0x2cbdd7[_0xd1ad('0x47')],{'firstName':_0x2cbdd7[_0xd1ad('0x47')]['to'],'email':_0x2cbdd7[_0xd1ad('0x47')]['to'],'phone':_0x2cbdd7[_0xd1ad('0x47')]['to'],'ListId':_0x1c676b['ListId']}));}}else{throw new Error(_0xd1ad('0x61'));}})[_0xd1ad('0x27')](function(){if(_0x3ce065){return respondWithRpcPromise(_0xd1ad('0x62'),_0xd1ad('0x63'),_0x3ce065,client9003)[_0xd1ad('0x27')](function(_0x3b209f){return _0x5c67dc[_0xd1ad('0x26')]({'read':!![],'messageId':_0x3b209f[_0xd1ad('0x64')],'sentAt':moment()[_0xd1ad('0x65')](_0xd1ad('0x66'))});})[_0xd1ad('0x1e')](function(_0x5ba90d){logger[_0xd1ad('0x1a')]('%s',JSON[_0xd1ad('0x19')](_0x5ba90d));return _0x5c67dc;});}return _0x5c67dc;});}return _0x5c67dc;}})['then'](respondWithResult(_0x1d9e95,0xc9))[_0xd1ad('0x1e')](handleError(_0x1d9e95,null));};exports[_0xd1ad('0x67')]=function(_0x4f1251,_0x382f18){var _0x267ef4={'agent':{},'channel':_0xd1ad('0x68')};if(_0x4f1251[_0xd1ad('0x47')]['id']){delete _0x4f1251[_0xd1ad('0x47')]['id'];}_0x4f1251[_0xd1ad('0x47')][_0xd1ad('0x69')]=!![];_0x4f1251['body'][_0xd1ad('0x6a')]=moment()[_0xd1ad('0x65')](_0xd1ad('0x66'));_0x4f1251[_0xd1ad('0x47')]['UserId']=_0x4f1251[_0xd1ad('0x47')]['UserId']||_0x4f1251[_0xd1ad('0x5b')]['id'];_0x267ef4['agent']['id']=_0x4f1251[_0xd1ad('0x47')][_0xd1ad('0x6b')];return db[_0xd1ad('0x2c')][_0xd1ad('0x46')]({'where':{'id':_0x4f1251[_0xd1ad('0x48')]['id'],'UserId':null}})[_0xd1ad('0x27')](handleEntityNotFound(_0x382f18,null))[_0xd1ad('0x27')](saveUpdates(_0x4f1251[_0xd1ad('0x47')],null))[_0xd1ad('0x27')](function(_0x4b6664){if(_0x4b6664){_0x267ef4[_0xd1ad('0x1c')]=_0x4b6664[_0xd1ad('0x6c')]({'plain':!![]});return db[_0xd1ad('0x6d')][_0xd1ad('0x46')]({'where':{'id':_0x4b6664[_0xd1ad('0x6e')]}});}return null;})[_0xd1ad('0x27')](handleEntityNotFound(_0x382f18,null))[_0xd1ad('0x27')](function(_0x34987a){if(_0x34987a){return _0x34987a['update']({'UserId':_0x4f1251[_0xd1ad('0x47')]['UserId'],'read1stAt':_[_0xd1ad('0x6f')](_0x34987a[_0xd1ad('0x70')])?moment()['format'](_0xd1ad('0x66')):undefined});}return null;})[_0xd1ad('0x27')](function(_0x10290a){if(_0x10290a){_0x267ef4['interaction']=_0x10290a['get']({'plain':!![]});interaction_log[_0xd1ad('0x14')](_0xd1ad('0x71'),_0x4f1251[_0xd1ad('0x5b')]['id'],_0x4f1251[_0xd1ad('0x5b')][_0xd1ad('0x2a')],_0x4f1251[_0xd1ad('0x5b')][_0xd1ad('0x72')],_0x267ef4[_0xd1ad('0x73')]['id'],_0x4f1251[_0xd1ad('0x47')]?JSON['stringify'](_0x4f1251['body']):_0xd1ad('0x74'));return respondWithRpcPromise('AcceptMessage',_0xd1ad('0x75'),_0x267ef4);}return null;})['then'](function(_0x5a2310){var _0x59c601=_0xd1ad('0x76')+_0x5a2310[_0xd1ad('0x1c')][_0xd1ad('0x77')];return db[_0xd1ad('0x78')][_0xd1ad('0x32')](_0x59c601,{'type':db[_0xd1ad('0x79')][_0xd1ad('0x7a')][_0xd1ad('0x7b')],'raw':!![]})[_0xd1ad('0x27')](function(_0x2b5fa7){return _0x2b5fa7;});})[_0xd1ad('0x27')](function(_0x2eecb3){if(_0x2eecb3){_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x7c')]=_0x2eecb3[0x0];if(!_0x4f1251[_0xd1ad('0x47')]['UserId'])return;return db[_0xd1ad('0x7d')][_0xd1ad('0x46')]({'where':{'id':_0x4f1251['body'][_0xd1ad('0x6b')],'role':_0xd1ad('0x7e')},'attributes':['id',_0xd1ad('0x2a'),'fullname',_0xd1ad('0x7f'),'internal'],'raw':!![]});}return null;})[_0xd1ad('0x27')](function(_0x229921){if(!_0x229921)return null;_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x7e')]=_0x229921;return _0x267ef4;})['then'](function(_0x40d3a7){if(_0x40d3a7){if(_0x4f1251['body'][_0xd1ad('0x80')]){_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x81')]=util[_0xd1ad('0x65')](_0xd1ad('0x82'),_0x4f1251['user'][_0xd1ad('0x2a')]);_0x267ef4['message'][_0xd1ad('0x83')]=_0x267ef4[_0xd1ad('0x83')];_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x84')]=_0x267ef4[_0xd1ad('0x83')];_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x85')]=_0xd1ad('0x67');_0x267ef4[_0xd1ad('0x1c')][_0xd1ad('0x47')]=htmlToText[_0xd1ad('0x86')](_0x267ef4['message'][_0xd1ad('0x47')]);return respondWithRpcPromise(_0xd1ad('0x87'),_0xd1ad('0x87'),{'event':_0xd1ad('0x88'),'message':_0x267ef4[_0xd1ad('0x1c')]},client9002)[_0xd1ad('0x27')](function(){return _0x267ef4;});}return _0x267ef4;}return null;})[_0xd1ad('0x27')](respondWithResult(_0x382f18,null))[_0xd1ad('0x1e')](handleError(_0x382f18,null));};exports[_0xd1ad('0x89')]=function(_0x95e017,_0x45925a){var _0xe1dda6={'agent':{},'channel':'mail'};if(_0x95e017[_0xd1ad('0x47')]['id']){delete _0x95e017[_0xd1ad('0x47')]['id'];}_0x95e017[_0xd1ad('0x47')][_0xd1ad('0x6b')]=_0x95e017[_0xd1ad('0x47')][_0xd1ad('0x6b')]||_0x95e017[_0xd1ad('0x5b')]['id'];_0xe1dda6[_0xd1ad('0x7e')]['id']=_0x95e017[_0xd1ad('0x47')][_0xd1ad('0x6b')];return db[_0xd1ad('0x2c')][_0xd1ad('0x46')]({'where':{'id':_0x95e017[_0xd1ad('0x48')]['id'],'UserId':null}})[_0xd1ad('0x27')](handleEntityNotFound(_0x45925a,null))[_0xd1ad('0x27')](function(_0x42aa2b){if(_0x42aa2b){_0xe1dda6[_0xd1ad('0x1c')]=_0x42aa2b[_0xd1ad('0x6c')]({'plain':!![]});return db[_0xd1ad('0x6d')][_0xd1ad('0x46')]({'where':{'id':_0x42aa2b[_0xd1ad('0x6e')]}});}return null;})['then'](handleEntityNotFound(_0x45925a,null))['then'](function(_0x35e085){if(_0x35e085){_0xe1dda6[_0xd1ad('0x73')]=_0x35e085[_0xd1ad('0x6c')]({'plain':!![]});interaction_log[_0xd1ad('0x14')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x95e017[_0xd1ad('0x5b')]['id'],_0x95e017[_0xd1ad('0x5b')][_0xd1ad('0x2a')],_0x95e017[_0xd1ad('0x5b')]['role'],_0xe1dda6[_0xd1ad('0x73')]['id'],_0x95e017[_0xd1ad('0x47')]?JSON[_0xd1ad('0x19')](_0x95e017[_0xd1ad('0x47')]):'null');return respondWithRpcPromise(_0xd1ad('0x8a'),_0xd1ad('0x8b'),_0xe1dda6);}return null;})['then'](function(_0x3bc0b5){var _0x50794c=_0xd1ad('0x76')+_0x3bc0b5[_0xd1ad('0x1c')][_0xd1ad('0x77')];return db[_0xd1ad('0x78')]['query'](_0x50794c,{'type':db[_0xd1ad('0x79')]['QueryTypes'][_0xd1ad('0x7b')],'raw':!![]})['then'](function(_0x4d44ac){return _0x4d44ac;});})[_0xd1ad('0x27')](function(_0x56ba78){if(_0x56ba78){_0xe1dda6[_0xd1ad('0x1c')]['contact']=_0x56ba78[0x0];if(!_0x95e017['body'][_0xd1ad('0x6b')])return;return db[_0xd1ad('0x7d')][_0xd1ad('0x46')]({'where':{'id':_0x95e017[_0xd1ad('0x47')]['UserId'],'role':_0xd1ad('0x7e')},'attributes':['id',_0xd1ad('0x2a'),'fullname',_0xd1ad('0x7f'),_0xd1ad('0x8c')],'raw':!![]});}return null;})[_0xd1ad('0x27')](function(_0x2f1377){if(!_0x2f1377)return null;_0xe1dda6[_0xd1ad('0x1c')]['agent']=_0x2f1377;return _0xe1dda6;})[_0xd1ad('0x27')](function(_0x474941){if(_0x474941){_0x474941['message'][_0xd1ad('0x81')]=util[_0xd1ad('0x65')](_0xd1ad('0x82'),_0x95e017['user'][_0xd1ad('0x2a')]);_0x474941['message'][_0xd1ad('0x83')]=_0xe1dda6[_0xd1ad('0x83')];_0x474941[_0xd1ad('0x1c')][_0xd1ad('0x84')]=_0xe1dda6[_0xd1ad('0x83')];_0x474941['message'][_0xd1ad('0x85')]='reject';_0x474941[_0xd1ad('0x1c')]['body']=htmlToText['fromString'](_0xe1dda6[_0xd1ad('0x1c')][_0xd1ad('0x47')]);respondWithRpcPromise(_0xd1ad('0x87'),'EventManager',{'event':'rejectmessage','message':_0x474941[_0xd1ad('0x1c')]},client9002);return _0xe1dda6;}return null;})['then'](respondWithResult(_0x45925a,null))['catch'](handleError(_0x45925a,null));};exports['download']=function(_0x1f9181,_0xd6330e){var _0x5d31ee=moment()['unix']()[_0xd1ad('0x8d')]();var _0x4e9de1=path[_0xd1ad('0x8e')](config[_0xd1ad('0x5e')],_0xd1ad('0x8f'),_0xd1ad('0x90'),_0xd1ad('0x91'));var _0x13b403=path[_0xd1ad('0x8e')](config[_0xd1ad('0x5e')],'server','files',_0xd1ad('0x5d'));var _0x1f5f69=util[_0xd1ad('0x65')]('message-%s.eml',_0x5d31ee);return db[_0xd1ad('0x2c')]['find']({'where':{'id':_0x1f9181[_0xd1ad('0x48')]['id']},'attributes':['id',_0xd1ad('0x47'),'from','to','cc','bcc','subject',_0xd1ad('0x92')],'include':_0x1f9181[_0xd1ad('0x32')][_0xd1ad('0x5d')]?[{'model':db[_0xd1ad('0x93')],'as':_0xd1ad('0x94')}]:undefined})[_0xd1ad('0x27')](handleEntityNotFound(_0xd6330e,null))[_0xd1ad('0x27')](function(_0x3da5f0){if(_0x3da5f0){var _0x3010dd=_0x3da5f0;var _0x7b897b={'from':_0x3010dd[_0xd1ad('0x95')],'to':_0x3010dd['to'],'subject':_0x3010dd['subject'],'html':htmlEntities[_0xd1ad('0x96')](_0x3010dd[_0xd1ad('0x47')]),'headers':{'Date':moment(_0x3010dd[_0xd1ad('0x92')])[_0xd1ad('0x65')](_0xd1ad('0x97'))},'attachments':[]};if(_0x3da5f0['cc']){_0x7b897b[_0xd1ad('0x98')]['Cc']=_0x3da5f0['cc'];}if(_0x3da5f0[_0xd1ad('0x99')]){_0x7b897b[_0xd1ad('0x98')][_0xd1ad('0x9a')]=_0x3da5f0[_0xd1ad('0x99')];}return new BPromise(function(_0x4ed969,_0x3db421){if(_0x3da5f0['Attachments']){for(var _0x173ccb=0x0;_0x173ccb<_0x3da5f0[_0xd1ad('0x94')]['length'];_0x173ccb++){var _0xbc83c5=_0x3da5f0[_0xd1ad('0x94')][_0x173ccb];var _0x2e25a0=path[_0xd1ad('0x8e')](_0x13b403,_0xbc83c5['basename']);if(fs[_0xd1ad('0x9b')](_0x2e25a0)){_0x7b897b[_0xd1ad('0x5d')][_0xd1ad('0x9c')]({'name':_0xbc83c5[_0xd1ad('0x2a')],'contentType':_0xbc83c5[_0xd1ad('0x3e')],'data':fs['readFileSync'](_0x2e25a0)});}}}emlformat[_0xd1ad('0x9d')](_0x7b897b,function(_0xd465b2,_0x14b830){if(_0xd465b2)return _0x3db421(_0xd465b2);fs['writeFileSync'](path['join'](_0x4e9de1,_0x1f5f69),_0x14b830);return _0x4ed969(_0x14b830);});});}})[_0xd1ad('0x27')](function(_0x5e7042){if(_0x5e7042){return _0xd6330e[_0xd1ad('0x9e')](path[_0xd1ad('0x8e')](_0x4e9de1,_0x1f5f69),_0x1f5f69,function(_0x11e306){if(!_0x11e306)fs['unlinkSync'](path[_0xd1ad('0x8e')](_0x4e9de1,_0x1f5f69));});}})['catch'](handleError(_0xd6330e,null));};