Built motion from commit 43538d75.|2.5.35
[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 _0xf25c=['undefined','limit','count','status','set','destroy','end','sendStatus','stack','name','send','index','MailMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','sort','where','merge','filter','options','includeAll','findAll','rows','fields','find','update','body','params','describe','create','direction','out','secret','split','MailAccount','findOne','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','auth','user','pass','attachments','join','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','format','YYYY-MM-DD\x20HH:mm:ss','accept','read','UserId','agent','get','MailInteraction','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','contact','User','fullname','internal','manual','interface','SIP/%s','channel','event','fromString','EventManager','acceptmessage','reject','mail','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SELECT','email','motionChannel','rejectmessage','unix','toString','server','tmp','files','message-%s.eml','bcc','subject','createdAt','Attachment','Attachments','from','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','readFileSync','build','download','unlinkSync','eml-format','moment','bluebird','util','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','html-entities','./mailMessage.socket','jayson/promise','client','http','request','then','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','MailMessage,\x20%s,\x20%s','message','info','result','catch','json','offset'];(function(_0x2f5518,_0x98995d){var _0x3cfcaa=function(_0x3157e3){while(--_0x3157e3){_0x2f5518['push'](_0x2f5518['shift']());}};_0x3cfcaa(++_0x98995d);}(_0xf25c,0x86));var _0xcf25=function(_0x208505,_0x241a77){_0x208505=_0x208505-0x0;var _0x1a985f=_0xf25c[_0x208505];return _0x1a985f;};'use strict';var emlformat=require(_0xcf25('0x0'));var moment=require(_0xcf25('0x1'));var BPromise=require(_0xcf25('0x2'));var util=require(_0xcf25('0x3'));var path=require('path');var fs=require('fs');var _=require(_0xcf25('0x4'));var Redis=require(_0xcf25('0x5'));var htmlToText=require(_0xcf25('0x6'));var qs=require(_0xcf25('0x7'));var logger=require(_0xcf25('0x8'))(_0xcf25('0x9'));var interaction_log=require('../../config/logger')(_0xcf25('0xa'));var config=require(_0xcf25('0xb'));var db=require(_0xcf25('0xc'))['db'];config[_0xcf25('0xd')]=_[_0xcf25('0xe')](config[_0xcf25('0xd')],{'host':_0xcf25('0xf'),'port':0x18eb});var socket=require(_0xcf25('0x10'))(new Redis(config[_0xcf25('0xd')]));var htmlEntities=require(_0xcf25('0x11'));require(_0xcf25('0x12'))['register'](socket);var jayson=require(_0xcf25('0x13'));var client=jayson[_0xcf25('0x14')][_0xcf25('0x15')]({'port':0x232c});var client9003=jayson[_0xcf25('0x14')]['http']({'port':0x232b});var client9002=jayson[_0xcf25('0x14')][_0xcf25('0x15')]({'port':0x232a});function respondWithRpcPromise(_0x11341d,_0xba8627,_0x131da0,_0x30dcea){return new BPromise(function(_0xec1b4c,_0x193cff){var _0x41a15d=_0x30dcea||client;return _0x41a15d[_0xcf25('0x16')](_0x11341d,_0x131da0)[_0xcf25('0x17')](function(_0x403ba1){logger['info']('MailMessage,\x20%s,\x20%s',_0xba8627,_0xcf25('0x18'));logger[_0xcf25('0x19')](_0xcf25('0x1a'),_0xba8627,_0xcf25('0x18'),JSON[_0xcf25('0x1b')](_0x403ba1));if(_0x403ba1[_0xcf25('0x1c')]){if(_0x403ba1['error'][_0xcf25('0x1d')]===0x1f4){logger[_0xcf25('0x1c')](_0xcf25('0x1e'),_0xba8627,_0x403ba1[_0xcf25('0x1c')][_0xcf25('0x1f')]);return _0x193cff(_0x403ba1[_0xcf25('0x1c')]['message']);}logger['error'](_0xcf25('0x1e'),_0xba8627,_0x403ba1[_0xcf25('0x1c')]['message']);return _0xec1b4c(_0x403ba1['error'][_0xcf25('0x1f')]);}else{logger[_0xcf25('0x20')](_0xcf25('0x1e'),_0xba8627,_0xcf25('0x18'));_0xec1b4c(_0x403ba1[_0xcf25('0x21')][_0xcf25('0x1f')]);}})[_0xcf25('0x22')](function(_0x426a11){logger[_0xcf25('0x1c')](_0xcf25('0x1e'),_0xba8627,_0x426a11);_0x193cff(_0x426a11);});});}function respondWithResult(_0x2431c1,_0x487533){_0x487533=_0x487533||0xc8;return function(_0x104248){if(_0x104248){return _0x2431c1['status'](_0x487533)[_0xcf25('0x23')](_0x104248);}};}function respondWithFilteredResult(_0x166559,_0x2535d4){return function(_0x50f5d1){if(_0x50f5d1){var _0x6e2b0=typeof _0x2535d4[_0xcf25('0x24')]===_0xcf25('0x25')&&typeof _0x2535d4[_0xcf25('0x26')]===_0xcf25('0x25');var _0x462dce=_0x50f5d1[_0xcf25('0x27')];var _0x11580a=_0x6e2b0?0x0:_0x2535d4['offset'];var _0x355349=_0x6e2b0?_0x50f5d1['count']:_0x2535d4[_0xcf25('0x24')]+_0x2535d4['limit'];var _0x37c70a;if(_0x355349>=_0x462dce){_0x355349=_0x462dce;_0x37c70a=0xc8;}else{_0x37c70a=0xce;}_0x166559[_0xcf25('0x28')](_0x37c70a);return _0x166559[_0xcf25('0x29')]('Content-Range',_0x11580a+'-'+_0x355349+'/'+_0x462dce)['json'](_0x50f5d1);}return null;};}function saveUpdates(_0x52b695){return function(_0x2520b5){if(_0x2520b5){return _0x2520b5['update'](_0x52b695)[_0xcf25('0x17')](function(_0x1d5f90){return _0x1d5f90;});}return null;};}function removeEntity(_0x55dc21){return function(_0xe2c138){if(_0xe2c138){return _0xe2c138[_0xcf25('0x2a')]()[_0xcf25('0x17')](function(){_0x55dc21[_0xcf25('0x28')](0xcc)[_0xcf25('0x2b')]();});}};}function handleEntityNotFound(_0x21ea77){return function(_0x2bc643){if(!_0x2bc643){_0x21ea77[_0xcf25('0x2c')](0x194);}return _0x2bc643;};}function handleError(_0x2bd2e7,_0x20cd65){_0x20cd65=_0x20cd65||0x1f4;return function(_0x3116f4){logger[_0xcf25('0x1c')](_0x3116f4[_0xcf25('0x2d')]);if(_0x3116f4[_0xcf25('0x2e')]){delete _0x3116f4['name'];}_0x2bd2e7['status'](_0x20cd65)[_0xcf25('0x2f')](_0x3116f4);};}exports[_0xcf25('0x30')]=function(_0x51b0dc,_0x3cfb61){var _0x459aee={},_0x44d31b={},_0x560580={'count':0x0,'rows':[]};var _0x411e06=_['map'](db[_0xcf25('0x31')][_0xcf25('0x32')],function(_0x3184d1){return{'name':_0x3184d1[_0xcf25('0x33')],'type':_0x3184d1[_0xcf25('0x34')][_0xcf25('0x35')]};});_0x44d31b[_0xcf25('0x36')]=_['map'](_0x411e06,_0xcf25('0x2e'));_0x44d31b[_0xcf25('0x37')]=_[_0xcf25('0x38')](_0x51b0dc['query']);_0x44d31b[_0xcf25('0x39')]=_['intersection'](_0x44d31b[_0xcf25('0x36')],_0x44d31b['query']);_0x459aee['attributes']=_[_0xcf25('0x3a')](_0x44d31b['model'],qs['fields'](_0x51b0dc['query']['fields']));_0x459aee[_0xcf25('0x3b')]=_0x459aee['attributes'][_0xcf25('0x3c')]?_0x459aee[_0xcf25('0x3b')]:_0x44d31b['model'];if(!_0x51b0dc[_0xcf25('0x37')][_0xcf25('0x3d')]('nolimit')){_0x459aee[_0xcf25('0x26')]=qs[_0xcf25('0x26')](_0x51b0dc['query']['limit']);_0x459aee[_0xcf25('0x24')]=qs[_0xcf25('0x24')](_0x51b0dc[_0xcf25('0x37')]['offset']);}_0x459aee['order']=qs[_0xcf25('0x3e')](_0x51b0dc[_0xcf25('0x37')]['sort']);_0x459aee[_0xcf25('0x3f')]=qs[_0xcf25('0x39')](_['pick'](_0x51b0dc[_0xcf25('0x37')],_0x44d31b[_0xcf25('0x39')]),_0x411e06);if(_0x51b0dc[_0xcf25('0x37')]['filter']){_0x459aee[_0xcf25('0x3f')]=_[_0xcf25('0x40')](_0x459aee[_0xcf25('0x3f')],{'$or':_['map'](_0x411e06,function(_0x14d289){if(_0x14d289['type']!=='VIRTUAL'){var _0x1c5e8b={};_0x1c5e8b[_0x14d289[_0xcf25('0x2e')]]={'$like':'%'+_0x51b0dc['query'][_0xcf25('0x41')]+'%'};return _0x1c5e8b;}})});}_0x459aee=_[_0xcf25('0x40')]({},_0x459aee,_0x51b0dc[_0xcf25('0x42')]);var _0x153021={'where':_0x459aee['where']};return db[_0xcf25('0x31')][_0xcf25('0x27')](_0x153021)[_0xcf25('0x17')](function(_0x439292){_0x560580['count']=_0x439292;if(_0x51b0dc['query'][_0xcf25('0x43')]){_0x459aee['include']=[{'all':!![]}];}return db[_0xcf25('0x31')][_0xcf25('0x44')](_0x459aee);})['then'](function(_0x1139cf){_0x560580[_0xcf25('0x45')]=_0x1139cf;return _0x560580;})['then'](respondWithFilteredResult(_0x3cfb61,_0x459aee))[_0xcf25('0x22')](handleError(_0x3cfb61,null));};exports['show']=function(_0x495fc9,_0x5ebdd1){var _0x2b385d={'raw':!![],'where':{'id':_0x495fc9['params']['id']}},_0xddaa86={};_0xddaa86[_0xcf25('0x36')]=_[_0xcf25('0x38')](db[_0xcf25('0x31')][_0xcf25('0x32')]);_0xddaa86[_0xcf25('0x37')]=_[_0xcf25('0x38')](_0x495fc9[_0xcf25('0x37')]);_0xddaa86[_0xcf25('0x39')]=_[_0xcf25('0x3a')](_0xddaa86[_0xcf25('0x36')],_0xddaa86[_0xcf25('0x37')]);_0x2b385d[_0xcf25('0x3b')]=_[_0xcf25('0x3a')](_0xddaa86[_0xcf25('0x36')],qs['fields'](_0x495fc9[_0xcf25('0x37')][_0xcf25('0x46')]));_0x2b385d[_0xcf25('0x3b')]=_0x2b385d[_0xcf25('0x3b')]['length']?_0x2b385d['attributes']:_0xddaa86[_0xcf25('0x36')];if(_0x495fc9[_0xcf25('0x37')][_0xcf25('0x43')]){_0x2b385d['include']=[{'all':!![]}];}_0x2b385d=_[_0xcf25('0x40')]({},_0x2b385d,_0x495fc9['options']);return db[_0xcf25('0x31')][_0xcf25('0x47')](_0x2b385d)[_0xcf25('0x17')](handleEntityNotFound(_0x5ebdd1,null))['then'](respondWithResult(_0x5ebdd1,null))['catch'](handleError(_0x5ebdd1,null));};exports[_0xcf25('0x48')]=function(_0x73fef,_0x5e18f4){if(_0x73fef[_0xcf25('0x49')]['id']){delete _0x73fef['body']['id'];}return db[_0xcf25('0x31')][_0xcf25('0x47')]({'where':{'id':_0x73fef[_0xcf25('0x4a')]['id']}})[_0xcf25('0x17')](handleEntityNotFound(_0x5e18f4,null))[_0xcf25('0x17')](saveUpdates(_0x73fef['body'],null))[_0xcf25('0x17')](respondWithResult(_0x5e18f4,null))[_0xcf25('0x22')](handleError(_0x5e18f4,null));};exports[_0xcf25('0x2a')]=function(_0x3fc0c6,_0xbbe645){return db[_0xcf25('0x31')][_0xcf25('0x47')]({'where':{'id':_0x3fc0c6['params']['id']}})[_0xcf25('0x17')](handleEntityNotFound(_0xbbe645,null))[_0xcf25('0x17')](removeEntity(_0xbbe645,null))[_0xcf25('0x22')](handleError(_0xbbe645,null));};exports[_0xcf25('0x4b')]=function(_0xdb2243,_0x378ee6){return db['MailMessage'][_0xcf25('0x4b')]()[_0xcf25('0x17')](respondWithResult(_0x378ee6,null))['catch'](handleError(_0x378ee6,null));};exports['create']=function(_0x3d17e9,_0x1c5c2c){return db[_0xcf25('0x31')][_0xcf25('0x4c')](_0x3d17e9['body'])[_0xcf25('0x17')](function(_0x380c32){if(_0x380c32){if(_0x380c32[_0xcf25('0x4d')]===_0xcf25('0x4e')&&!_0x380c32[_0xcf25('0x4f')]){var _0x502e9e,_0x47b356,_0x2aec91;if(_0x3d17e9[_0xcf25('0x49')]['to']){_0x47b356=_0x3d17e9[_0xcf25('0x49')]['to'][_0xcf25('0x50')](',')[0x0];}return db[_0xcf25('0x51')][_0xcf25('0x52')]({'where':{'id':_0x380c32[_0xcf25('0x53')]},'include':[{'model':db[_0xcf25('0x54')],'as':_0xcf25('0x55'),'include':[{'model':db[_0xcf25('0x56')],'as':_0xcf25('0x57'),'where':{'email':_0x47b356},'limit':0x1,'order':[[_0xcf25('0x58'),_0xcf25('0x59')]]}]},{'model':db[_0xcf25('0x5a')],'as':'Smtp','raw':!![]}]})['then'](function(_0x4b78e8){_0x502e9e=_0x4b78e8;if(_0x502e9e&&_0x502e9e[_0xcf25('0x5b')]){var _0x16cfbb={'tls':{'rejectUnauthorized':![]}};if(_[_0xcf25('0x5c')](_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x5d')])){_0x16cfbb[_0xcf25('0x5e')]=_0x502e9e[_0xcf25('0x5b')]['host'];_0x16cfbb[_0xcf25('0x5f')]=_0x502e9e[_0xcf25('0x5b')]['port'];_0x16cfbb['secure']=_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x60')];if(_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x61')]){_0x16cfbb[_0xcf25('0x62')]={'user':_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x63')],'pass':_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x64')]};}}else{_0x16cfbb[_0xcf25('0x5d')]=_0x502e9e['Smtp'][_0xcf25('0x5d')];_0x16cfbb[_0xcf25('0x62')]={'user':_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x63')],'pass':_0x502e9e[_0xcf25('0x5b')][_0xcf25('0x64')]};_0x16cfbb[_0xcf25('0x60')]=_0x502e9e['Smtp'][_0xcf25('0x60')];}if(_0x3d17e9[_0xcf25('0x49')][_0xcf25('0x65')]&&_0x3d17e9['body']['attachments'][_0xcf25('0x3c')]){for(var _0x21e067=0x0;_0x21e067<_0x3d17e9[_0xcf25('0x49')]['attachments'][_0xcf25('0x3c')];_0x21e067+=0x1){_0x3d17e9[_0xcf25('0x49')][_0xcf25('0x65')][_0x21e067]={'filename':_0x3d17e9[_0xcf25('0x49')][_0xcf25('0x65')][_0x21e067][_0xcf25('0x2e')],'path':path[_0xcf25('0x66')](config['root'],_0xcf25('0x67'),_0x3d17e9[_0xcf25('0x49')][_0xcf25('0x65')][_0x21e067][_0xcf25('0x68')])};}}_0x2aec91={'account':_0x16cfbb,'message':_0x3d17e9[_0xcf25('0x49')]};return;}})[_0xcf25('0x17')](function(){if(_0x502e9e[_0xcf25('0x55')]){if(_0x502e9e['List']['Contacts'][_0xcf25('0x3c')]){return _0x502e9e[_0xcf25('0x55')][_0xcf25('0x57')][0x0];}else{return db['CmContact'][_0xcf25('0x4c')](_[_0xcf25('0xe')](_0x3d17e9[_0xcf25('0x49')],{'firstName':_0x3d17e9[_0xcf25('0x49')]['to'],'email':_0x3d17e9['body']['to'],'phone':_0x3d17e9[_0xcf25('0x49')]['to'],'ListId':_0x502e9e[_0xcf25('0x69')]}));}}else{throw new Error(_0xcf25('0x6a'));}})['then'](function(){if(_0x2aec91){return respondWithRpcPromise(_0xcf25('0x6b'),'sendMail',_0x2aec91,client9003)[_0xcf25('0x17')](function(_0x37d4d4){return _0x380c32[_0xcf25('0x48')]({'read':!![],'messageId':_0x37d4d4['messageId'],'sentAt':moment()[_0xcf25('0x6c')](_0xcf25('0x6d'))});})[_0xcf25('0x22')](function(_0x2b6e46){logger[_0xcf25('0x1c')]('%s',JSON[_0xcf25('0x1b')](_0x2b6e46));return _0x380c32;});}return _0x380c32;});}return _0x380c32;}})[_0xcf25('0x17')](respondWithResult(_0x1c5c2c,0xc9))[_0xcf25('0x22')](handleError(_0x1c5c2c,null));};exports[_0xcf25('0x6e')]=function(_0x673349,_0x5c8c3c){var _0x556e99={'agent':{},'channel':'mail'};if(_0x673349[_0xcf25('0x49')]['id']){delete _0x673349['body']['id'];}_0x673349[_0xcf25('0x49')][_0xcf25('0x6f')]=!![];_0x673349[_0xcf25('0x49')]['readAt']=moment()[_0xcf25('0x6c')](_0xcf25('0x6d'));_0x673349[_0xcf25('0x49')][_0xcf25('0x70')]=_0x673349[_0xcf25('0x49')][_0xcf25('0x70')]||_0x673349['user']['id'];_0x556e99[_0xcf25('0x71')]['id']=_0x673349[_0xcf25('0x49')][_0xcf25('0x70')];return db[_0xcf25('0x31')][_0xcf25('0x47')]({'where':{'id':_0x673349[_0xcf25('0x4a')]['id'],'UserId':null}})[_0xcf25('0x17')](handleEntityNotFound(_0x5c8c3c,null))[_0xcf25('0x17')](saveUpdates(_0x673349[_0xcf25('0x49')],null))['then'](function(_0xa3f48b){if(_0xa3f48b){_0x556e99[_0xcf25('0x1f')]=_0xa3f48b[_0xcf25('0x72')]({'plain':!![]});return db[_0xcf25('0x73')][_0xcf25('0x47')]({'where':{'id':_0xa3f48b['MailInteractionId']}});}return null;})[_0xcf25('0x17')](handleEntityNotFound(_0x5c8c3c,null))['then'](function(_0xb5a69f){if(_0xb5a69f){return _0xb5a69f[_0xcf25('0x48')]({'UserId':_0x673349[_0xcf25('0x49')][_0xcf25('0x70')],'read1stAt':_[_0xcf25('0x5c')](_0xb5a69f[_0xcf25('0x74')])?moment()[_0xcf25('0x6c')](_0xcf25('0x6d')):undefined});}return null;})[_0xcf25('0x17')](function(_0x4a0f94){if(_0x4a0f94){_0x556e99[_0xcf25('0x75')]=_0x4a0f94['get']({'plain':!![]});interaction_log[_0xcf25('0x20')](_0xcf25('0x76'),_0x673349['user']['id'],_0x673349[_0xcf25('0x63')][_0xcf25('0x2e')],_0x673349['user'][_0xcf25('0x77')],_0x556e99['interaction']['id'],_0x673349[_0xcf25('0x49')]?JSON[_0xcf25('0x1b')](_0x673349[_0xcf25('0x49')]):_0xcf25('0x78'));return respondWithRpcPromise(_0xcf25('0x79'),_0xcf25('0x7a'),_0x556e99);}return null;})['then'](function(_0x1dd78f){var _0x2d2512=_0xcf25('0x7b')+_0x1dd78f['message'][_0xcf25('0x7c')];return db[_0xcf25('0x7d')][_0xcf25('0x37')](_0x2d2512,{'type':db[_0xcf25('0x7e')][_0xcf25('0x7f')]['SELECT'],'raw':!![]})[_0xcf25('0x17')](function(_0x1713ee){return _0x1713ee;});})[_0xcf25('0x17')](function(_0x9d1d4a){if(_0x9d1d4a){_0x556e99['message'][_0xcf25('0x80')]=_0x9d1d4a[0x0];if(!_0x673349[_0xcf25('0x49')][_0xcf25('0x70')])return;return db[_0xcf25('0x81')][_0xcf25('0x47')]({'where':{'id':_0x673349[_0xcf25('0x49')][_0xcf25('0x70')],'role':_0xcf25('0x71')},'attributes':['id','name',_0xcf25('0x82'),'email',_0xcf25('0x83')],'raw':!![]});}return null;})[_0xcf25('0x17')](function(_0x25b51b){if(!_0x25b51b)return null;_0x556e99[_0xcf25('0x1f')]['agent']=_0x25b51b;return _0x556e99;})['then'](function(_0x53cc30){if(_0x53cc30){if(_0x673349['body'][_0xcf25('0x84')]){_0x556e99['message'][_0xcf25('0x85')]=util['format'](_0xcf25('0x86'),_0x673349[_0xcf25('0x63')]['name']);_0x556e99[_0xcf25('0x1f')][_0xcf25('0x87')]=_0x556e99[_0xcf25('0x87')];_0x556e99[_0xcf25('0x1f')]['motionChannel']=_0x556e99[_0xcf25('0x87')];_0x556e99['message'][_0xcf25('0x88')]=_0xcf25('0x6e');_0x556e99['message'][_0xcf25('0x49')]=htmlToText[_0xcf25('0x89')](_0x556e99['message'][_0xcf25('0x49')]);return respondWithRpcPromise(_0xcf25('0x8a'),_0xcf25('0x8a'),{'event':_0xcf25('0x8b'),'message':_0x556e99[_0xcf25('0x1f')]},client9002)[_0xcf25('0x17')](function(){return _0x556e99;});}return _0x556e99;}return null;})[_0xcf25('0x17')](respondWithResult(_0x5c8c3c,null))[_0xcf25('0x22')](handleError(_0x5c8c3c,null));};exports[_0xcf25('0x8c')]=function(_0x585f3e,_0x3a3e4e){var _0x4b7cdd={'agent':{},'channel':_0xcf25('0x8d')};if(_0x585f3e['body']['id']){delete _0x585f3e[_0xcf25('0x49')]['id'];}_0x585f3e[_0xcf25('0x49')][_0xcf25('0x70')]=_0x585f3e[_0xcf25('0x49')][_0xcf25('0x70')]||_0x585f3e[_0xcf25('0x63')]['id'];_0x4b7cdd['agent']['id']=_0x585f3e[_0xcf25('0x49')][_0xcf25('0x70')];return db['MailMessage']['find']({'where':{'id':_0x585f3e[_0xcf25('0x4a')]['id'],'UserId':null}})[_0xcf25('0x17')](handleEntityNotFound(_0x3a3e4e,null))[_0xcf25('0x17')](function(_0x5af2b4){if(_0x5af2b4){_0x4b7cdd[_0xcf25('0x1f')]=_0x5af2b4[_0xcf25('0x72')]({'plain':!![]});return db[_0xcf25('0x73')]['find']({'where':{'id':_0x5af2b4[_0xcf25('0x8e')]}});}return null;})['then'](handleEntityNotFound(_0x3a3e4e,null))['then'](function(_0x2dda24){if(_0x2dda24){_0x4b7cdd[_0xcf25('0x75')]=_0x2dda24['get']({'plain':!![]});interaction_log[_0xcf25('0x20')](_0xcf25('0x8f'),_0x585f3e['user']['id'],_0x585f3e[_0xcf25('0x63')][_0xcf25('0x2e')],_0x585f3e[_0xcf25('0x63')][_0xcf25('0x77')],_0x4b7cdd[_0xcf25('0x75')]['id'],_0x585f3e['body']?JSON[_0xcf25('0x1b')](_0x585f3e[_0xcf25('0x49')]):_0xcf25('0x78'));return respondWithRpcPromise('RejectMessage',_0xcf25('0x90'),_0x4b7cdd);}return null;})['then'](function(_0x2ed755){var _0x370775=_0xcf25('0x7b')+_0x2ed755[_0xcf25('0x1f')]['ContactId'];return db[_0xcf25('0x7d')][_0xcf25('0x37')](_0x370775,{'type':db[_0xcf25('0x7e')][_0xcf25('0x7f')][_0xcf25('0x91')],'raw':!![]})[_0xcf25('0x17')](function(_0x245b76){return _0x245b76;});})[_0xcf25('0x17')](function(_0x3c15dd){if(_0x3c15dd){_0x4b7cdd[_0xcf25('0x1f')]['contact']=_0x3c15dd[0x0];if(!_0x585f3e[_0xcf25('0x49')][_0xcf25('0x70')])return;return db[_0xcf25('0x81')][_0xcf25('0x47')]({'where':{'id':_0x585f3e[_0xcf25('0x49')][_0xcf25('0x70')],'role':_0xcf25('0x71')},'attributes':['id',_0xcf25('0x2e'),_0xcf25('0x82'),_0xcf25('0x92'),_0xcf25('0x83')],'raw':!![]});}return null;})['then'](function(_0x18a84d){if(!_0x18a84d)return null;_0x4b7cdd['message'][_0xcf25('0x71')]=_0x18a84d;return _0x4b7cdd;})[_0xcf25('0x17')](function(_0x15c9e4){if(_0x15c9e4){_0x15c9e4['message'][_0xcf25('0x85')]=util[_0xcf25('0x6c')]('SIP/%s',_0x585f3e[_0xcf25('0x63')][_0xcf25('0x2e')]);_0x15c9e4[_0xcf25('0x1f')][_0xcf25('0x87')]=_0x4b7cdd[_0xcf25('0x87')];_0x15c9e4[_0xcf25('0x1f')][_0xcf25('0x93')]=_0x4b7cdd[_0xcf25('0x87')];_0x15c9e4[_0xcf25('0x1f')][_0xcf25('0x88')]=_0xcf25('0x8c');_0x15c9e4['message'][_0xcf25('0x49')]=htmlToText['fromString'](_0x4b7cdd[_0xcf25('0x1f')][_0xcf25('0x49')]);respondWithRpcPromise('EventManager',_0xcf25('0x8a'),{'event':_0xcf25('0x94'),'message':_0x15c9e4[_0xcf25('0x1f')]},client9002);return _0x4b7cdd;}return null;})[_0xcf25('0x17')](respondWithResult(_0x3a3e4e,null))['catch'](handleError(_0x3a3e4e,null));};exports['download']=function(_0x986ab4,_0x1aadab){var _0x38c5fc=moment()[_0xcf25('0x95')]()[_0xcf25('0x96')]();var _0x10dd2e=path['join'](config['root'],_0xcf25('0x97'),'files',_0xcf25('0x98'));var _0x2fed5=path[_0xcf25('0x66')](config['root'],_0xcf25('0x97'),_0xcf25('0x99'),_0xcf25('0x65'));var _0x5719f4=util[_0xcf25('0x6c')](_0xcf25('0x9a'),_0x38c5fc);return db[_0xcf25('0x31')]['find']({'where':{'id':_0x986ab4[_0xcf25('0x4a')]['id']},'attributes':['id',_0xcf25('0x49'),'from','to','cc',_0xcf25('0x9b'),_0xcf25('0x9c'),_0xcf25('0x9d')],'include':_0x986ab4[_0xcf25('0x37')][_0xcf25('0x65')]?[{'model':db[_0xcf25('0x9e')],'as':_0xcf25('0x9f')}]:undefined})[_0xcf25('0x17')](handleEntityNotFound(_0x1aadab,null))['then'](function(_0x419600){if(_0x419600){var _0x38d4b8=_0x419600;var _0x32a5b3={'from':_0x38d4b8[_0xcf25('0xa0')],'to':_0x38d4b8['to'],'subject':_0x38d4b8[_0xcf25('0x9c')],'html':htmlEntities[_0xcf25('0xa1')](_0x38d4b8[_0xcf25('0x49')]),'headers':{'Date':moment(_0x38d4b8[_0xcf25('0x9d')])[_0xcf25('0x6c')](_0xcf25('0xa2'))},'attachments':[]};if(_0x419600['cc']){_0x32a5b3[_0xcf25('0xa3')]['Cc']=_0x419600['cc'];}if(_0x419600['bcc']){_0x32a5b3[_0xcf25('0xa3')][_0xcf25('0xa4')]=_0x419600[_0xcf25('0x9b')];}return new BPromise(function(_0x202855,_0x1fb6ba){if(_0x419600[_0xcf25('0x9f')]){for(var _0x2375c2=0x0;_0x2375c2<_0x419600[_0xcf25('0x9f')][_0xcf25('0x3c')];_0x2375c2++){var _0x32fde2=_0x419600[_0xcf25('0x9f')][_0x2375c2];var _0x25d14c=path[_0xcf25('0x66')](_0x2fed5,_0x32fde2[_0xcf25('0x68')]);if(fs[_0xcf25('0xa5')](_0x25d14c)){_0x32a5b3['attachments'][_0xcf25('0xa6')]({'name':_0x32fde2[_0xcf25('0x2e')],'contentType':_0x32fde2[_0xcf25('0x34')],'data':fs[_0xcf25('0xa7')](_0x25d14c)});}}}emlformat[_0xcf25('0xa8')](_0x32a5b3,function(_0x355635,_0x2d4af9){if(_0x355635)return _0x1fb6ba(_0x355635);fs['writeFileSync'](path[_0xcf25('0x66')](_0x10dd2e,_0x5719f4),_0x2d4af9);return _0x202855(_0x2d4af9);});});}})[_0xcf25('0x17')](function(_0x389e03){if(_0x389e03){return _0x1aadab[_0xcf25('0xa9')](path[_0xcf25('0x66')](_0x10dd2e,_0x5719f4),_0x5719f4,function(_0x37cba9){if(!_0x37cba9)fs[_0xcf25('0xaa')](path[_0xcf25('0x66')](_0x10dd2e,_0x5719f4));});}})[_0xcf25('0x22')](handleError(_0x1aadab,null));};