80ff31e609c141bfd97d8496f0e8678e242d4f49
[motion2.git] / server / api / mailAccount / mailAccount.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 _0x293a=['getAgents','moment','util','path','lodash','juice','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','then','destroy','UserProfileResource','end','name','send','index','Pause','mandatoryDispositionPause','map','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','MailAccount','findAll','show','params','Imap','Smtp','rawAttributes','include','find','update','body','modernAuthentication','CloudProviderId','MailServerIn','MailServerOut','describe','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','order','removeDispositions','addAnswer','CannedAnswer','includeAll','rows','removeAnswers','provider','custom','email','ListId','active','user','username','password','pass','service','host','port','authentication','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','MailAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','removeImap','setImap','getSmtp','addSmtp','setSmtp','addInteraction','MailInteraction','ids','omit','Contact','User','Owner','fullname','Tags','color','tag','addApplications','sequelize','ISOLATION_LEVELS','READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','priority','finally','getApplications','MailMessage','$gte','YYYY-MM-DD\x20HH:mm:ss','inlineCss','split','List','CmContact','Contacts','isNil','attachments','join','root','server/files/attachments','basename','secure','List\x20not\x20found','messageId','subject','out','format','Interaction','Messages','CloudProvider','auth','OAuth2','data5','VerifySmtp','verifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','removeAgents','userMailAccount:remove'];(function(_0x29d2ff,_0x354e85){var _0xcc06c5=function(_0xef0ef3){while(--_0xef0ef3){_0x29d2ff['push'](_0x29d2ff['shift']());}};_0xcc06c5(++_0x354e85);}(_0x293a,0x16b));var _0xa293=function(_0xcf4260,_0xe48af6){_0xcf4260=_0xcf4260-0x0;var _0x5ad781=_0x293a[_0xcf4260];return _0x5ad781;};'use strict';var moment=require(_0xa293('0x0'));var BPromise=require('bluebird');var util=require(_0xa293('0x1'));var path=require(_0xa293('0x2'));var _=require(_0xa293('0x3'));var juice=require(_0xa293('0x4'));var Redis=require(_0xa293('0x5'));var qs=require(_0xa293('0x6'));var logger=require(_0xa293('0x7'))(_0xa293('0x8'));var config=require(_0xa293('0x9'));var db=require('../../mysqldb')['db'];config[_0xa293('0xa')]=_[_0xa293('0xb')](config[_0xa293('0xa')],{'host':_0xa293('0xc'),'port':0x18eb});var socket=require(_0xa293('0xd'))(new Redis(config[_0xa293('0xa')]));require(_0xa293('0xe'))[_0xa293('0xf')](socket);var jayson=require(_0xa293('0x10'));var client=jayson['client']['http']({'port':0x232b});function respondWithRpcPromise(_0x38488a,_0x3de756,_0x93cba,_0x366fc8){return new BPromise(function(_0x3ac5af,_0x503350){var _0x424009=_0x366fc8||client;return _0x424009['request'](_0x38488a,_0x93cba)['then'](function(_0x5bc0fd){logger['info'](_0xa293('0x11'),_0x3de756,_0xa293('0x12'));logger[_0xa293('0x13')](_0xa293('0x14'),_0x3de756,'request\x20sent',JSON[_0xa293('0x15')](_0x5bc0fd));if(_0x5bc0fd[_0xa293('0x16')]){if(_0x5bc0fd[_0xa293('0x16')][_0xa293('0x17')]===0x1f4){logger[_0xa293('0x16')](_0xa293('0x11'),_0x3de756,_0x5bc0fd['error']['message']);return _0x503350(_0x5bc0fd[_0xa293('0x16')][_0xa293('0x18')]);}logger[_0xa293('0x16')](_0xa293('0x11'),_0x3de756,_0x5bc0fd[_0xa293('0x16')][_0xa293('0x18')]);return _0x3ac5af(_0x5bc0fd[_0xa293('0x16')]['message']);}else{logger[_0xa293('0x19')]('MailAccount,\x20%s,\x20%s',_0x3de756,_0xa293('0x12'));_0x3ac5af(_0x5bc0fd[_0xa293('0x1a')][_0xa293('0x18')]);}})[_0xa293('0x1b')](function(_0x2396df){logger['error'](_0xa293('0x11'),_0x3de756,_0x2396df);_0x503350(_0x2396df);});});}function respondWithStatusCode(_0x18e906,_0x363831){_0x363831=_0x363831||0xcc;return function(_0x543d4e){if(_0x543d4e){return _0x18e906[_0xa293('0x1c')](_0x363831);}return _0x18e906[_0xa293('0x1d')](_0x363831)['end']();};}function respondWithResult(_0x398cfa,_0x11d3d4){_0x11d3d4=_0x11d3d4||0xc8;return function(_0x4ade35){if(_0x4ade35){return _0x398cfa[_0xa293('0x1d')](_0x11d3d4)[_0xa293('0x1e')](_0x4ade35);}};}function respondWithFilteredResult(_0x35022f,_0x1d19dc){return function(_0x116fd4){if(_0x116fd4){var _0x1a9e85=typeof _0x1d19dc[_0xa293('0x1f')]==='undefined'&&typeof _0x1d19dc[_0xa293('0x20')]===_0xa293('0x21');var _0xa2b274=_0x116fd4[_0xa293('0x22')];var _0x1b1636=_0x1a9e85?0x0:_0x1d19dc['offset'];var _0x1e408b=_0x1a9e85?_0x116fd4['count']:_0x1d19dc[_0xa293('0x1f')]+_0x1d19dc[_0xa293('0x20')];var _0x542d1c;if(_0x1e408b>=_0xa2b274){_0x1e408b=_0xa2b274;_0x542d1c=0xc8;}else{_0x542d1c=0xce;}_0x35022f[_0xa293('0x1d')](_0x542d1c);return _0x35022f[_0xa293('0x23')](_0xa293('0x24'),_0x1b1636+'-'+_0x1e408b+'/'+_0xa2b274)['json'](_0x116fd4);}return null;};}function saveUpdates(_0x2dbd6a){return function(_0x5d8181){if(_0x5d8181){return _0x5d8181['update'](_0x2dbd6a)[_0xa293('0x25')](function(_0x4a7dde){return _0x4a7dde;});}return null;};}function removeEntity(_0x4d666c){return function(_0x149a52){if(_0x149a52){return _0x149a52[_0xa293('0x26')]()['then'](function(){var _0x3126d8=_0x149a52['get']({'plain':!![]});var _0x3536f3='MailAccounts';return db[_0xa293('0x27')][_0xa293('0x26')]({'where':{'type':_0x3536f3,'resourceId':_0x3126d8['id']}})['then'](function(){return _0x149a52;});})['then'](function(){_0x4d666c[_0xa293('0x1d')](0xcc)[_0xa293('0x28')]();});}};}function handleEntityNotFound(_0x208dd7){return function(_0x426272){if(!_0x426272){_0x208dd7[_0xa293('0x1c')](0x194);}return _0x426272;};}function handleError(_0xa299b9,_0x222144){_0x222144=_0x222144||0x1f4;return function(_0x2ee765){logger[_0xa293('0x16')](_0x2ee765['stack']);if(_0x2ee765['name']){delete _0x2ee765[_0xa293('0x29')];}_0xa299b9['status'](_0x222144)[_0xa293('0x2a')](_0x2ee765);};}exports[_0xa293('0x2b')]=function(_0x40d98f,_0x2058fb){var _0x59cae7={'include':[{'model':db['MailServerIn'],'as':'Imap'},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db[_0xa293('0x2c')],'as':_0xa293('0x2d')}]},_0x117fcd={},_0x47cc11={'count':0x0,'rows':[]};var _0x55f3ad=_[_0xa293('0x2e')](db['MailAccount']['rawAttributes'],function(_0x5e18e6){return{'name':_0x5e18e6[_0xa293('0x2f')],'type':_0x5e18e6[_0xa293('0x30')][_0xa293('0x31')]};});_0x117fcd[_0xa293('0x32')]=_[_0xa293('0x2e')](_0x55f3ad,_0xa293('0x29'));_0x117fcd[_0xa293('0x33')]=_[_0xa293('0x34')](_0x40d98f[_0xa293('0x33')]);_0x117fcd[_0xa293('0x35')]=_['intersection'](_0x117fcd['model'],_0x117fcd[_0xa293('0x33')]);_0x59cae7[_0xa293('0x36')]=_[_0xa293('0x37')](_0x117fcd[_0xa293('0x32')],qs[_0xa293('0x38')](_0x40d98f[_0xa293('0x33')][_0xa293('0x38')]));_0x59cae7['attributes']=_0x59cae7[_0xa293('0x36')][_0xa293('0x39')]?_0x59cae7[_0xa293('0x36')]:_0x117fcd[_0xa293('0x32')];if(!_0x40d98f['query'][_0xa293('0x3a')](_0xa293('0x3b'))){_0x59cae7[_0xa293('0x20')]=qs[_0xa293('0x20')](_0x40d98f[_0xa293('0x33')][_0xa293('0x20')]);_0x59cae7[_0xa293('0x1f')]=qs[_0xa293('0x1f')](_0x40d98f['query'][_0xa293('0x1f')]);}_0x59cae7['order']=qs[_0xa293('0x3c')](_0x40d98f[_0xa293('0x33')][_0xa293('0x3c')]);_0x59cae7[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0x40d98f[_0xa293('0x33')],_0x117fcd[_0xa293('0x35')]),_0x55f3ad);if(_0x40d98f['query'][_0xa293('0x3f')]){_0x59cae7[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x59cae7[_0xa293('0x3d')],{'$or':_[_0xa293('0x2e')](_0x55f3ad,function(_0x551d7c){if(_0x551d7c[_0xa293('0x30')]!==_0xa293('0x41')){var _0x2fbd27={};_0x2fbd27[_0x551d7c[_0xa293('0x29')]]={'$like':'%'+_0x40d98f[_0xa293('0x33')][_0xa293('0x3f')]+'%'};return _0x2fbd27;}})});}_0x59cae7=_[_0xa293('0x40')]({},_0x59cae7,_0x40d98f[_0xa293('0x42')]);var _0x2896bb={'where':_0x59cae7['where']};return db[_0xa293('0x43')][_0xa293('0x22')](_0x2896bb)['then'](function(_0x2d14e7){_0x47cc11['count']=_0x2d14e7;if(_0x40d98f['query']['includeAll']){_0x59cae7['include']=[{'all':!![]}];}return db[_0xa293('0x43')][_0xa293('0x44')](_0x59cae7);})['then'](function(_0x170ecf){_0x47cc11['rows']=_0x170ecf;return _0x47cc11;})[_0xa293('0x25')](respondWithFilteredResult(_0x2058fb,_0x59cae7))[_0xa293('0x1b')](handleError(_0x2058fb,null));};exports[_0xa293('0x45')]=function(_0x3b94a0,_0x1bae95){var _0x12de57={'raw':![],'where':{'id':_0x3b94a0[_0xa293('0x46')]['id']},'include':[{'model':db['MailServerIn'],'as':_0xa293('0x47')},{'model':db['MailServerOut'],'as':_0xa293('0x48')},{'model':db[_0xa293('0x2c')],'as':_0xa293('0x2d')}]},_0x42fcc7={};_0x42fcc7['model']=_[_0xa293('0x34')](db[_0xa293('0x43')][_0xa293('0x49')]);_0x42fcc7['query']=_[_0xa293('0x34')](_0x3b94a0[_0xa293('0x33')]);_0x42fcc7[_0xa293('0x35')]=_[_0xa293('0x37')](_0x42fcc7[_0xa293('0x32')],_0x42fcc7[_0xa293('0x33')]);_0x12de57[_0xa293('0x36')]=_[_0xa293('0x37')](_0x42fcc7[_0xa293('0x32')],qs[_0xa293('0x38')](_0x3b94a0[_0xa293('0x33')][_0xa293('0x38')]));_0x12de57[_0xa293('0x36')]=_0x12de57[_0xa293('0x36')][_0xa293('0x39')]?_0x12de57['attributes']:_0x42fcc7[_0xa293('0x32')];if(_0x3b94a0[_0xa293('0x33')]['includeAll']){_0x12de57[_0xa293('0x4a')]=[{'all':!![]}];}_0x12de57=_[_0xa293('0x40')]({},_0x12de57,_0x3b94a0[_0xa293('0x42')]);return db[_0xa293('0x43')][_0xa293('0x4b')](_0x12de57)[_0xa293('0x25')](handleEntityNotFound(_0x1bae95,null))[_0xa293('0x25')](respondWithResult(_0x1bae95,null))['catch'](handleError(_0x1bae95,null));};exports[_0xa293('0x4c')]=function(_0x288969,_0x29394d){if(_0x288969[_0xa293('0x4d')]['id']){delete _0x288969['body']['id'];}if(_0x288969[_0xa293('0x4d')][_0xa293('0x47')]){if(!_0x288969[_0xa293('0x4d')][_0xa293('0x47')][_0xa293('0x4e')]){_0x288969[_0xa293('0x4d')]['Imap'][_0xa293('0x4f')]=null;}}if(_0x288969['body'][_0xa293('0x48')]){if(!_0x288969['body'][_0xa293('0x48')][_0xa293('0x4e')]){_0x288969[_0xa293('0x4d')][_0xa293('0x48')]['CloudProviderId']=null;}}return db[_0xa293('0x43')][_0xa293('0x4b')]({'where':{'id':_0x288969[_0xa293('0x46')]['id']},'include':[{'model':db[_0xa293('0x50')],'as':_0xa293('0x47')},{'model':db[_0xa293('0x51')],'as':_0xa293('0x48')},{'model':db[_0xa293('0x2c')],'as':_0xa293('0x2d')}]})[_0xa293('0x25')](handleEntityNotFound(_0x29394d,null))[_0xa293('0x25')](saveUpdates(_0x288969[_0xa293('0x4d')],null))[_0xa293('0x25')](function(_0x469599){if(_0x469599&&_0x288969['body']['Imap']){return db[_0xa293('0x50')][_0xa293('0x4c')](_0x288969[_0xa293('0x4d')][_0xa293('0x47')],{'where':{'MailAccountId':_0x469599['id']}})[_0xa293('0x25')](function(){return _0x469599;});}return _0x469599;})['then'](function(_0x42a4ca){if(_0x42a4ca&&_0x288969[_0xa293('0x4d')][_0xa293('0x48')]){return db['MailServerOut']['update'](_0x288969[_0xa293('0x4d')][_0xa293('0x48')],{'where':{'MailAccountId':_0x42a4ca['id']}})[_0xa293('0x25')](function(){return _0x42a4ca;});}return _0x42a4ca;})[_0xa293('0x25')](respondWithResult(_0x29394d,null))['catch'](handleError(_0x29394d,null));};exports[_0xa293('0x52')]=function(_0x239434,_0x300212){return db['MailAccount'][_0xa293('0x52')]()['then'](respondWithResult(_0x300212,null))[_0xa293('0x1b')](handleError(_0x300212,null));};exports[_0xa293('0x53')]=function(_0x214d5a,_0x453b21){if(_0x214d5a[_0xa293('0x4d')]['id']){delete _0x214d5a[_0xa293('0x4d')]['id'];}return db[_0xa293('0x43')][_0xa293('0x4b')]({'where':{'id':_0x214d5a[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0x453b21,null))['then'](function(_0x296570){if(_0x296570){_0x214d5a['body'][_0xa293('0x54')]=_0x296570['id'];return db[_0xa293('0x55')][_0xa293('0x56')](_0x214d5a[_0xa293('0x4d')]);}})['then'](respondWithResult(_0x453b21,null))[_0xa293('0x1b')](handleError(_0x453b21,null));};exports[_0xa293('0x57')]=function(_0x190ee9,_0x5c80b6){var _0x2e7bb6={'raw':![],'where':{}};var _0x554a5a={};var _0xea11c5={'count':0x0,'rows':[]};return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x190ee9[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x5c80b6,null))[_0xa293('0x25')](function(_0x50e61d){if(_0x50e61d){_0x554a5a[_0xa293('0x32')]=_[_0xa293('0x34')](db[_0xa293('0x55')][_0xa293('0x49')]);_0x554a5a[_0xa293('0x33')]=_[_0xa293('0x34')](_0x190ee9[_0xa293('0x33')]);_0x554a5a[_0xa293('0x35')]=_[_0xa293('0x37')](_0x554a5a[_0xa293('0x32')],_0x554a5a['query']);_0x2e7bb6['attributes']=_['intersection'](_0x554a5a['model'],qs['fields'](_0x190ee9[_0xa293('0x33')][_0xa293('0x38')]));_0x2e7bb6[_0xa293('0x36')]=_0x2e7bb6[_0xa293('0x36')]['length']?_0x2e7bb6[_0xa293('0x36')]:_0x554a5a['model'];if(!_0x190ee9[_0xa293('0x33')]['hasOwnProperty'](_0xa293('0x3b'))){_0x2e7bb6[_0xa293('0x20')]=qs[_0xa293('0x20')](_0x190ee9[_0xa293('0x33')][_0xa293('0x20')]);_0x2e7bb6[_0xa293('0x1f')]=qs['offset'](_0x190ee9[_0xa293('0x33')][_0xa293('0x1f')]);}_0x2e7bb6[_0xa293('0x59')]=qs[_0xa293('0x3c')](_0x190ee9['query'][_0xa293('0x3c')]);_0x2e7bb6[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0x190ee9[_0xa293('0x33')],_0x554a5a[_0xa293('0x35')]));_0x2e7bb6[_0xa293('0x3d')][_0xa293('0x54')]=_0x50e61d['id'];if(_0x190ee9[_0xa293('0x33')]['filter']){_0x2e7bb6[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x2e7bb6[_0xa293('0x3d')],{'$or':_[_0xa293('0x2e')](_0x2e7bb6['attributes'],function(_0xedbb0c){var _0x2cb71e={};_0x2cb71e[_0xedbb0c]={'$like':'%'+_0x190ee9[_0xa293('0x33')][_0xa293('0x3f')]+'%'};return _0x2cb71e;})});}_0x2e7bb6=_['merge']({},_0x2e7bb6,_0x190ee9[_0xa293('0x42')]);return db[_0xa293('0x55')][_0xa293('0x22')]({'where':_0x2e7bb6[_0xa293('0x3d')]})[_0xa293('0x25')](function(_0xb127e1){_0xea11c5[_0xa293('0x22')]=_0xb127e1;if(_0x190ee9['query']['includeAll']){_0x2e7bb6[_0xa293('0x4a')]=[{'all':!![]}];}return db[_0xa293('0x55')][_0xa293('0x44')](_0x2e7bb6);})['then'](function(_0x1b0332){_0xea11c5['rows']=_0x1b0332;return _0xea11c5;});}})[_0xa293('0x25')](respondWithFilteredResult(_0x5c80b6,_0x2e7bb6))[_0xa293('0x1b')](handleError(_0x5c80b6,null));};exports[_0xa293('0x5a')]=function(_0x45287e,_0x1a55d0){return db[_0xa293('0x43')]['find']({'where':{'id':_0x45287e[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x1a55d0,null))[_0xa293('0x25')](function(_0x1eb643){if(_0x1eb643){return _0x1eb643[_0xa293('0x5a')](_0x45287e[_0xa293('0x33')]['ids']);}})[_0xa293('0x25')](respondWithStatusCode(_0x1a55d0,null))['catch'](handleError(_0x1a55d0,null));};exports[_0xa293('0x5b')]=function(_0x17f834,_0x5ef39a){if(_0x17f834[_0xa293('0x4d')]['id']){delete _0x17f834[_0xa293('0x4d')]['id'];}return db[_0xa293('0x43')][_0xa293('0x4b')]({'where':{'id':_0x17f834[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x5ef39a,null))['then'](function(_0x1516ff){if(_0x1516ff){_0x17f834[_0xa293('0x4d')][_0xa293('0x54')]=_0x1516ff['id'];return db['CannedAnswer'][_0xa293('0x56')](_0x17f834[_0xa293('0x4d')]);}})[_0xa293('0x25')](respondWithResult(_0x5ef39a,null))[_0xa293('0x1b')](handleError(_0x5ef39a,null));};exports['getAnswers']=function(_0x23e041,_0x4eedc7){var _0x8f24e0={'raw':![],'where':{}};var _0x30863d={};var _0x59e826={'count':0x0,'rows':[]};return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x23e041['params']['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x4eedc7,null))[_0xa293('0x25')](function(_0x442fb8){if(_0x442fb8){_0x30863d[_0xa293('0x32')]=_[_0xa293('0x34')](db[_0xa293('0x5c')][_0xa293('0x49')]);_0x30863d[_0xa293('0x33')]=_[_0xa293('0x34')](_0x23e041[_0xa293('0x33')]);_0x30863d[_0xa293('0x35')]=_['intersection'](_0x30863d[_0xa293('0x32')],_0x30863d[_0xa293('0x33')]);_0x8f24e0['attributes']=_[_0xa293('0x37')](_0x30863d[_0xa293('0x32')],qs[_0xa293('0x38')](_0x23e041[_0xa293('0x33')][_0xa293('0x38')]));_0x8f24e0[_0xa293('0x36')]=_0x8f24e0[_0xa293('0x36')][_0xa293('0x39')]?_0x8f24e0[_0xa293('0x36')]:_0x30863d['model'];if(!_0x23e041[_0xa293('0x33')][_0xa293('0x3a')](_0xa293('0x3b'))){_0x8f24e0[_0xa293('0x20')]=qs['limit'](_0x23e041[_0xa293('0x33')][_0xa293('0x20')]);_0x8f24e0['offset']=qs[_0xa293('0x1f')](_0x23e041[_0xa293('0x33')][_0xa293('0x1f')]);}_0x8f24e0[_0xa293('0x59')]=qs[_0xa293('0x3c')](_0x23e041['query']['sort']);_0x8f24e0[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0x23e041[_0xa293('0x33')],_0x30863d['filters']));_0x8f24e0[_0xa293('0x3d')][_0xa293('0x54')]=_0x442fb8['id'];if(_0x23e041[_0xa293('0x33')][_0xa293('0x3f')]){_0x8f24e0[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x8f24e0[_0xa293('0x3d')],{'$or':_[_0xa293('0x2e')](_0x8f24e0[_0xa293('0x36')],function(_0x227d03){var _0x25fb5c={};_0x25fb5c[_0x227d03]={'$like':'%'+_0x23e041[_0xa293('0x33')][_0xa293('0x3f')]+'%'};return _0x25fb5c;})});}_0x8f24e0=_[_0xa293('0x40')]({},_0x8f24e0,_0x23e041[_0xa293('0x42')]);return db[_0xa293('0x5c')][_0xa293('0x22')]({'where':_0x8f24e0[_0xa293('0x3d')]})[_0xa293('0x25')](function(_0x49ecee){_0x59e826['count']=_0x49ecee;if(_0x23e041[_0xa293('0x33')][_0xa293('0x5d')]){_0x8f24e0[_0xa293('0x4a')]=[{'all':!![]}];}return db[_0xa293('0x5c')]['findAll'](_0x8f24e0);})['then'](function(_0xeeaec9){_0x59e826[_0xa293('0x5e')]=_0xeeaec9;return _0x59e826;});}})['then'](respondWithFilteredResult(_0x4eedc7,_0x8f24e0))[_0xa293('0x1b')](handleError(_0x4eedc7,null));};exports[_0xa293('0x5f')]=function(_0x3fd4aa,_0x2e1526){return db['MailAccount'][_0xa293('0x4b')]({'where':{'id':_0x3fd4aa[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x2e1526,null))[_0xa293('0x25')](function(_0xa3bd7b){if(_0xa3bd7b){return _0xa3bd7b['removeAnswers'](_0x3fd4aa[_0xa293('0x33')]['ids']);}})[_0xa293('0x25')](respondWithStatusCode(_0x2e1526,null))[_0xa293('0x1b')](handleError(_0x2e1526,null));};exports['create']=function(_0x5706c5,_0x11e6a2){var _0x31873e={'name':_0x5706c5[_0xa293('0x4d')][_0xa293('0x29')],'key':_0x5706c5[_0xa293('0x4d')][_0xa293('0x31')],'provider':_0x5706c5['body'][_0xa293('0x60')]===_0xa293('0x61')?null:_0x5706c5[_0xa293('0x4d')]['provider'],'email':_0x5706c5[_0xa293('0x4d')][_0xa293('0x62')],'ListId':_0x5706c5['body'][_0xa293('0x63')],'active':!_['isNil'](_0x5706c5['body'][_0xa293('0x64')])?_0x5706c5[_0xa293('0x4d')][_0xa293('0x64')]:!![],'description':_0x5706c5[_0xa293('0x4d')]['description']||null,'Imap':{},'Smtp':{}};if(_0x31873e['provider']){_0x31873e[_0xa293('0x47')][_0xa293('0x65')]=_0x31873e['Smtp']['user']=_0x5706c5[_0xa293('0x4d')][_0xa293('0x66')];_0x31873e['Imap'][_0xa293('0x67')]=_0x31873e['Smtp'][_0xa293('0x68')]=_0x5706c5[_0xa293('0x4d')][_0xa293('0x67')];if(_0x5706c5[_0xa293('0x4d')][_0xa293('0x4e')]){_0x31873e[_0xa293('0x47')][_0xa293('0x4e')]=_0x31873e[_0xa293('0x48')][_0xa293('0x4e')]=!![];_0x31873e['Imap']['CloudProviderId']=_0x31873e[_0xa293('0x48')]['CloudProviderId']=_0x5706c5[_0xa293('0x4d')]['CloudProviderId'];_0x31873e[_0xa293('0x47')]['password']=_0x31873e[_0xa293('0x48')][_0xa293('0x68')]=null;}else{_0x31873e[_0xa293('0x47')]['CloudProviderId']=_0x31873e[_0xa293('0x48')][_0xa293('0x4f')]=null;}_0x31873e['Imap'][_0xa293('0x69')]=_0x31873e[_0xa293('0x48')]['service']=null;_0x31873e[_0xa293('0x47')][_0xa293('0x6a')]=_0x31873e[_0xa293('0x48')][_0xa293('0x6a')]=null;_0x31873e[_0xa293('0x47')]['port']=_0x31873e[_0xa293('0x48')][_0xa293('0x6b')]=null;}else{if(_0x5706c5[_0xa293('0x4d')][_0xa293('0x6c')]){_0x31873e[_0xa293('0x47')][_0xa293('0x65')]=_0x31873e[_0xa293('0x48')][_0xa293('0x65')]=_0x5706c5[_0xa293('0x4d')][_0xa293('0x66')];_0x31873e[_0xa293('0x47')][_0xa293('0x67')]=_0x31873e['Smtp'][_0xa293('0x68')]=_0x5706c5['body'][_0xa293('0x67')];}else{_0x31873e['Imap'][_0xa293('0x6c')]=_0x31873e[_0xa293('0x48')][_0xa293('0x6c')]=![];_0x31873e[_0xa293('0x47')][_0xa293('0x65')]=_0x31873e[_0xa293('0x48')][_0xa293('0x65')]=null;_0x31873e[_0xa293('0x47')][_0xa293('0x67')]=_0x31873e['Smtp'][_0xa293('0x68')]=null;}_0x31873e[_0xa293('0x47')][_0xa293('0x6a')]=_0x5706c5[_0xa293('0x4d')][_0xa293('0x47')][_0xa293('0x6a')];_0x31873e['Imap'][_0xa293('0x6b')]=_0x5706c5[_0xa293('0x4d')]['Imap'][_0xa293('0x6b')];_0x31873e[_0xa293('0x48')][_0xa293('0x6a')]=_0x5706c5[_0xa293('0x4d')]['Smtp']['host'];_0x31873e[_0xa293('0x48')][_0xa293('0x6b')]=_0x5706c5[_0xa293('0x4d')][_0xa293('0x48')][_0xa293('0x6b')];}return db[_0xa293('0x43')][_0xa293('0x56')](_0x31873e,{'include':[{'model':db['MailServerOut'],'as':_0xa293('0x48')},{'model':db['MailServerIn'],'as':'Imap'}]})['then'](function(_0x182433){var _0x4d6e85=_0x5706c5[_0xa293('0x65')]['get']({'plain':!![]});if(!_0x4d6e85)throw new Error(_0xa293('0x6d'));if(_0x4d6e85[_0xa293('0x6e')]==='user'){var _0x57061c=_0x182433[_0xa293('0x6f')]({'plain':!![]});return db[_0xa293('0x70')]['find']({'where':{'name':_0xa293('0x71'),'userProfileId':_0x4d6e85[_0xa293('0x72')]},'raw':!![]})[_0xa293('0x25')](function(_0x3ef5f1){if(_0x3ef5f1&&_0x3ef5f1[_0xa293('0x73')]===0x0){return db['UserProfileResource'][_0xa293('0x56')]({'name':_0x57061c[_0xa293('0x29')],'resourceId':_0x57061c['id'],'type':_0x3ef5f1[_0xa293('0x29')],'sectionId':_0x3ef5f1['id']},{})[_0xa293('0x25')](function(){return _0x182433;});}else{return _0x182433;}})[_0xa293('0x1b')](function(_0xeba121){logger[_0xa293('0x16')](_0xa293('0x74'),_0xeba121);throw _0xeba121;});}return _0x182433;})['then'](respondWithResult(_0x11e6a2,0xc9))[_0xa293('0x1b')](handleError(_0x11e6a2,null));};exports[_0xa293('0x75')]=function(_0x472cf7,_0x3f5ad9){return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x472cf7[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0x3f5ad9,null))[_0xa293('0x25')](function(_0x54fa70){if(_0x54fa70){return _0x54fa70[_0xa293('0x75')]();}return null;})['then'](respondWithResult(_0x3f5ad9,null))[_0xa293('0x1b')](handleError(_0x3f5ad9,null));};exports['addImap']=function(_0x1fac56,_0xd88832){if(_0x1fac56[_0xa293('0x4d')]['id']){delete _0x1fac56[_0xa293('0x4d')]['id'];}return db[_0xa293('0x43')]['find']({'where':{'id':_0x1fac56[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0xd88832,null))[_0xa293('0x25')](function(_0x438e96){if(_0x438e96){_0x1fac56['body'][_0xa293('0x54')]=_0x438e96['id'];return db[_0xa293('0x50')][_0xa293('0x56')](_0x1fac56[_0xa293('0x4d')]);}})[_0xa293('0x25')](respondWithResult(_0xd88832,null))[_0xa293('0x1b')](handleError(_0xd88832,null));};exports[_0xa293('0x76')]=function(_0x501320,_0x4d5c97){return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x501320[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x4d5c97,null))[_0xa293('0x25')](function(_0x195cf9){if(_0x195cf9){return _0x195cf9[_0xa293('0x77')](null);}return null;})['then'](respondWithStatusCode(_0x4d5c97,null))[_0xa293('0x1b')](handleError(_0x4d5c97,null));};exports[_0xa293('0x78')]=function(_0x21f0a0,_0x155cc7){return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x21f0a0['params']['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x155cc7,null))[_0xa293('0x25')](function(_0x228959){if(_0x228959){return _0x228959['getSmtp']();}return null;})[_0xa293('0x25')](respondWithResult(_0x155cc7,null))[_0xa293('0x1b')](handleError(_0x155cc7,null));};exports[_0xa293('0x79')]=function(_0x5925d8,_0x481b4c){if(_0x5925d8[_0xa293('0x4d')]['id']){delete _0x5925d8['body']['id'];}return db['MailAccount'][_0xa293('0x4b')]({'where':{'id':_0x5925d8['params']['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x481b4c,null))[_0xa293('0x25')](function(_0xf3ffa2){if(_0xf3ffa2){_0x5925d8[_0xa293('0x4d')]['MailAccountId']=_0xf3ffa2['id'];return db[_0xa293('0x51')]['create'](_0x5925d8[_0xa293('0x4d')]);}})['then'](respondWithResult(_0x481b4c,null))[_0xa293('0x1b')](handleError(_0x481b4c,null));};exports['removeSmtp']=function(_0x1df9e4,_0xcb68b4){return db[_0xa293('0x43')]['findOne']({'where':{'id':_0x1df9e4[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0xcb68b4,null))[_0xa293('0x25')](function(_0xc3fe52){if(_0xc3fe52){return _0xc3fe52[_0xa293('0x7a')](null);}return null;})[_0xa293('0x25')](respondWithStatusCode(_0xcb68b4,null))['catch'](handleError(_0xcb68b4,null));};exports[_0xa293('0x7b')]=function(_0xc7b173,_0x42866b){return db[_0xa293('0x7c')][_0xa293('0x4b')]({'where':{'id':_0xc7b173[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0x42866b,null))[_0xa293('0x25')](function(_0x5e3873){if(_0x5e3873){return _0x5e3873[_0xa293('0x7b')](_0xc7b173['body'][_0xa293('0x7d')],_[_0xa293('0x7e')](_0xc7b173[_0xa293('0x4d')],[_0xa293('0x7d'),'id'])||{});}})[_0xa293('0x25')](respondWithResult(_0x42866b,null))['catch'](handleError(_0x42866b,null));};exports['getInteractions']=function(_0x2b3f1f,_0x3277f7){var _0x171637={'raw':![],'where':{}};var _0x44ed50={};var _0x14e0be={'count':0x0,'rows':[]};return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x2b3f1f[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x3277f7,null))[_0xa293('0x25')](function(_0x256566){if(_0x256566){_0x44ed50[_0xa293('0x32')]=_['keys'](db[_0xa293('0x7c')][_0xa293('0x49')]);_0x44ed50[_0xa293('0x33')]=_[_0xa293('0x34')](_0x2b3f1f['query']);_0x44ed50[_0xa293('0x35')]=_['intersection'](_0x44ed50['model'],_0x44ed50[_0xa293('0x33')]);_0x171637[_0xa293('0x36')]=_[_0xa293('0x37')](_0x44ed50[_0xa293('0x32')],qs[_0xa293('0x38')](_0x2b3f1f['query'][_0xa293('0x38')]));_0x171637[_0xa293('0x36')]=_0x171637[_0xa293('0x36')][_0xa293('0x39')]?_0x171637['attributes']:_0x44ed50[_0xa293('0x32')];if(!_0x2b3f1f['query'][_0xa293('0x3a')](_0xa293('0x3b'))){_0x171637[_0xa293('0x20')]=qs['limit'](_0x2b3f1f[_0xa293('0x33')][_0xa293('0x20')]);_0x171637[_0xa293('0x1f')]=qs[_0xa293('0x1f')](_0x2b3f1f[_0xa293('0x33')]['offset']);}_0x171637[_0xa293('0x59')]=qs[_0xa293('0x3c')](_0x2b3f1f['query'][_0xa293('0x3c')]);_0x171637[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0x2b3f1f['query'],_0x44ed50[_0xa293('0x35')]));_0x171637['where'][_0xa293('0x54')]=_0x256566['id'];if(_0x2b3f1f[_0xa293('0x33')][_0xa293('0x3f')]){_0x171637[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x171637['where'],{'$or':_[_0xa293('0x2e')](_0x171637['attributes'],function(_0x177fb0){var _0x5528f0={};_0x5528f0[_0x177fb0]={'$like':'%'+_0x2b3f1f[_0xa293('0x33')]['filter']+'%'};return _0x5528f0;})});}_0x171637=_['merge']({},_0x171637,_0x2b3f1f[_0xa293('0x42')]);return db['MailInteraction'][_0xa293('0x22')]({'where':_0x171637[_0xa293('0x3d')]})[_0xa293('0x25')](function(_0x2675c6){_0x14e0be[_0xa293('0x22')]=_0x2675c6;if(_0x2b3f1f['query'][_0xa293('0x5d')]){_0x171637[_0xa293('0x4a')]=[{'model':db['CmContact'],'as':_0xa293('0x7f'),'required':![]},{'model':db[_0xa293('0x80')],'as':_0xa293('0x81'),'attributes':[_0xa293('0x29'),_0xa293('0x82'),'internal'],'required':![]},{'model':db['Tag'],'as':_0xa293('0x83'),'attributes':['id',_0xa293('0x29'),_0xa293('0x84')],'where':_0x2b3f1f[_0xa293('0x33')]['tag']?{'id':_0x2b3f1f[_0xa293('0x33')][_0xa293('0x85')]}:undefined,'required':_0x2b3f1f['query'][_0xa293('0x85')]?!![]:![]}];}return db[_0xa293('0x7c')][_0xa293('0x44')](_0x171637);})[_0xa293('0x25')](function(_0x5c09f0){_0x14e0be[_0xa293('0x5e')]=_0x5c09f0;return _0x14e0be;});}})[_0xa293('0x25')](respondWithFilteredResult(_0x3277f7,_0x171637))['catch'](handleError(_0x3277f7,null));};exports[_0xa293('0x86')]=function addApplications(_0xbc3937,_0x49fc03){var _0x42e6ad=_0xbc3937[_0xa293('0x46')]['id'];var _0x1a45fa=_0xbc3937['body'];var _0x19df0d=0xc8;var _0x16cbde=null;return db[_0xa293('0x87')]['transaction']({'isolationLevel':db[_0xa293('0x87')]['Transaction'][_0xa293('0x88')][_0xa293('0x89')]},function(_0x56d3ed){return db[_0xa293('0x43')]['findOne']({'where':{'id':_0x42e6ad},'transaction':_0x56d3ed})[_0xa293('0x25')](function(_0x3f5024){if(_0x3f5024){return db['MailApplication'][_0xa293('0x26')]({'where':{'MailAccountId':_0x42e6ad},'transaction':_0x56d3ed})[_0xa293('0x25')](function(){var _0x510735=_[_0xa293('0x2e')](_0x1a45fa,function(_0x1b0bd7){_0x1b0bd7['MailAccountId']=_0x42e6ad;return _0x1b0bd7;});return db[_0xa293('0x8a')][_0xa293('0x8b')](_0x510735,{'transaction':_0x56d3ed});});}else{_0x19df0d=0x194;_0x16cbde=[];}});})[_0xa293('0x25')](function(){if(_0x19df0d!==0x194){return db[_0xa293('0x8a')][_0xa293('0x8c')]({'where':{'MailAccountId':_0x42e6ad},'order':_0xa293('0x8d')})[_0xa293('0x25')](function(_0x2f8f21){_0x16cbde=_0x2f8f21;});}})[_0xa293('0x1b')](function(_0x2278ce){_0x19df0d=0x1f4;logger[_0xa293('0x16')](_0x2278ce['stack']);if(_0x2278ce[_0xa293('0x29')]){delete _0x2278ce['name'];}_0x16cbde=_0x2278ce;})[_0xa293('0x8e')](function(){if(_0x16cbde===null){_0x49fc03[_0xa293('0x1c')](_0x19df0d);}else{if(_0x19df0d===0x1f4){_0x49fc03['status'](_0x19df0d)[_0xa293('0x2a')](_0x16cbde);}else{_0x49fc03[_0xa293('0x1d')](_0x19df0d)['json'](_0x16cbde);}}});};exports[_0xa293('0x8f')]=function(_0x3056aa,_0x56a5a6){var _0x2240f1={};var _0x1a84c1={};var _0x4acaf0;var _0x45d93a;return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x3056aa[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0x56a5a6,null))['then'](function(_0x1b276a){if(_0x1b276a){_0x4acaf0=_0x1b276a;_0x1a84c1[_0xa293('0x32')]=_[_0xa293('0x34')](db['MailApplication']['rawAttributes']);_0x1a84c1[_0xa293('0x33')]=_[_0xa293('0x34')](_0x3056aa[_0xa293('0x33')]);_0x1a84c1[_0xa293('0x35')]=_[_0xa293('0x37')](_0x1a84c1['model'],_0x1a84c1[_0xa293('0x33')]);_0x2240f1['attributes']=_[_0xa293('0x37')](_0x1a84c1[_0xa293('0x32')],qs['fields'](_0x3056aa[_0xa293('0x33')][_0xa293('0x38')]));_0x2240f1[_0xa293('0x36')]=_0x2240f1[_0xa293('0x36')][_0xa293('0x39')]?_0x2240f1[_0xa293('0x36')]:_0x1a84c1[_0xa293('0x32')];_0x2240f1['order']=qs[_0xa293('0x3c')](_0x3056aa[_0xa293('0x33')][_0xa293('0x3c')]);_0x2240f1['where']=qs['filters'](_[_0xa293('0x3e')](_0x3056aa[_0xa293('0x33')],_0x1a84c1['filters']));if(_0x3056aa[_0xa293('0x33')][_0xa293('0x3f')]){_0x2240f1[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x2240f1[_0xa293('0x3d')],{'$or':_['map'](_0x2240f1[_0xa293('0x36')],function(_0x39bbd7){var _0x4fb53e={};_0x4fb53e[_0x39bbd7]={'$like':'%'+_0x3056aa['query'][_0xa293('0x3f')]+'%'};return _0x4fb53e;})});}_0x2240f1=_['merge']({},_0x2240f1,_0x3056aa[_0xa293('0x42')]);return _0x4acaf0['getApplications'](_0x2240f1);}})[_0xa293('0x25')](function(_0x455bb2){if(_0x455bb2){_0x45d93a=_0x455bb2[_0xa293('0x39')];if(!_0x3056aa['query'][_0xa293('0x3a')](_0xa293('0x3b'))){_0x2240f1[_0xa293('0x20')]=qs[_0xa293('0x20')](_0x3056aa[_0xa293('0x33')][_0xa293('0x20')]);_0x2240f1[_0xa293('0x1f')]=qs[_0xa293('0x1f')](_0x3056aa[_0xa293('0x33')][_0xa293('0x1f')]);}return _0x4acaf0[_0xa293('0x8f')](_0x2240f1);}})[_0xa293('0x25')](function(_0x1eafed){if(_0x1eafed){return _0x1eafed?{'count':_0x45d93a,'rows':_0x1eafed}:null;}})['then'](respondWithResult(_0x56a5a6,null))[_0xa293('0x1b')](handleError(_0x56a5a6,null));};exports['getMessages']=function(_0xc74012,_0x271332){var _0xeaa3e9={'raw':!![],'where':{}};var _0x368020={};var _0x19cb63={'count':0x0,'rows':[]};return db['MailAccount'][_0xa293('0x58')]({'where':{'id':_0xc74012[_0xa293('0x46')]['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x271332,null))[_0xa293('0x25')](function(_0x485c43){if(_0x485c43){_0x368020[_0xa293('0x32')]=_[_0xa293('0x34')](db[_0xa293('0x90')][_0xa293('0x49')]);_0x368020[_0xa293('0x33')]=_[_0xa293('0x34')](_0xc74012[_0xa293('0x33')]);_0x368020[_0xa293('0x35')]=_[_0xa293('0x37')](_0x368020[_0xa293('0x32')],_0x368020[_0xa293('0x33')]);_0xeaa3e9[_0xa293('0x36')]=_[_0xa293('0x37')](_0x368020['model'],qs[_0xa293('0x38')](_0xc74012['query'][_0xa293('0x38')]));_0xeaa3e9[_0xa293('0x36')]=_0xeaa3e9[_0xa293('0x36')][_0xa293('0x39')]?_0xeaa3e9[_0xa293('0x36')]:_0x368020['model'];if(!_0xc74012[_0xa293('0x33')][_0xa293('0x3a')]('nolimit')){_0xeaa3e9[_0xa293('0x20')]=qs[_0xa293('0x20')](_0xc74012['query'][_0xa293('0x20')]);_0xeaa3e9['offset']=qs[_0xa293('0x1f')](_0xc74012[_0xa293('0x33')][_0xa293('0x1f')]);}_0xeaa3e9[_0xa293('0x59')]=qs[_0xa293('0x3c')](_0xc74012[_0xa293('0x33')][_0xa293('0x3c')]);_0xeaa3e9[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0xc74012['query'],_0x368020[_0xa293('0x35')]));_0xeaa3e9[_0xa293('0x3d')][_0xa293('0x54')]=_0x485c43['id'];if(_0xc74012[_0xa293('0x33')][_0xa293('0x3f')]){_0xeaa3e9[_0xa293('0x3d')]=_[_0xa293('0x40')](_0xeaa3e9['where'],{'$or':_['map'](_0xeaa3e9[_0xa293('0x36')],function(_0x334694){var _0x5b8195={};_0x5b8195[_0x334694]={'$like':'%'+_0xc74012[_0xa293('0x33')][_0xa293('0x3f')]+'%'};return _0x5b8195;})});}if(_0xc74012[_0xa293('0x33')]['$gte']){var _0x18e385=_0xc74012[_0xa293('0x33')][_0xa293('0x91')]['split'](',');var _0x55c270={};_0x55c270[_0x18e385[0x0]]={'$gte':moment(_0x18e385[0x1])['format'](_0xa293('0x92'))};_0xeaa3e9[_0xa293('0x3d')]=_[_0xa293('0x40')](_0xeaa3e9[_0xa293('0x3d')],_0x55c270);}_0xeaa3e9=_[_0xa293('0x40')]({},_0xeaa3e9,_0xc74012[_0xa293('0x42')]);return db[_0xa293('0x90')][_0xa293('0x22')]({'where':_0xeaa3e9[_0xa293('0x3d')]})[_0xa293('0x25')](function(_0x25441b){_0x19cb63['count']=_0x25441b;if(_0xc74012['query'][_0xa293('0x5d')]){_0xeaa3e9[_0xa293('0x4a')]=[{'all':!![]}];}return db[_0xa293('0x90')][_0xa293('0x44')](_0xeaa3e9);})[_0xa293('0x25')](function(_0x1d2275){if(_0xc74012[_0xa293('0x33')][_0xa293('0x93')]==='true'){for(var _0x1a8926=0x0;_0x1a8926<_0x1d2275[_0xa293('0x39')];_0x1a8926++){_0x1d2275[_0x1a8926][_0xa293('0x4d')]=juice(_0x1d2275[_0x1a8926][_0xa293('0x4d')]);}}_0x19cb63['rows']=_0x1d2275;return _0x19cb63;});}})[_0xa293('0x25')](respondWithFilteredResult(_0x271332,_0xeaa3e9))[_0xa293('0x1b')](handleError(_0x271332,null));};exports['send']=function(_0x376856,_0x34101e){var _0x269113,_0x2ad71b={},_0x427fb9;if(_0x376856[_0xa293('0x4d')]['to']){_0x427fb9=_0x376856['body']['to'][_0xa293('0x94')](',')[0x0];}return db[_0xa293('0x43')][_0xa293('0x4b')]({'where':{'id':_0x376856['params']['id']},'include':[{'model':db['CmList'],'as':_0xa293('0x95'),'include':[{'model':db[_0xa293('0x96')],'as':_0xa293('0x97'),'where':{'email':_0x427fb9},'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0xa293('0x51')],'as':'Smtp','raw':!![]}]})['then'](handleEntityNotFound(_0x34101e,null))[_0xa293('0x25')](function(_0xb69e9f){if(_0xb69e9f){_0x269113=_0xb69e9f;if(_0xb69e9f[_0xa293('0x48')]){if(_[_0xa293('0x98')](_0x376856[_0xa293('0x4d')]['from'])){_0x376856[_0xa293('0x4d')]['from']=util['format']('%s\x20<%s>',_0xb69e9f['name'],_0xb69e9f['email']||_0xb69e9f['Smtp'][_0xa293('0x65')]);}if(_0x376856[_0xa293('0x4d')][_0xa293('0x99')]&&_0x376856['body'][_0xa293('0x99')]['length']){for(var _0x2e9260=0x0;_0x2e9260<_0x376856[_0xa293('0x4d')][_0xa293('0x99')][_0xa293('0x39')];_0x2e9260+=0x1){_0x376856['body'][_0xa293('0x99')][_0x2e9260]={'filename':_0x376856['body'][_0xa293('0x99')][_0x2e9260]['name'],'path':path[_0xa293('0x9a')](config[_0xa293('0x9b')],_0xa293('0x9c'),_0x376856[_0xa293('0x4d')][_0xa293('0x99')][_0x2e9260][_0xa293('0x9d')])};}}var _0x38f00d={'tls':{'rejectUnauthorized':![]}};if(_[_0xa293('0x98')](_0xb69e9f[_0xa293('0x48')][_0xa293('0x69')])){if(_0xb69e9f[_0xa293('0x48')][_0xa293('0x6c')]){_0x38f00d['auth']={'user':_0xb69e9f[_0xa293('0x48')][_0xa293('0x65')],'pass':_0xb69e9f['Smtp'][_0xa293('0x68')]};}_0x38f00d[_0xa293('0x6a')]=_0xb69e9f[_0xa293('0x48')]['host'];_0x38f00d['port']=_0xb69e9f['Smtp'][_0xa293('0x6b')];_0x38f00d[_0xa293('0x9e')]=_0xb69e9f[_0xa293('0x48')]['secure'];}else{_0x38f00d[_0xa293('0x69')]=_0xb69e9f['Smtp']['service'];_0x38f00d['auth']={'user':_0xb69e9f[_0xa293('0x48')][_0xa293('0x65')],'pass':_0xb69e9f['Smtp'][_0xa293('0x68')]};}return respondWithRpcPromise('SendMail','sendMail',{'account':_0x38f00d,'message':_0x376856[_0xa293('0x4d')]});}else{throw new Error(_0xa293('0x9f'));}}})[_0xa293('0x25')](function(_0x5549ef){if(_0x5549ef){_0x2ad71b=_0x5549ef;if(_0x269113[_0xa293('0x95')]){if(_0x269113['List'][_0xa293('0x97')]['length']){return _0x269113['List']['Contacts'][0x0];}else{return db[_0xa293('0x96')]['create'](_[_0xa293('0xb')](_0x376856[_0xa293('0x4d')],{'firstName':_0x376856['body']['to'],'email':_0x376856[_0xa293('0x4d')]['to'],'phone':_0x376856['body']['to'],'ListId':_0x269113[_0xa293('0x63')]}));}}else{throw new Error(_0xa293('0x9f'));}}})['then'](function(_0x3d8d85){if(_0x3d8d85){var _0x5ee89c={'UserId':_0x376856[_0xa293('0x65')]['id'],'ContactId':_0x3d8d85['id'],'MailAccountId':_0x269113['id'],'inReplyTo':_0x2ad71b[_0xa293('0xa0')],'to':_0x376856['body']['from'],'cc':_0x376856[_0xa293('0x4d')]['cc'],'subject':_0x376856['body'][_0xa293('0xa1')],'attach':_0x376856[_0xa293('0x4d')]['attach'],'firstMsgDirection':_0xa293('0xa2'),'lastMsgAt':moment()[_0xa293('0xa3')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0xa293('0xa2'),'Messages':[_[_0xa293('0x40')](_0x376856[_0xa293('0x4d')],{'messageId':_0x2ad71b[_0xa293('0xa0')],'sentAt':moment()[_0xa293('0xa3')](_0xa293('0x92')),'read':!![],'MailAccountId':_0x269113['id'],'UserId':_0x376856[_0xa293('0x65')]['id'],'ContactId':_0x3d8d85['id']})]};if(_0x376856[_0xa293('0x4d')][_0xa293('0xa4')]){_0x5ee89c=_['merge'](_0x5ee89c,_0x376856[_0xa293('0x4d')][_0xa293('0xa4')]);}return db['MailInteraction']['create'](_0x5ee89c,{'include':[{'model':db['MailMessage'],'as':_0xa293('0xa5')}]});}})[_0xa293('0x25')](respondWithResult(_0x34101e,null))[_0xa293('0x1b')](handleError(_0x34101e,null));};exports['verifySmtp']=function(_0x425c42,_0x4e0cd2){return db['MailAccount'][_0xa293('0x4b')]({'where':{'id':_0x425c42[_0xa293('0x46')]['id']},'include':[{'model':db[_0xa293('0x51')],'as':'Smtp','raw':!![],'include':[{'model':db[_0xa293('0xa6')],'as':_0xa293('0xa6'),'raw':!![]}]}]})[_0xa293('0x25')](handleEntityNotFound(_0x4e0cd2,null))[_0xa293('0x25')](function(_0x1d9adf){if(!_0x1d9adf[_0xa293('0x48')])return;var _0x3a460e={'id':_0x1d9adf['id'],'tls':{'rejectUnauthorized':![]}};if(_0x1d9adf[_0xa293('0x60')]!=='custom'){_0x3a460e['service']=_0x1d9adf['provider'];}else{_0x3a460e[_0xa293('0x6a')]=_0x1d9adf[_0xa293('0x48')]['host'];_0x3a460e[_0xa293('0x6b')]=_0x1d9adf['Smtp'][_0xa293('0x6b')];_0x3a460e[_0xa293('0x9e')]=_0x1d9adf[_0xa293('0x48')]['secure'];}if(_0x1d9adf[_0xa293('0x48')][_0xa293('0x6c')]){if(_0x1d9adf[_0xa293('0x48')][_0xa293('0x4e')]){_0x3a460e[_0xa293('0xa7')]={'type':_0xa293('0xa8'),'user':_0x1d9adf[_0xa293('0x48')][_0xa293('0x65')],'accessToken':_0x1d9adf[_0xa293('0x48')][_0xa293('0xa6')][_0xa293('0xa9')]};}else{_0x3a460e[_0xa293('0xa7')]={'user':_0x1d9adf[_0xa293('0x48')][_0xa293('0x65')],'pass':_0x1d9adf[_0xa293('0x48')][_0xa293('0x68')]};}}return respondWithRpcPromise(_0xa293('0xaa'),_0xa293('0xab'),{'account':_0x3a460e});})[_0xa293('0x25')](respondWithResult(_0x4e0cd2,null))[_0xa293('0x1b')](handleError(_0x4e0cd2,null));};exports[_0xa293('0x26')]=function(_0x257768,_0x384237){return db[_0xa293('0x43')][_0xa293('0x4b')]({'where':{'id':_0x257768['params']['id']}})['then'](handleEntityNotFound(_0x384237,null))[_0xa293('0x25')](function(_0x3fd411){if(_0x3fd411&&_0x3fd411[_0xa293('0x69')]){throw new db[(_0xa293('0xac'))][(_0xa293('0xad'))](_0xa293('0xae'));}return _0x3fd411;})[_0xa293('0x25')](removeEntity(_0x384237,null))[_0xa293('0x1b')](handleError(_0x384237,null));};exports[_0xa293('0xaf')]=function(_0x1b68e8,_0x467c45){return db['MailAccount'][_0xa293('0x4b')]({'where':{'id':_0x1b68e8[_0xa293('0x46')]['id']}})['then'](handleEntityNotFound(_0x467c45,null))['then'](function(_0x1b565f){if(_0x1b565f){return _0x1b565f[_0xa293('0xaf')](_0x1b68e8[_0xa293('0x4d')]['ids'],_[_0xa293('0x7e')](_0x1b68e8[_0xa293('0x4d')],[_0xa293('0x7d'),'id'])||{})[_0xa293('0xb0')](function(_0x32653a){for(var _0x5b2e51=0x0;_0x5b2e51<_0x1b68e8[_0xa293('0x4d')][_0xa293('0x7d')][_0xa293('0x39')];_0x5b2e51+=0x1){socket[_0xa293('0xb1')]('userMailAccount:save',{'UserId':Number(_0x1b68e8[_0xa293('0x4d')]['ids'][_0x5b2e51]),'MailAccountId':Number(_0x1b68e8[_0xa293('0x46')]['id'])});}return _0x32653a;});}})[_0xa293('0x25')](respondWithResult(_0x467c45,null))[_0xa293('0x1b')](handleError(_0x467c45,null));};exports['removeAgents']=function(_0x5a2de2,_0x238c30){return db['MailAccount']['find']({'where':{'id':_0x5a2de2['params']['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x238c30,null))[_0xa293('0x25')](function(_0x53aba0){if(_0x53aba0){return _0x53aba0[_0xa293('0xb2')](_0x5a2de2[_0xa293('0x33')][_0xa293('0x7d')])[_0xa293('0x25')](function(){if(_['isArray'](_0x5a2de2[_0xa293('0x33')][_0xa293('0x7d')])){for(var _0x2c858d=0x0;_0x2c858d<_0x5a2de2[_0xa293('0x33')][_0xa293('0x7d')][_0xa293('0x39')];_0x2c858d+=0x1){socket[_0xa293('0xb1')]('userMailAccount:remove',{'UserId':Number(_0x5a2de2[_0xa293('0x33')]['ids'][_0x2c858d]),'MailAccountId':Number(_0x5a2de2['params']['id'])});}}else{socket[_0xa293('0xb1')](_0xa293('0xb3'),{'UserId':Number(_0x5a2de2[_0xa293('0x33')]['ids']),'MailAccountId':Number(_0x5a2de2[_0xa293('0x46')]['id'])});}});}})['then'](respondWithStatusCode(_0x238c30,null))[_0xa293('0x1b')](handleError(_0x238c30,null));};exports[_0xa293('0xb4')]=function(_0x8c593b,_0x46ed04){var _0x1c9779={};var _0x144763={};var _0xecda3c;var _0x299129;return db[_0xa293('0x43')][_0xa293('0x58')]({'where':{'id':_0x8c593b['params']['id']}})[_0xa293('0x25')](handleEntityNotFound(_0x46ed04,null))[_0xa293('0x25')](function(_0x575b97){if(_0x575b97){_0xecda3c=_0x575b97;_0x144763[_0xa293('0x32')]=_['keys'](db[_0xa293('0x80')][_0xa293('0x49')]);_0x144763[_0xa293('0x33')]=_['keys'](_0x8c593b[_0xa293('0x33')]);_0x144763[_0xa293('0x35')]=_[_0xa293('0x37')](_0x144763['model'],_0x144763[_0xa293('0x33')]);_0x1c9779['attributes']=_[_0xa293('0x37')](_0x144763[_0xa293('0x32')],qs[_0xa293('0x38')](_0x8c593b['query']['fields']));_0x1c9779['attributes']=_0x1c9779[_0xa293('0x36')][_0xa293('0x39')]?_0x1c9779[_0xa293('0x36')]:_0x144763[_0xa293('0x32')];_0x1c9779[_0xa293('0x59')]=qs[_0xa293('0x3c')](_0x8c593b[_0xa293('0x33')]['sort']);_0x1c9779[_0xa293('0x3d')]=qs[_0xa293('0x35')](_[_0xa293('0x3e')](_0x8c593b[_0xa293('0x33')],_0x144763['filters']));if(_0x8c593b[_0xa293('0x33')][_0xa293('0x3f')]){_0x1c9779[_0xa293('0x3d')]=_[_0xa293('0x40')](_0x1c9779[_0xa293('0x3d')],{'$or':_['map'](_0x1c9779[_0xa293('0x36')],function(_0xace7cf){var _0x10fdde={};_0x10fdde[_0xace7cf]={'$like':'%'+_0x8c593b[_0xa293('0x33')][_0xa293('0x3f')]+'%'};return _0x10fdde;})});}_0x1c9779=_[_0xa293('0x40')]({},_0x1c9779,_0x8c593b['options']);return _0xecda3c[_0xa293('0xb4')](_0x1c9779);}})[_0xa293('0x25')](function(_0xede548){if(_0xede548){_0x299129=_0xede548['length'];if(!_0x8c593b[_0xa293('0x33')][_0xa293('0x3a')](_0xa293('0x3b'))){_0x1c9779[_0xa293('0x20')]=qs[_0xa293('0x20')](_0x8c593b[_0xa293('0x33')][_0xa293('0x20')]);_0x1c9779[_0xa293('0x1f')]=qs[_0xa293('0x1f')](_0x8c593b['query'][_0xa293('0x1f')]);}return _0xecda3c[_0xa293('0xb4')](_0x1c9779);}})[_0xa293('0x25')](function(_0x434142){if(_0x434142){return _0x434142?{'count':_0x299129,'rows':_0x434142}:null;}})[_0xa293('0x25')](respondWithResult(_0x46ed04,null))['catch'](handleError(_0x46ed04,null));};