Built motion from commit 25580385.|2.6.2
[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 _0xa49e=['status','json','offset','undefined','limit','count','Content-Range','update','get','MailAccounts','UserProfileResource','destroy','end','stack','send','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook.office365.com','Unknown\x20email\x20service\x20provider','smtp.gmail.com','smtp.mail.yahoo.com','smtp-mail.outlook.com','outlook365','smtp.office365.com','user','username','password','pass','modernAuthentication','CloudProviderId','host','port','secure','service','authentication','Imap','Smtp','index','MailServerIn','MailServerOut','Pause','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','map','type','VIRTUAL','options','MailAccount','includeAll','include','findAll','rows','show','params','mandatoryDispositionPause','find','body','custom','Mail\x20Account\x20not\x20found','describe','Disposition','create','getDispositions','findOne','pick','merge','removeDispositions','addAnswer','MailAccountId','CannedAnswer','getAnswers','rawAttributes','removeAnswers','ids','key','provider','email','ListId','active','description','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','addInteraction','MailInteraction','omit','getInteractions','order','CmContact','Contact','User','Tag','Tags','color','tag','addApplications','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','MailApplication','findAndCountAll','finally','sendStatus','getApplications','MailMessage','$gte','split','YYYY-MM-DD\x20HH:mm:ss','inlineCss','List','Contacts','updatedAt','CloudProvider','from','format','attachments','basename','getSmtpOptions','SendMail','sendMail','List\x20not\x20found','messageId','subject','attach','Interaction','Messages','verifySmtp','VerifySmtp','ValidationError','addAgents','spread','isArray','emit','userMailAccount:remove','getAgents','moment','path','lodash','ioredis','../../components/parsers/qs','../../config/logger','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','client','http','request','then','MailAccount,\x20%s,\x20%s','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xa49e,0xa0));var _0xea49=function(_0xea343d,_0x311197){_0xea343d=_0xea343d-0x0;var _0x2c6e9c=_0xa49e[_0xea343d];return _0x2c6e9c;};'use strict';var moment=require(_0xea49('0x0'));var BPromise=require('bluebird');var util=require('util');var path=require(_0xea49('0x1'));var _=require(_0xea49('0x2'));var juice=require('juice');var Redis=require(_0xea49('0x3'));var qs=require(_0xea49('0x4'));var logger=require(_0xea49('0x5'))('api');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0xea49('0x6')]=_[_0xea49('0x7')](config['redis'],{'host':_0xea49('0x8'),'port':0x18eb});var socket=require(_0xea49('0x9'))(new Redis(config[_0xea49('0x6')]));require(_0xea49('0xa'))[_0xea49('0xb')](socket);var jayson=require(_0xea49('0xc'));var client=jayson[_0xea49('0xd')][_0xea49('0xe')]({'port':0x232b});function respondWithRpcPromise(_0x4de3f4,_0xb4d065,_0x396556,_0x45e45b){return new BPromise(function(_0x5cef6a,_0x41dc38){var _0x59d99d=_0x45e45b||client;return _0x59d99d[_0xea49('0xf')](_0x4de3f4,_0x396556)[_0xea49('0x10')](function(_0xe771c3){logger['info'](_0xea49('0x11'),_0xb4d065,'request\x20sent');logger['debug'](_0xea49('0x12'),_0xb4d065,_0xea49('0x13'),JSON[_0xea49('0x14')](_0xe771c3));if(_0xe771c3[_0xea49('0x15')]){if(_0xe771c3[_0xea49('0x15')][_0xea49('0x16')]===0x1f4){logger[_0xea49('0x15')](_0xea49('0x11'),_0xb4d065,_0xe771c3[_0xea49('0x15')][_0xea49('0x17')]);return _0x41dc38(_0xe771c3['error'][_0xea49('0x17')]);}logger[_0xea49('0x15')](_0xea49('0x11'),_0xb4d065,_0xe771c3['error'][_0xea49('0x17')]);return _0x5cef6a(_0xe771c3[_0xea49('0x15')][_0xea49('0x17')]);}else{logger[_0xea49('0x18')](_0xea49('0x11'),_0xb4d065,'request\x20sent');_0x5cef6a(_0xe771c3[_0xea49('0x19')][_0xea49('0x17')]);}})[_0xea49('0x1a')](function(_0x551a14){logger[_0xea49('0x15')]('MailAccount,\x20%s,\x20%s',_0xb4d065,_0x551a14);_0x41dc38(_0x551a14);});});}function respondWithStatusCode(_0x378f70,_0x3d2446){_0x3d2446=_0x3d2446||0xcc;return function(_0x374aa9){if(_0x374aa9){return _0x378f70['sendStatus'](_0x3d2446);}return _0x378f70[_0xea49('0x1b')](_0x3d2446)['end']();};}function respondWithResult(_0x1aeb35,_0xc599e4){_0xc599e4=_0xc599e4||0xc8;return function(_0x14943e){if(_0x14943e){return _0x1aeb35[_0xea49('0x1b')](_0xc599e4)[_0xea49('0x1c')](_0x14943e);}};}function respondWithFilteredResult(_0x528cf4,_0x33e63f){return function(_0x771505){if(_0x771505){var _0x202776=typeof _0x33e63f[_0xea49('0x1d')]===_0xea49('0x1e')&&typeof _0x33e63f[_0xea49('0x1f')]===_0xea49('0x1e');var _0x256fac=_0x771505[_0xea49('0x20')];var _0x96296c=_0x202776?0x0:_0x33e63f[_0xea49('0x1d')];var _0x3e41a1=_0x202776?_0x771505[_0xea49('0x20')]:_0x33e63f[_0xea49('0x1d')]+_0x33e63f[_0xea49('0x1f')];var _0x4b8d49;if(_0x3e41a1>=_0x256fac){_0x3e41a1=_0x256fac;_0x4b8d49=0xc8;}else{_0x4b8d49=0xce;}_0x528cf4[_0xea49('0x1b')](_0x4b8d49);return _0x528cf4['set'](_0xea49('0x21'),_0x96296c+'-'+_0x3e41a1+'/'+_0x256fac)['json'](_0x771505);}return null;};}function saveUpdates(_0x127c2b){return function(_0x37f4ec){if(_0x37f4ec){return _0x37f4ec[_0xea49('0x22')](_0x127c2b)[_0xea49('0x10')](function(_0x50120c){return _0x50120c;});}return null;};}function removeEntity(_0x10c97d){return function(_0x1bfd59){if(_0x1bfd59){return _0x1bfd59['destroy']()[_0xea49('0x10')](function(){var _0x33ba28=_0x1bfd59[_0xea49('0x23')]({'plain':!![]});var _0x33f0e3=_0xea49('0x24');return db[_0xea49('0x25')][_0xea49('0x26')]({'where':{'type':_0x33f0e3,'resourceId':_0x33ba28['id']}})[_0xea49('0x10')](function(){return _0x1bfd59;});})[_0xea49('0x10')](function(){_0x10c97d['status'](0xcc)[_0xea49('0x27')]();});}};}function handleEntityNotFound(_0x1d447a){return function(_0x4ca327){if(!_0x4ca327){_0x1d447a['sendStatus'](0x194);}return _0x4ca327;};}function handleError(_0x5cb7c3,_0x39b03c){_0x39b03c=_0x39b03c||0x1f4;return function(_0x307f2e){logger[_0xea49('0x15')](_0x307f2e[_0xea49('0x28')]);if(_0x307f2e['name']){delete _0x307f2e['name'];}_0x5cb7c3['status'](_0x39b03c)[_0xea49('0x29')](_0x307f2e);};}function getImapHost(_0xd02142){switch(_0xd02142){case _0xea49('0x2a'):return _0xea49('0x2b');case _0xea49('0x2c'):return _0xea49('0x2d');case _0xea49('0x2e'):return _0xea49('0x2f');case'outlook365':return _0xea49('0x30');}throw new Error(_0xea49('0x31'),_0xd02142);}function getSmtpHost(_0x123b33){switch(_0x123b33){case _0xea49('0x2a'):return _0xea49('0x32');case _0xea49('0x2c'):return _0xea49('0x33');case _0xea49('0x2e'):return _0xea49('0x34');case _0xea49('0x35'):return _0xea49('0x36');}throw new Error(_0xea49('0x31'),_0x123b33);}function getAuthenticationOptions(_0xa179f,_0xc022bf){var _0x53a8e0={};var _0x320dc1={};if(_0xa179f){_0x53a8e0[_0xea49('0x37')]=_0x320dc1[_0xea49('0x37')]=_0xc022bf[_0xea49('0x38')];_0x53a8e0[_0xea49('0x39')]=_0x320dc1[_0xea49('0x3a')]=_0xc022bf['password'];if(_0xc022bf[_0xea49('0x3b')]){_0x53a8e0[_0xea49('0x3b')]=_0x320dc1['modernAuthentication']=!![];_0x53a8e0[_0xea49('0x3c')]=_0x320dc1['CloudProviderId']=_0xc022bf['CloudProviderId'];_0x53a8e0[_0xea49('0x39')]=_0x320dc1[_0xea49('0x3a')]=null;}else{_0x53a8e0[_0xea49('0x3c')]=_0x320dc1[_0xea49('0x3c')]=null;}_0x53a8e0[_0xea49('0x3d')]=getImapHost(_0xa179f);_0x53a8e0[_0xea49('0x3e')]=0x3e1;_0x320dc1[_0xea49('0x3d')]=getSmtpHost(_0xa179f);_0x320dc1['port']=0x24b;_0x320dc1[_0xea49('0x3f')]=![];_0x53a8e0[_0xea49('0x40')]=_0x320dc1['service']=null;}else{if(_0xc022bf[_0xea49('0x41')]){_0x53a8e0[_0xea49('0x37')]=_0x320dc1[_0xea49('0x37')]=_0xc022bf[_0xea49('0x38')];_0x53a8e0['password']=_0x320dc1[_0xea49('0x3a')]=_0xc022bf[_0xea49('0x39')];}else{_0x53a8e0[_0xea49('0x41')]=_0x320dc1['authentication']=![];_0x53a8e0['user']=_0x320dc1[_0xea49('0x37')]=null;_0x53a8e0['password']=_0x320dc1[_0xea49('0x3a')]=null;}_0x53a8e0[_0xea49('0x3d')]=_0xc022bf[_0xea49('0x42')]['host'];_0x53a8e0[_0xea49('0x3e')]=_0xc022bf[_0xea49('0x42')][_0xea49('0x3e')];_0x320dc1[_0xea49('0x3d')]=_0xc022bf[_0xea49('0x43')][_0xea49('0x3d')];_0x320dc1[_0xea49('0x3e')]=_0xc022bf[_0xea49('0x43')][_0xea49('0x3e')];}return{'Imap':_0x53a8e0,'Smtp':_0x320dc1};}exports[_0xea49('0x44')]=function(_0x558481,_0x204544){var _0x36ec00={'include':[{'model':db[_0xea49('0x45')],'as':'Imap'},{'model':db[_0xea49('0x46')],'as':_0xea49('0x43')},{'model':db[_0xea49('0x47')],'as':'mandatoryDispositionPause'}]},_0x463836={},_0x4156db={'count':0x0,'rows':[]};var _0xc940e3=_['map'](db['MailAccount']['rawAttributes'],function(_0x54aa11){return{'name':_0x54aa11['fieldName'],'type':_0x54aa11['type']['key']};});_0x463836[_0xea49('0x48')]=_['map'](_0xc940e3,_0xea49('0x49'));_0x463836[_0xea49('0x4a')]=_[_0xea49('0x4b')](_0x558481[_0xea49('0x4a')]);_0x463836[_0xea49('0x4c')]=_[_0xea49('0x4d')](_0x463836[_0xea49('0x48')],_0x463836[_0xea49('0x4a')]);_0x36ec00['attributes']=_[_0xea49('0x4d')](_0x463836['model'],qs[_0xea49('0x4e')](_0x558481[_0xea49('0x4a')][_0xea49('0x4e')]));_0x36ec00[_0xea49('0x4f')]=_0x36ec00['attributes'][_0xea49('0x50')]?_0x36ec00[_0xea49('0x4f')]:_0x463836['model'];if(!_0x558481[_0xea49('0x4a')][_0xea49('0x51')](_0xea49('0x52'))){_0x36ec00['limit']=qs[_0xea49('0x1f')](_0x558481[_0xea49('0x4a')][_0xea49('0x1f')]);_0x36ec00['offset']=qs[_0xea49('0x1d')](_0x558481[_0xea49('0x4a')][_0xea49('0x1d')]);}_0x36ec00['order']=qs[_0xea49('0x53')](_0x558481['query'][_0xea49('0x53')]);_0x36ec00[_0xea49('0x54')]=qs[_0xea49('0x4c')](_['pick'](_0x558481['query'],_0x463836['filters']),_0xc940e3);if(_0x558481[_0xea49('0x4a')][_0xea49('0x55')]){_0x36ec00['where']=_['merge'](_0x36ec00[_0xea49('0x54')],{'$or':_[_0xea49('0x56')](_0xc940e3,function(_0x28baf4){if(_0x28baf4[_0xea49('0x57')]!==_0xea49('0x58')){var _0x48573e={};_0x48573e[_0x28baf4[_0xea49('0x49')]]={'$like':'%'+_0x558481['query']['filter']+'%'};return _0x48573e;}})});}_0x36ec00=_['merge']({},_0x36ec00,_0x558481[_0xea49('0x59')]);var _0xcfdd51={'where':_0x36ec00[_0xea49('0x54')]};return db[_0xea49('0x5a')][_0xea49('0x20')](_0xcfdd51)[_0xea49('0x10')](function(_0x8629ba){_0x4156db[_0xea49('0x20')]=_0x8629ba;if(_0x558481[_0xea49('0x4a')][_0xea49('0x5b')]){_0x36ec00[_0xea49('0x5c')]=[{'all':!![]}];}return db[_0xea49('0x5a')][_0xea49('0x5d')](_0x36ec00);})['then'](function(_0x4637af){_0x4156db[_0xea49('0x5e')]=_0x4637af;return _0x4156db;})['then'](respondWithFilteredResult(_0x204544,_0x36ec00))[_0xea49('0x1a')](handleError(_0x204544,null));};exports[_0xea49('0x5f')]=function(_0x52047a,_0x1b2028){var _0x4822d7={'raw':![],'where':{'id':_0x52047a[_0xea49('0x60')]['id']},'include':[{'model':db[_0xea49('0x45')],'as':_0xea49('0x42')},{'model':db[_0xea49('0x46')],'as':'Smtp'},{'model':db[_0xea49('0x47')],'as':_0xea49('0x61')}]},_0x236f48={};_0x236f48[_0xea49('0x48')]=_[_0xea49('0x4b')](db[_0xea49('0x5a')]['rawAttributes']);_0x236f48[_0xea49('0x4a')]=_[_0xea49('0x4b')](_0x52047a[_0xea49('0x4a')]);_0x236f48[_0xea49('0x4c')]=_['intersection'](_0x236f48['model'],_0x236f48[_0xea49('0x4a')]);_0x4822d7[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x236f48[_0xea49('0x48')],qs['fields'](_0x52047a[_0xea49('0x4a')][_0xea49('0x4e')]));_0x4822d7['attributes']=_0x4822d7[_0xea49('0x4f')][_0xea49('0x50')]?_0x4822d7[_0xea49('0x4f')]:_0x236f48[_0xea49('0x48')];if(_0x52047a[_0xea49('0x4a')][_0xea49('0x5b')]){_0x4822d7[_0xea49('0x5c')]=[{'all':!![]}];}_0x4822d7=_['merge']({},_0x4822d7,_0x52047a[_0xea49('0x59')]);return db[_0xea49('0x5a')][_0xea49('0x62')](_0x4822d7)[_0xea49('0x10')](handleEntityNotFound(_0x1b2028,null))[_0xea49('0x10')](respondWithResult(_0x1b2028,null))[_0xea49('0x1a')](handleError(_0x1b2028,null));};exports[_0xea49('0x22')]=function(_0x47e6e0,_0x336ce6){if(_0x47e6e0[_0xea49('0x63')]['id']){delete _0x47e6e0[_0xea49('0x63')]['id'];}var _0x1ead75=_0x47e6e0['body']['provider']===_0xea49('0x64')?null:_0x47e6e0[_0xea49('0x63')]['provider'];var _0x44e4a2=_0x47e6e0[_0xea49('0x63')][_0xea49('0x42')]||{};var _0x2d8ec4=_0x47e6e0['body'][_0xea49('0x43')]||{};if(_0x1ead75){_0x44e4a2[_0xea49('0x3d')]=getImapHost(_0x1ead75);_0x44e4a2[_0xea49('0x3e')]=0x3e1;_0x2d8ec4[_0xea49('0x3d')]=getSmtpHost(_0x1ead75);_0x2d8ec4[_0xea49('0x3e')]=0x24b;_0x2d8ec4[_0xea49('0x3f')]=![];}if(_0x2d8ec4[_0xea49('0x3b')]){_0x2d8ec4[_0xea49('0x3f')]=![];}else{_0x2d8ec4['CloudProviderId']=null;}if(!_0x44e4a2[_0xea49('0x3b')])_0x44e4a2['CloudProviderId']=null;_0x47e6e0[_0xea49('0x63')][_0xea49('0x42')]=_0x44e4a2;_0x47e6e0[_0xea49('0x63')][_0xea49('0x43')]=_0x2d8ec4;return db['MailAccount'][_0xea49('0x62')]({'where':{'id':_0x47e6e0[_0xea49('0x60')]['id']},'include':[{'model':db[_0xea49('0x45')],'as':_0xea49('0x42')},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db['Pause'],'as':_0xea49('0x61')}]})['then'](handleEntityNotFound(_0x336ce6,null))[_0xea49('0x10')](function(_0x14c0c4){if(!_0x14c0c4)throw new Error(_0xea49('0x65'));if(_0x14c0c4[_0xea49('0x40')])delete _0x47e6e0[_0xea49('0x63')][_0xea49('0x42')];return _0x14c0c4;})[_0xea49('0x10')](saveUpdates(_0x47e6e0[_0xea49('0x63')],null))[_0xea49('0x10')](function(_0x10cd0f){if(!_0x47e6e0[_0xea49('0x63')][_0xea49('0x42')])return _0x10cd0f;return db[_0xea49('0x45')][_0xea49('0x22')](_0x47e6e0[_0xea49('0x63')]['Imap'],{'where':{'MailAccountId':_0x10cd0f['id']}})[_0xea49('0x10')](function(){return _0x10cd0f;});})[_0xea49('0x10')](function(_0x5dfe76){if(!_0x47e6e0['body'][_0xea49('0x43')])return _0x5dfe76;return db['MailServerOut']['update'](_0x47e6e0[_0xea49('0x63')][_0xea49('0x43')],{'where':{'MailAccountId':_0x5dfe76['id']}})[_0xea49('0x10')](function(){return _0x5dfe76;});})[_0xea49('0x10')](respondWithResult(_0x336ce6,null))[_0xea49('0x1a')](handleError(_0x336ce6,null));};exports[_0xea49('0x66')]=function(_0x5f175d,_0x351c6a){return db['MailAccount'][_0xea49('0x66')]()['then'](respondWithResult(_0x351c6a,null))[_0xea49('0x1a')](handleError(_0x351c6a,null));};exports['addDisposition']=function(_0x4c800d,_0x33329d){if(_0x4c800d['body']['id']){delete _0x4c800d[_0xea49('0x63')]['id'];}return db['MailAccount']['find']({'where':{'id':_0x4c800d[_0xea49('0x60')]['id']}})['then'](handleEntityNotFound(_0x33329d,null))[_0xea49('0x10')](function(_0x55ef50){if(_0x55ef50){_0x4c800d[_0xea49('0x63')]['MailAccountId']=_0x55ef50['id'];return db[_0xea49('0x67')][_0xea49('0x68')](_0x4c800d[_0xea49('0x63')]);}})['then'](respondWithResult(_0x33329d,null))[_0xea49('0x1a')](handleError(_0x33329d,null));};exports[_0xea49('0x69')]=function(_0x338d2c,_0x4d7560){var _0x68abd4={'raw':![],'where':{}};var _0x3c948d={};var _0x17e6c1={'count':0x0,'rows':[]};return db['MailAccount'][_0xea49('0x6a')]({'where':{'id':_0x338d2c[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x4d7560,null))[_0xea49('0x10')](function(_0x101830){if(_0x101830){_0x3c948d[_0xea49('0x48')]=_['keys'](db[_0xea49('0x67')]['rawAttributes']);_0x3c948d[_0xea49('0x4a')]=_[_0xea49('0x4b')](_0x338d2c['query']);_0x3c948d[_0xea49('0x4c')]=_['intersection'](_0x3c948d[_0xea49('0x48')],_0x3c948d[_0xea49('0x4a')]);_0x68abd4[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x3c948d[_0xea49('0x48')],qs[_0xea49('0x4e')](_0x338d2c[_0xea49('0x4a')][_0xea49('0x4e')]));_0x68abd4[_0xea49('0x4f')]=_0x68abd4[_0xea49('0x4f')][_0xea49('0x50')]?_0x68abd4[_0xea49('0x4f')]:_0x3c948d[_0xea49('0x48')];if(!_0x338d2c[_0xea49('0x4a')]['hasOwnProperty']('nolimit')){_0x68abd4[_0xea49('0x1f')]=qs[_0xea49('0x1f')](_0x338d2c[_0xea49('0x4a')][_0xea49('0x1f')]);_0x68abd4[_0xea49('0x1d')]=qs[_0xea49('0x1d')](_0x338d2c[_0xea49('0x4a')][_0xea49('0x1d')]);}_0x68abd4['order']=qs['sort'](_0x338d2c[_0xea49('0x4a')][_0xea49('0x53')]);_0x68abd4['where']=qs[_0xea49('0x4c')](_[_0xea49('0x6b')](_0x338d2c[_0xea49('0x4a')],_0x3c948d[_0xea49('0x4c')]));_0x68abd4[_0xea49('0x54')]['MailAccountId']=_0x101830['id'];if(_0x338d2c['query'][_0xea49('0x55')]){_0x68abd4[_0xea49('0x54')]=_[_0xea49('0x6c')](_0x68abd4[_0xea49('0x54')],{'$or':_[_0xea49('0x56')](_0x68abd4['attributes'],function(_0x34e0fa){var _0xa2586f={};_0xa2586f[_0x34e0fa]={'$like':'%'+_0x338d2c[_0xea49('0x4a')][_0xea49('0x55')]+'%'};return _0xa2586f;})});}_0x68abd4=_[_0xea49('0x6c')]({},_0x68abd4,_0x338d2c[_0xea49('0x59')]);return db[_0xea49('0x67')][_0xea49('0x20')]({'where':_0x68abd4[_0xea49('0x54')]})['then'](function(_0x3a4634){_0x17e6c1[_0xea49('0x20')]=_0x3a4634;if(_0x338d2c['query'][_0xea49('0x5b')]){_0x68abd4['include']=[{'all':!![]}];}return db[_0xea49('0x67')][_0xea49('0x5d')](_0x68abd4);})[_0xea49('0x10')](function(_0x5c9967){_0x17e6c1['rows']=_0x5c9967;return _0x17e6c1;});}})[_0xea49('0x10')](respondWithFilteredResult(_0x4d7560,_0x68abd4))[_0xea49('0x1a')](handleError(_0x4d7560,null));};exports[_0xea49('0x6d')]=function(_0x543634,_0x2ad948){return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x543634['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x2ad948,null))[_0xea49('0x10')](function(_0x41c0f3){if(_0x41c0f3){return _0x41c0f3[_0xea49('0x6d')](_0x543634['query']['ids']);}})[_0xea49('0x10')](respondWithStatusCode(_0x2ad948,null))[_0xea49('0x1a')](handleError(_0x2ad948,null));};exports[_0xea49('0x6e')]=function(_0x36e9be,_0x2dcb96){if(_0x36e9be[_0xea49('0x63')]['id']){delete _0x36e9be[_0xea49('0x63')]['id'];}return db['MailAccount'][_0xea49('0x62')]({'where':{'id':_0x36e9be[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x2dcb96,null))[_0xea49('0x10')](function(_0x17b4b4){if(_0x17b4b4){_0x36e9be[_0xea49('0x63')][_0xea49('0x6f')]=_0x17b4b4['id'];return db[_0xea49('0x70')][_0xea49('0x68')](_0x36e9be[_0xea49('0x63')]);}})[_0xea49('0x10')](respondWithResult(_0x2dcb96,null))[_0xea49('0x1a')](handleError(_0x2dcb96,null));};exports[_0xea49('0x71')]=function(_0x456355,_0x255f96){var _0x2824bb={'raw':![],'where':{}};var _0x44bc41={};var _0x520587={'count':0x0,'rows':[]};return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x456355[_0xea49('0x60')]['id']}})['then'](handleEntityNotFound(_0x255f96,null))[_0xea49('0x10')](function(_0x1509d5){if(_0x1509d5){_0x44bc41[_0xea49('0x48')]=_[_0xea49('0x4b')](db[_0xea49('0x70')][_0xea49('0x72')]);_0x44bc41[_0xea49('0x4a')]=_['keys'](_0x456355['query']);_0x44bc41[_0xea49('0x4c')]=_[_0xea49('0x4d')](_0x44bc41[_0xea49('0x48')],_0x44bc41[_0xea49('0x4a')]);_0x2824bb[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x44bc41[_0xea49('0x48')],qs[_0xea49('0x4e')](_0x456355[_0xea49('0x4a')][_0xea49('0x4e')]));_0x2824bb[_0xea49('0x4f')]=_0x2824bb[_0xea49('0x4f')][_0xea49('0x50')]?_0x2824bb['attributes']:_0x44bc41['model'];if(!_0x456355[_0xea49('0x4a')][_0xea49('0x51')]('nolimit')){_0x2824bb[_0xea49('0x1f')]=qs[_0xea49('0x1f')](_0x456355[_0xea49('0x4a')][_0xea49('0x1f')]);_0x2824bb[_0xea49('0x1d')]=qs[_0xea49('0x1d')](_0x456355[_0xea49('0x4a')][_0xea49('0x1d')]);}_0x2824bb['order']=qs[_0xea49('0x53')](_0x456355[_0xea49('0x4a')][_0xea49('0x53')]);_0x2824bb[_0xea49('0x54')]=qs[_0xea49('0x4c')](_['pick'](_0x456355['query'],_0x44bc41[_0xea49('0x4c')]));_0x2824bb['where'][_0xea49('0x6f')]=_0x1509d5['id'];if(_0x456355['query'][_0xea49('0x55')]){_0x2824bb[_0xea49('0x54')]=_[_0xea49('0x6c')](_0x2824bb[_0xea49('0x54')],{'$or':_[_0xea49('0x56')](_0x2824bb[_0xea49('0x4f')],function(_0x3f9079){var _0x22efd0={};_0x22efd0[_0x3f9079]={'$like':'%'+_0x456355[_0xea49('0x4a')][_0xea49('0x55')]+'%'};return _0x22efd0;})});}_0x2824bb=_[_0xea49('0x6c')]({},_0x2824bb,_0x456355[_0xea49('0x59')]);return db[_0xea49('0x70')][_0xea49('0x20')]({'where':_0x2824bb[_0xea49('0x54')]})[_0xea49('0x10')](function(_0x5bd5a3){_0x520587[_0xea49('0x20')]=_0x5bd5a3;if(_0x456355[_0xea49('0x4a')][_0xea49('0x5b')]){_0x2824bb[_0xea49('0x5c')]=[{'all':!![]}];}return db[_0xea49('0x70')][_0xea49('0x5d')](_0x2824bb);})[_0xea49('0x10')](function(_0x4e1d73){_0x520587[_0xea49('0x5e')]=_0x4e1d73;return _0x520587;});}})['then'](respondWithFilteredResult(_0x255f96,_0x2824bb))[_0xea49('0x1a')](handleError(_0x255f96,null));};exports['removeAnswers']=function(_0x36ca11,_0x43e518){return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x36ca11['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x43e518,null))['then'](function(_0x4ee6b9){if(_0x4ee6b9){return _0x4ee6b9[_0xea49('0x73')](_0x36ca11[_0xea49('0x4a')][_0xea49('0x74')]);}})[_0xea49('0x10')](respondWithStatusCode(_0x43e518,null))[_0xea49('0x1a')](handleError(_0x43e518,null));};exports[_0xea49('0x68')]=function(_0x34df03,_0x10de49){var _0x6c87ea={'name':_0x34df03[_0xea49('0x63')][_0xea49('0x49')],'key':_0x34df03['body'][_0xea49('0x75')],'provider':_0x34df03['body']['provider']===_0xea49('0x64')?null:_0x34df03[_0xea49('0x63')][_0xea49('0x76')],'email':_0x34df03[_0xea49('0x63')][_0xea49('0x77')],'ListId':_0x34df03[_0xea49('0x63')][_0xea49('0x78')],'active':!_['isNil'](_0x34df03[_0xea49('0x63')]['active'])?_0x34df03[_0xea49('0x63')][_0xea49('0x79')]:!![],'description':_0x34df03[_0xea49('0x63')][_0xea49('0x7a')]||null};var _0x154d50=getAuthenticationOptions(_0x6c87ea[_0xea49('0x76')],_0x34df03[_0xea49('0x63')]);_0x6c87ea[_0xea49('0x42')]=_0x154d50[_0xea49('0x42')];_0x6c87ea['Smtp']=_0x154d50['Smtp'];return db[_0xea49('0x5a')][_0xea49('0x68')](_0x6c87ea,{'include':[{'model':db[_0xea49('0x46')],'as':_0xea49('0x43')},{'model':db[_0xea49('0x45')],'as':'Imap'}]})['then'](function(_0x17436c){var _0x25cd90=_0x34df03[_0xea49('0x37')][_0xea49('0x23')]({'plain':!![]});if(!_0x25cd90)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x25cd90[_0xea49('0x7b')]==='user'){var _0x46e8be=_0x17436c[_0xea49('0x23')]({'plain':!![]});return db[_0xea49('0x7c')][_0xea49('0x62')]({'where':{'name':_0xea49('0x24'),'userProfileId':_0x25cd90['userProfileId']},'raw':!![]})[_0xea49('0x10')](function(_0x2e06c5){if(_0x2e06c5&&_0x2e06c5[_0xea49('0x7d')]===0x0){return db['UserProfileResource'][_0xea49('0x68')]({'name':_0x46e8be[_0xea49('0x49')],'resourceId':_0x46e8be['id'],'type':_0x2e06c5[_0xea49('0x49')],'sectionId':_0x2e06c5['id']},{})[_0xea49('0x10')](function(){return _0x17436c;});}else{return _0x17436c;}})['catch'](function(_0x18eeb7){logger['error'](_0xea49('0x7e'),_0x18eeb7);throw _0x18eeb7;});}return _0x17436c;})[_0xea49('0x10')](respondWithResult(_0x10de49,0xc9))[_0xea49('0x1a')](handleError(_0x10de49,null));};exports['getImap']=function(_0x3acadd,_0x228aa4){return db['MailAccount'][_0xea49('0x6a')]({'where':{'id':_0x3acadd[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x228aa4,null))['then'](function(_0x2f7531){if(_0x2f7531){return _0x2f7531[_0xea49('0x7f')]();}return null;})[_0xea49('0x10')](respondWithResult(_0x228aa4,null))[_0xea49('0x1a')](handleError(_0x228aa4,null));};exports[_0xea49('0x80')]=function(_0x1bf5d1,_0xa380e5){if(_0x1bf5d1[_0xea49('0x63')]['id']){delete _0x1bf5d1['body']['id'];}return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x1bf5d1[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0xa380e5,null))[_0xea49('0x10')](function(_0x5e1eaf){if(_0x5e1eaf){_0x1bf5d1[_0xea49('0x63')][_0xea49('0x6f')]=_0x5e1eaf['id'];return db[_0xea49('0x45')][_0xea49('0x68')](_0x1bf5d1[_0xea49('0x63')]);}})[_0xea49('0x10')](respondWithResult(_0xa380e5,null))[_0xea49('0x1a')](handleError(_0xa380e5,null));};exports[_0xea49('0x81')]=function(_0x5ba3ce,_0x5c1882){return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x5ba3ce[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x5c1882,null))[_0xea49('0x10')](function(_0x40320d){if(_0x40320d){return _0x40320d[_0xea49('0x82')](null);}return null;})[_0xea49('0x10')](respondWithStatusCode(_0x5c1882,null))[_0xea49('0x1a')](handleError(_0x5c1882,null));};exports[_0xea49('0x83')]=function(_0x51486c,_0x4a0b6a){return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x51486c['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x4a0b6a,null))[_0xea49('0x10')](function(_0x436133){if(_0x436133){return _0x436133['getSmtp']();}return null;})[_0xea49('0x10')](respondWithResult(_0x4a0b6a,null))[_0xea49('0x1a')](handleError(_0x4a0b6a,null));};exports[_0xea49('0x84')]=function(_0x542b92,_0x1fb060){if(_0x542b92[_0xea49('0x63')]['id']){delete _0x542b92[_0xea49('0x63')]['id'];}return db['MailAccount'][_0xea49('0x62')]({'where':{'id':_0x542b92[_0xea49('0x60')]['id']}})['then'](handleEntityNotFound(_0x1fb060,null))[_0xea49('0x10')](function(_0x4da620){if(_0x4da620){_0x542b92[_0xea49('0x63')][_0xea49('0x6f')]=_0x4da620['id'];return db[_0xea49('0x46')][_0xea49('0x68')](_0x542b92['body']);}})[_0xea49('0x10')](respondWithResult(_0x1fb060,null))[_0xea49('0x1a')](handleError(_0x1fb060,null));};exports[_0xea49('0x85')]=function(_0x1f4ceb,_0x26dbb2){return db['MailAccount'][_0xea49('0x6a')]({'where':{'id':_0x1f4ceb['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x26dbb2,null))[_0xea49('0x10')](function(_0x9bf41){if(_0x9bf41){return _0x9bf41['setSmtp'](null);}return null;})[_0xea49('0x10')](respondWithStatusCode(_0x26dbb2,null))[_0xea49('0x1a')](handleError(_0x26dbb2,null));};exports[_0xea49('0x86')]=function(_0x4e76e6,_0x399cbd){return db[_0xea49('0x87')][_0xea49('0x62')]({'where':{'id':_0x4e76e6['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x399cbd,null))[_0xea49('0x10')](function(_0x17a34e){if(_0x17a34e){return _0x17a34e[_0xea49('0x86')](_0x4e76e6[_0xea49('0x63')]['ids'],_[_0xea49('0x88')](_0x4e76e6[_0xea49('0x63')],[_0xea49('0x74'),'id'])||{});}})[_0xea49('0x10')](respondWithResult(_0x399cbd,null))['catch'](handleError(_0x399cbd,null));};exports[_0xea49('0x89')]=function(_0x2eec5a,_0x240361){var _0x1eaa09={'raw':![],'where':{}};var _0x2102de={};var _0x4c7dbe={'count':0x0,'rows':[]};return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x2eec5a[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x240361,null))[_0xea49('0x10')](function(_0x588924){if(_0x588924){_0x2102de[_0xea49('0x48')]=_[_0xea49('0x4b')](db[_0xea49('0x87')]['rawAttributes']);_0x2102de[_0xea49('0x4a')]=_[_0xea49('0x4b')](_0x2eec5a[_0xea49('0x4a')]);_0x2102de[_0xea49('0x4c')]=_['intersection'](_0x2102de[_0xea49('0x48')],_0x2102de[_0xea49('0x4a')]);_0x1eaa09['attributes']=_[_0xea49('0x4d')](_0x2102de[_0xea49('0x48')],qs[_0xea49('0x4e')](_0x2eec5a[_0xea49('0x4a')][_0xea49('0x4e')]));_0x1eaa09[_0xea49('0x4f')]=_0x1eaa09[_0xea49('0x4f')][_0xea49('0x50')]?_0x1eaa09[_0xea49('0x4f')]:_0x2102de[_0xea49('0x48')];if(!_0x2eec5a['query']['hasOwnProperty'](_0xea49('0x52'))){_0x1eaa09[_0xea49('0x1f')]=qs[_0xea49('0x1f')](_0x2eec5a[_0xea49('0x4a')][_0xea49('0x1f')]);_0x1eaa09[_0xea49('0x1d')]=qs['offset'](_0x2eec5a['query'][_0xea49('0x1d')]);}_0x1eaa09[_0xea49('0x8a')]=qs[_0xea49('0x53')](_0x2eec5a[_0xea49('0x4a')][_0xea49('0x53')]);_0x1eaa09[_0xea49('0x54')]=qs[_0xea49('0x4c')](_[_0xea49('0x6b')](_0x2eec5a[_0xea49('0x4a')],_0x2102de[_0xea49('0x4c')]));_0x1eaa09[_0xea49('0x54')]['MailAccountId']=_0x588924['id'];if(_0x2eec5a[_0xea49('0x4a')][_0xea49('0x55')]){_0x1eaa09[_0xea49('0x54')]=_['merge'](_0x1eaa09[_0xea49('0x54')],{'$or':_[_0xea49('0x56')](_0x1eaa09[_0xea49('0x4f')],function(_0x5d443b){var _0xbd85b3={};_0xbd85b3[_0x5d443b]={'$like':'%'+_0x2eec5a[_0xea49('0x4a')][_0xea49('0x55')]+'%'};return _0xbd85b3;})});}_0x1eaa09=_['merge']({},_0x1eaa09,_0x2eec5a[_0xea49('0x59')]);return db[_0xea49('0x87')]['count']({'where':_0x1eaa09[_0xea49('0x54')]})['then'](function(_0x545527){_0x4c7dbe['count']=_0x545527;if(_0x2eec5a[_0xea49('0x4a')][_0xea49('0x5b')]){_0x1eaa09[_0xea49('0x5c')]=[{'model':db[_0xea49('0x8b')],'as':_0xea49('0x8c'),'required':![]},{'model':db[_0xea49('0x8d')],'as':'Owner','attributes':[_0xea49('0x49'),'fullname','internal'],'required':![]},{'model':db[_0xea49('0x8e')],'as':_0xea49('0x8f'),'attributes':['id','name',_0xea49('0x90')],'where':_0x2eec5a[_0xea49('0x4a')]['tag']?{'id':_0x2eec5a[_0xea49('0x4a')][_0xea49('0x91')]}:undefined,'required':_0x2eec5a['query'][_0xea49('0x91')]?!![]:![]}];}return db[_0xea49('0x87')][_0xea49('0x5d')](_0x1eaa09);})[_0xea49('0x10')](function(_0x4a404b){_0x4c7dbe[_0xea49('0x5e')]=_0x4a404b;return _0x4c7dbe;});}})[_0xea49('0x10')](respondWithFilteredResult(_0x240361,_0x1eaa09))[_0xea49('0x1a')](handleError(_0x240361,null));};exports[_0xea49('0x92')]=function addApplications(_0x299f7c,_0x2941c7){var _0x18ec08=_0x299f7c[_0xea49('0x60')]['id'];var _0x234050=_0x299f7c[_0xea49('0x63')];var _0x470d34=0xc8;var _0x41701a=null;return db[_0xea49('0x93')]['transaction']({'isolationLevel':db['sequelize'][_0xea49('0x94')][_0xea49('0x95')][_0xea49('0x96')]},function(_0x555ba9){return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x18ec08},'transaction':_0x555ba9})[_0xea49('0x10')](function(_0x1d88a0){if(_0x1d88a0){return db['MailApplication']['destroy']({'where':{'MailAccountId':_0x18ec08},'transaction':_0x555ba9})['then'](function(){var _0x8ddacd=_[_0xea49('0x56')](_0x234050,function(_0x113bb1){_0x113bb1[_0xea49('0x6f')]=_0x18ec08;return _0x113bb1;});return db[_0xea49('0x97')]['bulkCreate'](_0x8ddacd,{'transaction':_0x555ba9});});}else{_0x470d34=0x194;_0x41701a=[];}});})[_0xea49('0x10')](function(){if(_0x470d34!==0x194){return db[_0xea49('0x97')][_0xea49('0x98')]({'where':{'MailAccountId':_0x18ec08},'order':'priority'})[_0xea49('0x10')](function(_0x37023e){_0x41701a=_0x37023e;});}})['catch'](function(_0x24ef3a){_0x470d34=0x1f4;logger[_0xea49('0x15')](_0x24ef3a['stack']);if(_0x24ef3a[_0xea49('0x49')]){delete _0x24ef3a[_0xea49('0x49')];}_0x41701a=_0x24ef3a;})[_0xea49('0x99')](function(){if(_0x41701a===null){_0x2941c7[_0xea49('0x9a')](_0x470d34);}else{if(_0x470d34===0x1f4){_0x2941c7[_0xea49('0x1b')](_0x470d34)[_0xea49('0x29')](_0x41701a);}else{_0x2941c7[_0xea49('0x1b')](_0x470d34)['json'](_0x41701a);}}});};exports['getApplications']=function(_0x3a8100,_0x4c62d1){var _0x27bea3={};var _0x113904={};var _0x52a9ad;var _0x6983d2;return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x3a8100[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x4c62d1,null))[_0xea49('0x10')](function(_0x1dbf71){if(_0x1dbf71){_0x52a9ad=_0x1dbf71;_0x113904[_0xea49('0x48')]=_['keys'](db['MailApplication'][_0xea49('0x72')]);_0x113904[_0xea49('0x4a')]=_['keys'](_0x3a8100[_0xea49('0x4a')]);_0x113904[_0xea49('0x4c')]=_[_0xea49('0x4d')](_0x113904['model'],_0x113904[_0xea49('0x4a')]);_0x27bea3[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x113904[_0xea49('0x48')],qs[_0xea49('0x4e')](_0x3a8100[_0xea49('0x4a')][_0xea49('0x4e')]));_0x27bea3['attributes']=_0x27bea3[_0xea49('0x4f')][_0xea49('0x50')]?_0x27bea3[_0xea49('0x4f')]:_0x113904[_0xea49('0x48')];_0x27bea3['order']=qs['sort'](_0x3a8100[_0xea49('0x4a')][_0xea49('0x53')]);_0x27bea3['where']=qs[_0xea49('0x4c')](_[_0xea49('0x6b')](_0x3a8100['query'],_0x113904['filters']));if(_0x3a8100[_0xea49('0x4a')][_0xea49('0x55')]){_0x27bea3['where']=_[_0xea49('0x6c')](_0x27bea3['where'],{'$or':_['map'](_0x27bea3[_0xea49('0x4f')],function(_0x634dd5){var _0x24d1a1={};_0x24d1a1[_0x634dd5]={'$like':'%'+_0x3a8100[_0xea49('0x4a')]['filter']+'%'};return _0x24d1a1;})});}_0x27bea3=_[_0xea49('0x6c')]({},_0x27bea3,_0x3a8100[_0xea49('0x59')]);return _0x52a9ad[_0xea49('0x9b')](_0x27bea3);}})[_0xea49('0x10')](function(_0x10a864){if(_0x10a864){_0x6983d2=_0x10a864[_0xea49('0x50')];if(!_0x3a8100['query'][_0xea49('0x51')](_0xea49('0x52'))){_0x27bea3[_0xea49('0x1f')]=qs['limit'](_0x3a8100[_0xea49('0x4a')][_0xea49('0x1f')]);_0x27bea3[_0xea49('0x1d')]=qs['offset'](_0x3a8100['query'][_0xea49('0x1d')]);}return _0x52a9ad[_0xea49('0x9b')](_0x27bea3);}})[_0xea49('0x10')](function(_0x37937e){if(_0x37937e){return _0x37937e?{'count':_0x6983d2,'rows':_0x37937e}:null;}})['then'](respondWithResult(_0x4c62d1,null))['catch'](handleError(_0x4c62d1,null));};exports['getMessages']=function(_0x5c2c52,_0x193423){var _0x1208d1={'raw':!![],'where':{}};var _0x1bb83b={};var _0x1f5fc9={'count':0x0,'rows':[]};return db[_0xea49('0x5a')][_0xea49('0x6a')]({'where':{'id':_0x5c2c52['params']['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x193423,null))[_0xea49('0x10')](function(_0x21551d){if(_0x21551d){_0x1bb83b[_0xea49('0x48')]=_[_0xea49('0x4b')](db[_0xea49('0x9c')][_0xea49('0x72')]);_0x1bb83b['query']=_[_0xea49('0x4b')](_0x5c2c52['query']);_0x1bb83b['filters']=_[_0xea49('0x4d')](_0x1bb83b[_0xea49('0x48')],_0x1bb83b['query']);_0x1208d1[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x1bb83b[_0xea49('0x48')],qs['fields'](_0x5c2c52[_0xea49('0x4a')][_0xea49('0x4e')]));_0x1208d1[_0xea49('0x4f')]=_0x1208d1[_0xea49('0x4f')]['length']?_0x1208d1['attributes']:_0x1bb83b[_0xea49('0x48')];if(!_0x5c2c52[_0xea49('0x4a')][_0xea49('0x51')](_0xea49('0x52'))){_0x1208d1['limit']=qs[_0xea49('0x1f')](_0x5c2c52[_0xea49('0x4a')][_0xea49('0x1f')]);_0x1208d1['offset']=qs['offset'](_0x5c2c52[_0xea49('0x4a')]['offset']);}_0x1208d1[_0xea49('0x8a')]=qs['sort'](_0x5c2c52[_0xea49('0x4a')][_0xea49('0x53')]);_0x1208d1[_0xea49('0x54')]=qs[_0xea49('0x4c')](_[_0xea49('0x6b')](_0x5c2c52[_0xea49('0x4a')],_0x1bb83b[_0xea49('0x4c')]));_0x1208d1[_0xea49('0x54')]['MailAccountId']=_0x21551d['id'];if(_0x5c2c52['query'][_0xea49('0x55')]){_0x1208d1[_0xea49('0x54')]=_[_0xea49('0x6c')](_0x1208d1[_0xea49('0x54')],{'$or':_['map'](_0x1208d1[_0xea49('0x4f')],function(_0x7c41f9){var _0x2bba8b={};_0x2bba8b[_0x7c41f9]={'$like':'%'+_0x5c2c52[_0xea49('0x4a')][_0xea49('0x55')]+'%'};return _0x2bba8b;})});}if(_0x5c2c52[_0xea49('0x4a')][_0xea49('0x9d')]){var _0x5965d2=_0x5c2c52[_0xea49('0x4a')][_0xea49('0x9d')][_0xea49('0x9e')](',');var _0x5242a1={};_0x5242a1[_0x5965d2[0x0]]={'$gte':moment(_0x5965d2[0x1])['format'](_0xea49('0x9f'))};_0x1208d1['where']=_[_0xea49('0x6c')](_0x1208d1[_0xea49('0x54')],_0x5242a1);}_0x1208d1=_['merge']({},_0x1208d1,_0x5c2c52['options']);return db[_0xea49('0x9c')][_0xea49('0x20')]({'where':_0x1208d1[_0xea49('0x54')]})[_0xea49('0x10')](function(_0x3951a1){_0x1f5fc9[_0xea49('0x20')]=_0x3951a1;if(_0x5c2c52[_0xea49('0x4a')][_0xea49('0x5b')]){_0x1208d1[_0xea49('0x5c')]=[{'all':!![]}];}return db['MailMessage'][_0xea49('0x5d')](_0x1208d1);})['then'](function(_0x4e215d){if(_0x5c2c52[_0xea49('0x4a')][_0xea49('0xa0')]==='true'){for(var _0x268158=0x0;_0x268158<_0x4e215d[_0xea49('0x50')];_0x268158++){_0x4e215d[_0x268158][_0xea49('0x63')]=juice(_0x4e215d[_0x268158][_0xea49('0x63')]);}}_0x1f5fc9[_0xea49('0x5e')]=_0x4e215d;return _0x1f5fc9;});}})[_0xea49('0x10')](respondWithFilteredResult(_0x193423,_0x1208d1))['catch'](handleError(_0x193423,null));};exports[_0xea49('0x29')]=function(_0x526eef,_0x4745bb){var _0x5b92c8,_0x37d9f1={},_0x3a198f;if(_0x526eef[_0xea49('0x63')]['to']){_0x3a198f=_0x526eef['body']['to']['split'](',')[0x0];}return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x526eef['params']['id']},'include':[{'model':db['CmList'],'as':_0xea49('0xa1'),'include':[{'model':db[_0xea49('0x8b')],'as':_0xea49('0xa2'),'where':{'email':_0x3a198f},'limit':0x1,'order':[[_0xea49('0xa3'),'DESC']]}]},{'model':db[_0xea49('0x46')],'as':_0xea49('0x43'),'raw':!![],'include':[{'model':db[_0xea49('0xa4')],'as':_0xea49('0xa4'),'raw':!![]}]}]})[_0xea49('0x10')](handleEntityNotFound(_0x4745bb,null))[_0xea49('0x10')](function(_0x334ed2){if(!_0x334ed2)return;_0x5b92c8=_0x334ed2;if(!_0x334ed2[_0xea49('0x43')])throw new Error('Smtp\x20configuration\x20not\x20found');if(_['isNil'](_0x526eef[_0xea49('0x63')][_0xea49('0xa5')])){_0x526eef[_0xea49('0x63')][_0xea49('0xa5')]=util[_0xea49('0xa6')]('%s\x20<%s>',_0x334ed2[_0xea49('0x49')],_0x334ed2[_0xea49('0x77')]||_0x334ed2[_0xea49('0x43')]['user']);}if(_0x526eef[_0xea49('0x63')][_0xea49('0xa7')]&&_0x526eef[_0xea49('0x63')][_0xea49('0xa7')][_0xea49('0x50')]){for(var _0x12777a=0x0;_0x12777a<_0x526eef[_0xea49('0x63')][_0xea49('0xa7')][_0xea49('0x50')];_0x12777a+=0x1){_0x526eef[_0xea49('0x63')][_0xea49('0xa7')][_0x12777a]={'filename':_0x526eef['body'][_0xea49('0xa7')][_0x12777a]['name'],'path':path['join'](config['root'],'server/files/attachments',_0x526eef[_0xea49('0x63')]['attachments'][_0x12777a][_0xea49('0xa8')])};}}var _0x53da12=_0x334ed2[_0xea49('0xa9')]();return respondWithRpcPromise(_0xea49('0xaa'),_0xea49('0xab'),{'account':_0x53da12,'message':_0x526eef[_0xea49('0x63')]});})['then'](function(_0x2cdee1){if(!_0x2cdee1)return;_0x37d9f1=_0x2cdee1;if(!_0x5b92c8[_0xea49('0xa1')])throw new Error(_0xea49('0xac'));if(_0x5b92c8[_0xea49('0xa1')][_0xea49('0xa2')][_0xea49('0x50')])return _0x5b92c8['List'][_0xea49('0xa2')][0x0];return db[_0xea49('0x8b')][_0xea49('0x68')](_[_0xea49('0x7')](_0x526eef['body'],{'firstName':_0x526eef[_0xea49('0x63')]['to'],'email':_0x526eef['body']['to'],'phone':_0x526eef[_0xea49('0x63')]['to'],'ListId':_0x5b92c8['ListId']}));})[_0xea49('0x10')](function(_0x32ecef){if(!_0x32ecef)return;var _0x423876={'UserId':_0x526eef[_0xea49('0x37')]['id'],'ContactId':_0x32ecef['id'],'MailAccountId':_0x5b92c8['id'],'inReplyTo':_0x37d9f1[_0xea49('0xad')],'to':_0x526eef['body'][_0xea49('0xa5')],'cc':_0x526eef['body']['cc'],'subject':_0x526eef[_0xea49('0x63')][_0xea49('0xae')],'attach':_0x526eef[_0xea49('0x63')][_0xea49('0xaf')],'firstMsgDirection':'out','lastMsgAt':moment()['format'](_0xea49('0x9f')),'lastMsgDirection':'out','Messages':[_['merge'](_0x526eef['body'],{'messageId':_0x37d9f1[_0xea49('0xad')],'sentAt':moment()[_0xea49('0xa6')](_0xea49('0x9f')),'read':!![],'MailAccountId':_0x5b92c8['id'],'UserId':_0x526eef[_0xea49('0x37')]['id'],'ContactId':_0x32ecef['id']})]};if(_0x526eef[_0xea49('0x63')][_0xea49('0xb0')]){_0x423876=_[_0xea49('0x6c')](_0x423876,_0x526eef[_0xea49('0x63')][_0xea49('0xb0')]);}return db['MailInteraction']['create'](_0x423876,{'include':[{'model':db['MailMessage'],'as':_0xea49('0xb1')}]});})[_0xea49('0x10')](respondWithResult(_0x4745bb,null))[_0xea49('0x1a')](handleError(_0x4745bb,null));};exports[_0xea49('0xb2')]=function(_0x56faaf,_0x1d642d){return db[_0xea49('0x5a')]['find']({'where':{'id':_0x56faaf[_0xea49('0x60')]['id']},'include':[{'model':db[_0xea49('0x46')],'as':_0xea49('0x43'),'raw':!![],'include':[{'model':db[_0xea49('0xa4')],'as':'CloudProvider','raw':!![]}]}]})[_0xea49('0x10')](handleEntityNotFound(_0x1d642d,null))[_0xea49('0x10')](function(_0x5070a4){if(!_0x5070a4[_0xea49('0x43')])return;var _0x14d40c=_0x5070a4[_0xea49('0xa9')]();return respondWithRpcPromise(_0xea49('0xb3'),_0xea49('0xb2'),{'account':_0x14d40c});})['then'](respondWithResult(_0x1d642d,null))[_0xea49('0x1a')](handleError(_0x1d642d,null));};exports[_0xea49('0x26')]=function(_0x5b3437,_0x48d7a8){return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x5b3437[_0xea49('0x60')]['id']}})['then'](handleEntityNotFound(_0x48d7a8,null))[_0xea49('0x10')](function(_0x3e2535){if(_0x3e2535&&_0x3e2535['service']){throw new db['Sequelize'][(_0xea49('0xb4'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x3e2535;})[_0xea49('0x10')](removeEntity(_0x48d7a8,null))[_0xea49('0x1a')](handleError(_0x48d7a8,null));};exports[_0xea49('0xb5')]=function(_0x693b9c,_0x361fb5){return db[_0xea49('0x5a')][_0xea49('0x62')]({'where':{'id':_0x693b9c[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x361fb5,null))[_0xea49('0x10')](function(_0x532c2c){if(_0x532c2c){return _0x532c2c[_0xea49('0xb5')](_0x693b9c[_0xea49('0x63')][_0xea49('0x74')],_[_0xea49('0x88')](_0x693b9c[_0xea49('0x63')],[_0xea49('0x74'),'id'])||{})[_0xea49('0xb6')](function(_0xbce319){for(var _0x101e7f=0x0;_0x101e7f<_0x693b9c[_0xea49('0x63')]['ids'][_0xea49('0x50')];_0x101e7f+=0x1){socket['emit']('userMailAccount:save',{'UserId':Number(_0x693b9c[_0xea49('0x63')][_0xea49('0x74')][_0x101e7f]),'MailAccountId':Number(_0x693b9c['params']['id'])});}return _0xbce319;});}})[_0xea49('0x10')](respondWithResult(_0x361fb5,null))[_0xea49('0x1a')](handleError(_0x361fb5,null));};exports['removeAgents']=function(_0x42da55,_0x3ca2a1){return db[_0xea49('0x5a')]['find']({'where':{'id':_0x42da55[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x3ca2a1,null))[_0xea49('0x10')](function(_0x44f242){if(_0x44f242){return _0x44f242['removeAgents'](_0x42da55['query']['ids'])['then'](function(){if(_[_0xea49('0xb7')](_0x42da55[_0xea49('0x4a')][_0xea49('0x74')])){for(var _0x2b333=0x0;_0x2b333<_0x42da55[_0xea49('0x4a')][_0xea49('0x74')][_0xea49('0x50')];_0x2b333+=0x1){socket[_0xea49('0xb8')](_0xea49('0xb9'),{'UserId':Number(_0x42da55[_0xea49('0x4a')]['ids'][_0x2b333]),'MailAccountId':Number(_0x42da55[_0xea49('0x60')]['id'])});}}else{socket[_0xea49('0xb8')](_0xea49('0xb9'),{'UserId':Number(_0x42da55[_0xea49('0x4a')][_0xea49('0x74')]),'MailAccountId':Number(_0x42da55[_0xea49('0x60')]['id'])});}});}})[_0xea49('0x10')](respondWithStatusCode(_0x3ca2a1,null))['catch'](handleError(_0x3ca2a1,null));};exports[_0xea49('0xba')]=function(_0x5f137b,_0x17fcc2){var _0x2a9e9e={};var _0x4eb167={};var _0x32177c;var _0x1f088e;return db['MailAccount'][_0xea49('0x6a')]({'where':{'id':_0x5f137b[_0xea49('0x60')]['id']}})[_0xea49('0x10')](handleEntityNotFound(_0x17fcc2,null))['then'](function(_0x4a2499){if(_0x4a2499){_0x32177c=_0x4a2499;_0x4eb167[_0xea49('0x48')]=_[_0xea49('0x4b')](db['User'][_0xea49('0x72')]);_0x4eb167[_0xea49('0x4a')]=_[_0xea49('0x4b')](_0x5f137b[_0xea49('0x4a')]);_0x4eb167['filters']=_['intersection'](_0x4eb167[_0xea49('0x48')],_0x4eb167[_0xea49('0x4a')]);_0x2a9e9e[_0xea49('0x4f')]=_[_0xea49('0x4d')](_0x4eb167[_0xea49('0x48')],qs['fields'](_0x5f137b['query']['fields']));_0x2a9e9e[_0xea49('0x4f')]=_0x2a9e9e[_0xea49('0x4f')][_0xea49('0x50')]?_0x2a9e9e['attributes']:_0x4eb167[_0xea49('0x48')];_0x2a9e9e[_0xea49('0x8a')]=qs[_0xea49('0x53')](_0x5f137b[_0xea49('0x4a')][_0xea49('0x53')]);_0x2a9e9e[_0xea49('0x54')]=qs[_0xea49('0x4c')](_[_0xea49('0x6b')](_0x5f137b[_0xea49('0x4a')],_0x4eb167['filters']));if(_0x5f137b[_0xea49('0x4a')][_0xea49('0x55')]){_0x2a9e9e[_0xea49('0x54')]=_[_0xea49('0x6c')](_0x2a9e9e[_0xea49('0x54')],{'$or':_[_0xea49('0x56')](_0x2a9e9e[_0xea49('0x4f')],function(_0xbf6313){var _0x373073={};_0x373073[_0xbf6313]={'$like':'%'+_0x5f137b['query'][_0xea49('0x55')]+'%'};return _0x373073;})});}_0x2a9e9e=_['merge']({},_0x2a9e9e,_0x5f137b[_0xea49('0x59')]);return _0x32177c[_0xea49('0xba')](_0x2a9e9e);}})[_0xea49('0x10')](function(_0xabe352){if(_0xabe352){_0x1f088e=_0xabe352['length'];if(!_0x5f137b['query'][_0xea49('0x51')](_0xea49('0x52'))){_0x2a9e9e[_0xea49('0x1f')]=qs[_0xea49('0x1f')](_0x5f137b[_0xea49('0x4a')][_0xea49('0x1f')]);_0x2a9e9e[_0xea49('0x1d')]=qs[_0xea49('0x1d')](_0x5f137b['query']['offset']);}return _0x32177c['getAgents'](_0x2a9e9e);}})[_0xea49('0x10')](function(_0x2d3194){if(_0x2d3194){return _0x2d3194?{'count':_0x1f088e,'rows':_0x2d3194}:null;}})[_0xea49('0x10')](respondWithResult(_0x17fcc2,null))[_0xea49('0x1a')](handleError(_0x17fcc2,null));};