550d8c4e6329fbd8806f2955afad59e63337dbd5
[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 _0x1f6a=['userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findOne','getImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','CmContact','User','Owner','fullname','internal','Tag','Tags','color','tag','addApplications','transaction','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','priority','getApplications','getMessages','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','true','CmList','List','Contacts','DESC','CloudProvider','from','%s\x20<%s>','email','attachments','root','messageId','subject','attach','out','Interaction','Messages','verifySmtp','getSmtpOptions','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','removeAgents','isArray','userMailAccount:remove','getAgents','moment','bluebird','util','path','lodash','ioredis','../../components/parsers/qs','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','http','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','update','get','UserProfileResource','destroy','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.yahoo.com','smtp-mail.outlook.com','smtp.office365.com','user','username','pass','password','modernAuthentication','CloudProviderId','port','host','secure','service','authentication','Imap','Smtp','index','MailServerIn','MailServerOut','Pause','map','MailAccount','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','params','mandatoryDispositionPause','rawAttributes','fields','include','find','body','provider','custom','Mail\x20Account\x20not\x20found','describe','MailAccountId','getDispositions','Disposition','hasOwnProperty','order','rows','removeDispositions','addAnswer','CannedAnswer','getAnswers','removeAnswers','ids','create','ListId','active','description','UserProfileSection','MailAccounts'];(function(_0x1f6b4b,_0x39b510){var _0x33156f=function(_0x411eae){while(--_0x411eae){_0x1f6b4b['push'](_0x1f6b4b['shift']());}};_0x33156f(++_0x39b510);}(_0x1f6a,0x10c));var _0xa1f6=function(_0x487e2d,_0x1fe8ba){_0x487e2d=_0x487e2d-0x0;var _0xe4457c=_0x1f6a[_0x487e2d];return _0xe4457c;};'use strict';var moment=require(_0xa1f6('0x0'));var BPromise=require(_0xa1f6('0x1'));var util=require(_0xa1f6('0x2'));var path=require(_0xa1f6('0x3'));var _=require(_0xa1f6('0x4'));var juice=require('juice');var Redis=require(_0xa1f6('0x5'));var qs=require(_0xa1f6('0x6'));var logger=require('../../config/logger')(_0xa1f6('0x7'));var config=require('../../config/environment');var db=require(_0xa1f6('0x8'))['db'];config[_0xa1f6('0x9')]=_[_0xa1f6('0xa')](config[_0xa1f6('0x9')],{'host':_0xa1f6('0xb'),'port':0x18eb});var socket=require(_0xa1f6('0xc'))(new Redis(config[_0xa1f6('0x9')]));require(_0xa1f6('0xd'))[_0xa1f6('0xe')](socket);var jayson=require(_0xa1f6('0xf'));var client=jayson['client'][_0xa1f6('0x10')]({'port':0x232b});function respondWithRpcPromise(_0x94dbfe,_0x4ac429,_0x3252c3,_0x2bab77){return new BPromise(function(_0x2d1739,_0x79d82f){var _0x129ce7=_0x2bab77||client;return _0x129ce7['request'](_0x94dbfe,_0x3252c3)[_0xa1f6('0x11')](function(_0xde5e57){logger[_0xa1f6('0x12')](_0xa1f6('0x13'),_0x4ac429,_0xa1f6('0x14'));logger[_0xa1f6('0x15')](_0xa1f6('0x16'),_0x4ac429,_0xa1f6('0x14'),JSON[_0xa1f6('0x17')](_0xde5e57));if(_0xde5e57[_0xa1f6('0x18')]){if(_0xde5e57['error'][_0xa1f6('0x19')]===0x1f4){logger['error'](_0xa1f6('0x13'),_0x4ac429,_0xde5e57['error']['message']);return _0x79d82f(_0xde5e57[_0xa1f6('0x18')][_0xa1f6('0x1a')]);}logger[_0xa1f6('0x18')]('MailAccount,\x20%s,\x20%s',_0x4ac429,_0xde5e57[_0xa1f6('0x18')][_0xa1f6('0x1a')]);return _0x2d1739(_0xde5e57[_0xa1f6('0x18')][_0xa1f6('0x1a')]);}else{logger[_0xa1f6('0x12')](_0xa1f6('0x13'),_0x4ac429,_0xa1f6('0x14'));_0x2d1739(_0xde5e57[_0xa1f6('0x1b')][_0xa1f6('0x1a')]);}})[_0xa1f6('0x1c')](function(_0x3cc6f0){logger['error'](_0xa1f6('0x13'),_0x4ac429,_0x3cc6f0);_0x79d82f(_0x3cc6f0);});});}function respondWithStatusCode(_0x1a87ab,_0x9ed925){_0x9ed925=_0x9ed925||0xcc;return function(_0x1bfa53){if(_0x1bfa53){return _0x1a87ab[_0xa1f6('0x1d')](_0x9ed925);}return _0x1a87ab[_0xa1f6('0x1e')](_0x9ed925)[_0xa1f6('0x1f')]();};}function respondWithResult(_0x469fc1,_0x374d9d){_0x374d9d=_0x374d9d||0xc8;return function(_0x92e1ef){if(_0x92e1ef){return _0x469fc1[_0xa1f6('0x1e')](_0x374d9d)[_0xa1f6('0x20')](_0x92e1ef);}};}function respondWithFilteredResult(_0x270354,_0x418d50){return function(_0x277895){if(_0x277895){var _0x2862aa=typeof _0x418d50[_0xa1f6('0x21')]==='undefined'&&typeof _0x418d50[_0xa1f6('0x22')]===_0xa1f6('0x23');var _0x2b47ae=_0x277895['count'];var _0x2d8719=_0x2862aa?0x0:_0x418d50[_0xa1f6('0x21')];var _0x7128d0=_0x2862aa?_0x277895[_0xa1f6('0x24')]:_0x418d50['offset']+_0x418d50[_0xa1f6('0x22')];var _0x5517d;if(_0x7128d0>=_0x2b47ae){_0x7128d0=_0x2b47ae;_0x5517d=0xc8;}else{_0x5517d=0xce;}_0x270354[_0xa1f6('0x1e')](_0x5517d);return _0x270354['set'](_0xa1f6('0x25'),_0x2d8719+'-'+_0x7128d0+'/'+_0x2b47ae)['json'](_0x277895);}return null;};}function saveUpdates(_0x1fa497){return function(_0x142827){if(_0x142827){return _0x142827[_0xa1f6('0x26')](_0x1fa497)[_0xa1f6('0x11')](function(_0x29a55d){return _0x29a55d;});}return null;};}function removeEntity(_0x309336){return function(_0x12e9b8){if(_0x12e9b8){return _0x12e9b8['destroy']()[_0xa1f6('0x11')](function(){var _0x174913=_0x12e9b8[_0xa1f6('0x27')]({'plain':!![]});var _0x50fdf2='MailAccounts';return db[_0xa1f6('0x28')][_0xa1f6('0x29')]({'where':{'type':_0x50fdf2,'resourceId':_0x174913['id']}})['then'](function(){return _0x12e9b8;});})[_0xa1f6('0x11')](function(){_0x309336[_0xa1f6('0x1e')](0xcc)[_0xa1f6('0x1f')]();});}};}function handleEntityNotFound(_0x567a06){return function(_0x501400){if(!_0x501400){_0x567a06['sendStatus'](0x194);}return _0x501400;};}function handleError(_0x3b5204,_0x53a164){_0x53a164=_0x53a164||0x1f4;return function(_0x3593ae){logger['error'](_0x3593ae[_0xa1f6('0x2a')]);if(_0x3593ae[_0xa1f6('0x2b')]){delete _0x3593ae[_0xa1f6('0x2b')];}_0x3b5204[_0xa1f6('0x1e')](_0x53a164)[_0xa1f6('0x2c')](_0x3593ae);};}function getImapHost(_0x473524){switch(_0x473524){case _0xa1f6('0x2d'):return _0xa1f6('0x2e');case _0xa1f6('0x2f'):return _0xa1f6('0x30');case _0xa1f6('0x31'):return _0xa1f6('0x32');case _0xa1f6('0x33'):return _0xa1f6('0x34');}throw new Error(_0xa1f6('0x35'),_0x473524);}function getSmtpHost(_0x1826f7){switch(_0x1826f7){case'gmail':return _0xa1f6('0x36');case'yahoo':return _0xa1f6('0x37');case _0xa1f6('0x31'):return _0xa1f6('0x38');case _0xa1f6('0x33'):return _0xa1f6('0x39');}throw new Error(_0xa1f6('0x35'),_0x1826f7);}function getAuthenticationOptions(_0x1892bc,_0x33271a){var _0x3c6241={};var _0x555216={};if(_0x1892bc){_0x3c6241[_0xa1f6('0x3a')]=_0x555216[_0xa1f6('0x3a')]=_0x33271a[_0xa1f6('0x3b')];_0x3c6241['password']=_0x555216[_0xa1f6('0x3c')]=_0x33271a[_0xa1f6('0x3d')];if(_0x33271a[_0xa1f6('0x3e')]){_0x3c6241['modernAuthentication']=_0x555216['modernAuthentication']=!![];_0x3c6241['CloudProviderId']=_0x555216['CloudProviderId']=_0x33271a[_0xa1f6('0x3f')];_0x3c6241[_0xa1f6('0x3d')]=_0x555216[_0xa1f6('0x3c')]=null;}else{_0x3c6241['CloudProviderId']=_0x555216['CloudProviderId']=null;}_0x3c6241['host']=getImapHost(_0x1892bc);_0x3c6241[_0xa1f6('0x40')]=0x3e1;_0x555216[_0xa1f6('0x41')]=getSmtpHost(_0x1892bc);_0x555216['port']=0x24b;_0x555216[_0xa1f6('0x42')]=![];_0x3c6241[_0xa1f6('0x43')]=_0x555216['service']=null;}else{if(_0x33271a[_0xa1f6('0x44')]){_0x3c6241[_0xa1f6('0x3a')]=_0x555216[_0xa1f6('0x3a')]=_0x33271a[_0xa1f6('0x3b')];_0x3c6241['password']=_0x555216[_0xa1f6('0x3c')]=_0x33271a[_0xa1f6('0x3d')];}else{_0x3c6241['authentication']=_0x555216[_0xa1f6('0x44')]=![];_0x3c6241[_0xa1f6('0x3a')]=_0x555216[_0xa1f6('0x3a')]=null;_0x3c6241[_0xa1f6('0x3d')]=_0x555216[_0xa1f6('0x3c')]=null;}_0x3c6241[_0xa1f6('0x41')]=_0x33271a[_0xa1f6('0x45')]['host'];_0x3c6241['port']=_0x33271a['Imap']['port'];_0x555216[_0xa1f6('0x41')]=_0x33271a[_0xa1f6('0x46')][_0xa1f6('0x41')];_0x555216[_0xa1f6('0x40')]=_0x33271a[_0xa1f6('0x46')]['port'];}return{'Imap':_0x3c6241,'Smtp':_0x555216};}exports[_0xa1f6('0x47')]=function(_0x37ef4c,_0x578441){var _0x4d7ad7={'include':[{'model':db[_0xa1f6('0x48')],'as':_0xa1f6('0x45')},{'model':db[_0xa1f6('0x49')],'as':'Smtp'},{'model':db[_0xa1f6('0x4a')],'as':'mandatoryDispositionPause'}]},_0xe26f89={},_0x3ab6f0={'count':0x0,'rows':[]};var _0x4751e5=_[_0xa1f6('0x4b')](db[_0xa1f6('0x4c')]['rawAttributes'],function(_0x1d085b){return{'name':_0x1d085b[_0xa1f6('0x4d')],'type':_0x1d085b[_0xa1f6('0x4e')][_0xa1f6('0x4f')]};});_0xe26f89[_0xa1f6('0x50')]=_[_0xa1f6('0x4b')](_0x4751e5,_0xa1f6('0x2b'));_0xe26f89[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x37ef4c[_0xa1f6('0x51')]);_0xe26f89[_0xa1f6('0x53')]=_[_0xa1f6('0x54')](_0xe26f89['model'],_0xe26f89[_0xa1f6('0x51')]);_0x4d7ad7[_0xa1f6('0x55')]=_[_0xa1f6('0x54')](_0xe26f89[_0xa1f6('0x50')],qs['fields'](_0x37ef4c[_0xa1f6('0x51')]['fields']));_0x4d7ad7['attributes']=_0x4d7ad7[_0xa1f6('0x55')][_0xa1f6('0x56')]?_0x4d7ad7[_0xa1f6('0x55')]:_0xe26f89[_0xa1f6('0x50')];if(!_0x37ef4c[_0xa1f6('0x51')]['hasOwnProperty'](_0xa1f6('0x57'))){_0x4d7ad7['limit']=qs['limit'](_0x37ef4c[_0xa1f6('0x51')][_0xa1f6('0x22')]);_0x4d7ad7[_0xa1f6('0x21')]=qs[_0xa1f6('0x21')](_0x37ef4c['query'][_0xa1f6('0x21')]);}_0x4d7ad7['order']=qs[_0xa1f6('0x58')](_0x37ef4c[_0xa1f6('0x51')]['sort']);_0x4d7ad7[_0xa1f6('0x59')]=qs['filters'](_[_0xa1f6('0x5a')](_0x37ef4c[_0xa1f6('0x51')],_0xe26f89['filters']),_0x4751e5);if(_0x37ef4c[_0xa1f6('0x51')]['filter']){_0x4d7ad7['where']=_[_0xa1f6('0x5b')](_0x4d7ad7[_0xa1f6('0x59')],{'$or':_['map'](_0x4751e5,function(_0x328b83){if(_0x328b83[_0xa1f6('0x4e')]!==_0xa1f6('0x5c')){var _0x22c019={};_0x22c019[_0x328b83[_0xa1f6('0x2b')]]={'$like':'%'+_0x37ef4c['query'][_0xa1f6('0x5d')]+'%'};return _0x22c019;}})});}_0x4d7ad7=_[_0xa1f6('0x5b')]({},_0x4d7ad7,_0x37ef4c[_0xa1f6('0x5e')]);var _0x4f72ab={'where':_0x4d7ad7['where']};return db[_0xa1f6('0x4c')]['count'](_0x4f72ab)[_0xa1f6('0x11')](function(_0x3131f0){_0x3ab6f0[_0xa1f6('0x24')]=_0x3131f0;if(_0x37ef4c[_0xa1f6('0x51')][_0xa1f6('0x5f')]){_0x4d7ad7['include']=[{'all':!![]}];}return db[_0xa1f6('0x4c')][_0xa1f6('0x60')](_0x4d7ad7);})[_0xa1f6('0x11')](function(_0x2b287a){_0x3ab6f0['rows']=_0x2b287a;return _0x3ab6f0;})[_0xa1f6('0x11')](respondWithFilteredResult(_0x578441,_0x4d7ad7))[_0xa1f6('0x1c')](handleError(_0x578441,null));};exports['show']=function(_0x5276cf,_0x2188e7){var _0x566b44={'raw':![],'where':{'id':_0x5276cf[_0xa1f6('0x61')]['id']},'include':[{'model':db['MailServerIn'],'as':_0xa1f6('0x45')},{'model':db[_0xa1f6('0x49')],'as':_0xa1f6('0x46')},{'model':db['Pause'],'as':_0xa1f6('0x62')}]},_0x5fb58c={};_0x5fb58c[_0xa1f6('0x50')]=_[_0xa1f6('0x52')](db[_0xa1f6('0x4c')][_0xa1f6('0x63')]);_0x5fb58c[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x5276cf[_0xa1f6('0x51')]);_0x5fb58c['filters']=_['intersection'](_0x5fb58c[_0xa1f6('0x50')],_0x5fb58c['query']);_0x566b44['attributes']=_[_0xa1f6('0x54')](_0x5fb58c[_0xa1f6('0x50')],qs[_0xa1f6('0x64')](_0x5276cf['query'][_0xa1f6('0x64')]));_0x566b44['attributes']=_0x566b44[_0xa1f6('0x55')][_0xa1f6('0x56')]?_0x566b44[_0xa1f6('0x55')]:_0x5fb58c[_0xa1f6('0x50')];if(_0x5276cf[_0xa1f6('0x51')][_0xa1f6('0x5f')]){_0x566b44[_0xa1f6('0x65')]=[{'all':!![]}];}_0x566b44=_['merge']({},_0x566b44,_0x5276cf[_0xa1f6('0x5e')]);return db[_0xa1f6('0x4c')][_0xa1f6('0x66')](_0x566b44)[_0xa1f6('0x11')](handleEntityNotFound(_0x2188e7,null))['then'](respondWithResult(_0x2188e7,null))[_0xa1f6('0x1c')](handleError(_0x2188e7,null));};exports[_0xa1f6('0x26')]=function(_0x4610ac,_0x140eff){if(_0x4610ac[_0xa1f6('0x67')]['id']){delete _0x4610ac[_0xa1f6('0x67')]['id'];}var _0x5da693=_0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x68')]===_0xa1f6('0x69')?null:_0x4610ac[_0xa1f6('0x67')]['provider'];var _0x177e67=_0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x45')]||{};var _0x1a4705=_0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x46')]||{};if(_0x5da693){_0x177e67['host']=getImapHost(_0x5da693);_0x177e67[_0xa1f6('0x40')]=0x3e1;_0x1a4705[_0xa1f6('0x41')]=getSmtpHost(_0x5da693);_0x1a4705[_0xa1f6('0x40')]=0x24b;_0x1a4705[_0xa1f6('0x42')]=![];}if(_0x1a4705[_0xa1f6('0x3e')]){_0x1a4705[_0xa1f6('0x42')]=![];}else{_0x1a4705['CloudProviderId']=null;}if(!_0x177e67[_0xa1f6('0x3e')])_0x177e67[_0xa1f6('0x3f')]=null;_0x4610ac[_0xa1f6('0x67')]['Imap']=_0x177e67;_0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x46')]=_0x1a4705;return db['MailAccount']['find']({'where':{'id':_0x4610ac[_0xa1f6('0x61')]['id']},'include':[{'model':db[_0xa1f6('0x48')],'as':'Imap'},{'model':db[_0xa1f6('0x49')],'as':_0xa1f6('0x46')},{'model':db[_0xa1f6('0x4a')],'as':_0xa1f6('0x62')}]})[_0xa1f6('0x11')](handleEntityNotFound(_0x140eff,null))[_0xa1f6('0x11')](function(_0x2cb683){if(!_0x2cb683)throw new Error(_0xa1f6('0x6a'));if(_0x2cb683['service'])delete _0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x45')];return _0x2cb683;})[_0xa1f6('0x11')](saveUpdates(_0x4610ac[_0xa1f6('0x67')],null))[_0xa1f6('0x11')](function(_0x170637){if(!_0x4610ac[_0xa1f6('0x67')]['Imap'])return _0x170637;return db['MailServerIn']['update'](_0x4610ac[_0xa1f6('0x67')]['Imap'],{'where':{'MailAccountId':_0x170637['id']}})['then'](function(){return _0x170637;});})[_0xa1f6('0x11')](function(_0x3aa7d1){if(!_0x4610ac[_0xa1f6('0x67')]['Smtp'])return _0x3aa7d1;return db[_0xa1f6('0x49')]['update'](_0x4610ac[_0xa1f6('0x67')][_0xa1f6('0x46')],{'where':{'MailAccountId':_0x3aa7d1['id']}})[_0xa1f6('0x11')](function(){return _0x3aa7d1;});})['then'](respondWithResult(_0x140eff,null))[_0xa1f6('0x1c')](handleError(_0x140eff,null));};exports[_0xa1f6('0x6b')]=function(_0x3b750d,_0x45cfa8){return db[_0xa1f6('0x4c')][_0xa1f6('0x6b')]()[_0xa1f6('0x11')](respondWithResult(_0x45cfa8,null))[_0xa1f6('0x1c')](handleError(_0x45cfa8,null));};exports['addDisposition']=function(_0x261a1a,_0x5d8455){if(_0x261a1a[_0xa1f6('0x67')]['id']){delete _0x261a1a[_0xa1f6('0x67')]['id'];}return db['MailAccount'][_0xa1f6('0x66')]({'where':{'id':_0x261a1a['params']['id']}})['then'](handleEntityNotFound(_0x5d8455,null))['then'](function(_0x23a7e0){if(_0x23a7e0){_0x261a1a['body'][_0xa1f6('0x6c')]=_0x23a7e0['id'];return db['Disposition']['create'](_0x261a1a[_0xa1f6('0x67')]);}})[_0xa1f6('0x11')](respondWithResult(_0x5d8455,null))[_0xa1f6('0x1c')](handleError(_0x5d8455,null));};exports[_0xa1f6('0x6d')]=function(_0x19e7c3,_0x2bb4fc){var _0x52d84d={'raw':![],'where':{}};var _0x55ed8f={};var _0x5f1126={'count':0x0,'rows':[]};return db['MailAccount']['findOne']({'where':{'id':_0x19e7c3[_0xa1f6('0x61')]['id']}})['then'](handleEntityNotFound(_0x2bb4fc,null))['then'](function(_0x13360c){if(_0x13360c){_0x55ed8f[_0xa1f6('0x50')]=_[_0xa1f6('0x52')](db[_0xa1f6('0x6e')][_0xa1f6('0x63')]);_0x55ed8f[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x19e7c3[_0xa1f6('0x51')]);_0x55ed8f[_0xa1f6('0x53')]=_[_0xa1f6('0x54')](_0x55ed8f[_0xa1f6('0x50')],_0x55ed8f[_0xa1f6('0x51')]);_0x52d84d[_0xa1f6('0x55')]=_[_0xa1f6('0x54')](_0x55ed8f[_0xa1f6('0x50')],qs['fields'](_0x19e7c3[_0xa1f6('0x51')][_0xa1f6('0x64')]));_0x52d84d[_0xa1f6('0x55')]=_0x52d84d[_0xa1f6('0x55')][_0xa1f6('0x56')]?_0x52d84d[_0xa1f6('0x55')]:_0x55ed8f[_0xa1f6('0x50')];if(!_0x19e7c3['query'][_0xa1f6('0x6f')](_0xa1f6('0x57'))){_0x52d84d[_0xa1f6('0x22')]=qs[_0xa1f6('0x22')](_0x19e7c3[_0xa1f6('0x51')]['limit']);_0x52d84d[_0xa1f6('0x21')]=qs[_0xa1f6('0x21')](_0x19e7c3['query']['offset']);}_0x52d84d[_0xa1f6('0x70')]=qs[_0xa1f6('0x58')](_0x19e7c3[_0xa1f6('0x51')]['sort']);_0x52d84d[_0xa1f6('0x59')]=qs[_0xa1f6('0x53')](_['pick'](_0x19e7c3[_0xa1f6('0x51')],_0x55ed8f[_0xa1f6('0x53')]));_0x52d84d[_0xa1f6('0x59')][_0xa1f6('0x6c')]=_0x13360c['id'];if(_0x19e7c3[_0xa1f6('0x51')][_0xa1f6('0x5d')]){_0x52d84d[_0xa1f6('0x59')]=_[_0xa1f6('0x5b')](_0x52d84d[_0xa1f6('0x59')],{'$or':_[_0xa1f6('0x4b')](_0x52d84d['attributes'],function(_0x597ba2){var _0x1a5c24={};_0x1a5c24[_0x597ba2]={'$like':'%'+_0x19e7c3[_0xa1f6('0x51')][_0xa1f6('0x5d')]+'%'};return _0x1a5c24;})});}_0x52d84d=_['merge']({},_0x52d84d,_0x19e7c3[_0xa1f6('0x5e')]);return db[_0xa1f6('0x6e')]['count']({'where':_0x52d84d[_0xa1f6('0x59')]})[_0xa1f6('0x11')](function(_0x14339b){_0x5f1126['count']=_0x14339b;if(_0x19e7c3[_0xa1f6('0x51')][_0xa1f6('0x5f')]){_0x52d84d[_0xa1f6('0x65')]=[{'all':!![]}];}return db[_0xa1f6('0x6e')]['findAll'](_0x52d84d);})['then'](function(_0x4d0cad){_0x5f1126[_0xa1f6('0x71')]=_0x4d0cad;return _0x5f1126;});}})[_0xa1f6('0x11')](respondWithFilteredResult(_0x2bb4fc,_0x52d84d))[_0xa1f6('0x1c')](handleError(_0x2bb4fc,null));};exports[_0xa1f6('0x72')]=function(_0x5616ba,_0x121057){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x5616ba['params']['id']}})['then'](handleEntityNotFound(_0x121057,null))['then'](function(_0x181535){if(_0x181535){return _0x181535[_0xa1f6('0x72')](_0x5616ba[_0xa1f6('0x51')]['ids']);}})[_0xa1f6('0x11')](respondWithStatusCode(_0x121057,null))[_0xa1f6('0x1c')](handleError(_0x121057,null));};exports[_0xa1f6('0x73')]=function(_0x38c0e4,_0x5c8ef4){if(_0x38c0e4[_0xa1f6('0x67')]['id']){delete _0x38c0e4[_0xa1f6('0x67')]['id'];}return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x38c0e4[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x5c8ef4,null))[_0xa1f6('0x11')](function(_0x4821a7){if(_0x4821a7){_0x38c0e4[_0xa1f6('0x67')][_0xa1f6('0x6c')]=_0x4821a7['id'];return db[_0xa1f6('0x74')]['create'](_0x38c0e4[_0xa1f6('0x67')]);}})['then'](respondWithResult(_0x5c8ef4,null))[_0xa1f6('0x1c')](handleError(_0x5c8ef4,null));};exports[_0xa1f6('0x75')]=function(_0x1f59fc,_0x57f6a1){var _0x3aff1f={'raw':![],'where':{}};var _0x209917={};var _0x116eac={'count':0x0,'rows':[]};return db[_0xa1f6('0x4c')]['findOne']({'where':{'id':_0x1f59fc['params']['id']}})['then'](handleEntityNotFound(_0x57f6a1,null))['then'](function(_0xf5423){if(_0xf5423){_0x209917[_0xa1f6('0x50')]=_[_0xa1f6('0x52')](db['CannedAnswer'][_0xa1f6('0x63')]);_0x209917[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x1f59fc[_0xa1f6('0x51')]);_0x209917[_0xa1f6('0x53')]=_[_0xa1f6('0x54')](_0x209917[_0xa1f6('0x50')],_0x209917[_0xa1f6('0x51')]);_0x3aff1f[_0xa1f6('0x55')]=_[_0xa1f6('0x54')](_0x209917[_0xa1f6('0x50')],qs['fields'](_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x64')]));_0x3aff1f['attributes']=_0x3aff1f[_0xa1f6('0x55')]['length']?_0x3aff1f[_0xa1f6('0x55')]:_0x209917['model'];if(!_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x6f')](_0xa1f6('0x57'))){_0x3aff1f['limit']=qs[_0xa1f6('0x22')](_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x22')]);_0x3aff1f[_0xa1f6('0x21')]=qs[_0xa1f6('0x21')](_0x1f59fc[_0xa1f6('0x51')]['offset']);}_0x3aff1f[_0xa1f6('0x70')]=qs[_0xa1f6('0x58')](_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x58')]);_0x3aff1f['where']=qs[_0xa1f6('0x53')](_[_0xa1f6('0x5a')](_0x1f59fc[_0xa1f6('0x51')],_0x209917[_0xa1f6('0x53')]));_0x3aff1f[_0xa1f6('0x59')][_0xa1f6('0x6c')]=_0xf5423['id'];if(_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x5d')]){_0x3aff1f[_0xa1f6('0x59')]=_[_0xa1f6('0x5b')](_0x3aff1f[_0xa1f6('0x59')],{'$or':_[_0xa1f6('0x4b')](_0x3aff1f[_0xa1f6('0x55')],function(_0x4799aa){var _0x2f939b={};_0x2f939b[_0x4799aa]={'$like':'%'+_0x1f59fc['query'][_0xa1f6('0x5d')]+'%'};return _0x2f939b;})});}_0x3aff1f=_[_0xa1f6('0x5b')]({},_0x3aff1f,_0x1f59fc[_0xa1f6('0x5e')]);return db['CannedAnswer'][_0xa1f6('0x24')]({'where':_0x3aff1f[_0xa1f6('0x59')]})[_0xa1f6('0x11')](function(_0x9d35a2){_0x116eac[_0xa1f6('0x24')]=_0x9d35a2;if(_0x1f59fc[_0xa1f6('0x51')][_0xa1f6('0x5f')]){_0x3aff1f[_0xa1f6('0x65')]=[{'all':!![]}];}return db['CannedAnswer'][_0xa1f6('0x60')](_0x3aff1f);})[_0xa1f6('0x11')](function(_0x37de42){_0x116eac[_0xa1f6('0x71')]=_0x37de42;return _0x116eac;});}})[_0xa1f6('0x11')](respondWithFilteredResult(_0x57f6a1,_0x3aff1f))[_0xa1f6('0x1c')](handleError(_0x57f6a1,null));};exports['removeAnswers']=function(_0x331693,_0x415515){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x331693['params']['id']}})['then'](handleEntityNotFound(_0x415515,null))[_0xa1f6('0x11')](function(_0x46f7af){if(_0x46f7af){return _0x46f7af[_0xa1f6('0x76')](_0x331693[_0xa1f6('0x51')][_0xa1f6('0x77')]);}})[_0xa1f6('0x11')](respondWithStatusCode(_0x415515,null))['catch'](handleError(_0x415515,null));};exports[_0xa1f6('0x78')]=function(_0x2234e6,_0x379d2b){var _0x49c5c3={'name':_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x2b')],'key':_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x4f')],'provider':_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x68')]==='custom'?null:_0x2234e6[_0xa1f6('0x67')]['provider'],'email':_0x2234e6[_0xa1f6('0x67')]['email'],'ListId':_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x79')],'active':!_['isNil'](_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x7a')])?_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x7a')]:!![],'description':_0x2234e6[_0xa1f6('0x67')][_0xa1f6('0x7b')]||null};var _0x170270=getAuthenticationOptions(_0x49c5c3[_0xa1f6('0x68')],_0x2234e6[_0xa1f6('0x67')]);_0x49c5c3[_0xa1f6('0x45')]=_0x170270[_0xa1f6('0x45')];_0x49c5c3[_0xa1f6('0x46')]=_0x170270[_0xa1f6('0x46')];return db[_0xa1f6('0x4c')][_0xa1f6('0x78')](_0x49c5c3,{'include':[{'model':db['MailServerOut'],'as':_0xa1f6('0x46')},{'model':db[_0xa1f6('0x48')],'as':_0xa1f6('0x45')}]})['then'](function(_0x3766d4){var _0x49a05b=_0x2234e6['user'][_0xa1f6('0x27')]({'plain':!![]});if(!_0x49a05b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x49a05b['role']===_0xa1f6('0x3a')){var _0x2115b7=_0x3766d4[_0xa1f6('0x27')]({'plain':!![]});return db[_0xa1f6('0x7c')][_0xa1f6('0x66')]({'where':{'name':_0xa1f6('0x7d'),'userProfileId':_0x49a05b[_0xa1f6('0x7e')]},'raw':!![]})[_0xa1f6('0x11')](function(_0x1f27ac){if(_0x1f27ac&&_0x1f27ac[_0xa1f6('0x7f')]===0x0){return db['UserProfileResource'][_0xa1f6('0x78')]({'name':_0x2115b7[_0xa1f6('0x2b')],'resourceId':_0x2115b7['id'],'type':_0x1f27ac[_0xa1f6('0x2b')],'sectionId':_0x1f27ac['id']},{})[_0xa1f6('0x11')](function(){return _0x3766d4;});}else{return _0x3766d4;}})[_0xa1f6('0x1c')](function(_0x458e25){logger[_0xa1f6('0x18')](_0xa1f6('0x80'),_0x458e25);throw _0x458e25;});}return _0x3766d4;})[_0xa1f6('0x11')](respondWithResult(_0x379d2b,0xc9))[_0xa1f6('0x1c')](handleError(_0x379d2b,null));};exports['getImap']=function(_0x5b7ba0,_0x4fc43a){return db[_0xa1f6('0x4c')][_0xa1f6('0x81')]({'where':{'id':_0x5b7ba0[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x4fc43a,null))[_0xa1f6('0x11')](function(_0x2e2fa6){if(_0x2e2fa6){return _0x2e2fa6[_0xa1f6('0x82')]();}return null;})['then'](respondWithResult(_0x4fc43a,null))[_0xa1f6('0x1c')](handleError(_0x4fc43a,null));};exports['addImap']=function(_0x42408b,_0x462653){if(_0x42408b[_0xa1f6('0x67')]['id']){delete _0x42408b[_0xa1f6('0x67')]['id'];}return db[_0xa1f6('0x4c')]['find']({'where':{'id':_0x42408b[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x462653,null))['then'](function(_0x1391df){if(_0x1391df){_0x42408b['body']['MailAccountId']=_0x1391df['id'];return db[_0xa1f6('0x48')]['create'](_0x42408b[_0xa1f6('0x67')]);}})[_0xa1f6('0x11')](respondWithResult(_0x462653,null))[_0xa1f6('0x1c')](handleError(_0x462653,null));};exports[_0xa1f6('0x83')]=function(_0x473d1a,_0xdb1453){return db[_0xa1f6('0x4c')][_0xa1f6('0x81')]({'where':{'id':_0x473d1a[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0xdb1453,null))[_0xa1f6('0x11')](function(_0x2e1b5a){if(_0x2e1b5a){return _0x2e1b5a[_0xa1f6('0x84')](null);}return null;})['then'](respondWithStatusCode(_0xdb1453,null))[_0xa1f6('0x1c')](handleError(_0xdb1453,null));};exports['getSmtp']=function(_0x4466da,_0x29a361){return db[_0xa1f6('0x4c')][_0xa1f6('0x81')]({'where':{'id':_0x4466da[_0xa1f6('0x61')]['id']}})['then'](handleEntityNotFound(_0x29a361,null))['then'](function(_0x530a74){if(_0x530a74){return _0x530a74[_0xa1f6('0x85')]();}return null;})['then'](respondWithResult(_0x29a361,null))[_0xa1f6('0x1c')](handleError(_0x29a361,null));};exports[_0xa1f6('0x86')]=function(_0x1b965c,_0x457e64){if(_0x1b965c[_0xa1f6('0x67')]['id']){delete _0x1b965c[_0xa1f6('0x67')]['id'];}return db[_0xa1f6('0x4c')]['find']({'where':{'id':_0x1b965c['params']['id']}})['then'](handleEntityNotFound(_0x457e64,null))[_0xa1f6('0x11')](function(_0x3cb50b){if(_0x3cb50b){_0x1b965c['body']['MailAccountId']=_0x3cb50b['id'];return db[_0xa1f6('0x49')][_0xa1f6('0x78')](_0x1b965c['body']);}})[_0xa1f6('0x11')](respondWithResult(_0x457e64,null))[_0xa1f6('0x1c')](handleError(_0x457e64,null));};exports[_0xa1f6('0x87')]=function(_0x2017ee,_0x5876e6){return db['MailAccount'][_0xa1f6('0x81')]({'where':{'id':_0x2017ee['params']['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x5876e6,null))['then'](function(_0x9a9145){if(_0x9a9145){return _0x9a9145[_0xa1f6('0x88')](null);}return null;})[_0xa1f6('0x11')](respondWithStatusCode(_0x5876e6,null))[_0xa1f6('0x1c')](handleError(_0x5876e6,null));};exports[_0xa1f6('0x89')]=function(_0x129ab9,_0x115b3f){return db[_0xa1f6('0x8a')][_0xa1f6('0x66')]({'where':{'id':_0x129ab9['params']['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x115b3f,null))[_0xa1f6('0x11')](function(_0x571440){if(_0x571440){return _0x571440[_0xa1f6('0x89')](_0x129ab9[_0xa1f6('0x67')][_0xa1f6('0x77')],_[_0xa1f6('0x8b')](_0x129ab9[_0xa1f6('0x67')],[_0xa1f6('0x77'),'id'])||{});}})[_0xa1f6('0x11')](respondWithResult(_0x115b3f,null))[_0xa1f6('0x1c')](handleError(_0x115b3f,null));};exports[_0xa1f6('0x8c')]=function(_0x599b15,_0x374e13){var _0x3c681e={'raw':![],'where':{}};var _0x8a43d9={};var _0x1671d9={'count':0x0,'rows':[]};return db[_0xa1f6('0x4c')]['findOne']({'where':{'id':_0x599b15[_0xa1f6('0x61')]['id']}})['then'](handleEntityNotFound(_0x374e13,null))[_0xa1f6('0x11')](function(_0x39da55){if(_0x39da55){_0x8a43d9[_0xa1f6('0x50')]=_[_0xa1f6('0x52')](db[_0xa1f6('0x8a')][_0xa1f6('0x63')]);_0x8a43d9['query']=_[_0xa1f6('0x52')](_0x599b15[_0xa1f6('0x51')]);_0x8a43d9[_0xa1f6('0x53')]=_[_0xa1f6('0x54')](_0x8a43d9[_0xa1f6('0x50')],_0x8a43d9[_0xa1f6('0x51')]);_0x3c681e[_0xa1f6('0x55')]=_[_0xa1f6('0x54')](_0x8a43d9[_0xa1f6('0x50')],qs[_0xa1f6('0x64')](_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x64')]));_0x3c681e[_0xa1f6('0x55')]=_0x3c681e[_0xa1f6('0x55')][_0xa1f6('0x56')]?_0x3c681e[_0xa1f6('0x55')]:_0x8a43d9['model'];if(!_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x6f')](_0xa1f6('0x57'))){_0x3c681e[_0xa1f6('0x22')]=qs['limit'](_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x22')]);_0x3c681e[_0xa1f6('0x21')]=qs[_0xa1f6('0x21')](_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x21')]);}_0x3c681e[_0xa1f6('0x70')]=qs['sort'](_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x58')]);_0x3c681e['where']=qs[_0xa1f6('0x53')](_[_0xa1f6('0x5a')](_0x599b15[_0xa1f6('0x51')],_0x8a43d9[_0xa1f6('0x53')]));_0x3c681e[_0xa1f6('0x59')][_0xa1f6('0x6c')]=_0x39da55['id'];if(_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x5d')]){_0x3c681e['where']=_[_0xa1f6('0x5b')](_0x3c681e['where'],{'$or':_[_0xa1f6('0x4b')](_0x3c681e[_0xa1f6('0x55')],function(_0x38a854){var _0x4cf641={};_0x4cf641[_0x38a854]={'$like':'%'+_0x599b15[_0xa1f6('0x51')]['filter']+'%'};return _0x4cf641;})});}_0x3c681e=_[_0xa1f6('0x5b')]({},_0x3c681e,_0x599b15[_0xa1f6('0x5e')]);return db[_0xa1f6('0x8a')][_0xa1f6('0x24')]({'where':_0x3c681e[_0xa1f6('0x59')]})[_0xa1f6('0x11')](function(_0x347114){_0x1671d9['count']=_0x347114;if(_0x599b15['query'][_0xa1f6('0x5f')]){_0x3c681e[_0xa1f6('0x65')]=[{'model':db[_0xa1f6('0x8d')],'as':'Contact','required':![]},{'model':db[_0xa1f6('0x8e')],'as':_0xa1f6('0x8f'),'attributes':['name',_0xa1f6('0x90'),_0xa1f6('0x91')],'required':![]},{'model':db[_0xa1f6('0x92')],'as':_0xa1f6('0x93'),'attributes':['id',_0xa1f6('0x2b'),_0xa1f6('0x94')],'where':_0x599b15[_0xa1f6('0x51')]['tag']?{'id':_0x599b15[_0xa1f6('0x51')]['tag']}:undefined,'required':_0x599b15[_0xa1f6('0x51')][_0xa1f6('0x95')]?!![]:![]}];}return db[_0xa1f6('0x8a')][_0xa1f6('0x60')](_0x3c681e);})['then'](function(_0x41d518){_0x1671d9[_0xa1f6('0x71')]=_0x41d518;return _0x1671d9;});}})[_0xa1f6('0x11')](respondWithFilteredResult(_0x374e13,_0x3c681e))['catch'](handleError(_0x374e13,null));};exports[_0xa1f6('0x96')]=function addApplications(_0x47e876,_0x3cfae4){var _0x5354bd=_0x47e876[_0xa1f6('0x61')]['id'];var _0xf101dc=_0x47e876['body'];var _0x13425d=0xc8;var _0x2f88fa=null;return db['sequelize'][_0xa1f6('0x97')]({'isolationLevel':db[_0xa1f6('0x98')][_0xa1f6('0x99')][_0xa1f6('0x9a')][_0xa1f6('0x9b')]},function(_0x56375d){return db['MailAccount'][_0xa1f6('0x81')]({'where':{'id':_0x5354bd},'transaction':_0x56375d})['then'](function(_0x282f7e){if(_0x282f7e){return db[_0xa1f6('0x9c')]['destroy']({'where':{'MailAccountId':_0x5354bd},'transaction':_0x56375d})['then'](function(){var _0x434f2a=_[_0xa1f6('0x4b')](_0xf101dc,function(_0x3fcaa1){_0x3fcaa1[_0xa1f6('0x6c')]=_0x5354bd;return _0x3fcaa1;});return db[_0xa1f6('0x9c')][_0xa1f6('0x9d')](_0x434f2a,{'transaction':_0x56375d});});}else{_0x13425d=0x194;_0x2f88fa=[];}});})[_0xa1f6('0x11')](function(){if(_0x13425d!==0x194){return db[_0xa1f6('0x9c')][_0xa1f6('0x9e')]({'where':{'MailAccountId':_0x5354bd},'order':_0xa1f6('0x9f')})[_0xa1f6('0x11')](function(_0x43bfbf){_0x2f88fa=_0x43bfbf;});}})[_0xa1f6('0x1c')](function(_0x5e2286){_0x13425d=0x1f4;logger[_0xa1f6('0x18')](_0x5e2286[_0xa1f6('0x2a')]);if(_0x5e2286[_0xa1f6('0x2b')]){delete _0x5e2286[_0xa1f6('0x2b')];}_0x2f88fa=_0x5e2286;})['finally'](function(){if(_0x2f88fa===null){_0x3cfae4['sendStatus'](_0x13425d);}else{if(_0x13425d===0x1f4){_0x3cfae4['status'](_0x13425d)['send'](_0x2f88fa);}else{_0x3cfae4[_0xa1f6('0x1e')](_0x13425d)[_0xa1f6('0x20')](_0x2f88fa);}}});};exports[_0xa1f6('0xa0')]=function(_0x5a042f,_0x505010){var _0x2b8da6={};var _0x552f18={};var _0x3d40ab;var _0x17fc86;return db[_0xa1f6('0x4c')][_0xa1f6('0x81')]({'where':{'id':_0x5a042f['params']['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x505010,null))[_0xa1f6('0x11')](function(_0x1b7434){if(_0x1b7434){_0x3d40ab=_0x1b7434;_0x552f18['model']=_['keys'](db[_0xa1f6('0x9c')][_0xa1f6('0x63')]);_0x552f18[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x5a042f[_0xa1f6('0x51')]);_0x552f18['filters']=_['intersection'](_0x552f18[_0xa1f6('0x50')],_0x552f18['query']);_0x2b8da6['attributes']=_[_0xa1f6('0x54')](_0x552f18[_0xa1f6('0x50')],qs['fields'](_0x5a042f['query'][_0xa1f6('0x64')]));_0x2b8da6[_0xa1f6('0x55')]=_0x2b8da6[_0xa1f6('0x55')][_0xa1f6('0x56')]?_0x2b8da6[_0xa1f6('0x55')]:_0x552f18[_0xa1f6('0x50')];_0x2b8da6['order']=qs[_0xa1f6('0x58')](_0x5a042f[_0xa1f6('0x51')]['sort']);_0x2b8da6[_0xa1f6('0x59')]=qs[_0xa1f6('0x53')](_[_0xa1f6('0x5a')](_0x5a042f[_0xa1f6('0x51')],_0x552f18[_0xa1f6('0x53')]));if(_0x5a042f['query'][_0xa1f6('0x5d')]){_0x2b8da6['where']=_['merge'](_0x2b8da6[_0xa1f6('0x59')],{'$or':_[_0xa1f6('0x4b')](_0x2b8da6[_0xa1f6('0x55')],function(_0x3cdb6e){var _0x5031ed={};_0x5031ed[_0x3cdb6e]={'$like':'%'+_0x5a042f[_0xa1f6('0x51')][_0xa1f6('0x5d')]+'%'};return _0x5031ed;})});}_0x2b8da6=_[_0xa1f6('0x5b')]({},_0x2b8da6,_0x5a042f[_0xa1f6('0x5e')]);return _0x3d40ab[_0xa1f6('0xa0')](_0x2b8da6);}})['then'](function(_0x3834c7){if(_0x3834c7){_0x17fc86=_0x3834c7[_0xa1f6('0x56')];if(!_0x5a042f['query']['hasOwnProperty'](_0xa1f6('0x57'))){_0x2b8da6[_0xa1f6('0x22')]=qs[_0xa1f6('0x22')](_0x5a042f[_0xa1f6('0x51')][_0xa1f6('0x22')]);_0x2b8da6['offset']=qs[_0xa1f6('0x21')](_0x5a042f['query'][_0xa1f6('0x21')]);}return _0x3d40ab[_0xa1f6('0xa0')](_0x2b8da6);}})[_0xa1f6('0x11')](function(_0x5d167c){if(_0x5d167c){return _0x5d167c?{'count':_0x17fc86,'rows':_0x5d167c}:null;}})['then'](respondWithResult(_0x505010,null))[_0xa1f6('0x1c')](handleError(_0x505010,null));};exports[_0xa1f6('0xa1')]=function(_0x359cf3,_0x463977){var _0x2e5702={'raw':!![],'where':{}};var _0x1bf350={};var _0x1da4cf={'count':0x0,'rows':[]};return db[_0xa1f6('0x4c')]['findOne']({'where':{'id':_0x359cf3[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x463977,null))[_0xa1f6('0x11')](function(_0x24bd8d){if(_0x24bd8d){_0x1bf350[_0xa1f6('0x50')]=_[_0xa1f6('0x52')](db[_0xa1f6('0xa2')]['rawAttributes']);_0x1bf350[_0xa1f6('0x51')]=_[_0xa1f6('0x52')](_0x359cf3[_0xa1f6('0x51')]);_0x1bf350[_0xa1f6('0x53')]=_[_0xa1f6('0x54')](_0x1bf350['model'],_0x1bf350[_0xa1f6('0x51')]);_0x2e5702[_0xa1f6('0x55')]=_['intersection'](_0x1bf350[_0xa1f6('0x50')],qs['fields'](_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0x64')]));_0x2e5702['attributes']=_0x2e5702[_0xa1f6('0x55')]['length']?_0x2e5702[_0xa1f6('0x55')]:_0x1bf350['model'];if(!_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0x6f')]('nolimit')){_0x2e5702['limit']=qs['limit'](_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0x22')]);_0x2e5702[_0xa1f6('0x21')]=qs['offset'](_0x359cf3[_0xa1f6('0x51')]['offset']);}_0x2e5702[_0xa1f6('0x70')]=qs[_0xa1f6('0x58')](_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0x58')]);_0x2e5702[_0xa1f6('0x59')]=qs[_0xa1f6('0x53')](_[_0xa1f6('0x5a')](_0x359cf3[_0xa1f6('0x51')],_0x1bf350['filters']));_0x2e5702[_0xa1f6('0x59')][_0xa1f6('0x6c')]=_0x24bd8d['id'];if(_0x359cf3[_0xa1f6('0x51')]['filter']){_0x2e5702[_0xa1f6('0x59')]=_['merge'](_0x2e5702[_0xa1f6('0x59')],{'$or':_[_0xa1f6('0x4b')](_0x2e5702[_0xa1f6('0x55')],function(_0x4dc349){var _0x4f4ed9={};_0x4f4ed9[_0x4dc349]={'$like':'%'+_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0x5d')]+'%'};return _0x4f4ed9;})});}if(_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0xa3')]){var _0x4ea2a0=_0x359cf3[_0xa1f6('0x51')][_0xa1f6('0xa3')][_0xa1f6('0xa4')](',');var _0x2ad53e={};_0x2ad53e[_0x4ea2a0[0x0]]={'$gte':moment(_0x4ea2a0[0x1])[_0xa1f6('0xa5')](_0xa1f6('0xa6'))};_0x2e5702[_0xa1f6('0x59')]=_[_0xa1f6('0x5b')](_0x2e5702['where'],_0x2ad53e);}_0x2e5702=_[_0xa1f6('0x5b')]({},_0x2e5702,_0x359cf3['options']);return db[_0xa1f6('0xa2')][_0xa1f6('0x24')]({'where':_0x2e5702[_0xa1f6('0x59')]})[_0xa1f6('0x11')](function(_0xfc2ee5){_0x1da4cf['count']=_0xfc2ee5;if(_0x359cf3[_0xa1f6('0x51')]['includeAll']){_0x2e5702[_0xa1f6('0x65')]=[{'all':!![]}];}return db[_0xa1f6('0xa2')][_0xa1f6('0x60')](_0x2e5702);})[_0xa1f6('0x11')](function(_0x243004){if(_0x359cf3['query']['inlineCss']===_0xa1f6('0xa7')){for(var _0x57acf7=0x0;_0x57acf7<_0x243004[_0xa1f6('0x56')];_0x57acf7++){_0x243004[_0x57acf7][_0xa1f6('0x67')]=juice(_0x243004[_0x57acf7][_0xa1f6('0x67')]);}}_0x1da4cf[_0xa1f6('0x71')]=_0x243004;return _0x1da4cf;});}})[_0xa1f6('0x11')](respondWithFilteredResult(_0x463977,_0x2e5702))[_0xa1f6('0x1c')](handleError(_0x463977,null));};exports[_0xa1f6('0x2c')]=function(_0x31771e,_0x1e3655){var _0x4afe7a,_0x272540={},_0x2e6c2e;if(_0x31771e[_0xa1f6('0x67')]['to']){_0x2e6c2e=_0x31771e[_0xa1f6('0x67')]['to'][_0xa1f6('0xa4')](',')[0x0];}return db['MailAccount'][_0xa1f6('0x66')]({'where':{'id':_0x31771e[_0xa1f6('0x61')]['id']},'include':[{'model':db[_0xa1f6('0xa8')],'as':_0xa1f6('0xa9'),'include':[{'model':db[_0xa1f6('0x8d')],'as':_0xa1f6('0xaa'),'where':{'email':_0x2e6c2e},'limit':0x1,'order':[['updatedAt',_0xa1f6('0xab')]]}]},{'model':db[_0xa1f6('0x49')],'as':'Smtp','raw':!![],'include':[{'model':db[_0xa1f6('0xac')],'as':_0xa1f6('0xac'),'raw':!![]}]}]})[_0xa1f6('0x11')](handleEntityNotFound(_0x1e3655,null))[_0xa1f6('0x11')](function(_0x41a408){if(!_0x41a408)return;_0x4afe7a=_0x41a408;if(!_0x41a408[_0xa1f6('0x46')])throw new Error('Smtp\x20configuration\x20not\x20found');if(_['isNil'](_0x31771e[_0xa1f6('0x67')][_0xa1f6('0xad')])){_0x31771e['body'][_0xa1f6('0xad')]=util[_0xa1f6('0xa5')](_0xa1f6('0xae'),_0x41a408[_0xa1f6('0x2b')],_0x41a408[_0xa1f6('0xaf')]||_0x41a408[_0xa1f6('0x46')][_0xa1f6('0x3a')]);}if(_0x31771e[_0xa1f6('0x67')][_0xa1f6('0xb0')]&&_0x31771e['body'][_0xa1f6('0xb0')]['length']){for(var _0x34744c=0x0;_0x34744c<_0x31771e['body']['attachments'][_0xa1f6('0x56')];_0x34744c+=0x1){_0x31771e['body']['attachments'][_0x34744c]={'filename':_0x31771e['body'][_0xa1f6('0xb0')][_0x34744c][_0xa1f6('0x2b')],'path':path['join'](config[_0xa1f6('0xb1')],'server/files/attachments',_0x31771e[_0xa1f6('0x67')][_0xa1f6('0xb0')][_0x34744c]['basename'])};}}var _0x44a3a1=_0x41a408['getSmtpOptions']();return respondWithRpcPromise('SendMail','sendMail',{'account':_0x44a3a1,'message':_0x31771e[_0xa1f6('0x67')]});})[_0xa1f6('0x11')](function(_0x5142b7){if(!_0x5142b7)return;_0x272540=_0x5142b7;if(!_0x4afe7a['List'])throw new Error('List\x20not\x20found');if(_0x4afe7a[_0xa1f6('0xa9')][_0xa1f6('0xaa')][_0xa1f6('0x56')])return _0x4afe7a[_0xa1f6('0xa9')][_0xa1f6('0xaa')][0x0];return db[_0xa1f6('0x8d')][_0xa1f6('0x78')](_[_0xa1f6('0xa')](_0x31771e['body'],{'firstName':_0x31771e[_0xa1f6('0x67')]['to'],'email':_0x31771e['body']['to'],'phone':_0x31771e[_0xa1f6('0x67')]['to'],'ListId':_0x4afe7a['ListId']}));})['then'](function(_0x2d8435){if(!_0x2d8435)return;var _0x1dab9c={'UserId':_0x31771e['user']['id'],'ContactId':_0x2d8435['id'],'MailAccountId':_0x4afe7a['id'],'inReplyTo':_0x272540[_0xa1f6('0xb2')],'to':_0x31771e[_0xa1f6('0x67')]['from'],'cc':_0x31771e['body']['cc'],'subject':_0x31771e['body'][_0xa1f6('0xb3')],'attach':_0x31771e[_0xa1f6('0x67')][_0xa1f6('0xb4')],'firstMsgDirection':_0xa1f6('0xb5'),'lastMsgAt':moment()[_0xa1f6('0xa5')](_0xa1f6('0xa6')),'lastMsgDirection':_0xa1f6('0xb5'),'Messages':[_[_0xa1f6('0x5b')](_0x31771e[_0xa1f6('0x67')],{'messageId':_0x272540['messageId'],'sentAt':moment()[_0xa1f6('0xa5')](_0xa1f6('0xa6')),'read':!![],'MailAccountId':_0x4afe7a['id'],'UserId':_0x31771e[_0xa1f6('0x3a')]['id'],'ContactId':_0x2d8435['id']})]};if(_0x31771e[_0xa1f6('0x67')]['Interaction']){_0x1dab9c=_[_0xa1f6('0x5b')](_0x1dab9c,_0x31771e['body'][_0xa1f6('0xb6')]);}return db[_0xa1f6('0x8a')]['create'](_0x1dab9c,{'include':[{'model':db[_0xa1f6('0xa2')],'as':_0xa1f6('0xb7')}]});})['then'](respondWithResult(_0x1e3655,null))[_0xa1f6('0x1c')](handleError(_0x1e3655,null));};exports[_0xa1f6('0xb8')]=function(_0x30a0f3,_0x15b144){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x30a0f3['params']['id']},'include':[{'model':db[_0xa1f6('0x49')],'as':_0xa1f6('0x46'),'raw':!![],'include':[{'model':db[_0xa1f6('0xac')],'as':'CloudProvider','raw':!![]}]}]})[_0xa1f6('0x11')](handleEntityNotFound(_0x15b144,null))[_0xa1f6('0x11')](function(_0x1df79b){if(!_0x1df79b[_0xa1f6('0x46')])return;var _0x2b16a2=_0x1df79b[_0xa1f6('0xb9')]();return respondWithRpcPromise(_0xa1f6('0xba'),'verifySmtp',{'account':_0x2b16a2});})[_0xa1f6('0x11')](respondWithResult(_0x15b144,null))[_0xa1f6('0x1c')](handleError(_0x15b144,null));};exports[_0xa1f6('0x29')]=function(_0x191522,_0x10e1ce){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x191522['params']['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x10e1ce,null))[_0xa1f6('0x11')](function(_0x1642d2){if(_0x1642d2&&_0x1642d2[_0xa1f6('0x43')]){throw new db[(_0xa1f6('0xbb'))][(_0xa1f6('0xbc'))](_0xa1f6('0xbd'));}return _0x1642d2;})[_0xa1f6('0x11')](removeEntity(_0x10e1ce,null))[_0xa1f6('0x1c')](handleError(_0x10e1ce,null));};exports[_0xa1f6('0xbe')]=function(_0xd3eea1,_0x29c425){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0xd3eea1[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x29c425,null))[_0xa1f6('0x11')](function(_0x40f1cf){if(_0x40f1cf){return _0x40f1cf['addAgents'](_0xd3eea1[_0xa1f6('0x67')]['ids'],_[_0xa1f6('0x8b')](_0xd3eea1[_0xa1f6('0x67')],['ids','id'])||{})[_0xa1f6('0xbf')](function(_0x43b4a3){for(var _0x51d12=0x0;_0x51d12<_0xd3eea1['body'][_0xa1f6('0x77')][_0xa1f6('0x56')];_0x51d12+=0x1){socket[_0xa1f6('0xc0')]('userMailAccount:save',{'UserId':Number(_0xd3eea1['body']['ids'][_0x51d12]),'MailAccountId':Number(_0xd3eea1['params']['id'])});}return _0x43b4a3;});}})[_0xa1f6('0x11')](respondWithResult(_0x29c425,null))[_0xa1f6('0x1c')](handleError(_0x29c425,null));};exports[_0xa1f6('0xc1')]=function(_0x2198d3,_0x31291e){return db[_0xa1f6('0x4c')][_0xa1f6('0x66')]({'where':{'id':_0x2198d3[_0xa1f6('0x61')]['id']}})['then'](handleEntityNotFound(_0x31291e,null))[_0xa1f6('0x11')](function(_0x3921fd){if(_0x3921fd){return _0x3921fd['removeAgents'](_0x2198d3[_0xa1f6('0x51')][_0xa1f6('0x77')])[_0xa1f6('0x11')](function(){if(_[_0xa1f6('0xc2')](_0x2198d3['query'][_0xa1f6('0x77')])){for(var _0x29c43d=0x0;_0x29c43d<_0x2198d3[_0xa1f6('0x51')][_0xa1f6('0x77')][_0xa1f6('0x56')];_0x29c43d+=0x1){socket['emit']('userMailAccount:remove',{'UserId':Number(_0x2198d3[_0xa1f6('0x51')][_0xa1f6('0x77')][_0x29c43d]),'MailAccountId':Number(_0x2198d3[_0xa1f6('0x61')]['id'])});}}else{socket[_0xa1f6('0xc0')](_0xa1f6('0xc3'),{'UserId':Number(_0x2198d3[_0xa1f6('0x51')][_0xa1f6('0x77')]),'MailAccountId':Number(_0x2198d3[_0xa1f6('0x61')]['id'])});}});}})[_0xa1f6('0x11')](respondWithStatusCode(_0x31291e,null))['catch'](handleError(_0x31291e,null));};exports[_0xa1f6('0xc4')]=function(_0x5c7205,_0x2ae390){var _0x205268={};var _0x49dd5c={};var _0x2eadec;var _0x8e94c6;return db[_0xa1f6('0x4c')]['findOne']({'where':{'id':_0x5c7205[_0xa1f6('0x61')]['id']}})[_0xa1f6('0x11')](handleEntityNotFound(_0x2ae390,null))[_0xa1f6('0x11')](function(_0x56aaf3){if(_0x56aaf3){_0x2eadec=_0x56aaf3;_0x49dd5c['model']=_[_0xa1f6('0x52')](db[_0xa1f6('0x8e')][_0xa1f6('0x63')]);_0x49dd5c[_0xa1f6('0x51')]=_['keys'](_0x5c7205[_0xa1f6('0x51')]);_0x49dd5c['filters']=_[_0xa1f6('0x54')](_0x49dd5c[_0xa1f6('0x50')],_0x49dd5c['query']);_0x205268[_0xa1f6('0x55')]=_['intersection'](_0x49dd5c['model'],qs[_0xa1f6('0x64')](_0x5c7205[_0xa1f6('0x51')][_0xa1f6('0x64')]));_0x205268[_0xa1f6('0x55')]=_0x205268[_0xa1f6('0x55')]['length']?_0x205268[_0xa1f6('0x55')]:_0x49dd5c[_0xa1f6('0x50')];_0x205268[_0xa1f6('0x70')]=qs[_0xa1f6('0x58')](_0x5c7205[_0xa1f6('0x51')][_0xa1f6('0x58')]);_0x205268[_0xa1f6('0x59')]=qs[_0xa1f6('0x53')](_[_0xa1f6('0x5a')](_0x5c7205[_0xa1f6('0x51')],_0x49dd5c['filters']));if(_0x5c7205[_0xa1f6('0x51')][_0xa1f6('0x5d')]){_0x205268[_0xa1f6('0x59')]=_[_0xa1f6('0x5b')](_0x205268[_0xa1f6('0x59')],{'$or':_[_0xa1f6('0x4b')](_0x205268[_0xa1f6('0x55')],function(_0x4602cd){var _0x3657ec={};_0x3657ec[_0x4602cd]={'$like':'%'+_0x5c7205[_0xa1f6('0x51')][_0xa1f6('0x5d')]+'%'};return _0x3657ec;})});}_0x205268=_['merge']({},_0x205268,_0x5c7205[_0xa1f6('0x5e')]);return _0x2eadec[_0xa1f6('0xc4')](_0x205268);}})[_0xa1f6('0x11')](function(_0x158623){if(_0x158623){_0x8e94c6=_0x158623[_0xa1f6('0x56')];if(!_0x5c7205['query'][_0xa1f6('0x6f')](_0xa1f6('0x57'))){_0x205268[_0xa1f6('0x22')]=qs[_0xa1f6('0x22')](_0x5c7205['query'][_0xa1f6('0x22')]);_0x205268[_0xa1f6('0x21')]=qs[_0xa1f6('0x21')](_0x5c7205[_0xa1f6('0x51')]['offset']);}return _0x2eadec[_0xa1f6('0xc4')](_0x205268);}})[_0xa1f6('0x11')](function(_0x31d1cd){if(_0x31d1cd){return _0x31d1cd?{'count':_0x8e94c6,'rows':_0x31d1cd}:null;}})[_0xa1f6('0x11')](respondWithResult(_0x2ae390,null))[_0xa1f6('0x1c')](handleError(_0x2ae390,null));};