eea2f2fcf12fb475a709b44f3c12eac0ab112a6e
[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 _0x1e6c=['end','name','send','map','MailMessage','rawAttributes','fieldName','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','params','keys','find','body','describe','create','out','secret','split','findOne','MailAccountId','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','attachments','join','root','server/files/attachments','basename','List','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','stringify','mail','read','UserId','Contact','get','MailInteraction','MailInteractionId','isNil','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','mail-interactions','agent','role','RejectMessage','rejectMessage','rejectmessage','download','unix','toString','server','files','tmp','message-%s.eml','from','bcc','subject','createdAt','Attachment','Attachments','headers','existsSync','push','readFileSync','writeFileSync','log','unlinkSync','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','client','http','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','request\x20sent','MailMessage,\x20%s,\x20%s,\x20%s','error','code','MailMessage,\x20%s,\x20%s','message','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy'];(function(_0x13b8f3,_0x442821){var _0x1a6d06=function(_0x5126f2){while(--_0x5126f2){_0x13b8f3['push'](_0x13b8f3['shift']());}};_0x1a6d06(++_0x442821);}(_0x1e6c,0x11a));var _0xc1e6=function(_0xf394a,_0x20d1dd){_0xf394a=_0xf394a-0x0;var _0xde580f=_0x1e6c[_0xf394a];return _0xde580f;};'use strict';var pdf=require(_0xc1e6('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc1e6('0x1'));var zipdir=require(_0xc1e6('0x2'));var jsonpatch=require(_0xc1e6('0x3'));var rp=require(_0xc1e6('0x4'));var moment=require(_0xc1e6('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc1e6('0x6'));var path=require(_0xc1e6('0x7'));var sox=require(_0xc1e6('0x8'));var csv=require(_0xc1e6('0x9'));var ejs=require(_0xc1e6('0xa'));var fs=require('fs');var _=require(_0xc1e6('0xb'));var squel=require(_0xc1e6('0xc'));var crypto=require('crypto');var jsforce=require(_0xc1e6('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xc1e6('0x9'));var querystring=require('querystring');var Papa=require(_0xc1e6('0xe'));var Redis=require(_0xc1e6('0xf'));var authService=require(_0xc1e6('0x10'));var qs=require(_0xc1e6('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc1e6('0x12'))(_0xc1e6('0x13'));var utils=require(_0xc1e6('0x14'));var config=require('../../config/environment');var db=require(_0xc1e6('0x15'))['db'];config[_0xc1e6('0x16')]=_[_0xc1e6('0x17')](config[_0xc1e6('0x16')],{'host':_0xc1e6('0x18'),'port':0x18eb});var socket=require(_0xc1e6('0x19'))(new Redis(config[_0xc1e6('0x16')]));require(_0xc1e6('0x1a'))[_0xc1e6('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0xc1e6('0x1c')][_0xc1e6('0x1d')]({'port':0x232c});var client9003=jayson[_0xc1e6('0x1c')][_0xc1e6('0x1d')]({'port':0x232b});var client9002=jayson[_0xc1e6('0x1c')][_0xc1e6('0x1d')]({'port':0x232a});function checkPasswordPattern(_0xb850be,_0x2ee6cf,_0x32dc7a){if(_0x32dc7a){var _0x3f975c=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3f975c['test'](_0x2ee6cf)){return _0xb850be;}else{throw new db[(_0xc1e6('0x1e'))][(_0xc1e6('0x1f'))](_0xc1e6('0x20'));}}else{return _0xb850be;}}function respondWithRpcPromise(_0x2864a6,_0x5d9dc4,_0x5adebf,_0x50240d){return new BPromise(function(_0x149205,_0x1b9e95){var _0x2515ef=_0x50240d||client;return _0x2515ef[_0xc1e6('0x21')](_0x2864a6,_0x5adebf)[_0xc1e6('0x22')](function(_0x1b4983){logger[_0xc1e6('0x23')]('MailMessage,\x20%s,\x20%s',_0x5d9dc4,_0xc1e6('0x24'));logger['debug'](_0xc1e6('0x25'),_0x5d9dc4,_0xc1e6('0x24'),JSON['stringify'](_0x1b4983));if(_0x1b4983['error']){if(_0x1b4983[_0xc1e6('0x26')][_0xc1e6('0x27')]===0x1f4){logger[_0xc1e6('0x26')](_0xc1e6('0x28'),_0x5d9dc4,_0x1b4983[_0xc1e6('0x26')]['message']);return _0x1b9e95(_0x1b4983[_0xc1e6('0x26')][_0xc1e6('0x29')]);}logger[_0xc1e6('0x26')](_0xc1e6('0x28'),_0x5d9dc4,_0x1b4983[_0xc1e6('0x26')]['message']);return _0x149205(_0x1b4983[_0xc1e6('0x26')][_0xc1e6('0x29')]);}else{logger[_0xc1e6('0x23')](_0xc1e6('0x28'),_0x5d9dc4,_0xc1e6('0x24'));_0x149205(_0x1b4983['result'][_0xc1e6('0x29')]);}})['catch'](function(_0x9a2272){logger['error'](_0xc1e6('0x28'),_0x5d9dc4,_0x9a2272);_0x1b9e95(_0x9a2272);});});}function respondWithStatusCode(_0x5d4adc,_0x8c8fb9){_0x8c8fb9=_0x8c8fb9||0xcc;return function(_0x48f9f3){if(_0x48f9f3){return _0x5d4adc[_0xc1e6('0x2a')](_0x8c8fb9);}return _0x5d4adc[_0xc1e6('0x2b')](_0x8c8fb9)['end']();};}function respondWithResult(_0x29f894,_0x4d503a){_0x4d503a=_0x4d503a||0xc8;return function(_0x43a9da){if(_0x43a9da){return _0x29f894['status'](_0x4d503a)[_0xc1e6('0x2c')](_0x43a9da);}};}function respondWithFilteredResult(_0x26a8ca,_0x12a815){return function(_0x485d99){if(_0x485d99){var _0x2d4d24=_0x485d99[_0xc1e6('0x2d')],_0x123d98=_0x12a815[_0xc1e6('0x2e')],_0x15d0db=_0x12a815['offset']+_0x12a815[_0xc1e6('0x2f')],_0x454aaf;if(_0x15d0db>=_0x2d4d24){_0x15d0db=_0x2d4d24;_0x454aaf=0xc8;}else{_0x454aaf=0xce;}_0x26a8ca[_0xc1e6('0x2b')](_0x454aaf);return _0x26a8ca['set'](_0xc1e6('0x30'),_0x123d98+'-'+_0x15d0db+'/'+_0x2d4d24)['json'](_0x485d99);}return null;};}function patchUpdates(_0x3b8c86){return function(_0x25ed48){try{jsonpatch[_0xc1e6('0x31')](_0x25ed48,_0x3b8c86,!![]);}catch(_0x4bce33){return BPromise[_0xc1e6('0x32')](_0x4bce33);}return _0x25ed48[_0xc1e6('0x33')]();};}function saveUpdates(_0x22c379,_0xe7af73){return function(_0x26c81a){if(_0x26c81a){return _0x26c81a[_0xc1e6('0x34')](_0x22c379)[_0xc1e6('0x22')](function(_0x4e24fe){return _0x4e24fe;});}return null;};}function removeEntity(_0x307e82,_0x51c773){return function(_0x122149){if(_0x122149){return _0x122149[_0xc1e6('0x35')]()['then'](function(){_0x307e82[_0xc1e6('0x2b')](0xcc)[_0xc1e6('0x36')]();});}};}function handleEntityNotFound(_0x34f526,_0x13d65e){return function(_0x2d1a47){if(!_0x2d1a47){_0x34f526[_0xc1e6('0x2a')](0x194);}return _0x2d1a47;};}function handleError(_0x5258c4,_0x477e1c){_0x477e1c=_0x477e1c||0x1f4;return function(_0x2fb8ae){logger[_0xc1e6('0x26')](_0x2fb8ae['stack']);if(_0x2fb8ae[_0xc1e6('0x37')]){delete _0x2fb8ae['name'];}_0x5258c4[_0xc1e6('0x2b')](_0x477e1c)[_0xc1e6('0x38')](_0x2fb8ae);};}exports['index']=function(_0x48d192,_0x82c3cb){var _0x1f897f={},_0x174de9={},_0x36b5a9={'count':0x0,'rows':[]};var _0x3c188d=_[_0xc1e6('0x39')](db[_0xc1e6('0x3a')][_0xc1e6('0x3b')],function(_0x4843a8){return{'name':_0x4843a8[_0xc1e6('0x3c')],'type':_0x4843a8['type']['key']};});_0x174de9[_0xc1e6('0x3d')]=_[_0xc1e6('0x39')](_0x3c188d,_0xc1e6('0x37'));_0x174de9['query']=_['keys'](_0x48d192[_0xc1e6('0x3e')]);_0x174de9[_0xc1e6('0x3f')]=_['intersection'](_0x174de9['model'],_0x174de9[_0xc1e6('0x3e')]);_0x1f897f[_0xc1e6('0x40')]=_[_0xc1e6('0x41')](_0x174de9[_0xc1e6('0x3d')],qs['fields'](_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x42')]));_0x1f897f[_0xc1e6('0x40')]=_0x1f897f['attributes'][_0xc1e6('0x43')]?_0x1f897f[_0xc1e6('0x40')]:_0x174de9[_0xc1e6('0x3d')];if(!_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x44')](_0xc1e6('0x45'))){_0x1f897f['limit']=qs[_0xc1e6('0x2f')](_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x2f')]);_0x1f897f[_0xc1e6('0x2e')]=qs[_0xc1e6('0x2e')](_0x48d192['query'][_0xc1e6('0x2e')]);}_0x1f897f[_0xc1e6('0x46')]=qs[_0xc1e6('0x47')](_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x47')]);_0x1f897f[_0xc1e6('0x48')]=qs[_0xc1e6('0x3f')](_[_0xc1e6('0x49')](_0x48d192['query'],_0x174de9[_0xc1e6('0x3f')]),_0x3c188d);if(_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x4a')]){_0x1f897f[_0xc1e6('0x48')]=_[_0xc1e6('0x4b')](_0x1f897f['where'],{'$or':_['map'](_0x3c188d,function(_0x562ec7){if(_0x562ec7[_0xc1e6('0x4c')]!=='VIRTUAL'){var _0x41d535={};_0x41d535[_0x562ec7[_0xc1e6('0x37')]]={'$like':'%'+_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x4a')]+'%'};return _0x41d535;}})});}_0x1f897f=_[_0xc1e6('0x4b')]({},_0x1f897f,_0x48d192[_0xc1e6('0x4d')]);var _0xc53145={'where':_0x1f897f[_0xc1e6('0x48')]};return db['MailMessage'][_0xc1e6('0x2d')](_0xc53145)[_0xc1e6('0x22')](function(_0x2583b6){_0x36b5a9[_0xc1e6('0x2d')]=_0x2583b6;if(_0x48d192[_0xc1e6('0x3e')][_0xc1e6('0x4e')]){_0x1f897f[_0xc1e6('0x4f')]=[{'all':!![]}];}return db[_0xc1e6('0x3a')][_0xc1e6('0x50')](_0x1f897f);})['then'](function(_0x1de344){_0x36b5a9[_0xc1e6('0x51')]=_0x1de344;return _0x36b5a9;})[_0xc1e6('0x22')](respondWithFilteredResult(_0x82c3cb,_0x1f897f))[_0xc1e6('0x52')](handleError(_0x82c3cb,null));};exports[_0xc1e6('0x53')]=function(_0x393436,_0x368335){var _0x4f7ce4={'raw':!![],'where':{'id':_0x393436[_0xc1e6('0x54')]['id']}},_0x23fd84={};_0x23fd84[_0xc1e6('0x3d')]=_[_0xc1e6('0x55')](db[_0xc1e6('0x3a')]['rawAttributes']);_0x23fd84[_0xc1e6('0x3e')]=_[_0xc1e6('0x55')](_0x393436[_0xc1e6('0x3e')]);_0x23fd84[_0xc1e6('0x3f')]=_[_0xc1e6('0x41')](_0x23fd84['model'],_0x23fd84['query']);_0x4f7ce4['attributes']=_['intersection'](_0x23fd84[_0xc1e6('0x3d')],qs[_0xc1e6('0x42')](_0x393436['query'][_0xc1e6('0x42')]));_0x4f7ce4['attributes']=_0x4f7ce4['attributes'][_0xc1e6('0x43')]?_0x4f7ce4[_0xc1e6('0x40')]:_0x23fd84[_0xc1e6('0x3d')];if(_0x393436['query'][_0xc1e6('0x4e')]){_0x4f7ce4['include']=[{'all':!![]}];}_0x4f7ce4=_[_0xc1e6('0x4b')]({},_0x4f7ce4,_0x393436[_0xc1e6('0x4d')]);return db[_0xc1e6('0x3a')][_0xc1e6('0x56')](_0x4f7ce4)[_0xc1e6('0x22')](handleEntityNotFound(_0x368335,null))[_0xc1e6('0x22')](respondWithResult(_0x368335,null))[_0xc1e6('0x52')](handleError(_0x368335,null));};exports[_0xc1e6('0x34')]=function(_0x29400e,_0x2de3c3){if(_0x29400e[_0xc1e6('0x57')]['id']){delete _0x29400e[_0xc1e6('0x57')]['id'];}return db[_0xc1e6('0x3a')][_0xc1e6('0x56')]({'where':{'id':_0x29400e[_0xc1e6('0x54')]['id']}})[_0xc1e6('0x22')](handleEntityNotFound(_0x2de3c3,null))['then'](saveUpdates(_0x29400e[_0xc1e6('0x57')],null))['then'](respondWithResult(_0x2de3c3,null))[_0xc1e6('0x52')](handleError(_0x2de3c3,null));};exports[_0xc1e6('0x35')]=function(_0x2e5a7b,_0x311efc){return db[_0xc1e6('0x3a')][_0xc1e6('0x56')]({'where':{'id':_0x2e5a7b['params']['id']}})[_0xc1e6('0x22')](handleEntityNotFound(_0x311efc,null))[_0xc1e6('0x22')](removeEntity(_0x311efc,null))[_0xc1e6('0x52')](handleError(_0x311efc,null));};exports[_0xc1e6('0x58')]=function(_0x18bf2b,_0x4abc9f){return db['MailMessage'][_0xc1e6('0x58')]()['then'](respondWithResult(_0x4abc9f,null))[_0xc1e6('0x52')](handleError(_0x4abc9f,null));};exports[_0xc1e6('0x59')]=function(_0x26ef77,_0x1b9063){return db[_0xc1e6('0x3a')]['create'](_0x26ef77[_0xc1e6('0x57')])[_0xc1e6('0x22')](function(_0x609c06){if(_0x609c06){if(_0x609c06['direction']===_0xc1e6('0x5a')&&!_0x609c06[_0xc1e6('0x5b')]){var _0x6c558e,_0x32114e,_0x2fbe5a;if(_0x26ef77['body']['to']){_0x32114e=_0x26ef77[_0xc1e6('0x57')]['to'][_0xc1e6('0x5c')](',')[0x0];}return db['MailAccount'][_0xc1e6('0x5d')]({'where':{'id':_0x609c06[_0xc1e6('0x5e')]},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0xc1e6('0x5f')],'as':_0xc1e6('0x60'),'where':{'email':_0x32114e},'limit':0x1,'order':[[_0xc1e6('0x61'),_0xc1e6('0x62')]]}]},{'model':db[_0xc1e6('0x63')],'as':_0xc1e6('0x64'),'raw':!![]}]})[_0xc1e6('0x22')](function(_0x36c8c7){_0x6c558e=_0x36c8c7;if(_0x6c558e&&_0x6c558e['Smtp']){var _0x1fd8ca={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x65')])){_0x1fd8ca['host']=_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x66')];_0x1fd8ca[_0xc1e6('0x67')]=_0x6c558e['Smtp']['port'];_0x1fd8ca['secure']=_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x68')];if(_0x6c558e['Smtp'][_0xc1e6('0x69')]){_0x1fd8ca[_0xc1e6('0x6a')]={'user':_0x6c558e['Smtp'][_0xc1e6('0x6b')],'pass':_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x6c')]};}}else{_0x1fd8ca[_0xc1e6('0x65')]=_0x6c558e[_0xc1e6('0x64')]['service'];_0x1fd8ca[_0xc1e6('0x6a')]={'user':_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x6b')],'pass':_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x6c')]};_0x1fd8ca['secure']=_0x6c558e[_0xc1e6('0x64')][_0xc1e6('0x68')];}if(_0x26ef77[_0xc1e6('0x57')]['attachments']&&_0x26ef77[_0xc1e6('0x57')][_0xc1e6('0x6d')][_0xc1e6('0x43')]){for(var _0xefb261=0x0;_0xefb261<_0x26ef77[_0xc1e6('0x57')][_0xc1e6('0x6d')][_0xc1e6('0x43')];_0xefb261+=0x1){_0x26ef77[_0xc1e6('0x57')]['attachments'][_0xefb261]={'filename':_0x26ef77[_0xc1e6('0x57')]['attachments'][_0xefb261][_0xc1e6('0x37')],'path':path[_0xc1e6('0x6e')](config[_0xc1e6('0x6f')],_0xc1e6('0x70'),_0x26ef77['body'][_0xc1e6('0x6d')][_0xefb261][_0xc1e6('0x71')])};}}_0x2fbe5a={'account':_0x1fd8ca,'message':_0x26ef77['body']};return;}})[_0xc1e6('0x22')](function(){if(_0x6c558e[_0xc1e6('0x72')]){if(_0x6c558e['List']['Contacts'][_0xc1e6('0x43')]){return _0x6c558e[_0xc1e6('0x72')][_0xc1e6('0x60')][0x0];}else{return db[_0xc1e6('0x5f')][_0xc1e6('0x59')](_[_0xc1e6('0x17')](_0x26ef77[_0xc1e6('0x57')],{'firstName':_0x26ef77[_0xc1e6('0x57')]['to'],'email':_0x26ef77[_0xc1e6('0x57')]['to'],'phone':_0x26ef77[_0xc1e6('0x57')]['to'],'ListId':_0x6c558e['ListId']}));}}else{throw new Error(_0xc1e6('0x73'));}})[_0xc1e6('0x22')](function(){if(_0x2fbe5a){return respondWithRpcPromise(_0xc1e6('0x74'),_0xc1e6('0x75'),_0x2fbe5a,client9003)[_0xc1e6('0x22')](function(_0x45da8e){return _0x609c06[_0xc1e6('0x34')]({'read':!![],'messageId':_0x45da8e[_0xc1e6('0x76')],'sentAt':moment()[_0xc1e6('0x77')](_0xc1e6('0x78'))});})[_0xc1e6('0x52')](function(_0x3c2a28){logger[_0xc1e6('0x26')]('%s',JSON[_0xc1e6('0x79')](_0x3c2a28));return _0x609c06;});}return _0x609c06;});}return _0x609c06;}})[_0xc1e6('0x22')](respondWithResult(_0x1b9063,0xc9))[_0xc1e6('0x52')](handleError(_0x1b9063,null));};var interaction_log=require('../../config/logger')('mail-interactions');exports['accept']=function(_0x3c9a5f,_0xd4fb19,_0x1657ce){var _0x4a7b2f={'channel':_0xc1e6('0x7a')};if(_0x3c9a5f[_0xc1e6('0x57')]['id']){delete _0x3c9a5f['body']['id'];}_0x3c9a5f[_0xc1e6('0x57')][_0xc1e6('0x7b')]=!![];_0x3c9a5f[_0xc1e6('0x57')]['readAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x3c9a5f['body'][_0xc1e6('0x7c')]=_0x3c9a5f[_0xc1e6('0x57')][_0xc1e6('0x7c')]||_0x3c9a5f[_0xc1e6('0x6b')]['id'];return db[_0xc1e6('0x3a')]['find']({'where':{'id':_0x3c9a5f[_0xc1e6('0x54')]['id'],'UserId':null},'include':[{'model':db[_0xc1e6('0x5f')],'as':_0xc1e6('0x7d')}]})[_0xc1e6('0x22')](handleEntityNotFound(_0xd4fb19,null))[_0xc1e6('0x22')](saveUpdates(_0x3c9a5f[_0xc1e6('0x57')],null))[_0xc1e6('0x22')](function(_0xa9e176){if(_0xa9e176){_0x4a7b2f[_0xc1e6('0x29')]=_0xa9e176[_0xc1e6('0x7e')]({'plain':!![]});return db[_0xc1e6('0x7f')][_0xc1e6('0x56')]({'where':{'id':_0xa9e176[_0xc1e6('0x80')]}});}return null;})[_0xc1e6('0x22')](handleEntityNotFound(_0xd4fb19,null))[_0xc1e6('0x22')](function(_0x1383dd){if(_0x1383dd){return _0x1383dd[_0xc1e6('0x34')]({'UserId':_0x3c9a5f[_0xc1e6('0x57')]['UserId'],'read1stAt':_[_0xc1e6('0x81')](_0x1383dd['read1stAt'])?moment()['format'](_0xc1e6('0x78')):undefined});}return null;})[_0xc1e6('0x22')](function(_0x4bae49){if(_0x4bae49){_0x4a7b2f[_0xc1e6('0x82')]=_0x4bae49[_0xc1e6('0x7e')]({'plain':!![]});interaction_log[_0xc1e6('0x23')](_0xc1e6('0x83'),_0x3c9a5f[_0xc1e6('0x6b')]['id'],_0x3c9a5f[_0xc1e6('0x6b')][_0xc1e6('0x37')],_0x3c9a5f['user']['role'],_0x4a7b2f['interaction']['id'],_0x3c9a5f[_0xc1e6('0x57')]?JSON[_0xc1e6('0x79')](_0x3c9a5f[_0xc1e6('0x57')]):_0xc1e6('0x84'));return respondWithRpcPromise(_0xc1e6('0x85'),_0xc1e6('0x86'),_0x4a7b2f);}return null;})[_0xc1e6('0x22')](function(_0x13333d){if(_0x13333d){if(_0x3c9a5f[_0xc1e6('0x57')][_0xc1e6('0x87')]){_0x4a7b2f['message'][_0xc1e6('0x88')]=util[_0xc1e6('0x77')](_0xc1e6('0x89'),_0x3c9a5f[_0xc1e6('0x6b')][_0xc1e6('0x37')]);_0x4a7b2f[_0xc1e6('0x29')][_0xc1e6('0x8a')]=_0x4a7b2f[_0xc1e6('0x8a')];_0x4a7b2f[_0xc1e6('0x29')][_0xc1e6('0x8b')]=_0xc1e6('0x8c');return respondWithRpcPromise(_0xc1e6('0x8d'),_0xc1e6('0x8d'),{'event':'acceptmessage','message':_0x4a7b2f['message']},client9002)[_0xc1e6('0x22')](function(){return _0x4a7b2f;});}return _0x4a7b2f;}return null;})[_0xc1e6('0x22')](respondWithResult(_0xd4fb19,null))[_0xc1e6('0x52')](handleError(_0xd4fb19,null));};var interaction_log=require(_0xc1e6('0x12'))(_0xc1e6('0x8e'));exports[_0xc1e6('0x32')]=function(_0x1c3f06,_0x3aa69a,_0x4f8fe4){var _0x1650da={'agent':{},'channel':'mail'};if(_0x1c3f06[_0xc1e6('0x57')]['id']){delete _0x1c3f06['body']['id'];}_0x1c3f06[_0xc1e6('0x57')][_0xc1e6('0x7c')]=_0x1c3f06[_0xc1e6('0x57')][_0xc1e6('0x7c')]||_0x1c3f06[_0xc1e6('0x6b')]['id'];_0x1650da[_0xc1e6('0x8f')]['id']=_0x1c3f06['body'][_0xc1e6('0x7c')];return db[_0xc1e6('0x3a')][_0xc1e6('0x56')]({'where':{'id':_0x1c3f06['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3aa69a,null))[_0xc1e6('0x22')](function(_0x3935d3){if(_0x3935d3){_0x1650da['message']=_0x3935d3[_0xc1e6('0x7e')]({'plain':!![]});return db[_0xc1e6('0x7f')][_0xc1e6('0x56')]({'where':{'id':_0x3935d3['MailInteractionId']}});}return null;})[_0xc1e6('0x22')](handleEntityNotFound(_0x3aa69a,null))[_0xc1e6('0x22')](function(_0x3a3164){if(_0x3a3164){_0x1650da['interaction']=_0x3a3164[_0xc1e6('0x7e')]({'plain':!![]});interaction_log[_0xc1e6('0x23')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1c3f06[_0xc1e6('0x6b')]['id'],_0x1c3f06[_0xc1e6('0x6b')]['name'],_0x1c3f06[_0xc1e6('0x6b')][_0xc1e6('0x90')],_0x1650da['interaction']['id'],_0x1c3f06['body']?JSON[_0xc1e6('0x79')](_0x1c3f06['body']):_0xc1e6('0x84'));return respondWithRpcPromise(_0xc1e6('0x91'),_0xc1e6('0x92'),_0x1650da);}return null;})[_0xc1e6('0x22')](function(_0x1e07ea){if(_0x1e07ea){_0x1e07ea[_0xc1e6('0x29')]['interface']=util[_0xc1e6('0x77')]('SIP/%s',_0x1c3f06['user'][_0xc1e6('0x37')]);_0x1e07ea['message'][_0xc1e6('0x8a')]=_0x1650da[_0xc1e6('0x8a')];_0x1e07ea[_0xc1e6('0x29')]['event']='reject';respondWithRpcPromise(_0xc1e6('0x8d'),_0xc1e6('0x8d'),{'event':_0xc1e6('0x93'),'message':_0x1e07ea[_0xc1e6('0x29')]},client9002);return _0x1650da;}return null;})[_0xc1e6('0x22')](respondWithResult(_0x3aa69a,null))[_0xc1e6('0x52')](handleError(_0x3aa69a,null));};exports[_0xc1e6('0x94')]=function(_0x2a1e21,_0x26950c){var _0x21afa9=moment()[_0xc1e6('0x95')]()[_0xc1e6('0x96')]();var _0x51bf5b=path[_0xc1e6('0x6e')](config[_0xc1e6('0x6f')],_0xc1e6('0x97'),_0xc1e6('0x98'),_0xc1e6('0x99'));var _0x551d46=path[_0xc1e6('0x6e')](config[_0xc1e6('0x6f')],'server',_0xc1e6('0x98'),'attachments');var _0x4f8f05=util[_0xc1e6('0x77')](_0xc1e6('0x9a'),_0x21afa9);return db['MailMessage'][_0xc1e6('0x56')]({'where':{'id':_0x2a1e21['params']['id']},'attributes':['id',_0xc1e6('0x57'),_0xc1e6('0x9b'),'to','cc',_0xc1e6('0x9c'),_0xc1e6('0x9d'),_0xc1e6('0x9e')],'include':_0x2a1e21[_0xc1e6('0x3e')][_0xc1e6('0x6d')]?[{'model':db[_0xc1e6('0x9f')],'as':_0xc1e6('0xa0')}]:undefined})[_0xc1e6('0x22')](handleEntityNotFound(_0x26950c,null))[_0xc1e6('0x22')](function(_0x20a6db){if(_0x20a6db){var _0x5ba11e=_0x20a6db;var _0x5a266c={'from':_0x5ba11e[_0xc1e6('0x9b')],'to':_0x5ba11e['to'],'subject':_0x5ba11e[_0xc1e6('0x9d')],'html':_0x5ba11e['body'],'headers':{'Date':moment(_0x5ba11e['createdAt'])['format']('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x20a6db['cc']){_0x5a266c[_0xc1e6('0xa1')]['Cc']=_0x20a6db['cc'];}if(_0x20a6db['bcc']){_0x5a266c[_0xc1e6('0xa1')]['Bcc']=_0x20a6db[_0xc1e6('0x9c')];}return new BPromise(function(_0x5ce7be,_0x3bf907){if(_0x20a6db[_0xc1e6('0xa0')]){for(var _0xb00638=0x0;_0xb00638<_0x20a6db[_0xc1e6('0xa0')]['length'];_0xb00638++){var _0x1ea7dc=_0x20a6db[_0xc1e6('0xa0')][_0xb00638];var _0xde0837=path[_0xc1e6('0x6e')](_0x551d46,_0x1ea7dc[_0xc1e6('0x71')]);if(fs[_0xc1e6('0xa2')](_0xde0837)){_0x5a266c[_0xc1e6('0x6d')][_0xc1e6('0xa3')]({'name':_0x1ea7dc['name'],'contentType':_0x1ea7dc[_0xc1e6('0x4c')],'data':fs[_0xc1e6('0xa4')](_0xde0837)});}}}emlformat['build'](_0x5a266c,function(_0x2e8f25,_0xb9589a){if(_0x2e8f25)return _0x3bf907(_0x2e8f25);fs[_0xc1e6('0xa5')](path[_0xc1e6('0x6e')](_0x51bf5b,_0x4f8f05),_0xb9589a);return _0x5ce7be(_0xb9589a);});});}})[_0xc1e6('0x22')](function(_0x3712ab){if(_0x3712ab){return _0x26950c['download'](path[_0xc1e6('0x6e')](_0x51bf5b,_0x4f8f05),_0x4f8f05,function(_0x5f3ac8){if(_0x5f3ac8){console[_0xc1e6('0xa6')]('err',_0x5f3ac8);}else{fs[_0xc1e6('0xa7')](path['join'](_0x51bf5b,_0x4f8f05));}});}})[_0xc1e6('0x52')](handleError(_0x26950c,null));};