b7cdd566771d26463fccbd34a9bc09b299842e88
[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 _0xfbc9=['intersection','length','include','find','body','provider','custom','params','Mail\x20Account\x20not\x20found','update','describe','addDisposition','MailAccountId','findOne','Disposition','hasOwnProperty','removeDispositions','create','getAnswers','CannedAnswer','removeAnswers','ids','ListId','active','description','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','getImap','addImap','removeImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','getInteractions','Contact','fullname','internal','color','tag','addApplications','transaction','sequelize','Transaction','ISOLATION_LEVELS','findAndCountAll','stack','finally','MailApplication','getApplications','MailMessage','$gte','split','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','List','Contacts','updatedAt','CloudProvider','Smtp\x20configuration\x20not\x20found','isNil','from','format','email','attachments','join','root','server/files/attachments','basename','getSmtpOptions','SendMail','sendMail','CmContact','defaults','messageId','subject','attach','out','Interaction','Messages','verifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','omit','spread','emit','removeAgents','isArray','userMailAccount:remove','User','getAgents','moment','bluebird','util','juice','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','socket.io-emitter','register','client','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','result','catch','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','destroy','get','MailAccounts','UserProfileResource','name','send','gmail','imap.gmail.com','yahoo','outlook.office365.com','smtp.mail.yahoo.com','smtp-mail.outlook.com','outlook365','smtp.office365.com','Unknown\x20email\x20service\x20provider','user','username','password','modernAuthentication','CloudProviderId','host','port','secure','service','authentication','pass','Imap','Smtp','index','MailServerIn','MailServerOut','Pause','MailAccount','rawAttributes','fieldName','type','key','model','map','keys','query','filters','fields','attributes','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','mandatoryDispositionPause'];(function(_0x52af38,_0x3872ca){var _0x3eee25=function(_0x4b1dd1){while(--_0x4b1dd1){_0x52af38['push'](_0x52af38['shift']());}};_0x3eee25(++_0x3872ca);}(_0xfbc9,0x124));var _0x9fbc=function(_0x34e2bd,_0x48c77a){_0x34e2bd=_0x34e2bd-0x0;var _0x364e5c=_0xfbc9[_0x34e2bd];return _0x364e5c;};'use strict';var moment=require(_0x9fbc('0x0'));var BPromise=require(_0x9fbc('0x1'));var util=require(_0x9fbc('0x2'));var path=require('path');var _=require('lodash');var juice=require(_0x9fbc('0x3'));var Redis=require(_0x9fbc('0x4'));var qs=require(_0x9fbc('0x5'));var logger=require(_0x9fbc('0x6'))(_0x9fbc('0x7'));var config=require(_0x9fbc('0x8'));var db=require(_0x9fbc('0x9'))['db'];config[_0x9fbc('0xa')]=_['defaults'](config[_0x9fbc('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x9fbc('0xb'))(new Redis(config['redis']));require('./mailAccount.socket')[_0x9fbc('0xc')](socket);var jayson=require('jayson/promise');var client=jayson[_0x9fbc('0xd')]['http']({'port':0x232b});function respondWithRpcPromise(_0x492798,_0x40c7a2,_0x1084a4,_0x456506){return new BPromise(function(_0x526202,_0x4f0867){var _0x4fafc6=_0x456506||client;return _0x4fafc6[_0x9fbc('0xe')](_0x492798,_0x1084a4)[_0x9fbc('0xf')](function(_0x14a55b){logger['info'](_0x9fbc('0x10'),_0x40c7a2,_0x9fbc('0x11'));logger['debug'](_0x9fbc('0x12'),_0x40c7a2,_0x9fbc('0x11'),JSON[_0x9fbc('0x13')](_0x14a55b));if(_0x14a55b['error']){if(_0x14a55b['error'][_0x9fbc('0x14')]===0x1f4){logger[_0x9fbc('0x15')](_0x9fbc('0x10'),_0x40c7a2,_0x14a55b[_0x9fbc('0x15')][_0x9fbc('0x16')]);return _0x4f0867(_0x14a55b[_0x9fbc('0x15')][_0x9fbc('0x16')]);}logger[_0x9fbc('0x15')](_0x9fbc('0x10'),_0x40c7a2,_0x14a55b[_0x9fbc('0x15')][_0x9fbc('0x16')]);return _0x526202(_0x14a55b[_0x9fbc('0x15')][_0x9fbc('0x16')]);}else{logger[_0x9fbc('0x17')]('MailAccount,\x20%s,\x20%s',_0x40c7a2,'request\x20sent');_0x526202(_0x14a55b[_0x9fbc('0x18')]['message']);}})[_0x9fbc('0x19')](function(_0x3c4fcc){logger['error'](_0x9fbc('0x10'),_0x40c7a2,_0x3c4fcc);_0x4f0867(_0x3c4fcc);});});}function respondWithStatusCode(_0x194429,_0x31ea9a){_0x31ea9a=_0x31ea9a||0xcc;return function(_0x3186bc){if(_0x3186bc){return _0x194429[_0x9fbc('0x1a')](_0x31ea9a);}return _0x194429[_0x9fbc('0x1b')](_0x31ea9a)[_0x9fbc('0x1c')]();};}function respondWithResult(_0x4a08f5,_0x46d310){_0x46d310=_0x46d310||0xc8;return function(_0x4740d0){if(_0x4740d0){return _0x4a08f5[_0x9fbc('0x1b')](_0x46d310)[_0x9fbc('0x1d')](_0x4740d0);}};}function respondWithFilteredResult(_0x5223d8,_0x5b0252){return function(_0x279a85){if(_0x279a85){var _0x1e0191=typeof _0x5b0252['offset']==='undefined'&&typeof _0x5b0252[_0x9fbc('0x1e')]===_0x9fbc('0x1f');var _0x2099c3=_0x279a85[_0x9fbc('0x20')];var _0x14d49e=_0x1e0191?0x0:_0x5b0252[_0x9fbc('0x21')];var _0x320bd3=_0x1e0191?_0x279a85['count']:_0x5b0252[_0x9fbc('0x21')]+_0x5b0252[_0x9fbc('0x1e')];var _0x142b39;if(_0x320bd3>=_0x2099c3){_0x320bd3=_0x2099c3;_0x142b39=0xc8;}else{_0x142b39=0xce;}_0x5223d8[_0x9fbc('0x1b')](_0x142b39);return _0x5223d8[_0x9fbc('0x22')](_0x9fbc('0x23'),_0x14d49e+'-'+_0x320bd3+'/'+_0x2099c3)[_0x9fbc('0x1d')](_0x279a85);}return null;};}function saveUpdates(_0x181990){return function(_0x4e754c){if(_0x4e754c){return _0x4e754c['update'](_0x181990)[_0x9fbc('0xf')](function(_0x103296){return _0x103296;});}return null;};}function removeEntity(_0x434f26){return function(_0x4ca8f8){if(_0x4ca8f8){return _0x4ca8f8[_0x9fbc('0x24')]()[_0x9fbc('0xf')](function(){var _0x5e2fb5=_0x4ca8f8[_0x9fbc('0x25')]({'plain':!![]});var _0x3a33d1=_0x9fbc('0x26');return db[_0x9fbc('0x27')]['destroy']({'where':{'type':_0x3a33d1,'resourceId':_0x5e2fb5['id']}})['then'](function(){return _0x4ca8f8;});})[_0x9fbc('0xf')](function(){_0x434f26[_0x9fbc('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d3462){return function(_0x5e19cf){if(!_0x5e19cf){_0x4d3462[_0x9fbc('0x1a')](0x194);}return _0x5e19cf;};}function handleError(_0x8bc875,_0xd8193a){_0xd8193a=_0xd8193a||0x1f4;return function(_0x4d3848){logger['error'](_0x4d3848['stack']);if(_0x4d3848[_0x9fbc('0x28')]){delete _0x4d3848[_0x9fbc('0x28')];}_0x8bc875[_0x9fbc('0x1b')](_0xd8193a)[_0x9fbc('0x29')](_0x4d3848);};}function getImapHost(_0x166e15){switch(_0x166e15){case _0x9fbc('0x2a'):return _0x9fbc('0x2b');case _0x9fbc('0x2c'):return'imap.mail.yahoo.com';case'hotmail':return'imap-mail.outlook.com';case'outlook365':return _0x9fbc('0x2d');}throw new Error('Unknown\x20email\x20service\x20provider',_0x166e15);}function getSmtpHost(_0x537573){switch(_0x537573){case _0x9fbc('0x2a'):return'smtp.gmail.com';case'yahoo':return _0x9fbc('0x2e');case'hotmail':return _0x9fbc('0x2f');case _0x9fbc('0x30'):return _0x9fbc('0x31');}throw new Error(_0x9fbc('0x32'),_0x537573);}function getAuthenticationOptions(_0x4ffdd1,_0x132468){var _0x796a38={};var _0x27b4e1={};if(_0x4ffdd1){_0x796a38[_0x9fbc('0x33')]=_0x27b4e1['user']=_0x132468[_0x9fbc('0x34')];_0x796a38[_0x9fbc('0x35')]=_0x27b4e1['pass']=_0x132468[_0x9fbc('0x35')];if(_0x132468[_0x9fbc('0x36')]){_0x796a38['modernAuthentication']=_0x27b4e1[_0x9fbc('0x36')]=!![];_0x796a38[_0x9fbc('0x37')]=_0x27b4e1[_0x9fbc('0x37')]=_0x132468[_0x9fbc('0x37')];_0x796a38[_0x9fbc('0x35')]=_0x27b4e1['pass']=null;}else{_0x796a38[_0x9fbc('0x37')]=_0x27b4e1[_0x9fbc('0x37')]=null;}_0x796a38[_0x9fbc('0x38')]=getImapHost(_0x4ffdd1);_0x796a38['port']=0x3e1;_0x27b4e1['host']=getSmtpHost(_0x4ffdd1);_0x27b4e1[_0x9fbc('0x39')]=0x24b;_0x27b4e1[_0x9fbc('0x3a')]=![];_0x796a38[_0x9fbc('0x3b')]=_0x27b4e1[_0x9fbc('0x3b')]=null;}else{if(_0x132468[_0x9fbc('0x3c')]){_0x796a38[_0x9fbc('0x33')]=_0x27b4e1[_0x9fbc('0x33')]=_0x132468[_0x9fbc('0x34')];_0x796a38[_0x9fbc('0x35')]=_0x27b4e1[_0x9fbc('0x3d')]=_0x132468[_0x9fbc('0x35')];}else{_0x796a38['authentication']=_0x27b4e1[_0x9fbc('0x3c')]=![];_0x796a38[_0x9fbc('0x33')]=_0x27b4e1['user']=null;_0x796a38['password']=_0x27b4e1['pass']=null;}_0x796a38['host']=_0x132468[_0x9fbc('0x3e')][_0x9fbc('0x38')];_0x796a38[_0x9fbc('0x39')]=_0x132468[_0x9fbc('0x3e')][_0x9fbc('0x39')];_0x27b4e1['host']=_0x132468[_0x9fbc('0x3f')][_0x9fbc('0x38')];_0x27b4e1[_0x9fbc('0x39')]=_0x132468['Smtp'][_0x9fbc('0x39')];}return{'Imap':_0x796a38,'Smtp':_0x27b4e1};}exports[_0x9fbc('0x40')]=function(_0x239127,_0xed29e9){var _0xb4b545={'include':[{'model':db[_0x9fbc('0x41')],'as':_0x9fbc('0x3e')},{'model':db[_0x9fbc('0x42')],'as':_0x9fbc('0x3f')},{'model':db[_0x9fbc('0x43')],'as':'mandatoryDispositionPause'}]},_0x1a55ce={},_0x3a7063={'count':0x0,'rows':[]};var _0xaea1be=_['map'](db[_0x9fbc('0x44')][_0x9fbc('0x45')],function(_0x288768){return{'name':_0x288768[_0x9fbc('0x46')],'type':_0x288768[_0x9fbc('0x47')][_0x9fbc('0x48')]};});_0x1a55ce[_0x9fbc('0x49')]=_[_0x9fbc('0x4a')](_0xaea1be,'name');_0x1a55ce['query']=_[_0x9fbc('0x4b')](_0x239127[_0x9fbc('0x4c')]);_0x1a55ce[_0x9fbc('0x4d')]=_['intersection'](_0x1a55ce[_0x9fbc('0x49')],_0x1a55ce[_0x9fbc('0x4c')]);_0xb4b545['attributes']=_['intersection'](_0x1a55ce[_0x9fbc('0x49')],qs['fields'](_0x239127['query'][_0x9fbc('0x4e')]));_0xb4b545[_0x9fbc('0x4f')]=_0xb4b545[_0x9fbc('0x4f')]['length']?_0xb4b545[_0x9fbc('0x4f')]:_0x1a55ce[_0x9fbc('0x49')];if(!_0x239127[_0x9fbc('0x4c')]['hasOwnProperty'](_0x9fbc('0x50'))){_0xb4b545[_0x9fbc('0x1e')]=qs['limit'](_0x239127['query']['limit']);_0xb4b545[_0x9fbc('0x21')]=qs[_0x9fbc('0x21')](_0x239127['query'][_0x9fbc('0x21')]);}_0xb4b545[_0x9fbc('0x51')]=qs[_0x9fbc('0x52')](_0x239127[_0x9fbc('0x4c')][_0x9fbc('0x52')]);_0xb4b545[_0x9fbc('0x53')]=qs[_0x9fbc('0x4d')](_[_0x9fbc('0x54')](_0x239127['query'],_0x1a55ce['filters']),_0xaea1be);if(_0x239127[_0x9fbc('0x4c')][_0x9fbc('0x55')]){_0xb4b545[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0xb4b545['where'],{'$or':_['map'](_0xaea1be,function(_0x2ad37d){if(_0x2ad37d[_0x9fbc('0x47')]!==_0x9fbc('0x57')){var _0x53c37b={};_0x53c37b[_0x2ad37d[_0x9fbc('0x28')]]={'$like':'%'+_0x239127['query'][_0x9fbc('0x55')]+'%'};return _0x53c37b;}})});}_0xb4b545=_[_0x9fbc('0x56')]({},_0xb4b545,_0x239127[_0x9fbc('0x58')]);var _0x409ac0={'where':_0xb4b545[_0x9fbc('0x53')]};return db[_0x9fbc('0x44')][_0x9fbc('0x20')](_0x409ac0)[_0x9fbc('0xf')](function(_0x4eee3e){_0x3a7063[_0x9fbc('0x20')]=_0x4eee3e;if(_0x239127[_0x9fbc('0x4c')][_0x9fbc('0x59')]){_0xb4b545['include']=[{'all':!![]}];}return db[_0x9fbc('0x44')][_0x9fbc('0x5a')](_0xb4b545);})[_0x9fbc('0xf')](function(_0x11c801){_0x3a7063[_0x9fbc('0x5b')]=_0x11c801;return _0x3a7063;})['then'](respondWithFilteredResult(_0xed29e9,_0xb4b545))[_0x9fbc('0x19')](handleError(_0xed29e9,null));};exports[_0x9fbc('0x5c')]=function(_0x36ac77,_0x1ec6e5){var _0x16cd7e={'raw':![],'where':{'id':_0x36ac77['params']['id']},'include':[{'model':db[_0x9fbc('0x41')],'as':_0x9fbc('0x3e')},{'model':db[_0x9fbc('0x42')],'as':_0x9fbc('0x3f')},{'model':db[_0x9fbc('0x43')],'as':_0x9fbc('0x5d')}]},_0x1ce7c2={};_0x1ce7c2[_0x9fbc('0x49')]=_[_0x9fbc('0x4b')](db[_0x9fbc('0x44')][_0x9fbc('0x45')]);_0x1ce7c2[_0x9fbc('0x4c')]=_['keys'](_0x36ac77[_0x9fbc('0x4c')]);_0x1ce7c2['filters']=_[_0x9fbc('0x5e')](_0x1ce7c2[_0x9fbc('0x49')],_0x1ce7c2[_0x9fbc('0x4c')]);_0x16cd7e[_0x9fbc('0x4f')]=_['intersection'](_0x1ce7c2[_0x9fbc('0x49')],qs[_0x9fbc('0x4e')](_0x36ac77['query'][_0x9fbc('0x4e')]));_0x16cd7e[_0x9fbc('0x4f')]=_0x16cd7e['attributes'][_0x9fbc('0x5f')]?_0x16cd7e[_0x9fbc('0x4f')]:_0x1ce7c2[_0x9fbc('0x49')];if(_0x36ac77[_0x9fbc('0x4c')][_0x9fbc('0x59')]){_0x16cd7e[_0x9fbc('0x60')]=[{'all':!![]}];}_0x16cd7e=_[_0x9fbc('0x56')]({},_0x16cd7e,_0x36ac77[_0x9fbc('0x58')]);return db[_0x9fbc('0x44')][_0x9fbc('0x61')](_0x16cd7e)[_0x9fbc('0xf')](handleEntityNotFound(_0x1ec6e5,null))['then'](respondWithResult(_0x1ec6e5,null))['catch'](handleError(_0x1ec6e5,null));};exports['update']=function(_0x19f9de,_0x3192ba){if(_0x19f9de['body']['id']){delete _0x19f9de[_0x9fbc('0x62')]['id'];}var _0x483bbf=_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x63')]===_0x9fbc('0x64')?null:_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x63')];var _0x3acef5=_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3e')]||{};var _0x357f2e=_0x19f9de['body'][_0x9fbc('0x3f')]||{};if(_0x483bbf){_0x3acef5[_0x9fbc('0x38')]=getImapHost(_0x483bbf);_0x3acef5['port']=0x3e1;_0x357f2e['host']=getSmtpHost(_0x483bbf);_0x357f2e[_0x9fbc('0x39')]=0x24b;_0x357f2e[_0x9fbc('0x3a')]=![];}if(_0x357f2e[_0x9fbc('0x36')]){_0x357f2e[_0x9fbc('0x3a')]=![];}else{_0x357f2e['CloudProviderId']=null;}if(!_0x3acef5[_0x9fbc('0x36')])_0x3acef5[_0x9fbc('0x37')]=null;_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3e')]=_0x3acef5;_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3f')]=_0x357f2e;return db[_0x9fbc('0x44')]['find']({'where':{'id':_0x19f9de[_0x9fbc('0x65')]['id']},'include':[{'model':db[_0x9fbc('0x41')],'as':_0x9fbc('0x3e')},{'model':db['MailServerOut'],'as':_0x9fbc('0x3f')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x3192ba,null))[_0x9fbc('0xf')](function(_0x145195){if(!_0x145195)throw new Error(_0x9fbc('0x66'));if(_0x145195[_0x9fbc('0x3b')])delete _0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3e')];return _0x145195;})[_0x9fbc('0xf')](saveUpdates(_0x19f9de[_0x9fbc('0x62')],null))[_0x9fbc('0xf')](function(_0x1439d0){if(!_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3e')])return _0x1439d0;return db[_0x9fbc('0x41')][_0x9fbc('0x67')](_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3e')],{'where':{'MailAccountId':_0x1439d0['id']}})[_0x9fbc('0xf')](function(){return _0x1439d0;});})[_0x9fbc('0xf')](function(_0x295c2c){if(!_0x19f9de[_0x9fbc('0x62')][_0x9fbc('0x3f')])return _0x295c2c;return db[_0x9fbc('0x42')][_0x9fbc('0x67')](_0x19f9de['body'][_0x9fbc('0x3f')],{'where':{'MailAccountId':_0x295c2c['id']}})[_0x9fbc('0xf')](function(){return _0x295c2c;});})['then'](respondWithResult(_0x3192ba,null))['catch'](handleError(_0x3192ba,null));};exports[_0x9fbc('0x68')]=function(_0x51f665,_0x14067f){return db[_0x9fbc('0x44')]['describe']()['then'](respondWithResult(_0x14067f,null))[_0x9fbc('0x19')](handleError(_0x14067f,null));};exports[_0x9fbc('0x69')]=function(_0x1794ff,_0x3b2b51){if(_0x1794ff[_0x9fbc('0x62')]['id']){delete _0x1794ff[_0x9fbc('0x62')]['id'];}return db['MailAccount'][_0x9fbc('0x61')]({'where':{'id':_0x1794ff[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x3b2b51,null))[_0x9fbc('0xf')](function(_0x3275a2){if(_0x3275a2){_0x1794ff[_0x9fbc('0x62')][_0x9fbc('0x6a')]=_0x3275a2['id'];return db['Disposition']['create'](_0x1794ff[_0x9fbc('0x62')]);}})[_0x9fbc('0xf')](respondWithResult(_0x3b2b51,null))[_0x9fbc('0x19')](handleError(_0x3b2b51,null));};exports['getDispositions']=function(_0x359bcb,_0x3c167e){var _0x5dbeb2={'raw':![],'where':{}};var _0x29950f={};var _0x4a767d={'count':0x0,'rows':[]};return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x359bcb[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x3c167e,null))[_0x9fbc('0xf')](function(_0x43c54c){if(_0x43c54c){_0x29950f['model']=_[_0x9fbc('0x4b')](db[_0x9fbc('0x6c')]['rawAttributes']);_0x29950f['query']=_['keys'](_0x359bcb['query']);_0x29950f[_0x9fbc('0x4d')]=_[_0x9fbc('0x5e')](_0x29950f[_0x9fbc('0x49')],_0x29950f[_0x9fbc('0x4c')]);_0x5dbeb2[_0x9fbc('0x4f')]=_[_0x9fbc('0x5e')](_0x29950f[_0x9fbc('0x49')],qs[_0x9fbc('0x4e')](_0x359bcb[_0x9fbc('0x4c')][_0x9fbc('0x4e')]));_0x5dbeb2[_0x9fbc('0x4f')]=_0x5dbeb2[_0x9fbc('0x4f')][_0x9fbc('0x5f')]?_0x5dbeb2[_0x9fbc('0x4f')]:_0x29950f[_0x9fbc('0x49')];if(!_0x359bcb[_0x9fbc('0x4c')][_0x9fbc('0x6d')](_0x9fbc('0x50'))){_0x5dbeb2[_0x9fbc('0x1e')]=qs[_0x9fbc('0x1e')](_0x359bcb[_0x9fbc('0x4c')][_0x9fbc('0x1e')]);_0x5dbeb2[_0x9fbc('0x21')]=qs[_0x9fbc('0x21')](_0x359bcb['query'][_0x9fbc('0x21')]);}_0x5dbeb2[_0x9fbc('0x51')]=qs['sort'](_0x359bcb[_0x9fbc('0x4c')]['sort']);_0x5dbeb2['where']=qs[_0x9fbc('0x4d')](_[_0x9fbc('0x54')](_0x359bcb['query'],_0x29950f['filters']));_0x5dbeb2[_0x9fbc('0x53')][_0x9fbc('0x6a')]=_0x43c54c['id'];if(_0x359bcb['query'][_0x9fbc('0x55')]){_0x5dbeb2[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0x5dbeb2['where'],{'$or':_[_0x9fbc('0x4a')](_0x5dbeb2[_0x9fbc('0x4f')],function(_0x449f70){var _0x497390={};_0x497390[_0x449f70]={'$like':'%'+_0x359bcb[_0x9fbc('0x4c')][_0x9fbc('0x55')]+'%'};return _0x497390;})});}_0x5dbeb2=_[_0x9fbc('0x56')]({},_0x5dbeb2,_0x359bcb['options']);return db['Disposition'][_0x9fbc('0x20')]({'where':_0x5dbeb2[_0x9fbc('0x53')]})[_0x9fbc('0xf')](function(_0x5262d1){_0x4a767d[_0x9fbc('0x20')]=_0x5262d1;if(_0x359bcb[_0x9fbc('0x4c')][_0x9fbc('0x59')]){_0x5dbeb2['include']=[{'all':!![]}];}return db[_0x9fbc('0x6c')]['findAll'](_0x5dbeb2);})[_0x9fbc('0xf')](function(_0x471503){_0x4a767d[_0x9fbc('0x5b')]=_0x471503;return _0x4a767d;});}})[_0x9fbc('0xf')](respondWithFilteredResult(_0x3c167e,_0x5dbeb2))[_0x9fbc('0x19')](handleError(_0x3c167e,null));};exports[_0x9fbc('0x6e')]=function(_0xe2e162,_0x26ec3e){return db['MailAccount']['find']({'where':{'id':_0xe2e162[_0x9fbc('0x65')]['id']}})['then'](handleEntityNotFound(_0x26ec3e,null))[_0x9fbc('0xf')](function(_0x2fdecb){if(_0x2fdecb){return _0x2fdecb[_0x9fbc('0x6e')](_0xe2e162[_0x9fbc('0x4c')]['ids']);}})['then'](respondWithStatusCode(_0x26ec3e,null))['catch'](handleError(_0x26ec3e,null));};exports['addAnswer']=function(_0x2bc3a6,_0x14e119){if(_0x2bc3a6[_0x9fbc('0x62')]['id']){delete _0x2bc3a6[_0x9fbc('0x62')]['id'];}return db['MailAccount'][_0x9fbc('0x61')]({'where':{'id':_0x2bc3a6[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x14e119,null))[_0x9fbc('0xf')](function(_0x356eec){if(_0x356eec){_0x2bc3a6[_0x9fbc('0x62')]['MailAccountId']=_0x356eec['id'];return db['CannedAnswer'][_0x9fbc('0x6f')](_0x2bc3a6[_0x9fbc('0x62')]);}})[_0x9fbc('0xf')](respondWithResult(_0x14e119,null))[_0x9fbc('0x19')](handleError(_0x14e119,null));};exports[_0x9fbc('0x70')]=function(_0x2002e1,_0x22397f){var _0x9fa9bb={'raw':![],'where':{}};var _0x3537b4={};var _0x9b79bd={'count':0x0,'rows':[]};return db['MailAccount'][_0x9fbc('0x6b')]({'where':{'id':_0x2002e1[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x22397f,null))[_0x9fbc('0xf')](function(_0x1fbf3a){if(_0x1fbf3a){_0x3537b4[_0x9fbc('0x49')]=_[_0x9fbc('0x4b')](db['CannedAnswer'][_0x9fbc('0x45')]);_0x3537b4[_0x9fbc('0x4c')]=_[_0x9fbc('0x4b')](_0x2002e1[_0x9fbc('0x4c')]);_0x3537b4['filters']=_[_0x9fbc('0x5e')](_0x3537b4['model'],_0x3537b4[_0x9fbc('0x4c')]);_0x9fa9bb['attributes']=_[_0x9fbc('0x5e')](_0x3537b4['model'],qs[_0x9fbc('0x4e')](_0x2002e1[_0x9fbc('0x4c')][_0x9fbc('0x4e')]));_0x9fa9bb['attributes']=_0x9fa9bb[_0x9fbc('0x4f')]['length']?_0x9fa9bb['attributes']:_0x3537b4[_0x9fbc('0x49')];if(!_0x2002e1[_0x9fbc('0x4c')]['hasOwnProperty'](_0x9fbc('0x50'))){_0x9fa9bb[_0x9fbc('0x1e')]=qs[_0x9fbc('0x1e')](_0x2002e1[_0x9fbc('0x4c')][_0x9fbc('0x1e')]);_0x9fa9bb[_0x9fbc('0x21')]=qs[_0x9fbc('0x21')](_0x2002e1['query'][_0x9fbc('0x21')]);}_0x9fa9bb[_0x9fbc('0x51')]=qs[_0x9fbc('0x52')](_0x2002e1[_0x9fbc('0x4c')][_0x9fbc('0x52')]);_0x9fa9bb['where']=qs['filters'](_[_0x9fbc('0x54')](_0x2002e1[_0x9fbc('0x4c')],_0x3537b4[_0x9fbc('0x4d')]));_0x9fa9bb[_0x9fbc('0x53')][_0x9fbc('0x6a')]=_0x1fbf3a['id'];if(_0x2002e1['query']['filter']){_0x9fa9bb[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0x9fa9bb[_0x9fbc('0x53')],{'$or':_['map'](_0x9fa9bb[_0x9fbc('0x4f')],function(_0x203b22){var _0x562d5b={};_0x562d5b[_0x203b22]={'$like':'%'+_0x2002e1[_0x9fbc('0x4c')][_0x9fbc('0x55')]+'%'};return _0x562d5b;})});}_0x9fa9bb=_['merge']({},_0x9fa9bb,_0x2002e1[_0x9fbc('0x58')]);return db[_0x9fbc('0x71')][_0x9fbc('0x20')]({'where':_0x9fa9bb['where']})[_0x9fbc('0xf')](function(_0x217466){_0x9b79bd[_0x9fbc('0x20')]=_0x217466;if(_0x2002e1[_0x9fbc('0x4c')]['includeAll']){_0x9fa9bb[_0x9fbc('0x60')]=[{'all':!![]}];}return db[_0x9fbc('0x71')][_0x9fbc('0x5a')](_0x9fa9bb);})[_0x9fbc('0xf')](function(_0x4eaf31){_0x9b79bd[_0x9fbc('0x5b')]=_0x4eaf31;return _0x9b79bd;});}})[_0x9fbc('0xf')](respondWithFilteredResult(_0x22397f,_0x9fa9bb))['catch'](handleError(_0x22397f,null));};exports[_0x9fbc('0x72')]=function(_0x3e8508,_0x32cf01){return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x3e8508[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x32cf01,null))[_0x9fbc('0xf')](function(_0x165fd3){if(_0x165fd3){return _0x165fd3[_0x9fbc('0x72')](_0x3e8508[_0x9fbc('0x4c')][_0x9fbc('0x73')]);}})['then'](respondWithStatusCode(_0x32cf01,null))[_0x9fbc('0x19')](handleError(_0x32cf01,null));};exports[_0x9fbc('0x6f')]=function(_0x26a130,_0x5c70a6){var _0x87c9ee={'name':_0x26a130[_0x9fbc('0x62')]['name'],'key':_0x26a130[_0x9fbc('0x62')][_0x9fbc('0x48')],'provider':_0x26a130[_0x9fbc('0x62')][_0x9fbc('0x63')]===_0x9fbc('0x64')?null:_0x26a130['body'][_0x9fbc('0x63')],'email':_0x26a130['body']['email'],'ListId':_0x26a130['body'][_0x9fbc('0x74')],'active':!_['isNil'](_0x26a130[_0x9fbc('0x62')][_0x9fbc('0x75')])?_0x26a130[_0x9fbc('0x62')][_0x9fbc('0x75')]:!![],'description':_0x26a130[_0x9fbc('0x62')][_0x9fbc('0x76')]||null};var _0x29de3d=getAuthenticationOptions(_0x87c9ee['provider'],_0x26a130[_0x9fbc('0x62')]);_0x87c9ee['Imap']=_0x29de3d[_0x9fbc('0x3e')];_0x87c9ee['Smtp']=_0x29de3d[_0x9fbc('0x3f')];return db[_0x9fbc('0x44')][_0x9fbc('0x6f')](_0x87c9ee,{'include':[{'model':db[_0x9fbc('0x42')],'as':_0x9fbc('0x3f')},{'model':db[_0x9fbc('0x41')],'as':'Imap'}]})[_0x9fbc('0xf')](function(_0x707424){var _0xea2101=_0x26a130['user'][_0x9fbc('0x25')]({'plain':!![]});if(!_0xea2101)throw new Error(_0x9fbc('0x77'));if(_0xea2101[_0x9fbc('0x78')]===_0x9fbc('0x33')){var _0x1d0a6f=_0x707424['get']({'plain':!![]});return db[_0x9fbc('0x79')][_0x9fbc('0x61')]({'where':{'name':_0x9fbc('0x26'),'userProfileId':_0xea2101[_0x9fbc('0x7a')]},'raw':!![]})[_0x9fbc('0xf')](function(_0x444114){if(_0x444114&&_0x444114[_0x9fbc('0x7b')]===0x0){return db[_0x9fbc('0x27')][_0x9fbc('0x6f')]({'name':_0x1d0a6f[_0x9fbc('0x28')],'resourceId':_0x1d0a6f['id'],'type':_0x444114[_0x9fbc('0x28')],'sectionId':_0x444114['id']},{})[_0x9fbc('0xf')](function(){return _0x707424;});}else{return _0x707424;}})[_0x9fbc('0x19')](function(_0x4b7ebc){logger[_0x9fbc('0x15')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4b7ebc);throw _0x4b7ebc;});}return _0x707424;})[_0x9fbc('0xf')](respondWithResult(_0x5c70a6,0xc9))['catch'](handleError(_0x5c70a6,null));};exports[_0x9fbc('0x7c')]=function(_0x47427e,_0x346319){return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x47427e[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x346319,null))[_0x9fbc('0xf')](function(_0x44cc77){if(_0x44cc77){return _0x44cc77['getImap']();}return null;})[_0x9fbc('0xf')](respondWithResult(_0x346319,null))[_0x9fbc('0x19')](handleError(_0x346319,null));};exports[_0x9fbc('0x7d')]=function(_0x37dfce,_0x5c378c){if(_0x37dfce[_0x9fbc('0x62')]['id']){delete _0x37dfce[_0x9fbc('0x62')]['id'];}return db['MailAccount'][_0x9fbc('0x61')]({'where':{'id':_0x37dfce[_0x9fbc('0x65')]['id']}})['then'](handleEntityNotFound(_0x5c378c,null))['then'](function(_0x154842){if(_0x154842){_0x37dfce['body'][_0x9fbc('0x6a')]=_0x154842['id'];return db[_0x9fbc('0x41')]['create'](_0x37dfce['body']);}})[_0x9fbc('0xf')](respondWithResult(_0x5c378c,null))[_0x9fbc('0x19')](handleError(_0x5c378c,null));};exports[_0x9fbc('0x7e')]=function(_0x40f09d,_0x2d20cb){return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x40f09d[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x2d20cb,null))[_0x9fbc('0xf')](function(_0x2157b9){if(_0x2157b9){return _0x2157b9['setImap'](null);}return null;})[_0x9fbc('0xf')](respondWithStatusCode(_0x2d20cb,null))[_0x9fbc('0x19')](handleError(_0x2d20cb,null));};exports[_0x9fbc('0x7f')]=function(_0x46eb10,_0x268a65){return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x46eb10[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x268a65,null))[_0x9fbc('0xf')](function(_0x535909){if(_0x535909){return _0x535909[_0x9fbc('0x7f')]();}return null;})[_0x9fbc('0xf')](respondWithResult(_0x268a65,null))[_0x9fbc('0x19')](handleError(_0x268a65,null));};exports[_0x9fbc('0x80')]=function(_0x179416,_0x1eed53){if(_0x179416[_0x9fbc('0x62')]['id']){delete _0x179416['body']['id'];}return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x179416[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x1eed53,null))[_0x9fbc('0xf')](function(_0x3a8be6){if(_0x3a8be6){_0x179416[_0x9fbc('0x62')]['MailAccountId']=_0x3a8be6['id'];return db[_0x9fbc('0x42')][_0x9fbc('0x6f')](_0x179416[_0x9fbc('0x62')]);}})[_0x9fbc('0xf')](respondWithResult(_0x1eed53,null))[_0x9fbc('0x19')](handleError(_0x1eed53,null));};exports[_0x9fbc('0x81')]=function(_0x2f7df9,_0x52e3f3){return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x2f7df9[_0x9fbc('0x65')]['id']}})['then'](handleEntityNotFound(_0x52e3f3,null))[_0x9fbc('0xf')](function(_0x5bac86){if(_0x5bac86){return _0x5bac86[_0x9fbc('0x82')](null);}return null;})['then'](respondWithStatusCode(_0x52e3f3,null))[_0x9fbc('0x19')](handleError(_0x52e3f3,null));};exports[_0x9fbc('0x83')]=function(_0x58d922,_0x101d2e){return db[_0x9fbc('0x84')][_0x9fbc('0x61')]({'where':{'id':_0x58d922[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x101d2e,null))[_0x9fbc('0xf')](function(_0x2e101a){if(_0x2e101a){return _0x2e101a[_0x9fbc('0x83')](_0x58d922['body']['ids'],_['omit'](_0x58d922[_0x9fbc('0x62')],[_0x9fbc('0x73'),'id'])||{});}})[_0x9fbc('0xf')](respondWithResult(_0x101d2e,null))[_0x9fbc('0x19')](handleError(_0x101d2e,null));};exports[_0x9fbc('0x85')]=function(_0x2f7013,_0x5f5b34){var _0xa8ba8d={'raw':![],'where':{}};var _0x479249={};var _0x35e710={'count':0x0,'rows':[]};return db['MailAccount'][_0x9fbc('0x6b')]({'where':{'id':_0x2f7013['params']['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x5f5b34,null))['then'](function(_0xfc1a68){if(_0xfc1a68){_0x479249[_0x9fbc('0x49')]=_[_0x9fbc('0x4b')](db[_0x9fbc('0x84')][_0x9fbc('0x45')]);_0x479249['query']=_['keys'](_0x2f7013[_0x9fbc('0x4c')]);_0x479249[_0x9fbc('0x4d')]=_[_0x9fbc('0x5e')](_0x479249[_0x9fbc('0x49')],_0x479249[_0x9fbc('0x4c')]);_0xa8ba8d['attributes']=_[_0x9fbc('0x5e')](_0x479249[_0x9fbc('0x49')],qs['fields'](_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x4e')]));_0xa8ba8d[_0x9fbc('0x4f')]=_0xa8ba8d[_0x9fbc('0x4f')][_0x9fbc('0x5f')]?_0xa8ba8d[_0x9fbc('0x4f')]:_0x479249['model'];if(!_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x6d')](_0x9fbc('0x50'))){_0xa8ba8d[_0x9fbc('0x1e')]=qs[_0x9fbc('0x1e')](_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x1e')]);_0xa8ba8d['offset']=qs[_0x9fbc('0x21')](_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x21')]);}_0xa8ba8d[_0x9fbc('0x51')]=qs[_0x9fbc('0x52')](_0x2f7013['query'][_0x9fbc('0x52')]);_0xa8ba8d['where']=qs['filters'](_[_0x9fbc('0x54')](_0x2f7013[_0x9fbc('0x4c')],_0x479249[_0x9fbc('0x4d')]));_0xa8ba8d['where'][_0x9fbc('0x6a')]=_0xfc1a68['id'];if(_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x55')]){_0xa8ba8d['where']=_[_0x9fbc('0x56')](_0xa8ba8d[_0x9fbc('0x53')],{'$or':_[_0x9fbc('0x4a')](_0xa8ba8d[_0x9fbc('0x4f')],function(_0x58d62e){var _0x36f34a={};_0x36f34a[_0x58d62e]={'$like':'%'+_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x55')]+'%'};return _0x36f34a;})});}_0xa8ba8d=_[_0x9fbc('0x56')]({},_0xa8ba8d,_0x2f7013[_0x9fbc('0x58')]);return db[_0x9fbc('0x84')][_0x9fbc('0x20')]({'where':_0xa8ba8d[_0x9fbc('0x53')]})['then'](function(_0x1f7759){_0x35e710[_0x9fbc('0x20')]=_0x1f7759;if(_0x2f7013['query'][_0x9fbc('0x59')]){_0xa8ba8d[_0x9fbc('0x60')]=[{'model':db['CmContact'],'as':_0x9fbc('0x86'),'required':![]},{'model':db['User'],'as':'Owner','attributes':['name',_0x9fbc('0x87'),_0x9fbc('0x88')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x9fbc('0x28'),_0x9fbc('0x89')],'where':_0x2f7013['query'][_0x9fbc('0x8a')]?{'id':_0x2f7013[_0x9fbc('0x4c')][_0x9fbc('0x8a')]}:undefined,'required':_0x2f7013['query'][_0x9fbc('0x8a')]?!![]:![]}];}return db[_0x9fbc('0x84')]['findAll'](_0xa8ba8d);})[_0x9fbc('0xf')](function(_0x462641){_0x35e710[_0x9fbc('0x5b')]=_0x462641;return _0x35e710;});}})[_0x9fbc('0xf')](respondWithFilteredResult(_0x5f5b34,_0xa8ba8d))[_0x9fbc('0x19')](handleError(_0x5f5b34,null));};exports[_0x9fbc('0x8b')]=function addApplications(_0x35e04e,_0x23d6d8){var _0x3be80c=_0x35e04e[_0x9fbc('0x65')]['id'];var _0x32b7d5=_0x35e04e[_0x9fbc('0x62')];var _0x21e7a9=0xc8;var _0x5a2091=null;return db['sequelize'][_0x9fbc('0x8c')]({'isolationLevel':db[_0x9fbc('0x8d')][_0x9fbc('0x8e')][_0x9fbc('0x8f')]['READ_COMMITTED']},function(_0x4ad12e){return db[_0x9fbc('0x44')]['findOne']({'where':{'id':_0x3be80c},'transaction':_0x4ad12e})[_0x9fbc('0xf')](function(_0x3045d4){if(_0x3045d4){return db['MailApplication'][_0x9fbc('0x24')]({'where':{'MailAccountId':_0x3be80c},'transaction':_0x4ad12e})[_0x9fbc('0xf')](function(){var _0x53a3e6=_[_0x9fbc('0x4a')](_0x32b7d5,function(_0x54554d){_0x54554d['MailAccountId']=_0x3be80c;return _0x54554d;});return db['MailApplication']['bulkCreate'](_0x53a3e6,{'transaction':_0x4ad12e});});}else{_0x21e7a9=0x194;_0x5a2091=[];}});})[_0x9fbc('0xf')](function(){if(_0x21e7a9!==0x194){return db['MailApplication'][_0x9fbc('0x90')]({'where':{'MailAccountId':_0x3be80c},'order':'priority'})[_0x9fbc('0xf')](function(_0x378e2c){_0x5a2091=_0x378e2c;});}})[_0x9fbc('0x19')](function(_0x58c2bd){_0x21e7a9=0x1f4;logger[_0x9fbc('0x15')](_0x58c2bd[_0x9fbc('0x91')]);if(_0x58c2bd['name']){delete _0x58c2bd[_0x9fbc('0x28')];}_0x5a2091=_0x58c2bd;})[_0x9fbc('0x92')](function(){if(_0x5a2091===null){_0x23d6d8[_0x9fbc('0x1a')](_0x21e7a9);}else{if(_0x21e7a9===0x1f4){_0x23d6d8[_0x9fbc('0x1b')](_0x21e7a9)[_0x9fbc('0x29')](_0x5a2091);}else{_0x23d6d8[_0x9fbc('0x1b')](_0x21e7a9)[_0x9fbc('0x1d')](_0x5a2091);}}});};exports['getApplications']=function(_0x1c965c,_0x44105d){var _0xd231c3={};var _0x4af409={};var _0xf03802;var _0x3de82f;return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x1c965c[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x44105d,null))['then'](function(_0x153032){if(_0x153032){_0xf03802=_0x153032;_0x4af409['model']=_['keys'](db[_0x9fbc('0x93')][_0x9fbc('0x45')]);_0x4af409[_0x9fbc('0x4c')]=_[_0x9fbc('0x4b')](_0x1c965c['query']);_0x4af409[_0x9fbc('0x4d')]=_[_0x9fbc('0x5e')](_0x4af409[_0x9fbc('0x49')],_0x4af409['query']);_0xd231c3[_0x9fbc('0x4f')]=_['intersection'](_0x4af409[_0x9fbc('0x49')],qs[_0x9fbc('0x4e')](_0x1c965c[_0x9fbc('0x4c')]['fields']));_0xd231c3[_0x9fbc('0x4f')]=_0xd231c3[_0x9fbc('0x4f')]['length']?_0xd231c3['attributes']:_0x4af409[_0x9fbc('0x49')];_0xd231c3[_0x9fbc('0x51')]=qs[_0x9fbc('0x52')](_0x1c965c[_0x9fbc('0x4c')][_0x9fbc('0x52')]);_0xd231c3['where']=qs['filters'](_[_0x9fbc('0x54')](_0x1c965c['query'],_0x4af409['filters']));if(_0x1c965c['query'][_0x9fbc('0x55')]){_0xd231c3[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0xd231c3['where'],{'$or':_[_0x9fbc('0x4a')](_0xd231c3[_0x9fbc('0x4f')],function(_0x6f5bed){var _0x428948={};_0x428948[_0x6f5bed]={'$like':'%'+_0x1c965c[_0x9fbc('0x4c')]['filter']+'%'};return _0x428948;})});}_0xd231c3=_[_0x9fbc('0x56')]({},_0xd231c3,_0x1c965c[_0x9fbc('0x58')]);return _0xf03802['getApplications'](_0xd231c3);}})[_0x9fbc('0xf')](function(_0x43c5b6){if(_0x43c5b6){_0x3de82f=_0x43c5b6[_0x9fbc('0x5f')];if(!_0x1c965c['query'][_0x9fbc('0x6d')](_0x9fbc('0x50'))){_0xd231c3['limit']=qs[_0x9fbc('0x1e')](_0x1c965c[_0x9fbc('0x4c')][_0x9fbc('0x1e')]);_0xd231c3[_0x9fbc('0x21')]=qs['offset'](_0x1c965c[_0x9fbc('0x4c')][_0x9fbc('0x21')]);}return _0xf03802[_0x9fbc('0x94')](_0xd231c3);}})[_0x9fbc('0xf')](function(_0x1d343c){if(_0x1d343c){return _0x1d343c?{'count':_0x3de82f,'rows':_0x1d343c}:null;}})[_0x9fbc('0xf')](respondWithResult(_0x44105d,null))[_0x9fbc('0x19')](handleError(_0x44105d,null));};exports['getMessages']=function(_0x4470da,_0x74af66){var _0x4b32ea={'raw':!![],'where':{}};var _0x23139f={};var _0x74c7b2={'count':0x0,'rows':[]};return db['MailAccount'][_0x9fbc('0x6b')]({'where':{'id':_0x4470da[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x74af66,null))[_0x9fbc('0xf')](function(_0x23c11a){if(_0x23c11a){_0x23139f[_0x9fbc('0x49')]=_[_0x9fbc('0x4b')](db[_0x9fbc('0x95')][_0x9fbc('0x45')]);_0x23139f[_0x9fbc('0x4c')]=_[_0x9fbc('0x4b')](_0x4470da[_0x9fbc('0x4c')]);_0x23139f[_0x9fbc('0x4d')]=_[_0x9fbc('0x5e')](_0x23139f[_0x9fbc('0x49')],_0x23139f['query']);_0x4b32ea[_0x9fbc('0x4f')]=_[_0x9fbc('0x5e')](_0x23139f[_0x9fbc('0x49')],qs[_0x9fbc('0x4e')](_0x4470da[_0x9fbc('0x4c')]['fields']));_0x4b32ea[_0x9fbc('0x4f')]=_0x4b32ea[_0x9fbc('0x4f')][_0x9fbc('0x5f')]?_0x4b32ea[_0x9fbc('0x4f')]:_0x23139f[_0x9fbc('0x49')];if(!_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x6d')](_0x9fbc('0x50'))){_0x4b32ea[_0x9fbc('0x1e')]=qs[_0x9fbc('0x1e')](_0x4470da['query'][_0x9fbc('0x1e')]);_0x4b32ea['offset']=qs[_0x9fbc('0x21')](_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x21')]);}_0x4b32ea[_0x9fbc('0x51')]=qs['sort'](_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x52')]);_0x4b32ea['where']=qs[_0x9fbc('0x4d')](_[_0x9fbc('0x54')](_0x4470da[_0x9fbc('0x4c')],_0x23139f['filters']));_0x4b32ea['where'][_0x9fbc('0x6a')]=_0x23c11a['id'];if(_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x55')]){_0x4b32ea[_0x9fbc('0x53')]=_['merge'](_0x4b32ea['where'],{'$or':_[_0x9fbc('0x4a')](_0x4b32ea[_0x9fbc('0x4f')],function(_0x203f67){var _0x31f310={};_0x31f310[_0x203f67]={'$like':'%'+_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x55')]+'%'};return _0x31f310;})});}if(_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x96')]){var _0x2fda1f=_0x4470da[_0x9fbc('0x4c')]['$gte'][_0x9fbc('0x97')](',');var _0x6fc7fd={};_0x6fc7fd[_0x2fda1f[0x0]]={'$gte':moment(_0x2fda1f[0x1])['format'](_0x9fbc('0x98'))};_0x4b32ea[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0x4b32ea['where'],_0x6fc7fd);}_0x4b32ea=_['merge']({},_0x4b32ea,_0x4470da[_0x9fbc('0x58')]);return db[_0x9fbc('0x95')][_0x9fbc('0x20')]({'where':_0x4b32ea['where']})[_0x9fbc('0xf')](function(_0x2331eb){_0x74c7b2[_0x9fbc('0x20')]=_0x2331eb;if(_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x59')]){_0x4b32ea[_0x9fbc('0x60')]=[{'all':!![]}];}return db[_0x9fbc('0x95')]['findAll'](_0x4b32ea);})[_0x9fbc('0xf')](function(_0x603eb5){if(_0x4470da[_0x9fbc('0x4c')][_0x9fbc('0x99')]===_0x9fbc('0x9a')){for(var _0x52099d=0x0;_0x52099d<_0x603eb5['length'];_0x52099d++){_0x603eb5[_0x52099d][_0x9fbc('0x62')]=juice(_0x603eb5[_0x52099d]['body']);}}_0x74c7b2['rows']=_0x603eb5;return _0x74c7b2;});}})[_0x9fbc('0xf')](respondWithFilteredResult(_0x74af66,_0x4b32ea))[_0x9fbc('0x19')](handleError(_0x74af66,null));};exports[_0x9fbc('0x29')]=function(_0x52a186,_0x59adbf){var _0x4a403a,_0xf8484={},_0x483482;if(_0x52a186['body']['to']){_0x483482=_0x52a186[_0x9fbc('0x62')]['to'][_0x9fbc('0x97')](',')[0x0];}return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x52a186[_0x9fbc('0x65')]['id']},'include':[{'model':db['CmList'],'as':_0x9fbc('0x9b'),'include':[{'model':db['CmContact'],'as':_0x9fbc('0x9c'),'where':{'email':_0x483482},'limit':0x1,'order':[[_0x9fbc('0x9d'),'DESC']]}]},{'model':db[_0x9fbc('0x42')],'as':_0x9fbc('0x3f'),'raw':!![],'include':[{'model':db[_0x9fbc('0x9e')],'as':_0x9fbc('0x9e'),'raw':!![]}]}]})['then'](handleEntityNotFound(_0x59adbf,null))[_0x9fbc('0xf')](function(_0x340b23){if(!_0x340b23)return;_0x4a403a=_0x340b23;if(!_0x340b23[_0x9fbc('0x3f')])throw new Error(_0x9fbc('0x9f'));if(_[_0x9fbc('0xa0')](_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xa1')])){_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xa1')]=util[_0x9fbc('0xa2')]('%s\x20<%s>',_0x340b23[_0x9fbc('0x28')],_0x340b23[_0x9fbc('0xa3')]||_0x340b23[_0x9fbc('0x3f')][_0x9fbc('0x33')]);}if(_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xa4')]&&_0x52a186[_0x9fbc('0x62')]['attachments'][_0x9fbc('0x5f')]){for(var _0x1d5d9f=0x0;_0x1d5d9f<_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xa4')][_0x9fbc('0x5f')];_0x1d5d9f+=0x1){_0x52a186[_0x9fbc('0x62')]['attachments'][_0x1d5d9f]={'filename':_0x52a186[_0x9fbc('0x62')]['attachments'][_0x1d5d9f]['name'],'path':path[_0x9fbc('0xa5')](config[_0x9fbc('0xa6')],_0x9fbc('0xa7'),_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xa4')][_0x1d5d9f][_0x9fbc('0xa8')])};}}var _0x1e12d6=_0x340b23[_0x9fbc('0xa9')]();return respondWithRpcPromise(_0x9fbc('0xaa'),_0x9fbc('0xab'),{'account':_0x1e12d6,'message':_0x52a186['body']});})[_0x9fbc('0xf')](function(_0x3eb38f){if(!_0x3eb38f)return;_0xf8484=_0x3eb38f;if(!_0x4a403a['List'])throw new Error('List\x20not\x20found');if(_0x4a403a['List'][_0x9fbc('0x9c')]['length'])return _0x4a403a['List']['Contacts'][0x0];return db[_0x9fbc('0xac')][_0x9fbc('0x6f')](_[_0x9fbc('0xad')](_0x52a186[_0x9fbc('0x62')],{'firstName':_0x52a186[_0x9fbc('0x62')]['to'],'email':_0x52a186['body']['to'],'phone':_0x52a186[_0x9fbc('0x62')]['to'],'ListId':_0x4a403a[_0x9fbc('0x74')]}));})[_0x9fbc('0xf')](function(_0x55c35b){if(!_0x55c35b)return;var _0x4667dd={'UserId':_0x52a186[_0x9fbc('0x33')]['id'],'ContactId':_0x55c35b['id'],'MailAccountId':_0x4a403a['id'],'inReplyTo':_0xf8484[_0x9fbc('0xae')],'to':_0x52a186[_0x9fbc('0x62')]['from'],'cc':_0x52a186[_0x9fbc('0x62')]['cc'],'subject':_0x52a186['body'][_0x9fbc('0xaf')],'attach':_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xb0')],'firstMsgDirection':'out','lastMsgAt':moment()[_0x9fbc('0xa2')](_0x9fbc('0x98')),'lastMsgDirection':_0x9fbc('0xb1'),'Messages':[_[_0x9fbc('0x56')](_0x52a186[_0x9fbc('0x62')],{'messageId':_0xf8484[_0x9fbc('0xae')],'sentAt':moment()[_0x9fbc('0xa2')](_0x9fbc('0x98')),'read':!![],'MailAccountId':_0x4a403a['id'],'UserId':_0x52a186['user']['id'],'ContactId':_0x55c35b['id']})]};if(_0x52a186[_0x9fbc('0x62')][_0x9fbc('0xb2')]){_0x4667dd=_[_0x9fbc('0x56')](_0x4667dd,_0x52a186['body'][_0x9fbc('0xb2')]);}return db['MailInteraction'][_0x9fbc('0x6f')](_0x4667dd,{'include':[{'model':db[_0x9fbc('0x95')],'as':_0x9fbc('0xb3')}]});})[_0x9fbc('0xf')](respondWithResult(_0x59adbf,null))[_0x9fbc('0x19')](handleError(_0x59adbf,null));};exports[_0x9fbc('0xb4')]=function(_0xc490ee,_0x597e3c){return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0xc490ee[_0x9fbc('0x65')]['id']},'include':[{'model':db[_0x9fbc('0x42')],'as':'Smtp','raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]})[_0x9fbc('0xf')](handleEntityNotFound(_0x597e3c,null))['then'](function(_0x373171){if(!_0x373171[_0x9fbc('0x3f')])return;var _0x2e1d61=_0x373171['getSmtpOptions']();return respondWithRpcPromise('VerifySmtp','verifySmtp',{'account':_0x2e1d61});})[_0x9fbc('0xf')](respondWithResult(_0x597e3c,null))['catch'](handleError(_0x597e3c,null));};exports[_0x9fbc('0x24')]=function(_0x4cdba7,_0x431011){return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x4cdba7['params']['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x431011,null))['then'](function(_0x7883a1){if(_0x7883a1&&_0x7883a1[_0x9fbc('0x3b')]){throw new db[(_0x9fbc('0xb5'))][(_0x9fbc('0xb6'))](_0x9fbc('0xb7'));}return _0x7883a1;})['then'](removeEntity(_0x431011,null))[_0x9fbc('0x19')](handleError(_0x431011,null));};exports[_0x9fbc('0xb8')]=function(_0x21f874,_0x410b74){return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x21f874[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x410b74,null))['then'](function(_0x4ab22e){if(_0x4ab22e){return _0x4ab22e[_0x9fbc('0xb8')](_0x21f874[_0x9fbc('0x62')][_0x9fbc('0x73')],_[_0x9fbc('0xb9')](_0x21f874[_0x9fbc('0x62')],['ids','id'])||{})[_0x9fbc('0xba')](function(_0x56e20d){for(var _0x49ddf9=0x0;_0x49ddf9<_0x21f874[_0x9fbc('0x62')][_0x9fbc('0x73')]['length'];_0x49ddf9+=0x1){socket[_0x9fbc('0xbb')]('userMailAccount:save',{'UserId':Number(_0x21f874[_0x9fbc('0x62')]['ids'][_0x49ddf9]),'MailAccountId':Number(_0x21f874[_0x9fbc('0x65')]['id'])});}return _0x56e20d;});}})[_0x9fbc('0xf')](respondWithResult(_0x410b74,null))[_0x9fbc('0x19')](handleError(_0x410b74,null));};exports[_0x9fbc('0xbc')]=function(_0x338606,_0x1eac96){return db[_0x9fbc('0x44')][_0x9fbc('0x61')]({'where':{'id':_0x338606['params']['id']}})['then'](handleEntityNotFound(_0x1eac96,null))[_0x9fbc('0xf')](function(_0x42e463){if(_0x42e463){return _0x42e463[_0x9fbc('0xbc')](_0x338606['query'][_0x9fbc('0x73')])[_0x9fbc('0xf')](function(){if(_[_0x9fbc('0xbd')](_0x338606['query']['ids'])){for(var _0x4d44e3=0x0;_0x4d44e3<_0x338606[_0x9fbc('0x4c')][_0x9fbc('0x73')]['length'];_0x4d44e3+=0x1){socket[_0x9fbc('0xbb')](_0x9fbc('0xbe'),{'UserId':Number(_0x338606[_0x9fbc('0x4c')][_0x9fbc('0x73')][_0x4d44e3]),'MailAccountId':Number(_0x338606[_0x9fbc('0x65')]['id'])});}}else{socket[_0x9fbc('0xbb')]('userMailAccount:remove',{'UserId':Number(_0x338606[_0x9fbc('0x4c')][_0x9fbc('0x73')]),'MailAccountId':Number(_0x338606['params']['id'])});}});}})[_0x9fbc('0xf')](respondWithStatusCode(_0x1eac96,null))['catch'](handleError(_0x1eac96,null));};exports['getAgents']=function(_0x360c85,_0x59a872){var _0x216674={};var _0x4d5327={};var _0xe037ec;var _0x511e87;return db[_0x9fbc('0x44')][_0x9fbc('0x6b')]({'where':{'id':_0x360c85[_0x9fbc('0x65')]['id']}})[_0x9fbc('0xf')](handleEntityNotFound(_0x59a872,null))['then'](function(_0x544e7a){if(_0x544e7a){_0xe037ec=_0x544e7a;_0x4d5327[_0x9fbc('0x49')]=_[_0x9fbc('0x4b')](db[_0x9fbc('0xbf')][_0x9fbc('0x45')]);_0x4d5327['query']=_['keys'](_0x360c85[_0x9fbc('0x4c')]);_0x4d5327[_0x9fbc('0x4d')]=_[_0x9fbc('0x5e')](_0x4d5327[_0x9fbc('0x49')],_0x4d5327[_0x9fbc('0x4c')]);_0x216674[_0x9fbc('0x4f')]=_[_0x9fbc('0x5e')](_0x4d5327['model'],qs['fields'](_0x360c85[_0x9fbc('0x4c')][_0x9fbc('0x4e')]));_0x216674[_0x9fbc('0x4f')]=_0x216674['attributes'][_0x9fbc('0x5f')]?_0x216674['attributes']:_0x4d5327[_0x9fbc('0x49')];_0x216674[_0x9fbc('0x51')]=qs['sort'](_0x360c85[_0x9fbc('0x4c')][_0x9fbc('0x52')]);_0x216674[_0x9fbc('0x53')]=qs[_0x9fbc('0x4d')](_['pick'](_0x360c85[_0x9fbc('0x4c')],_0x4d5327[_0x9fbc('0x4d')]));if(_0x360c85['query']['filter']){_0x216674[_0x9fbc('0x53')]=_[_0x9fbc('0x56')](_0x216674['where'],{'$or':_[_0x9fbc('0x4a')](_0x216674['attributes'],function(_0x3f6909){var _0x532b8d={};_0x532b8d[_0x3f6909]={'$like':'%'+_0x360c85[_0x9fbc('0x4c')][_0x9fbc('0x55')]+'%'};return _0x532b8d;})});}_0x216674=_[_0x9fbc('0x56')]({},_0x216674,_0x360c85['options']);return _0xe037ec[_0x9fbc('0xc0')](_0x216674);}})['then'](function(_0x218703){if(_0x218703){_0x511e87=_0x218703[_0x9fbc('0x5f')];if(!_0x360c85[_0x9fbc('0x4c')]['hasOwnProperty']('nolimit')){_0x216674[_0x9fbc('0x1e')]=qs[_0x9fbc('0x1e')](_0x360c85[_0x9fbc('0x4c')][_0x9fbc('0x1e')]);_0x216674[_0x9fbc('0x21')]=qs[_0x9fbc('0x21')](_0x360c85[_0x9fbc('0x4c')][_0x9fbc('0x21')]);}return _0xe037ec[_0x9fbc('0xc0')](_0x216674);}})[_0x9fbc('0xf')](function(_0x4eb0ec){if(_0x4eb0ec){return _0x4eb0ec?{'count':_0x511e87,'rows':_0x4eb0ec}:null;}})[_0x9fbc('0xf')](respondWithResult(_0x59a872,null))[_0x9fbc('0x19')](handleError(_0x59a872,null));};