011ce42cabb391255a18baa6b33ea2b95675ccf9
[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 _0x3e9d=['Messages','verifySmtp','Sequelize','ValidationError','addAgents','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','moment','bluebird','lodash','juice','ioredis','../../components/parsers/qs','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','jayson/promise','client','http','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','undefined','limit','count','offset','json','update','destroy','get','MailAccounts','UserProfileResource','stack','name','send','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','Unknown\x20email\x20service\x20provider','smtp.gmail.com','smtp-mail.outlook.com','smtp.office365.com','user','username','password','pass','modernAuthentication','CloudProviderId','port','secure','service','authentication','host','Imap','Smtp','index','MailServerIn','MailServerOut','Pause','MailAccount','rawAttributes','key','model','map','keys','filters','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','type','filter','options','includeAll','include','rows','show','params','mandatoryDispositionPause','body','provider','custom','find','Mail\x20Account\x20not\x20found','describe','MailAccountId','Disposition','create','getDispositions','findOne','length','removeDispositions','ids','CannedAnswer','getAnswers','findAll','removeAnswers','ListId','isNil','active','description','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','getImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','getInteractions','CmContact','Contact','User','Owner','internal','color','tag','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','MailApplication','bulkCreate','getApplications','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','CmList','List','Contacts','updatedAt','DESC','CloudProvider','Smtp\x20configuration\x20not\x20found','from','%s\x20<%s>','email','attachments','basename','getSmtpOptions','sendMail','List\x20not\x20found','messageId','subject','attach','out','Interaction'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x3e9d,0xc3));var _0xd3e9=function(_0x313165,_0x4d841a){_0x313165=_0x313165-0x0;var _0x4cda43=_0x3e9d[_0x313165];return _0x4cda43;};'use strict';var moment=require(_0xd3e9('0x0'));var BPromise=require(_0xd3e9('0x1'));var util=require('util');var path=require('path');var _=require(_0xd3e9('0x2'));var juice=require(_0xd3e9('0x3'));var Redis=require(_0xd3e9('0x4'));var qs=require(_0xd3e9('0x5'));var logger=require('../../config/logger')('api');var config=require(_0xd3e9('0x6'));var db=require(_0xd3e9('0x7'))['db'];config[_0xd3e9('0x8')]=_[_0xd3e9('0x9')](config[_0xd3e9('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xd3e9('0xa'))(new Redis(config[_0xd3e9('0x8')]));require('./mailAccount.socket')[_0xd3e9('0xb')](socket);var jayson=require(_0xd3e9('0xc'));var client=jayson[_0xd3e9('0xd')][_0xd3e9('0xe')]({'port':0x232b});function respondWithRpcPromise(_0xfe1c0f,_0x477127,_0x592fff,_0x4f0c18){return new BPromise(function(_0x5a6e26,_0x12efe4){var _0x177224=_0x4f0c18||client;return _0x177224['request'](_0xfe1c0f,_0x592fff)[_0xd3e9('0xf')](function(_0x222dce){logger[_0xd3e9('0x10')](_0xd3e9('0x11'),_0x477127,_0xd3e9('0x12'));logger[_0xd3e9('0x13')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x477127,_0xd3e9('0x12'),JSON[_0xd3e9('0x14')](_0x222dce));if(_0x222dce[_0xd3e9('0x15')]){if(_0x222dce['error'][_0xd3e9('0x16')]===0x1f4){logger[_0xd3e9('0x15')](_0xd3e9('0x11'),_0x477127,_0x222dce[_0xd3e9('0x15')][_0xd3e9('0x17')]);return _0x12efe4(_0x222dce[_0xd3e9('0x15')][_0xd3e9('0x17')]);}logger[_0xd3e9('0x15')](_0xd3e9('0x11'),_0x477127,_0x222dce[_0xd3e9('0x15')]['message']);return _0x5a6e26(_0x222dce['error'][_0xd3e9('0x17')]);}else{logger[_0xd3e9('0x10')](_0xd3e9('0x11'),_0x477127,_0xd3e9('0x12'));_0x5a6e26(_0x222dce[_0xd3e9('0x18')][_0xd3e9('0x17')]);}})[_0xd3e9('0x19')](function(_0x3afc8a){logger[_0xd3e9('0x15')]('MailAccount,\x20%s,\x20%s',_0x477127,_0x3afc8a);_0x12efe4(_0x3afc8a);});});}function respondWithStatusCode(_0x2d4385,_0x2b8be3){_0x2b8be3=_0x2b8be3||0xcc;return function(_0x51da31){if(_0x51da31){return _0x2d4385[_0xd3e9('0x1a')](_0x2b8be3);}return _0x2d4385[_0xd3e9('0x1b')](_0x2b8be3)[_0xd3e9('0x1c')]();};}function respondWithResult(_0x2bdc2d,_0x405356){_0x405356=_0x405356||0xc8;return function(_0x557ab9){if(_0x557ab9){return _0x2bdc2d[_0xd3e9('0x1b')](_0x405356)['json'](_0x557ab9);}};}function respondWithFilteredResult(_0x3d649c,_0x29354e){return function(_0x24d104){if(_0x24d104){var _0x322467=typeof _0x29354e['offset']===_0xd3e9('0x1d')&&typeof _0x29354e[_0xd3e9('0x1e')]==='undefined';var _0x2b8527=_0x24d104[_0xd3e9('0x1f')];var _0x5acca5=_0x322467?0x0:_0x29354e[_0xd3e9('0x20')];var _0x39f887=_0x322467?_0x24d104['count']:_0x29354e[_0xd3e9('0x20')]+_0x29354e[_0xd3e9('0x1e')];var _0x361b2b;if(_0x39f887>=_0x2b8527){_0x39f887=_0x2b8527;_0x361b2b=0xc8;}else{_0x361b2b=0xce;}_0x3d649c['status'](_0x361b2b);return _0x3d649c['set']('Content-Range',_0x5acca5+'-'+_0x39f887+'/'+_0x2b8527)[_0xd3e9('0x21')](_0x24d104);}return null;};}function saveUpdates(_0x525750){return function(_0x3850bc){if(_0x3850bc){return _0x3850bc[_0xd3e9('0x22')](_0x525750)[_0xd3e9('0xf')](function(_0x47fbd7){return _0x47fbd7;});}return null;};}function removeEntity(_0x5344b6){return function(_0xcc17ee){if(_0xcc17ee){return _0xcc17ee[_0xd3e9('0x23')]()['then'](function(){var _0x5847a9=_0xcc17ee[_0xd3e9('0x24')]({'plain':!![]});var _0x1c27be=_0xd3e9('0x25');return db[_0xd3e9('0x26')]['destroy']({'where':{'type':_0x1c27be,'resourceId':_0x5847a9['id']}})[_0xd3e9('0xf')](function(){return _0xcc17ee;});})[_0xd3e9('0xf')](function(){_0x5344b6[_0xd3e9('0x1b')](0xcc)[_0xd3e9('0x1c')]();});}};}function handleEntityNotFound(_0x5288a1){return function(_0x1b29a3){if(!_0x1b29a3){_0x5288a1[_0xd3e9('0x1a')](0x194);}return _0x1b29a3;};}function handleError(_0x833e5c,_0x366988){_0x366988=_0x366988||0x1f4;return function(_0x19dd18){logger[_0xd3e9('0x15')](_0x19dd18[_0xd3e9('0x27')]);if(_0x19dd18[_0xd3e9('0x28')]){delete _0x19dd18[_0xd3e9('0x28')];}_0x833e5c['status'](_0x366988)[_0xd3e9('0x29')](_0x19dd18);};}function getImapHost(_0x5a29db){switch(_0x5a29db){case _0xd3e9('0x2a'):return _0xd3e9('0x2b');case _0xd3e9('0x2c'):return _0xd3e9('0x2d');case _0xd3e9('0x2e'):return _0xd3e9('0x2f');case _0xd3e9('0x30'):return _0xd3e9('0x31');}throw new Error(_0xd3e9('0x32'),_0x5a29db);}function getSmtpHost(_0x406ce3){switch(_0x406ce3){case _0xd3e9('0x2a'):return _0xd3e9('0x33');case _0xd3e9('0x2c'):return'smtp.mail.yahoo.com';case'hotmail':return _0xd3e9('0x34');case _0xd3e9('0x30'):return _0xd3e9('0x35');}throw new Error('Unknown\x20email\x20service\x20provider',_0x406ce3);}function getAuthenticationOptions(_0x266cd2,_0x46915f){var _0x92b39c={};var _0x142bde={};if(_0x266cd2){_0x92b39c[_0xd3e9('0x36')]=_0x142bde['user']=_0x46915f[_0xd3e9('0x37')];_0x92b39c[_0xd3e9('0x38')]=_0x142bde[_0xd3e9('0x39')]=_0x46915f[_0xd3e9('0x38')];if(_0x46915f[_0xd3e9('0x3a')]){_0x92b39c['modernAuthentication']=_0x142bde[_0xd3e9('0x3a')]=!![];_0x92b39c[_0xd3e9('0x3b')]=_0x142bde[_0xd3e9('0x3b')]=_0x46915f[_0xd3e9('0x3b')];_0x92b39c[_0xd3e9('0x38')]=_0x142bde[_0xd3e9('0x39')]=null;}else{_0x92b39c['CloudProviderId']=_0x142bde[_0xd3e9('0x3b')]=null;}_0x92b39c['host']=getImapHost(_0x266cd2);_0x92b39c[_0xd3e9('0x3c')]=0x3e1;_0x142bde['host']=getSmtpHost(_0x266cd2);_0x142bde['port']=0x24b;_0x142bde[_0xd3e9('0x3d')]=![];_0x92b39c['service']=_0x142bde[_0xd3e9('0x3e')]=null;}else{if(_0x46915f[_0xd3e9('0x3f')]){_0x92b39c['user']=_0x142bde['user']=_0x46915f[_0xd3e9('0x37')];_0x92b39c[_0xd3e9('0x38')]=_0x142bde['pass']=_0x46915f[_0xd3e9('0x38')];}else{_0x92b39c[_0xd3e9('0x3f')]=_0x142bde[_0xd3e9('0x3f')]=![];_0x92b39c['user']=_0x142bde[_0xd3e9('0x36')]=null;_0x92b39c[_0xd3e9('0x38')]=_0x142bde['pass']=null;}_0x92b39c['host']=_0x46915f['Imap'][_0xd3e9('0x40')];_0x92b39c[_0xd3e9('0x3c')]=_0x46915f[_0xd3e9('0x41')][_0xd3e9('0x3c')];_0x142bde[_0xd3e9('0x40')]=_0x46915f[_0xd3e9('0x42')][_0xd3e9('0x40')];_0x142bde[_0xd3e9('0x3c')]=_0x46915f[_0xd3e9('0x42')][_0xd3e9('0x3c')];}return{'Imap':_0x92b39c,'Smtp':_0x142bde};}exports[_0xd3e9('0x43')]=function(_0x4af96f,_0x2eb2ef){var _0x2bc8a9={'include':[{'model':db[_0xd3e9('0x44')],'as':_0xd3e9('0x41')},{'model':db[_0xd3e9('0x45')],'as':'Smtp'},{'model':db[_0xd3e9('0x46')],'as':'mandatoryDispositionPause'}]},_0x2de12d={},_0xaadf97={'count':0x0,'rows':[]};var _0x53711a=_['map'](db[_0xd3e9('0x47')][_0xd3e9('0x48')],function(_0x3e25ef){return{'name':_0x3e25ef['fieldName'],'type':_0x3e25ef['type'][_0xd3e9('0x49')]};});_0x2de12d[_0xd3e9('0x4a')]=_[_0xd3e9('0x4b')](_0x53711a,_0xd3e9('0x28'));_0x2de12d['query']=_[_0xd3e9('0x4c')](_0x4af96f['query']);_0x2de12d[_0xd3e9('0x4d')]=_[_0xd3e9('0x4e')](_0x2de12d[_0xd3e9('0x4a')],_0x2de12d[_0xd3e9('0x4f')]);_0x2bc8a9[_0xd3e9('0x50')]=_['intersection'](_0x2de12d[_0xd3e9('0x4a')],qs['fields'](_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x2bc8a9[_0xd3e9('0x50')]=_0x2bc8a9[_0xd3e9('0x50')]['length']?_0x2bc8a9[_0xd3e9('0x50')]:_0x2de12d[_0xd3e9('0x4a')];if(!_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x2bc8a9[_0xd3e9('0x1e')]=qs['limit'](_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x1e')]);_0x2bc8a9[_0xd3e9('0x20')]=qs['offset'](_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x20')]);}_0x2bc8a9[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x4af96f[_0xd3e9('0x4f')]['sort']);_0x2bc8a9['where']=qs[_0xd3e9('0x4d')](_[_0xd3e9('0x56')](_0x4af96f[_0xd3e9('0x4f')],_0x2de12d['filters']),_0x53711a);if(_0x4af96f['query']['filter']){_0x2bc8a9[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x2bc8a9[_0xd3e9('0x57')],{'$or':_[_0xd3e9('0x4b')](_0x53711a,function(_0x4f3bbc){if(_0x4f3bbc[_0xd3e9('0x59')]!=='VIRTUAL'){var _0x48c16e={};_0x48c16e[_0x4f3bbc[_0xd3e9('0x28')]]={'$like':'%'+_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x48c16e;}})});}_0x2bc8a9=_[_0xd3e9('0x58')]({},_0x2bc8a9,_0x4af96f[_0xd3e9('0x5b')]);var _0x4ef325={'where':_0x2bc8a9[_0xd3e9('0x57')]};return db[_0xd3e9('0x47')][_0xd3e9('0x1f')](_0x4ef325)[_0xd3e9('0xf')](function(_0x1173c3){_0xaadf97[_0xd3e9('0x1f')]=_0x1173c3;if(_0x4af96f[_0xd3e9('0x4f')][_0xd3e9('0x5c')]){_0x2bc8a9[_0xd3e9('0x5d')]=[{'all':!![]}];}return db[_0xd3e9('0x47')]['findAll'](_0x2bc8a9);})[_0xd3e9('0xf')](function(_0x23e879){_0xaadf97[_0xd3e9('0x5e')]=_0x23e879;return _0xaadf97;})[_0xd3e9('0xf')](respondWithFilteredResult(_0x2eb2ef,_0x2bc8a9))[_0xd3e9('0x19')](handleError(_0x2eb2ef,null));};exports[_0xd3e9('0x5f')]=function(_0x7f17d0,_0x16d21){var _0x3731ef={'raw':![],'where':{'id':_0x7f17d0[_0xd3e9('0x60')]['id']},'include':[{'model':db[_0xd3e9('0x44')],'as':_0xd3e9('0x41')},{'model':db[_0xd3e9('0x45')],'as':_0xd3e9('0x42')},{'model':db['Pause'],'as':_0xd3e9('0x61')}]},_0x28ef57={};_0x28ef57[_0xd3e9('0x4a')]=_[_0xd3e9('0x4c')](db[_0xd3e9('0x47')]['rawAttributes']);_0x28ef57['query']=_['keys'](_0x7f17d0['query']);_0x28ef57[_0xd3e9('0x4d')]=_[_0xd3e9('0x4e')](_0x28ef57['model'],_0x28ef57['query']);_0x3731ef[_0xd3e9('0x50')]=_[_0xd3e9('0x4e')](_0x28ef57[_0xd3e9('0x4a')],qs[_0xd3e9('0x51')](_0x7f17d0[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x3731ef[_0xd3e9('0x50')]=_0x3731ef[_0xd3e9('0x50')]['length']?_0x3731ef[_0xd3e9('0x50')]:_0x28ef57[_0xd3e9('0x4a')];if(_0x7f17d0[_0xd3e9('0x4f')][_0xd3e9('0x5c')]){_0x3731ef[_0xd3e9('0x5d')]=[{'all':!![]}];}_0x3731ef=_['merge']({},_0x3731ef,_0x7f17d0[_0xd3e9('0x5b')]);return db['MailAccount']['find'](_0x3731ef)['then'](handleEntityNotFound(_0x16d21,null))[_0xd3e9('0xf')](respondWithResult(_0x16d21,null))[_0xd3e9('0x19')](handleError(_0x16d21,null));};exports[_0xd3e9('0x22')]=function(_0x152b14,_0x1330b0){if(_0x152b14['body']['id']){delete _0x152b14[_0xd3e9('0x62')]['id'];}var _0x255764=_0x152b14[_0xd3e9('0x62')][_0xd3e9('0x63')]===_0xd3e9('0x64')?null:_0x152b14[_0xd3e9('0x62')][_0xd3e9('0x63')];var _0x5555df=_0x152b14[_0xd3e9('0x62')]['Imap']||{};var _0x34357=_0x152b14[_0xd3e9('0x62')][_0xd3e9('0x42')]||{};if(_0x255764){_0x5555df[_0xd3e9('0x40')]=getImapHost(_0x255764);_0x5555df[_0xd3e9('0x3c')]=0x3e1;_0x34357[_0xd3e9('0x40')]=getSmtpHost(_0x255764);_0x34357[_0xd3e9('0x3c')]=0x24b;_0x34357[_0xd3e9('0x3d')]=![];}if(_0x34357[_0xd3e9('0x3a')]){_0x34357[_0xd3e9('0x3d')]=![];}else{_0x34357[_0xd3e9('0x3b')]=null;}if(!_0x5555df[_0xd3e9('0x3a')])_0x5555df['CloudProviderId']=null;_0x152b14[_0xd3e9('0x62')]['Imap']=_0x5555df;_0x152b14[_0xd3e9('0x62')][_0xd3e9('0x42')]=_0x34357;return db['MailAccount'][_0xd3e9('0x65')]({'where':{'id':_0x152b14[_0xd3e9('0x60')]['id']},'include':[{'model':db[_0xd3e9('0x44')],'as':'Imap'},{'model':db[_0xd3e9('0x45')],'as':_0xd3e9('0x42')},{'model':db['Pause'],'as':_0xd3e9('0x61')}]})[_0xd3e9('0xf')](handleEntityNotFound(_0x1330b0,null))[_0xd3e9('0xf')](function(_0x1f16e1){if(!_0x1f16e1)throw new Error(_0xd3e9('0x66'));if(_0x1f16e1[_0xd3e9('0x3e')])delete _0x152b14[_0xd3e9('0x62')][_0xd3e9('0x41')];return _0x1f16e1;})[_0xd3e9('0xf')](saveUpdates(_0x152b14[_0xd3e9('0x62')],null))['then'](function(_0x360016){if(!_0x152b14[_0xd3e9('0x62')][_0xd3e9('0x41')])return _0x360016;return db[_0xd3e9('0x44')][_0xd3e9('0x22')](_0x152b14[_0xd3e9('0x62')]['Imap'],{'where':{'MailAccountId':_0x360016['id']}})[_0xd3e9('0xf')](function(){return _0x360016;});})[_0xd3e9('0xf')](function(_0x1ad5c7){if(!_0x152b14[_0xd3e9('0x62')]['Smtp'])return _0x1ad5c7;return db[_0xd3e9('0x45')][_0xd3e9('0x22')](_0x152b14['body'][_0xd3e9('0x42')],{'where':{'MailAccountId':_0x1ad5c7['id']}})['then'](function(){return _0x1ad5c7;});})['then'](respondWithResult(_0x1330b0,null))[_0xd3e9('0x19')](handleError(_0x1330b0,null));};exports[_0xd3e9('0x67')]=function(_0x4a14f3,_0x112f94){return db[_0xd3e9('0x47')][_0xd3e9('0x67')]()[_0xd3e9('0xf')](respondWithResult(_0x112f94,null))[_0xd3e9('0x19')](handleError(_0x112f94,null));};exports['addDisposition']=function(_0x401dd8,_0x18ba65){if(_0x401dd8[_0xd3e9('0x62')]['id']){delete _0x401dd8[_0xd3e9('0x62')]['id'];}return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x401dd8[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x18ba65,null))[_0xd3e9('0xf')](function(_0x2e72fb){if(_0x2e72fb){_0x401dd8['body'][_0xd3e9('0x68')]=_0x2e72fb['id'];return db[_0xd3e9('0x69')][_0xd3e9('0x6a')](_0x401dd8['body']);}})[_0xd3e9('0xf')](respondWithResult(_0x18ba65,null))['catch'](handleError(_0x18ba65,null));};exports[_0xd3e9('0x6b')]=function(_0x3e6643,_0x1a43cf){var _0x2de54c={'raw':![],'where':{}};var _0xba73a0={};var _0x9c7f56={'count':0x0,'rows':[]};return db[_0xd3e9('0x47')][_0xd3e9('0x6c')]({'where':{'id':_0x3e6643[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x1a43cf,null))[_0xd3e9('0xf')](function(_0x2cb551){if(_0x2cb551){_0xba73a0[_0xd3e9('0x4a')]=_['keys'](db[_0xd3e9('0x69')][_0xd3e9('0x48')]);_0xba73a0[_0xd3e9('0x4f')]=_[_0xd3e9('0x4c')](_0x3e6643[_0xd3e9('0x4f')]);_0xba73a0[_0xd3e9('0x4d')]=_[_0xd3e9('0x4e')](_0xba73a0['model'],_0xba73a0[_0xd3e9('0x4f')]);_0x2de54c[_0xd3e9('0x50')]=_[_0xd3e9('0x4e')](_0xba73a0[_0xd3e9('0x4a')],qs[_0xd3e9('0x51')](_0x3e6643[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x2de54c['attributes']=_0x2de54c[_0xd3e9('0x50')][_0xd3e9('0x6d')]?_0x2de54c['attributes']:_0xba73a0[_0xd3e9('0x4a')];if(!_0x3e6643[_0xd3e9('0x4f')][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x2de54c[_0xd3e9('0x1e')]=qs[_0xd3e9('0x1e')](_0x3e6643[_0xd3e9('0x4f')][_0xd3e9('0x1e')]);_0x2de54c[_0xd3e9('0x20')]=qs[_0xd3e9('0x20')](_0x3e6643['query'][_0xd3e9('0x20')]);}_0x2de54c[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x3e6643[_0xd3e9('0x4f')]['sort']);_0x2de54c['where']=qs['filters'](_['pick'](_0x3e6643[_0xd3e9('0x4f')],_0xba73a0[_0xd3e9('0x4d')]));_0x2de54c[_0xd3e9('0x57')]['MailAccountId']=_0x2cb551['id'];if(_0x3e6643['query'][_0xd3e9('0x5a')]){_0x2de54c['where']=_[_0xd3e9('0x58')](_0x2de54c[_0xd3e9('0x57')],{'$or':_['map'](_0x2de54c[_0xd3e9('0x50')],function(_0x4b5307){var _0x258eb1={};_0x258eb1[_0x4b5307]={'$like':'%'+_0x3e6643[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x258eb1;})});}_0x2de54c=_[_0xd3e9('0x58')]({},_0x2de54c,_0x3e6643[_0xd3e9('0x5b')]);return db[_0xd3e9('0x69')][_0xd3e9('0x1f')]({'where':_0x2de54c[_0xd3e9('0x57')]})['then'](function(_0x291d08){_0x9c7f56['count']=_0x291d08;if(_0x3e6643[_0xd3e9('0x4f')][_0xd3e9('0x5c')]){_0x2de54c[_0xd3e9('0x5d')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x2de54c);})[_0xd3e9('0xf')](function(_0x2714f3){_0x9c7f56[_0xd3e9('0x5e')]=_0x2714f3;return _0x9c7f56;});}})['then'](respondWithFilteredResult(_0x1a43cf,_0x2de54c))['catch'](handleError(_0x1a43cf,null));};exports[_0xd3e9('0x6e')]=function(_0x587235,_0x3638d9){return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x587235[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x3638d9,null))[_0xd3e9('0xf')](function(_0x234e83){if(_0x234e83){return _0x234e83[_0xd3e9('0x6e')](_0x587235['query'][_0xd3e9('0x6f')]);}})[_0xd3e9('0xf')](respondWithStatusCode(_0x3638d9,null))['catch'](handleError(_0x3638d9,null));};exports['addAnswer']=function(_0xbdba63,_0x2b8718){if(_0xbdba63['body']['id']){delete _0xbdba63['body']['id'];}return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0xbdba63['params']['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x2b8718,null))[_0xd3e9('0xf')](function(_0x221490){if(_0x221490){_0xbdba63[_0xd3e9('0x62')][_0xd3e9('0x68')]=_0x221490['id'];return db[_0xd3e9('0x70')]['create'](_0xbdba63[_0xd3e9('0x62')]);}})[_0xd3e9('0xf')](respondWithResult(_0x2b8718,null))[_0xd3e9('0x19')](handleError(_0x2b8718,null));};exports[_0xd3e9('0x71')]=function(_0x2fc0c2,_0x5d5638){var _0x3d1d92={'raw':![],'where':{}};var _0x3baa9e={};var _0x340270={'count':0x0,'rows':[]};return db[_0xd3e9('0x47')]['findOne']({'where':{'id':_0x2fc0c2[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x5d5638,null))[_0xd3e9('0xf')](function(_0x337229){if(_0x337229){_0x3baa9e[_0xd3e9('0x4a')]=_[_0xd3e9('0x4c')](db['CannedAnswer'][_0xd3e9('0x48')]);_0x3baa9e[_0xd3e9('0x4f')]=_['keys'](_0x2fc0c2[_0xd3e9('0x4f')]);_0x3baa9e['filters']=_[_0xd3e9('0x4e')](_0x3baa9e['model'],_0x3baa9e[_0xd3e9('0x4f')]);_0x3d1d92[_0xd3e9('0x50')]=_[_0xd3e9('0x4e')](_0x3baa9e['model'],qs[_0xd3e9('0x51')](_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x3d1d92[_0xd3e9('0x50')]=_0x3d1d92[_0xd3e9('0x50')]['length']?_0x3d1d92[_0xd3e9('0x50')]:_0x3baa9e['model'];if(!_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x3d1d92[_0xd3e9('0x1e')]=qs[_0xd3e9('0x1e')](_0x2fc0c2[_0xd3e9('0x4f')]['limit']);_0x3d1d92[_0xd3e9('0x20')]=qs['offset'](_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x20')]);}_0x3d1d92[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x55')]);_0x3d1d92['where']=qs[_0xd3e9('0x4d')](_[_0xd3e9('0x56')](_0x2fc0c2[_0xd3e9('0x4f')],_0x3baa9e[_0xd3e9('0x4d')]));_0x3d1d92['where']['MailAccountId']=_0x337229['id'];if(_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x5a')]){_0x3d1d92[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x3d1d92[_0xd3e9('0x57')],{'$or':_[_0xd3e9('0x4b')](_0x3d1d92[_0xd3e9('0x50')],function(_0x138bd3){var _0x17fed7={};_0x17fed7[_0x138bd3]={'$like':'%'+_0x2fc0c2[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x17fed7;})});}_0x3d1d92=_['merge']({},_0x3d1d92,_0x2fc0c2[_0xd3e9('0x5b')]);return db['CannedAnswer'][_0xd3e9('0x1f')]({'where':_0x3d1d92[_0xd3e9('0x57')]})[_0xd3e9('0xf')](function(_0x3ce5c2){_0x340270['count']=_0x3ce5c2;if(_0x2fc0c2['query'][_0xd3e9('0x5c')]){_0x3d1d92[_0xd3e9('0x5d')]=[{'all':!![]}];}return db['CannedAnswer'][_0xd3e9('0x72')](_0x3d1d92);})[_0xd3e9('0xf')](function(_0x44e135){_0x340270[_0xd3e9('0x5e')]=_0x44e135;return _0x340270;});}})['then'](respondWithFilteredResult(_0x5d5638,_0x3d1d92))[_0xd3e9('0x19')](handleError(_0x5d5638,null));};exports[_0xd3e9('0x73')]=function(_0x2eeeac,_0x2d4d46){return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x2eeeac[_0xd3e9('0x60')]['id']}})['then'](handleEntityNotFound(_0x2d4d46,null))[_0xd3e9('0xf')](function(_0x3bd2cb){if(_0x3bd2cb){return _0x3bd2cb[_0xd3e9('0x73')](_0x2eeeac[_0xd3e9('0x4f')][_0xd3e9('0x6f')]);}})[_0xd3e9('0xf')](respondWithStatusCode(_0x2d4d46,null))[_0xd3e9('0x19')](handleError(_0x2d4d46,null));};exports[_0xd3e9('0x6a')]=function(_0x3b85dd,_0x3c50f4){var _0x36b954={'name':_0x3b85dd[_0xd3e9('0x62')][_0xd3e9('0x28')],'key':_0x3b85dd[_0xd3e9('0x62')]['key'],'provider':_0x3b85dd[_0xd3e9('0x62')][_0xd3e9('0x63')]===_0xd3e9('0x64')?null:_0x3b85dd['body']['provider'],'email':_0x3b85dd[_0xd3e9('0x62')]['email'],'ListId':_0x3b85dd[_0xd3e9('0x62')][_0xd3e9('0x74')],'active':!_[_0xd3e9('0x75')](_0x3b85dd['body'][_0xd3e9('0x76')])?_0x3b85dd[_0xd3e9('0x62')][_0xd3e9('0x76')]:!![],'description':_0x3b85dd['body'][_0xd3e9('0x77')]||null};var _0x3e7f76=getAuthenticationOptions(_0x36b954[_0xd3e9('0x63')],_0x3b85dd[_0xd3e9('0x62')]);_0x36b954['Imap']=_0x3e7f76[_0xd3e9('0x41')];_0x36b954['Smtp']=_0x3e7f76[_0xd3e9('0x42')];return db[_0xd3e9('0x47')][_0xd3e9('0x6a')](_0x36b954,{'include':[{'model':db[_0xd3e9('0x45')],'as':_0xd3e9('0x42')},{'model':db['MailServerIn'],'as':_0xd3e9('0x41')}]})[_0xd3e9('0xf')](function(_0xccc3a5){var _0x54169a=_0x3b85dd[_0xd3e9('0x36')][_0xd3e9('0x24')]({'plain':!![]});if(!_0x54169a)throw new Error(_0xd3e9('0x78'));if(_0x54169a['role']===_0xd3e9('0x36')){var _0x2704e7=_0xccc3a5[_0xd3e9('0x24')]({'plain':!![]});return db[_0xd3e9('0x79')][_0xd3e9('0x65')]({'where':{'name':_0xd3e9('0x25'),'userProfileId':_0x54169a[_0xd3e9('0x7a')]},'raw':!![]})[_0xd3e9('0xf')](function(_0xa58106){if(_0xa58106&&_0xa58106['autoAssociation']===0x0){return db[_0xd3e9('0x26')][_0xd3e9('0x6a')]({'name':_0x2704e7[_0xd3e9('0x28')],'resourceId':_0x2704e7['id'],'type':_0xa58106[_0xd3e9('0x28')],'sectionId':_0xa58106['id']},{})['then'](function(){return _0xccc3a5;});}else{return _0xccc3a5;}})[_0xd3e9('0x19')](function(_0x1d92f4){logger[_0xd3e9('0x15')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1d92f4);throw _0x1d92f4;});}return _0xccc3a5;})[_0xd3e9('0xf')](respondWithResult(_0x3c50f4,0xc9))[_0xd3e9('0x19')](handleError(_0x3c50f4,null));};exports[_0xd3e9('0x7b')]=function(_0x70715b,_0x39e56e){return db[_0xd3e9('0x47')][_0xd3e9('0x6c')]({'where':{'id':_0x70715b[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x39e56e,null))[_0xd3e9('0xf')](function(_0x58a9c9){if(_0x58a9c9){return _0x58a9c9[_0xd3e9('0x7b')]();}return null;})[_0xd3e9('0xf')](respondWithResult(_0x39e56e,null))[_0xd3e9('0x19')](handleError(_0x39e56e,null));};exports['addImap']=function(_0x1b6dbf,_0x531f63){if(_0x1b6dbf[_0xd3e9('0x62')]['id']){delete _0x1b6dbf[_0xd3e9('0x62')]['id'];}return db[_0xd3e9('0x47')]['find']({'where':{'id':_0x1b6dbf['params']['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x531f63,null))[_0xd3e9('0xf')](function(_0x2cfb2a){if(_0x2cfb2a){_0x1b6dbf[_0xd3e9('0x62')][_0xd3e9('0x68')]=_0x2cfb2a['id'];return db[_0xd3e9('0x44')]['create'](_0x1b6dbf[_0xd3e9('0x62')]);}})[_0xd3e9('0xf')](respondWithResult(_0x531f63,null))[_0xd3e9('0x19')](handleError(_0x531f63,null));};exports[_0xd3e9('0x7c')]=function(_0x4242d4,_0x17d4e3){return db[_0xd3e9('0x47')][_0xd3e9('0x6c')]({'where':{'id':_0x4242d4['params']['id']}})['then'](handleEntityNotFound(_0x17d4e3,null))[_0xd3e9('0xf')](function(_0xbdb332){if(_0xbdb332){return _0xbdb332[_0xd3e9('0x7d')](null);}return null;})[_0xd3e9('0xf')](respondWithStatusCode(_0x17d4e3,null))[_0xd3e9('0x19')](handleError(_0x17d4e3,null));};exports['getSmtp']=function(_0x4027aa,_0x15f276){return db[_0xd3e9('0x47')][_0xd3e9('0x6c')]({'where':{'id':_0x4027aa[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x15f276,null))[_0xd3e9('0xf')](function(_0x5c2cf9){if(_0x5c2cf9){return _0x5c2cf9[_0xd3e9('0x7e')]();}return null;})[_0xd3e9('0xf')](respondWithResult(_0x15f276,null))[_0xd3e9('0x19')](handleError(_0x15f276,null));};exports[_0xd3e9('0x7f')]=function(_0x286145,_0x3780b6){if(_0x286145[_0xd3e9('0x62')]['id']){delete _0x286145[_0xd3e9('0x62')]['id'];}return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x286145['params']['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x3780b6,null))['then'](function(_0x438e1e){if(_0x438e1e){_0x286145['body']['MailAccountId']=_0x438e1e['id'];return db[_0xd3e9('0x45')][_0xd3e9('0x6a')](_0x286145[_0xd3e9('0x62')]);}})['then'](respondWithResult(_0x3780b6,null))[_0xd3e9('0x19')](handleError(_0x3780b6,null));};exports[_0xd3e9('0x80')]=function(_0x45b582,_0x348e11){return db['MailAccount'][_0xd3e9('0x6c')]({'where':{'id':_0x45b582[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x348e11,null))[_0xd3e9('0xf')](function(_0x28a58e){if(_0x28a58e){return _0x28a58e[_0xd3e9('0x81')](null);}return null;})[_0xd3e9('0xf')](respondWithStatusCode(_0x348e11,null))[_0xd3e9('0x19')](handleError(_0x348e11,null));};exports[_0xd3e9('0x82')]=function(_0x127d9c,_0x722e93){return db[_0xd3e9('0x83')]['find']({'where':{'id':_0x127d9c[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x722e93,null))[_0xd3e9('0xf')](function(_0x59c332){if(_0x59c332){return _0x59c332[_0xd3e9('0x82')](_0x127d9c[_0xd3e9('0x62')]['ids'],_['omit'](_0x127d9c['body'],['ids','id'])||{});}})[_0xd3e9('0xf')](respondWithResult(_0x722e93,null))[_0xd3e9('0x19')](handleError(_0x722e93,null));};exports[_0xd3e9('0x84')]=function(_0x1cd62a,_0x209347){var _0x4f9298={'raw':![],'where':{}};var _0x1f1b8e={};var _0x39be07={'count':0x0,'rows':[]};return db['MailAccount']['findOne']({'where':{'id':_0x1cd62a[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x209347,null))[_0xd3e9('0xf')](function(_0x7ee366){if(_0x7ee366){_0x1f1b8e[_0xd3e9('0x4a')]=_[_0xd3e9('0x4c')](db['MailInteraction'][_0xd3e9('0x48')]);_0x1f1b8e[_0xd3e9('0x4f')]=_[_0xd3e9('0x4c')](_0x1cd62a[_0xd3e9('0x4f')]);_0x1f1b8e[_0xd3e9('0x4d')]=_[_0xd3e9('0x4e')](_0x1f1b8e[_0xd3e9('0x4a')],_0x1f1b8e[_0xd3e9('0x4f')]);_0x4f9298[_0xd3e9('0x50')]=_[_0xd3e9('0x4e')](_0x1f1b8e['model'],qs['fields'](_0x1cd62a[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x4f9298[_0xd3e9('0x50')]=_0x4f9298[_0xd3e9('0x50')][_0xd3e9('0x6d')]?_0x4f9298[_0xd3e9('0x50')]:_0x1f1b8e[_0xd3e9('0x4a')];if(!_0x1cd62a['query'][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x4f9298[_0xd3e9('0x1e')]=qs[_0xd3e9('0x1e')](_0x1cd62a[_0xd3e9('0x4f')][_0xd3e9('0x1e')]);_0x4f9298[_0xd3e9('0x20')]=qs[_0xd3e9('0x20')](_0x1cd62a[_0xd3e9('0x4f')][_0xd3e9('0x20')]);}_0x4f9298[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x1cd62a[_0xd3e9('0x4f')][_0xd3e9('0x55')]);_0x4f9298[_0xd3e9('0x57')]=qs[_0xd3e9('0x4d')](_[_0xd3e9('0x56')](_0x1cd62a['query'],_0x1f1b8e[_0xd3e9('0x4d')]));_0x4f9298[_0xd3e9('0x57')][_0xd3e9('0x68')]=_0x7ee366['id'];if(_0x1cd62a[_0xd3e9('0x4f')]['filter']){_0x4f9298[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x4f9298['where'],{'$or':_[_0xd3e9('0x4b')](_0x4f9298[_0xd3e9('0x50')],function(_0x164451){var _0x4b3d0e={};_0x4b3d0e[_0x164451]={'$like':'%'+_0x1cd62a['query'][_0xd3e9('0x5a')]+'%'};return _0x4b3d0e;})});}_0x4f9298=_[_0xd3e9('0x58')]({},_0x4f9298,_0x1cd62a[_0xd3e9('0x5b')]);return db[_0xd3e9('0x83')][_0xd3e9('0x1f')]({'where':_0x4f9298['where']})[_0xd3e9('0xf')](function(_0x3a115a){_0x39be07[_0xd3e9('0x1f')]=_0x3a115a;if(_0x1cd62a[_0xd3e9('0x4f')]['includeAll']){_0x4f9298[_0xd3e9('0x5d')]=[{'model':db[_0xd3e9('0x85')],'as':_0xd3e9('0x86'),'required':![]},{'model':db[_0xd3e9('0x87')],'as':_0xd3e9('0x88'),'attributes':[_0xd3e9('0x28'),'fullname',_0xd3e9('0x89')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0xd3e9('0x28'),_0xd3e9('0x8a')],'where':_0x1cd62a[_0xd3e9('0x4f')]['tag']?{'id':_0x1cd62a['query']['tag']}:undefined,'required':_0x1cd62a['query'][_0xd3e9('0x8b')]?!![]:![]}];}return db[_0xd3e9('0x83')][_0xd3e9('0x72')](_0x4f9298);})[_0xd3e9('0xf')](function(_0x14d3f6){_0x39be07[_0xd3e9('0x5e')]=_0x14d3f6;return _0x39be07;});}})[_0xd3e9('0xf')](respondWithFilteredResult(_0x209347,_0x4f9298))[_0xd3e9('0x19')](handleError(_0x209347,null));};exports[_0xd3e9('0x8c')]=function addApplications(_0x4083a6,_0x26520b){var _0x8c6dd5=_0x4083a6['params']['id'];var _0x4905d4=_0x4083a6['body'];var _0x2c4f7d=0xc8;var _0x33219e=null;return db[_0xd3e9('0x8d')][_0xd3e9('0x8e')]({'isolationLevel':db['sequelize'][_0xd3e9('0x8f')][_0xd3e9('0x90')]['READ_COMMITTED']},function(_0x3abdd8){return db['MailAccount'][_0xd3e9('0x6c')]({'where':{'id':_0x8c6dd5},'transaction':_0x3abdd8})['then'](function(_0x13dbb4){if(_0x13dbb4){return db[_0xd3e9('0x91')][_0xd3e9('0x23')]({'where':{'MailAccountId':_0x8c6dd5},'transaction':_0x3abdd8})['then'](function(){var _0x5a6c78=_[_0xd3e9('0x4b')](_0x4905d4,function(_0x5c06b5){_0x5c06b5[_0xd3e9('0x68')]=_0x8c6dd5;return _0x5c06b5;});return db[_0xd3e9('0x91')][_0xd3e9('0x92')](_0x5a6c78,{'transaction':_0x3abdd8});});}else{_0x2c4f7d=0x194;_0x33219e=[];}});})[_0xd3e9('0xf')](function(){if(_0x2c4f7d!==0x194){return db[_0xd3e9('0x91')]['findAndCountAll']({'where':{'MailAccountId':_0x8c6dd5},'order':'priority'})[_0xd3e9('0xf')](function(_0x1200f8){_0x33219e=_0x1200f8;});}})[_0xd3e9('0x19')](function(_0x3ab43d){_0x2c4f7d=0x1f4;logger[_0xd3e9('0x15')](_0x3ab43d[_0xd3e9('0x27')]);if(_0x3ab43d[_0xd3e9('0x28')]){delete _0x3ab43d[_0xd3e9('0x28')];}_0x33219e=_0x3ab43d;})['finally'](function(){if(_0x33219e===null){_0x26520b['sendStatus'](_0x2c4f7d);}else{if(_0x2c4f7d===0x1f4){_0x26520b['status'](_0x2c4f7d)[_0xd3e9('0x29')](_0x33219e);}else{_0x26520b['status'](_0x2c4f7d)['json'](_0x33219e);}}});};exports['getApplications']=function(_0x40e90d,_0xeb8af3){var _0x5d745d={};var _0x2dd70e={};var _0x572cda;var _0x566216;return db['MailAccount'][_0xd3e9('0x6c')]({'where':{'id':_0x40e90d[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0xeb8af3,null))[_0xd3e9('0xf')](function(_0x5c6aec){if(_0x5c6aec){_0x572cda=_0x5c6aec;_0x2dd70e[_0xd3e9('0x4a')]=_['keys'](db['MailApplication'][_0xd3e9('0x48')]);_0x2dd70e['query']=_[_0xd3e9('0x4c')](_0x40e90d[_0xd3e9('0x4f')]);_0x2dd70e[_0xd3e9('0x4d')]=_[_0xd3e9('0x4e')](_0x2dd70e[_0xd3e9('0x4a')],_0x2dd70e[_0xd3e9('0x4f')]);_0x5d745d['attributes']=_[_0xd3e9('0x4e')](_0x2dd70e[_0xd3e9('0x4a')],qs[_0xd3e9('0x51')](_0x40e90d[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x5d745d[_0xd3e9('0x50')]=_0x5d745d['attributes'][_0xd3e9('0x6d')]?_0x5d745d[_0xd3e9('0x50')]:_0x2dd70e['model'];_0x5d745d[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x40e90d['query'][_0xd3e9('0x55')]);_0x5d745d[_0xd3e9('0x57')]=qs[_0xd3e9('0x4d')](_[_0xd3e9('0x56')](_0x40e90d[_0xd3e9('0x4f')],_0x2dd70e[_0xd3e9('0x4d')]));if(_0x40e90d[_0xd3e9('0x4f')][_0xd3e9('0x5a')]){_0x5d745d[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x5d745d[_0xd3e9('0x57')],{'$or':_[_0xd3e9('0x4b')](_0x5d745d[_0xd3e9('0x50')],function(_0x391cf3){var _0x96c6dd={};_0x96c6dd[_0x391cf3]={'$like':'%'+_0x40e90d[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x96c6dd;})});}_0x5d745d=_[_0xd3e9('0x58')]({},_0x5d745d,_0x40e90d[_0xd3e9('0x5b')]);return _0x572cda[_0xd3e9('0x93')](_0x5d745d);}})['then'](function(_0x4fa19c){if(_0x4fa19c){_0x566216=_0x4fa19c[_0xd3e9('0x6d')];if(!_0x40e90d['query'][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x5d745d[_0xd3e9('0x1e')]=qs[_0xd3e9('0x1e')](_0x40e90d[_0xd3e9('0x4f')]['limit']);_0x5d745d[_0xd3e9('0x20')]=qs[_0xd3e9('0x20')](_0x40e90d[_0xd3e9('0x4f')]['offset']);}return _0x572cda[_0xd3e9('0x93')](_0x5d745d);}})[_0xd3e9('0xf')](function(_0x491373){if(_0x491373){return _0x491373?{'count':_0x566216,'rows':_0x491373}:null;}})[_0xd3e9('0xf')](respondWithResult(_0xeb8af3,null))[_0xd3e9('0x19')](handleError(_0xeb8af3,null));};exports['getMessages']=function(_0x118227,_0x314378){var _0x3e763d={'raw':!![],'where':{}};var _0xb0d343={};var _0x4fd315={'count':0x0,'rows':[]};return db[_0xd3e9('0x47')][_0xd3e9('0x6c')]({'where':{'id':_0x118227[_0xd3e9('0x60')]['id']}})['then'](handleEntityNotFound(_0x314378,null))['then'](function(_0xf73d89){if(_0xf73d89){_0xb0d343[_0xd3e9('0x4a')]=_['keys'](db[_0xd3e9('0x94')][_0xd3e9('0x48')]);_0xb0d343[_0xd3e9('0x4f')]=_[_0xd3e9('0x4c')](_0x118227[_0xd3e9('0x4f')]);_0xb0d343['filters']=_[_0xd3e9('0x4e')](_0xb0d343[_0xd3e9('0x4a')],_0xb0d343['query']);_0x3e763d[_0xd3e9('0x50')]=_[_0xd3e9('0x4e')](_0xb0d343['model'],qs[_0xd3e9('0x51')](_0x118227[_0xd3e9('0x4f')]['fields']));_0x3e763d[_0xd3e9('0x50')]=_0x3e763d['attributes'][_0xd3e9('0x6d')]?_0x3e763d[_0xd3e9('0x50')]:_0xb0d343['model'];if(!_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x52')]('nolimit')){_0x3e763d['limit']=qs[_0xd3e9('0x1e')](_0x118227['query'][_0xd3e9('0x1e')]);_0x3e763d[_0xd3e9('0x20')]=qs[_0xd3e9('0x20')](_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x20')]);}_0x3e763d[_0xd3e9('0x54')]=qs[_0xd3e9('0x55')](_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x55')]);_0x3e763d['where']=qs[_0xd3e9('0x4d')](_['pick'](_0x118227['query'],_0xb0d343[_0xd3e9('0x4d')]));_0x3e763d[_0xd3e9('0x57')][_0xd3e9('0x68')]=_0xf73d89['id'];if(_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x5a')]){_0x3e763d[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x3e763d[_0xd3e9('0x57')],{'$or':_[_0xd3e9('0x4b')](_0x3e763d[_0xd3e9('0x50')],function(_0x48d097){var _0x45f7e5={};_0x45f7e5[_0x48d097]={'$like':'%'+_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x45f7e5;})});}if(_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x95')]){var _0x4e8754=_0x118227[_0xd3e9('0x4f')][_0xd3e9('0x95')][_0xd3e9('0x96')](',');var _0x3fbd0f={};_0x3fbd0f[_0x4e8754[0x0]]={'$gte':moment(_0x4e8754[0x1])[_0xd3e9('0x97')](_0xd3e9('0x98'))};_0x3e763d[_0xd3e9('0x57')]=_[_0xd3e9('0x58')](_0x3e763d[_0xd3e9('0x57')],_0x3fbd0f);}_0x3e763d=_[_0xd3e9('0x58')]({},_0x3e763d,_0x118227[_0xd3e9('0x5b')]);return db[_0xd3e9('0x94')][_0xd3e9('0x1f')]({'where':_0x3e763d[_0xd3e9('0x57')]})[_0xd3e9('0xf')](function(_0x5d4266){_0x4fd315['count']=_0x5d4266;if(_0x118227['query']['includeAll']){_0x3e763d[_0xd3e9('0x5d')]=[{'all':!![]}];}return db[_0xd3e9('0x94')][_0xd3e9('0x72')](_0x3e763d);})[_0xd3e9('0xf')](function(_0x41a11b){if(_0x118227['query'][_0xd3e9('0x99')]===_0xd3e9('0x9a')){for(var _0x24b471=0x0;_0x24b471<_0x41a11b['length'];_0x24b471++){_0x41a11b[_0x24b471][_0xd3e9('0x62')]=juice(_0x41a11b[_0x24b471][_0xd3e9('0x62')]);}}_0x4fd315[_0xd3e9('0x5e')]=_0x41a11b;return _0x4fd315;});}})[_0xd3e9('0xf')](respondWithFilteredResult(_0x314378,_0x3e763d))[_0xd3e9('0x19')](handleError(_0x314378,null));};exports['send']=function(_0x5e30b0,_0x588651){var _0x324b46,_0x29e013={},_0x566340;if(_0x5e30b0[_0xd3e9('0x62')]['to']){_0x566340=_0x5e30b0[_0xd3e9('0x62')]['to']['split'](',')[0x0];}return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x5e30b0[_0xd3e9('0x60')]['id']},'include':[{'model':db[_0xd3e9('0x9b')],'as':_0xd3e9('0x9c'),'include':[{'model':db['CmContact'],'as':_0xd3e9('0x9d'),'where':{'email':_0x566340},'limit':0x1,'order':[[_0xd3e9('0x9e'),_0xd3e9('0x9f')]]}]},{'model':db[_0xd3e9('0x45')],'as':_0xd3e9('0x42'),'raw':!![],'include':[{'model':db[_0xd3e9('0xa0')],'as':_0xd3e9('0xa0'),'raw':!![]}]}]})[_0xd3e9('0xf')](handleEntityNotFound(_0x588651,null))[_0xd3e9('0xf')](function(_0x40d8c8){if(!_0x40d8c8)return;_0x324b46=_0x40d8c8;if(!_0x40d8c8['Smtp'])throw new Error(_0xd3e9('0xa1'));if(_['isNil'](_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xa2')])){_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xa2')]=util[_0xd3e9('0x97')](_0xd3e9('0xa3'),_0x40d8c8[_0xd3e9('0x28')],_0x40d8c8[_0xd3e9('0xa4')]||_0x40d8c8[_0xd3e9('0x42')][_0xd3e9('0x36')]);}if(_0x5e30b0['body'][_0xd3e9('0xa5')]&&_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xa5')]['length']){for(var _0xf1990a=0x0;_0xf1990a<_0x5e30b0[_0xd3e9('0x62')]['attachments'][_0xd3e9('0x6d')];_0xf1990a+=0x1){_0x5e30b0[_0xd3e9('0x62')]['attachments'][_0xf1990a]={'filename':_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xa5')][_0xf1990a][_0xd3e9('0x28')],'path':path['join'](config['root'],'server/files/attachments',_0x5e30b0[_0xd3e9('0x62')]['attachments'][_0xf1990a][_0xd3e9('0xa6')])};}}var _0x5663e9=_0x40d8c8[_0xd3e9('0xa7')]();return respondWithRpcPromise('SendMail',_0xd3e9('0xa8'),{'account':_0x5663e9,'message':_0x5e30b0['body']});})[_0xd3e9('0xf')](function(_0x4a55f6){if(!_0x4a55f6)return;_0x29e013=_0x4a55f6;if(!_0x324b46[_0xd3e9('0x9c')])throw new Error(_0xd3e9('0xa9'));if(_0x324b46['List'][_0xd3e9('0x9d')][_0xd3e9('0x6d')])return _0x324b46[_0xd3e9('0x9c')]['Contacts'][0x0];return db['CmContact'][_0xd3e9('0x6a')](_['defaults'](_0x5e30b0[_0xd3e9('0x62')],{'firstName':_0x5e30b0['body']['to'],'email':_0x5e30b0[_0xd3e9('0x62')]['to'],'phone':_0x5e30b0[_0xd3e9('0x62')]['to'],'ListId':_0x324b46[_0xd3e9('0x74')]}));})['then'](function(_0x5dd5a8){if(!_0x5dd5a8)return;var _0x35df4a={'UserId':_0x5e30b0[_0xd3e9('0x36')]['id'],'ContactId':_0x5dd5a8['id'],'MailAccountId':_0x324b46['id'],'inReplyTo':_0x29e013[_0xd3e9('0xaa')],'to':_0x5e30b0['body'][_0xd3e9('0xa2')],'cc':_0x5e30b0[_0xd3e9('0x62')]['cc'],'subject':_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xab')],'attach':_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xac')],'firstMsgDirection':'out','lastMsgAt':moment()['format'](_0xd3e9('0x98')),'lastMsgDirection':_0xd3e9('0xad'),'Messages':[_[_0xd3e9('0x58')](_0x5e30b0['body'],{'messageId':_0x29e013['messageId'],'sentAt':moment()[_0xd3e9('0x97')](_0xd3e9('0x98')),'read':!![],'MailAccountId':_0x324b46['id'],'UserId':_0x5e30b0[_0xd3e9('0x36')]['id'],'ContactId':_0x5dd5a8['id']})]};if(_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xae')]){_0x35df4a=_[_0xd3e9('0x58')](_0x35df4a,_0x5e30b0[_0xd3e9('0x62')][_0xd3e9('0xae')]);}return db[_0xd3e9('0x83')][_0xd3e9('0x6a')](_0x35df4a,{'include':[{'model':db[_0xd3e9('0x94')],'as':_0xd3e9('0xaf')}]});})[_0xd3e9('0xf')](respondWithResult(_0x588651,null))['catch'](handleError(_0x588651,null));};exports['verifySmtp']=function(_0x37832d,_0x146ebc){return db['MailAccount'][_0xd3e9('0x65')]({'where':{'id':_0x37832d['params']['id']},'include':[{'model':db[_0xd3e9('0x45')],'as':_0xd3e9('0x42'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':_0xd3e9('0xa0'),'raw':!![]}]}]})['then'](handleEntityNotFound(_0x146ebc,null))['then'](function(_0xd59d0){if(!_0xd59d0[_0xd3e9('0x42')])return;var _0x476327=_0xd59d0[_0xd3e9('0xa7')]();return respondWithRpcPromise('VerifySmtp',_0xd3e9('0xb0'),{'account':_0x476327});})[_0xd3e9('0xf')](respondWithResult(_0x146ebc,null))['catch'](handleError(_0x146ebc,null));};exports[_0xd3e9('0x23')]=function(_0x27f26d,_0x2992b6){return db['MailAccount'][_0xd3e9('0x65')]({'where':{'id':_0x27f26d[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x2992b6,null))['then'](function(_0x453eab){if(_0x453eab&&_0x453eab[_0xd3e9('0x3e')]){throw new db[(_0xd3e9('0xb1'))][(_0xd3e9('0xb2'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x453eab;})['then'](removeEntity(_0x2992b6,null))[_0xd3e9('0x19')](handleError(_0x2992b6,null));};exports[_0xd3e9('0xb3')]=function(_0x57a39c,_0x468e90){return db[_0xd3e9('0x47')]['find']({'where':{'id':_0x57a39c[_0xd3e9('0x60')]['id']}})['then'](handleEntityNotFound(_0x468e90,null))[_0xd3e9('0xf')](function(_0x5a614f){if(_0x5a614f){return _0x5a614f['addAgents'](_0x57a39c[_0xd3e9('0x62')]['ids'],_['omit'](_0x57a39c[_0xd3e9('0x62')],[_0xd3e9('0x6f'),'id'])||{})['spread'](function(_0x6f68fa){for(var _0x51d4d0=0x0;_0x51d4d0<_0x57a39c[_0xd3e9('0x62')][_0xd3e9('0x6f')]['length'];_0x51d4d0+=0x1){socket[_0xd3e9('0xb4')](_0xd3e9('0xb5'),{'UserId':Number(_0x57a39c[_0xd3e9('0x62')]['ids'][_0x51d4d0]),'MailAccountId':Number(_0x57a39c[_0xd3e9('0x60')]['id'])});}return _0x6f68fa;});}})[_0xd3e9('0xf')](respondWithResult(_0x468e90,null))['catch'](handleError(_0x468e90,null));};exports['removeAgents']=function(_0x139681,_0x17cf09){return db[_0xd3e9('0x47')][_0xd3e9('0x65')]({'where':{'id':_0x139681['params']['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x17cf09,null))[_0xd3e9('0xf')](function(_0x4ac84e){if(_0x4ac84e){return _0x4ac84e[_0xd3e9('0xb6')](_0x139681[_0xd3e9('0x4f')][_0xd3e9('0x6f')])[_0xd3e9('0xf')](function(){if(_['isArray'](_0x139681['query'][_0xd3e9('0x6f')])){for(var _0x362261=0x0;_0x362261<_0x139681[_0xd3e9('0x4f')][_0xd3e9('0x6f')][_0xd3e9('0x6d')];_0x362261+=0x1){socket['emit'](_0xd3e9('0xb7'),{'UserId':Number(_0x139681[_0xd3e9('0x4f')][_0xd3e9('0x6f')][_0x362261]),'MailAccountId':Number(_0x139681['params']['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x139681[_0xd3e9('0x4f')][_0xd3e9('0x6f')]),'MailAccountId':Number(_0x139681[_0xd3e9('0x60')]['id'])});}});}})['then'](respondWithStatusCode(_0x17cf09,null))['catch'](handleError(_0x17cf09,null));};exports[_0xd3e9('0xb8')]=function(_0x4f490b,_0x2805aa){var _0x3b1029={};var _0x4cecdc={};var _0x23af78;var _0x581974;return db[_0xd3e9('0x47')]['findOne']({'where':{'id':_0x4f490b[_0xd3e9('0x60')]['id']}})[_0xd3e9('0xf')](handleEntityNotFound(_0x2805aa,null))[_0xd3e9('0xf')](function(_0x21197c){if(_0x21197c){_0x23af78=_0x21197c;_0x4cecdc[_0xd3e9('0x4a')]=_[_0xd3e9('0x4c')](db[_0xd3e9('0x87')][_0xd3e9('0x48')]);_0x4cecdc[_0xd3e9('0x4f')]=_[_0xd3e9('0x4c')](_0x4f490b['query']);_0x4cecdc[_0xd3e9('0x4d')]=_['intersection'](_0x4cecdc[_0xd3e9('0x4a')],_0x4cecdc[_0xd3e9('0x4f')]);_0x3b1029[_0xd3e9('0x50')]=_['intersection'](_0x4cecdc[_0xd3e9('0x4a')],qs['fields'](_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x51')]));_0x3b1029['attributes']=_0x3b1029[_0xd3e9('0x50')][_0xd3e9('0x6d')]?_0x3b1029['attributes']:_0x4cecdc[_0xd3e9('0x4a')];_0x3b1029[_0xd3e9('0x54')]=qs['sort'](_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x55')]);_0x3b1029[_0xd3e9('0x57')]=qs[_0xd3e9('0x4d')](_[_0xd3e9('0x56')](_0x4f490b[_0xd3e9('0x4f')],_0x4cecdc[_0xd3e9('0x4d')]));if(_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x5a')]){_0x3b1029[_0xd3e9('0x57')]=_['merge'](_0x3b1029[_0xd3e9('0x57')],{'$or':_['map'](_0x3b1029[_0xd3e9('0x50')],function(_0x4b92e7){var _0x3552a6={};_0x3552a6[_0x4b92e7]={'$like':'%'+_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x5a')]+'%'};return _0x3552a6;})});}_0x3b1029=_['merge']({},_0x3b1029,_0x4f490b[_0xd3e9('0x5b')]);return _0x23af78[_0xd3e9('0xb8')](_0x3b1029);}})[_0xd3e9('0xf')](function(_0x1b38ca){if(_0x1b38ca){_0x581974=_0x1b38ca[_0xd3e9('0x6d')];if(!_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x52')](_0xd3e9('0x53'))){_0x3b1029[_0xd3e9('0x1e')]=qs[_0xd3e9('0x1e')](_0x4f490b['query'][_0xd3e9('0x1e')]);_0x3b1029[_0xd3e9('0x20')]=qs[_0xd3e9('0x20')](_0x4f490b[_0xd3e9('0x4f')][_0xd3e9('0x20')]);}return _0x23af78[_0xd3e9('0xb8')](_0x3b1029);}})['then'](function(_0x5bf9b1){if(_0x5bf9b1){return _0x5bf9b1?{'count':_0x581974,'rows':_0x5bf9b1}:null;}})[_0xd3e9('0xf')](respondWithResult(_0x2805aa,null))['catch'](handleError(_0x2805aa,null));};