9f8a441f33add4a44d74b0adcb93cfc5235e7901
[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 _0x2c85=['split','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','CmList','Contacts','updatedAt','CloudProvider','Smtp\x20configuration\x20not\x20found','from','format','%s\x20<%s>','attachments','basename','getSmtpOptions','SendMail','List','List\x20not\x20found','defaults','messageId','subject','out','Interaction','Messages','verifySmtp','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','emit','removeAgents','isArray','userMailAccount:remove','getAgents','moment','util','path','lodash','juice','ioredis','../../components/parsers/qs','../../config/logger','../../mysqldb','redis','localhost','./mailAccount.socket','jayson/promise','client','http','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','offset','limit','undefined','count','Content-Range','destroy','get','MailAccounts','stack','name','send','imap.gmail.com','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','Unknown\x20email\x20service\x20provider','gmail','smtp.gmail.com','smtp.mail.yahoo.com','smtp-mail.outlook.com','user','username','password','pass','modernAuthentication','CloudProviderId','host','port','secure','service','authentication','Imap','Smtp','MailServerOut','Pause','mandatoryDispositionPause','map','rawAttributes','fieldName','type','query','keys','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','MailAccount','includeAll','include','rows','params','intersection','find','catch','update','body','provider','MailServerIn','Mail\x20Account\x20not\x20found','describe','MailAccountId','Disposition','create','findOne','findAll','removeDispositions','CannedAnswer','getAnswers','removeAnswers','ids','key','custom','email','isNil','active','description','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','MailInteraction','omit','getInteractions','CmContact','Contact','User','Owner','internal','Tag','color','tag','addApplications','transaction','sequelize','Transaction','READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','finally','json','getApplications','getMessages','MailMessage','$gte'];(function(_0x20bbaa,_0x2d39be){var _0x33e6c5=function(_0x36a45c){while(--_0x36a45c){_0x20bbaa['push'](_0x20bbaa['shift']());}};_0x33e6c5(++_0x2d39be);}(_0x2c85,0xde));var _0x52c8=function(_0x184b7d,_0x4cde4e){_0x184b7d=_0x184b7d-0x0;var _0xe51a6f=_0x2c85[_0x184b7d];return _0xe51a6f;};'use strict';var moment=require(_0x52c8('0x0'));var BPromise=require('bluebird');var util=require(_0x52c8('0x1'));var path=require(_0x52c8('0x2'));var _=require(_0x52c8('0x3'));var juice=require(_0x52c8('0x4'));var Redis=require(_0x52c8('0x5'));var qs=require(_0x52c8('0x6'));var logger=require(_0x52c8('0x7'))('api');var config=require('../../config/environment');var db=require(_0x52c8('0x8'))['db'];config[_0x52c8('0x9')]=_['defaults'](config['redis'],{'host':_0x52c8('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x52c8('0xb'))['register'](socket);var jayson=require(_0x52c8('0xc'));var client=jayson[_0x52c8('0xd')][_0x52c8('0xe')]({'port':0x232b});function respondWithRpcPromise(_0x29065a,_0x1a707f,_0x452155,_0x356334){return new BPromise(function(_0x4d2eb5,_0x2cc738){var _0x17e6ad=_0x356334||client;return _0x17e6ad[_0x52c8('0xf')](_0x29065a,_0x452155)[_0x52c8('0x10')](function(_0xdd4f63){logger[_0x52c8('0x11')](_0x52c8('0x12'),_0x1a707f,_0x52c8('0x13'));logger[_0x52c8('0x14')](_0x52c8('0x15'),_0x1a707f,'request\x20sent',JSON[_0x52c8('0x16')](_0xdd4f63));if(_0xdd4f63[_0x52c8('0x17')]){if(_0xdd4f63['error'][_0x52c8('0x18')]===0x1f4){logger[_0x52c8('0x17')](_0x52c8('0x12'),_0x1a707f,_0xdd4f63[_0x52c8('0x17')][_0x52c8('0x19')]);return _0x2cc738(_0xdd4f63[_0x52c8('0x17')][_0x52c8('0x19')]);}logger[_0x52c8('0x17')](_0x52c8('0x12'),_0x1a707f,_0xdd4f63['error'][_0x52c8('0x19')]);return _0x4d2eb5(_0xdd4f63[_0x52c8('0x17')][_0x52c8('0x19')]);}else{logger['info'](_0x52c8('0x12'),_0x1a707f,'request\x20sent');_0x4d2eb5(_0xdd4f63[_0x52c8('0x1a')][_0x52c8('0x19')]);}})['catch'](function(_0x580d9c){logger[_0x52c8('0x17')]('MailAccount,\x20%s,\x20%s',_0x1a707f,_0x580d9c);_0x2cc738(_0x580d9c);});});}function respondWithStatusCode(_0x33ae05,_0x31f6b3){_0x31f6b3=_0x31f6b3||0xcc;return function(_0xf6105b){if(_0xf6105b){return _0x33ae05[_0x52c8('0x1b')](_0x31f6b3);}return _0x33ae05[_0x52c8('0x1c')](_0x31f6b3)[_0x52c8('0x1d')]();};}function respondWithResult(_0x5531e9,_0xdc9331){_0xdc9331=_0xdc9331||0xc8;return function(_0x13099e){if(_0x13099e){return _0x5531e9[_0x52c8('0x1c')](_0xdc9331)['json'](_0x13099e);}};}function respondWithFilteredResult(_0x5cd9a4,_0x53b3da){return function(_0x4f8e48){if(_0x4f8e48){var _0x5a3fc8=typeof _0x53b3da[_0x52c8('0x1e')]==='undefined'&&typeof _0x53b3da[_0x52c8('0x1f')]===_0x52c8('0x20');var _0x5747e2=_0x4f8e48[_0x52c8('0x21')];var _0x3780e2=_0x5a3fc8?0x0:_0x53b3da['offset'];var _0x3f2880=_0x5a3fc8?_0x4f8e48[_0x52c8('0x21')]:_0x53b3da[_0x52c8('0x1e')]+_0x53b3da[_0x52c8('0x1f')];var _0x4d9d68;if(_0x3f2880>=_0x5747e2){_0x3f2880=_0x5747e2;_0x4d9d68=0xc8;}else{_0x4d9d68=0xce;}_0x5cd9a4[_0x52c8('0x1c')](_0x4d9d68);return _0x5cd9a4['set'](_0x52c8('0x22'),_0x3780e2+'-'+_0x3f2880+'/'+_0x5747e2)['json'](_0x4f8e48);}return null;};}function saveUpdates(_0x1f20a9){return function(_0x2552df){if(_0x2552df){return _0x2552df['update'](_0x1f20a9)['then'](function(_0x185bd9){return _0x185bd9;});}return null;};}function removeEntity(_0xce45d7){return function(_0x459506){if(_0x459506){return _0x459506[_0x52c8('0x23')]()[_0x52c8('0x10')](function(){var _0x5e4df2=_0x459506[_0x52c8('0x24')]({'plain':!![]});var _0x4db686=_0x52c8('0x25');return db['UserProfileResource'][_0x52c8('0x23')]({'where':{'type':_0x4db686,'resourceId':_0x5e4df2['id']}})[_0x52c8('0x10')](function(){return _0x459506;});})[_0x52c8('0x10')](function(){_0xce45d7[_0x52c8('0x1c')](0xcc)[_0x52c8('0x1d')]();});}};}function handleEntityNotFound(_0x4c45c2){return function(_0x46e645){if(!_0x46e645){_0x4c45c2['sendStatus'](0x194);}return _0x46e645;};}function handleError(_0x2d5e84,_0x1209d2){_0x1209d2=_0x1209d2||0x1f4;return function(_0x4f290c){logger[_0x52c8('0x17')](_0x4f290c[_0x52c8('0x26')]);if(_0x4f290c[_0x52c8('0x27')]){delete _0x4f290c['name'];}_0x2d5e84[_0x52c8('0x1c')](_0x1209d2)[_0x52c8('0x28')](_0x4f290c);};}function getImapHost(_0x434e4a){switch(_0x434e4a){case'gmail':return _0x52c8('0x29');case _0x52c8('0x2a'):return'imap.mail.yahoo.com';case _0x52c8('0x2b'):return _0x52c8('0x2c');case _0x52c8('0x2d'):return _0x52c8('0x2e');}throw new Error(_0x52c8('0x2f'),_0x434e4a);}function getSmtpHost(_0x38b719){switch(_0x38b719){case _0x52c8('0x30'):return _0x52c8('0x31');case _0x52c8('0x2a'):return _0x52c8('0x32');case _0x52c8('0x2b'):return _0x52c8('0x33');case'outlook365':return'smtp.office365.com';}throw new Error('Unknown\x20email\x20service\x20provider',_0x38b719);}function getAuthenticationOptions(_0x3c93ed,_0x6adfcd){var _0x1725d6={};var _0x188b73={};if(_0x3c93ed){_0x1725d6[_0x52c8('0x34')]=_0x188b73[_0x52c8('0x34')]=_0x6adfcd[_0x52c8('0x35')];_0x1725d6[_0x52c8('0x36')]=_0x188b73[_0x52c8('0x37')]=_0x6adfcd[_0x52c8('0x36')];if(_0x6adfcd['modernAuthentication']){_0x1725d6[_0x52c8('0x38')]=_0x188b73['modernAuthentication']=!![];_0x1725d6[_0x52c8('0x39')]=_0x188b73[_0x52c8('0x39')]=_0x6adfcd[_0x52c8('0x39')];_0x1725d6[_0x52c8('0x36')]=_0x188b73['pass']=null;}else{_0x1725d6[_0x52c8('0x39')]=_0x188b73[_0x52c8('0x39')]=null;}_0x1725d6[_0x52c8('0x3a')]=getImapHost(_0x3c93ed);_0x1725d6[_0x52c8('0x3b')]=0x3e1;_0x188b73[_0x52c8('0x3a')]=getSmtpHost(_0x3c93ed);_0x188b73[_0x52c8('0x3b')]=0x24b;_0x188b73[_0x52c8('0x3c')]=![];_0x1725d6[_0x52c8('0x3d')]=_0x188b73[_0x52c8('0x3d')]=null;}else{if(_0x6adfcd[_0x52c8('0x3e')]){_0x1725d6['user']=_0x188b73[_0x52c8('0x34')]=_0x6adfcd[_0x52c8('0x35')];_0x1725d6['password']=_0x188b73[_0x52c8('0x37')]=_0x6adfcd['password'];}else{_0x1725d6[_0x52c8('0x3e')]=_0x188b73[_0x52c8('0x3e')]=![];_0x1725d6['user']=_0x188b73[_0x52c8('0x34')]=null;_0x1725d6[_0x52c8('0x36')]=_0x188b73['pass']=null;}_0x1725d6['host']=_0x6adfcd[_0x52c8('0x3f')][_0x52c8('0x3a')];_0x1725d6[_0x52c8('0x3b')]=_0x6adfcd[_0x52c8('0x3f')][_0x52c8('0x3b')];_0x188b73['host']=_0x6adfcd[_0x52c8('0x40')][_0x52c8('0x3a')];_0x188b73[_0x52c8('0x3b')]=_0x6adfcd['Smtp'][_0x52c8('0x3b')];}return{'Imap':_0x1725d6,'Smtp':_0x188b73};}exports['index']=function(_0x5d403f,_0x2bc283){var _0x8bf0ed={'include':[{'model':db['MailServerIn'],'as':'Imap'},{'model':db[_0x52c8('0x41')],'as':_0x52c8('0x40')},{'model':db[_0x52c8('0x42')],'as':_0x52c8('0x43')}]},_0x4f868c={},_0x103395={'count':0x0,'rows':[]};var _0xeeae2=_[_0x52c8('0x44')](db['MailAccount'][_0x52c8('0x45')],function(_0x41fd2b){return{'name':_0x41fd2b[_0x52c8('0x46')],'type':_0x41fd2b[_0x52c8('0x47')]['key']};});_0x4f868c['model']=_[_0x52c8('0x44')](_0xeeae2,_0x52c8('0x27'));_0x4f868c[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x5d403f[_0x52c8('0x48')]);_0x4f868c[_0x52c8('0x4a')]=_['intersection'](_0x4f868c[_0x52c8('0x4b')],_0x4f868c['query']);_0x8bf0ed[_0x52c8('0x4c')]=_['intersection'](_0x4f868c['model'],qs[_0x52c8('0x4d')](_0x5d403f[_0x52c8('0x48')][_0x52c8('0x4d')]));_0x8bf0ed[_0x52c8('0x4c')]=_0x8bf0ed[_0x52c8('0x4c')][_0x52c8('0x4e')]?_0x8bf0ed[_0x52c8('0x4c')]:_0x4f868c[_0x52c8('0x4b')];if(!_0x5d403f['query'][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x8bf0ed[_0x52c8('0x1f')]=qs['limit'](_0x5d403f[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x8bf0ed['offset']=qs[_0x52c8('0x1e')](_0x5d403f[_0x52c8('0x48')][_0x52c8('0x1e')]);}_0x8bf0ed[_0x52c8('0x51')]=qs[_0x52c8('0x52')](_0x5d403f[_0x52c8('0x48')][_0x52c8('0x52')]);_0x8bf0ed['where']=qs[_0x52c8('0x4a')](_[_0x52c8('0x53')](_0x5d403f['query'],_0x4f868c['filters']),_0xeeae2);if(_0x5d403f[_0x52c8('0x48')][_0x52c8('0x54')]){_0x8bf0ed[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x8bf0ed['where'],{'$or':_[_0x52c8('0x44')](_0xeeae2,function(_0x15ef19){if(_0x15ef19['type']!==_0x52c8('0x57')){var _0x2d8152={};_0x2d8152[_0x15ef19['name']]={'$like':'%'+_0x5d403f[_0x52c8('0x48')][_0x52c8('0x54')]+'%'};return _0x2d8152;}})});}_0x8bf0ed=_[_0x52c8('0x56')]({},_0x8bf0ed,_0x5d403f[_0x52c8('0x58')]);var _0x3323d5={'where':_0x8bf0ed['where']};return db[_0x52c8('0x59')][_0x52c8('0x21')](_0x3323d5)[_0x52c8('0x10')](function(_0x41e496){_0x103395['count']=_0x41e496;if(_0x5d403f[_0x52c8('0x48')][_0x52c8('0x5a')]){_0x8bf0ed[_0x52c8('0x5b')]=[{'all':!![]}];}return db['MailAccount']['findAll'](_0x8bf0ed);})[_0x52c8('0x10')](function(_0x58f57e){_0x103395[_0x52c8('0x5c')]=_0x58f57e;return _0x103395;})[_0x52c8('0x10')](respondWithFilteredResult(_0x2bc283,_0x8bf0ed))['catch'](handleError(_0x2bc283,null));};exports['show']=function(_0x214e7e,_0x7b187d){var _0x2cdcc8={'raw':![],'where':{'id':_0x214e7e[_0x52c8('0x5d')]['id']},'include':[{'model':db['MailServerIn'],'as':'Imap'},{'model':db[_0x52c8('0x41')],'as':_0x52c8('0x40')},{'model':db['Pause'],'as':_0x52c8('0x43')}]},_0xf34b51={};_0xf34b51[_0x52c8('0x4b')]=_[_0x52c8('0x49')](db[_0x52c8('0x59')][_0x52c8('0x45')]);_0xf34b51[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x214e7e['query']);_0xf34b51['filters']=_[_0x52c8('0x5e')](_0xf34b51[_0x52c8('0x4b')],_0xf34b51[_0x52c8('0x48')]);_0x2cdcc8[_0x52c8('0x4c')]=_[_0x52c8('0x5e')](_0xf34b51[_0x52c8('0x4b')],qs[_0x52c8('0x4d')](_0x214e7e[_0x52c8('0x48')]['fields']));_0x2cdcc8['attributes']=_0x2cdcc8['attributes'][_0x52c8('0x4e')]?_0x2cdcc8[_0x52c8('0x4c')]:_0xf34b51['model'];if(_0x214e7e['query'][_0x52c8('0x5a')]){_0x2cdcc8[_0x52c8('0x5b')]=[{'all':!![]}];}_0x2cdcc8=_['merge']({},_0x2cdcc8,_0x214e7e['options']);return db[_0x52c8('0x59')][_0x52c8('0x5f')](_0x2cdcc8)['then'](handleEntityNotFound(_0x7b187d,null))[_0x52c8('0x10')](respondWithResult(_0x7b187d,null))[_0x52c8('0x60')](handleError(_0x7b187d,null));};exports[_0x52c8('0x61')]=function(_0x209435,_0x1d01ea){if(_0x209435[_0x52c8('0x62')]['id']){delete _0x209435['body']['id'];}var _0x9b88b1=_0x209435[_0x52c8('0x62')][_0x52c8('0x63')]==='custom'?null:_0x209435[_0x52c8('0x62')][_0x52c8('0x63')];var _0x4bbe40=_0x209435[_0x52c8('0x62')]['Imap']||{};var _0x1a78b1=_0x209435[_0x52c8('0x62')][_0x52c8('0x40')]||{};if(_0x9b88b1){_0x4bbe40['host']=getImapHost(_0x9b88b1);_0x4bbe40['port']=0x3e1;_0x1a78b1['host']=getSmtpHost(_0x9b88b1);_0x1a78b1[_0x52c8('0x3b')]=0x24b;_0x1a78b1[_0x52c8('0x3c')]=![];}if(_0x1a78b1[_0x52c8('0x38')]){_0x1a78b1[_0x52c8('0x3c')]=![];}else{_0x1a78b1[_0x52c8('0x39')]=null;}if(!_0x4bbe40[_0x52c8('0x38')])_0x4bbe40['CloudProviderId']=null;_0x209435[_0x52c8('0x62')][_0x52c8('0x3f')]=_0x4bbe40;_0x209435[_0x52c8('0x62')][_0x52c8('0x40')]=_0x1a78b1;return db['MailAccount']['find']({'where':{'id':_0x209435[_0x52c8('0x5d')]['id']},'include':[{'model':db[_0x52c8('0x64')],'as':_0x52c8('0x3f')},{'model':db[_0x52c8('0x41')],'as':_0x52c8('0x40')},{'model':db[_0x52c8('0x42')],'as':_0x52c8('0x43')}]})[_0x52c8('0x10')](handleEntityNotFound(_0x1d01ea,null))['then'](function(_0x255c34){if(!_0x255c34)throw new Error(_0x52c8('0x65'));if(_0x255c34[_0x52c8('0x3d')])delete _0x209435[_0x52c8('0x62')][_0x52c8('0x3f')];return _0x255c34;})[_0x52c8('0x10')](saveUpdates(_0x209435['body'],null))[_0x52c8('0x10')](function(_0x5eea01){if(!_0x209435[_0x52c8('0x62')][_0x52c8('0x3f')])return _0x5eea01;return db['MailServerIn'][_0x52c8('0x61')](_0x209435[_0x52c8('0x62')][_0x52c8('0x3f')],{'where':{'MailAccountId':_0x5eea01['id']}})['then'](function(){return _0x5eea01;});})['then'](function(_0x466074){if(!_0x209435[_0x52c8('0x62')][_0x52c8('0x40')])return _0x466074;return db[_0x52c8('0x41')][_0x52c8('0x61')](_0x209435[_0x52c8('0x62')][_0x52c8('0x40')],{'where':{'MailAccountId':_0x466074['id']}})[_0x52c8('0x10')](function(){return _0x466074;});})[_0x52c8('0x10')](respondWithResult(_0x1d01ea,null))['catch'](handleError(_0x1d01ea,null));};exports[_0x52c8('0x66')]=function(_0x5227ac,_0x3c5121){return db[_0x52c8('0x59')][_0x52c8('0x66')]()['then'](respondWithResult(_0x3c5121,null))[_0x52c8('0x60')](handleError(_0x3c5121,null));};exports['addDisposition']=function(_0x550712,_0x5b3e31){if(_0x550712['body']['id']){delete _0x550712[_0x52c8('0x62')]['id'];}return db[_0x52c8('0x59')]['find']({'where':{'id':_0x550712['params']['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x5b3e31,null))[_0x52c8('0x10')](function(_0x2a5f71){if(_0x2a5f71){_0x550712[_0x52c8('0x62')][_0x52c8('0x67')]=_0x2a5f71['id'];return db[_0x52c8('0x68')][_0x52c8('0x69')](_0x550712[_0x52c8('0x62')]);}})[_0x52c8('0x10')](respondWithResult(_0x5b3e31,null))['catch'](handleError(_0x5b3e31,null));};exports['getDispositions']=function(_0xbffc46,_0x2469fd){var _0x598b45={'raw':![],'where':{}};var _0x55cb89={};var _0x599954={'count':0x0,'rows':[]};return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0xbffc46['params']['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x2469fd,null))[_0x52c8('0x10')](function(_0x3a082b){if(_0x3a082b){_0x55cb89['model']=_[_0x52c8('0x49')](db['Disposition'][_0x52c8('0x45')]);_0x55cb89[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0xbffc46[_0x52c8('0x48')]);_0x55cb89[_0x52c8('0x4a')]=_[_0x52c8('0x5e')](_0x55cb89['model'],_0x55cb89[_0x52c8('0x48')]);_0x598b45[_0x52c8('0x4c')]=_[_0x52c8('0x5e')](_0x55cb89['model'],qs[_0x52c8('0x4d')](_0xbffc46[_0x52c8('0x48')]['fields']));_0x598b45[_0x52c8('0x4c')]=_0x598b45['attributes']['length']?_0x598b45[_0x52c8('0x4c')]:_0x55cb89[_0x52c8('0x4b')];if(!_0xbffc46[_0x52c8('0x48')][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x598b45[_0x52c8('0x1f')]=qs[_0x52c8('0x1f')](_0xbffc46[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x598b45['offset']=qs[_0x52c8('0x1e')](_0xbffc46[_0x52c8('0x48')][_0x52c8('0x1e')]);}_0x598b45[_0x52c8('0x51')]=qs[_0x52c8('0x52')](_0xbffc46['query']['sort']);_0x598b45[_0x52c8('0x55')]=qs[_0x52c8('0x4a')](_[_0x52c8('0x53')](_0xbffc46[_0x52c8('0x48')],_0x55cb89['filters']));_0x598b45[_0x52c8('0x55')][_0x52c8('0x67')]=_0x3a082b['id'];if(_0xbffc46[_0x52c8('0x48')][_0x52c8('0x54')]){_0x598b45[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x598b45[_0x52c8('0x55')],{'$or':_[_0x52c8('0x44')](_0x598b45[_0x52c8('0x4c')],function(_0x175cbd){var _0x38ffab={};_0x38ffab[_0x175cbd]={'$like':'%'+_0xbffc46[_0x52c8('0x48')][_0x52c8('0x54')]+'%'};return _0x38ffab;})});}_0x598b45=_[_0x52c8('0x56')]({},_0x598b45,_0xbffc46[_0x52c8('0x58')]);return db[_0x52c8('0x68')][_0x52c8('0x21')]({'where':_0x598b45[_0x52c8('0x55')]})['then'](function(_0x4f169e){_0x599954[_0x52c8('0x21')]=_0x4f169e;if(_0xbffc46['query'][_0x52c8('0x5a')]){_0x598b45['include']=[{'all':!![]}];}return db['Disposition'][_0x52c8('0x6b')](_0x598b45);})['then'](function(_0x4ebea2){_0x599954['rows']=_0x4ebea2;return _0x599954;});}})[_0x52c8('0x10')](respondWithFilteredResult(_0x2469fd,_0x598b45))['catch'](handleError(_0x2469fd,null));};exports['removeDispositions']=function(_0x406b8b,_0x1d3560){return db[_0x52c8('0x59')][_0x52c8('0x5f')]({'where':{'id':_0x406b8b[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x1d3560,null))[_0x52c8('0x10')](function(_0x2576d3){if(_0x2576d3){return _0x2576d3[_0x52c8('0x6c')](_0x406b8b['query']['ids']);}})[_0x52c8('0x10')](respondWithStatusCode(_0x1d3560,null))[_0x52c8('0x60')](handleError(_0x1d3560,null));};exports['addAnswer']=function(_0x3b4aed,_0x4021da){if(_0x3b4aed[_0x52c8('0x62')]['id']){delete _0x3b4aed[_0x52c8('0x62')]['id'];}return db[_0x52c8('0x59')][_0x52c8('0x5f')]({'where':{'id':_0x3b4aed[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x4021da,null))[_0x52c8('0x10')](function(_0x21779e){if(_0x21779e){_0x3b4aed[_0x52c8('0x62')][_0x52c8('0x67')]=_0x21779e['id'];return db[_0x52c8('0x6d')][_0x52c8('0x69')](_0x3b4aed[_0x52c8('0x62')]);}})[_0x52c8('0x10')](respondWithResult(_0x4021da,null))[_0x52c8('0x60')](handleError(_0x4021da,null));};exports[_0x52c8('0x6e')]=function(_0x3c33b7,_0x292726){var _0x1c4a42={'raw':![],'where':{}};var _0x48735a={};var _0xe44f6e={'count':0x0,'rows':[]};return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x3c33b7[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x292726,null))['then'](function(_0x18ec8d){if(_0x18ec8d){_0x48735a['model']=_['keys'](db['CannedAnswer'][_0x52c8('0x45')]);_0x48735a[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x3c33b7[_0x52c8('0x48')]);_0x48735a[_0x52c8('0x4a')]=_[_0x52c8('0x5e')](_0x48735a[_0x52c8('0x4b')],_0x48735a[_0x52c8('0x48')]);_0x1c4a42['attributes']=_[_0x52c8('0x5e')](_0x48735a[_0x52c8('0x4b')],qs[_0x52c8('0x4d')](_0x3c33b7['query']['fields']));_0x1c4a42[_0x52c8('0x4c')]=_0x1c4a42[_0x52c8('0x4c')][_0x52c8('0x4e')]?_0x1c4a42[_0x52c8('0x4c')]:_0x48735a['model'];if(!_0x3c33b7['query'][_0x52c8('0x4f')]('nolimit')){_0x1c4a42[_0x52c8('0x1f')]=qs[_0x52c8('0x1f')](_0x3c33b7['query'][_0x52c8('0x1f')]);_0x1c4a42[_0x52c8('0x1e')]=qs['offset'](_0x3c33b7[_0x52c8('0x48')][_0x52c8('0x1e')]);}_0x1c4a42['order']=qs[_0x52c8('0x52')](_0x3c33b7[_0x52c8('0x48')]['sort']);_0x1c4a42[_0x52c8('0x55')]=qs['filters'](_[_0x52c8('0x53')](_0x3c33b7['query'],_0x48735a[_0x52c8('0x4a')]));_0x1c4a42[_0x52c8('0x55')][_0x52c8('0x67')]=_0x18ec8d['id'];if(_0x3c33b7['query']['filter']){_0x1c4a42[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x1c4a42[_0x52c8('0x55')],{'$or':_[_0x52c8('0x44')](_0x1c4a42['attributes'],function(_0x56a12e){var _0x5a34b6={};_0x5a34b6[_0x56a12e]={'$like':'%'+_0x3c33b7[_0x52c8('0x48')][_0x52c8('0x54')]+'%'};return _0x5a34b6;})});}_0x1c4a42=_[_0x52c8('0x56')]({},_0x1c4a42,_0x3c33b7[_0x52c8('0x58')]);return db['CannedAnswer'][_0x52c8('0x21')]({'where':_0x1c4a42['where']})[_0x52c8('0x10')](function(_0xd20f9a){_0xe44f6e['count']=_0xd20f9a;if(_0x3c33b7['query'][_0x52c8('0x5a')]){_0x1c4a42[_0x52c8('0x5b')]=[{'all':!![]}];}return db[_0x52c8('0x6d')][_0x52c8('0x6b')](_0x1c4a42);})[_0x52c8('0x10')](function(_0x3fbff8){_0xe44f6e[_0x52c8('0x5c')]=_0x3fbff8;return _0xe44f6e;});}})[_0x52c8('0x10')](respondWithFilteredResult(_0x292726,_0x1c4a42))[_0x52c8('0x60')](handleError(_0x292726,null));};exports[_0x52c8('0x6f')]=function(_0x17acfa,_0x204e13){return db['MailAccount'][_0x52c8('0x5f')]({'where':{'id':_0x17acfa['params']['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x204e13,null))[_0x52c8('0x10')](function(_0xcb9623){if(_0xcb9623){return _0xcb9623[_0x52c8('0x6f')](_0x17acfa[_0x52c8('0x48')][_0x52c8('0x70')]);}})['then'](respondWithStatusCode(_0x204e13,null))[_0x52c8('0x60')](handleError(_0x204e13,null));};exports[_0x52c8('0x69')]=function(_0x442c56,_0x98dd41){var _0x18ac73={'name':_0x442c56[_0x52c8('0x62')][_0x52c8('0x27')],'key':_0x442c56[_0x52c8('0x62')][_0x52c8('0x71')],'provider':_0x442c56[_0x52c8('0x62')][_0x52c8('0x63')]===_0x52c8('0x72')?null:_0x442c56[_0x52c8('0x62')][_0x52c8('0x63')],'email':_0x442c56[_0x52c8('0x62')][_0x52c8('0x73')],'ListId':_0x442c56[_0x52c8('0x62')]['ListId'],'active':!_[_0x52c8('0x74')](_0x442c56[_0x52c8('0x62')][_0x52c8('0x75')])?_0x442c56['body'][_0x52c8('0x75')]:!![],'description':_0x442c56[_0x52c8('0x62')][_0x52c8('0x76')]||null};var _0x74e949=getAuthenticationOptions(_0x18ac73[_0x52c8('0x63')],_0x442c56['body']);_0x18ac73[_0x52c8('0x3f')]=_0x74e949[_0x52c8('0x3f')];_0x18ac73['Smtp']=_0x74e949[_0x52c8('0x40')];return db[_0x52c8('0x59')][_0x52c8('0x69')](_0x18ac73,{'include':[{'model':db[_0x52c8('0x41')],'as':_0x52c8('0x40')},{'model':db[_0x52c8('0x64')],'as':'Imap'}]})['then'](function(_0x776bc9){var _0xb55dec=_0x442c56[_0x52c8('0x34')]['get']({'plain':!![]});if(!_0xb55dec)throw new Error(_0x52c8('0x77'));if(_0xb55dec[_0x52c8('0x78')]==='user'){var _0x36de84=_0x776bc9[_0x52c8('0x24')]({'plain':!![]});return db['UserProfileSection'][_0x52c8('0x5f')]({'where':{'name':_0x52c8('0x25'),'userProfileId':_0xb55dec[_0x52c8('0x79')]},'raw':!![]})[_0x52c8('0x10')](function(_0x2217d2){if(_0x2217d2&&_0x2217d2[_0x52c8('0x7a')]===0x0){return db['UserProfileResource'][_0x52c8('0x69')]({'name':_0x36de84[_0x52c8('0x27')],'resourceId':_0x36de84['id'],'type':_0x2217d2[_0x52c8('0x27')],'sectionId':_0x2217d2['id']},{})[_0x52c8('0x10')](function(){return _0x776bc9;});}else{return _0x776bc9;}})[_0x52c8('0x60')](function(_0x2518e5){logger['error'](_0x52c8('0x7b'),_0x2518e5);throw _0x2518e5;});}return _0x776bc9;})[_0x52c8('0x10')](respondWithResult(_0x98dd41,0xc9))[_0x52c8('0x60')](handleError(_0x98dd41,null));};exports[_0x52c8('0x7c')]=function(_0x41c367,_0x416e5a){return db['MailAccount'][_0x52c8('0x6a')]({'where':{'id':_0x41c367[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x416e5a,null))[_0x52c8('0x10')](function(_0x415bd0){if(_0x415bd0){return _0x415bd0[_0x52c8('0x7c')]();}return null;})[_0x52c8('0x10')](respondWithResult(_0x416e5a,null))[_0x52c8('0x60')](handleError(_0x416e5a,null));};exports[_0x52c8('0x7d')]=function(_0x483f02,_0x1134d2){if(_0x483f02[_0x52c8('0x62')]['id']){delete _0x483f02[_0x52c8('0x62')]['id'];}return db[_0x52c8('0x59')][_0x52c8('0x5f')]({'where':{'id':_0x483f02['params']['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x1134d2,null))[_0x52c8('0x10')](function(_0xd4bd0a){if(_0xd4bd0a){_0x483f02[_0x52c8('0x62')][_0x52c8('0x67')]=_0xd4bd0a['id'];return db[_0x52c8('0x64')][_0x52c8('0x69')](_0x483f02[_0x52c8('0x62')]);}})[_0x52c8('0x10')](respondWithResult(_0x1134d2,null))[_0x52c8('0x60')](handleError(_0x1134d2,null));};exports[_0x52c8('0x7e')]=function(_0x47ae5a,_0x4ea694){return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x47ae5a[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x4ea694,null))[_0x52c8('0x10')](function(_0x554f43){if(_0x554f43){return _0x554f43[_0x52c8('0x7f')](null);}return null;})[_0x52c8('0x10')](respondWithStatusCode(_0x4ea694,null))[_0x52c8('0x60')](handleError(_0x4ea694,null));};exports['getSmtp']=function(_0x2a8b75,_0x369f0f){return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x2a8b75[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x369f0f,null))[_0x52c8('0x10')](function(_0x1b479b){if(_0x1b479b){return _0x1b479b[_0x52c8('0x80')]();}return null;})['then'](respondWithResult(_0x369f0f,null))[_0x52c8('0x60')](handleError(_0x369f0f,null));};exports[_0x52c8('0x81')]=function(_0x4614d6,_0x5b3bd0){if(_0x4614d6[_0x52c8('0x62')]['id']){delete _0x4614d6[_0x52c8('0x62')]['id'];}return db[_0x52c8('0x59')][_0x52c8('0x5f')]({'where':{'id':_0x4614d6[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x5b3bd0,null))['then'](function(_0xd8ac20){if(_0xd8ac20){_0x4614d6['body'][_0x52c8('0x67')]=_0xd8ac20['id'];return db[_0x52c8('0x41')]['create'](_0x4614d6[_0x52c8('0x62')]);}})[_0x52c8('0x10')](respondWithResult(_0x5b3bd0,null))[_0x52c8('0x60')](handleError(_0x5b3bd0,null));};exports[_0x52c8('0x82')]=function(_0x420ff9,_0xbe77b5){return db['MailAccount'][_0x52c8('0x6a')]({'where':{'id':_0x420ff9[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0xbe77b5,null))[_0x52c8('0x10')](function(_0x5dca03){if(_0x5dca03){return _0x5dca03['setSmtp'](null);}return null;})['then'](respondWithStatusCode(_0xbe77b5,null))[_0x52c8('0x60')](handleError(_0xbe77b5,null));};exports['addInteraction']=function(_0x5b81e8,_0x301d7c){return db[_0x52c8('0x83')][_0x52c8('0x5f')]({'where':{'id':_0x5b81e8[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x301d7c,null))[_0x52c8('0x10')](function(_0x17101a){if(_0x17101a){return _0x17101a['addInteraction'](_0x5b81e8['body']['ids'],_[_0x52c8('0x84')](_0x5b81e8[_0x52c8('0x62')],[_0x52c8('0x70'),'id'])||{});}})[_0x52c8('0x10')](respondWithResult(_0x301d7c,null))['catch'](handleError(_0x301d7c,null));};exports[_0x52c8('0x85')]=function(_0x55beec,_0x146360){var _0x3d0f03={'raw':![],'where':{}};var _0x132f81={};var _0x46ec9a={'count':0x0,'rows':[]};return db[_0x52c8('0x59')]['findOne']({'where':{'id':_0x55beec[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x146360,null))['then'](function(_0x26875d){if(_0x26875d){_0x132f81['model']=_['keys'](db['MailInteraction'][_0x52c8('0x45')]);_0x132f81[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x55beec[_0x52c8('0x48')]);_0x132f81[_0x52c8('0x4a')]=_[_0x52c8('0x5e')](_0x132f81[_0x52c8('0x4b')],_0x132f81[_0x52c8('0x48')]);_0x3d0f03['attributes']=_['intersection'](_0x132f81['model'],qs['fields'](_0x55beec[_0x52c8('0x48')][_0x52c8('0x4d')]));_0x3d0f03[_0x52c8('0x4c')]=_0x3d0f03[_0x52c8('0x4c')]['length']?_0x3d0f03[_0x52c8('0x4c')]:_0x132f81[_0x52c8('0x4b')];if(!_0x55beec[_0x52c8('0x48')][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x3d0f03['limit']=qs[_0x52c8('0x1f')](_0x55beec[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x3d0f03[_0x52c8('0x1e')]=qs[_0x52c8('0x1e')](_0x55beec[_0x52c8('0x48')][_0x52c8('0x1e')]);}_0x3d0f03[_0x52c8('0x51')]=qs[_0x52c8('0x52')](_0x55beec[_0x52c8('0x48')]['sort']);_0x3d0f03[_0x52c8('0x55')]=qs[_0x52c8('0x4a')](_[_0x52c8('0x53')](_0x55beec[_0x52c8('0x48')],_0x132f81[_0x52c8('0x4a')]));_0x3d0f03['where'][_0x52c8('0x67')]=_0x26875d['id'];if(_0x55beec[_0x52c8('0x48')]['filter']){_0x3d0f03[_0x52c8('0x55')]=_['merge'](_0x3d0f03[_0x52c8('0x55')],{'$or':_[_0x52c8('0x44')](_0x3d0f03[_0x52c8('0x4c')],function(_0x3d32ba){var _0x218fb8={};_0x218fb8[_0x3d32ba]={'$like':'%'+_0x55beec[_0x52c8('0x48')]['filter']+'%'};return _0x218fb8;})});}_0x3d0f03=_[_0x52c8('0x56')]({},_0x3d0f03,_0x55beec[_0x52c8('0x58')]);return db[_0x52c8('0x83')][_0x52c8('0x21')]({'where':_0x3d0f03[_0x52c8('0x55')]})[_0x52c8('0x10')](function(_0x2856d7){_0x46ec9a['count']=_0x2856d7;if(_0x55beec[_0x52c8('0x48')][_0x52c8('0x5a')]){_0x3d0f03[_0x52c8('0x5b')]=[{'model':db[_0x52c8('0x86')],'as':_0x52c8('0x87'),'required':![]},{'model':db[_0x52c8('0x88')],'as':_0x52c8('0x89'),'attributes':[_0x52c8('0x27'),'fullname',_0x52c8('0x8a')],'required':![]},{'model':db[_0x52c8('0x8b')],'as':'Tags','attributes':['id',_0x52c8('0x27'),_0x52c8('0x8c')],'where':_0x55beec[_0x52c8('0x48')][_0x52c8('0x8d')]?{'id':_0x55beec['query'][_0x52c8('0x8d')]}:undefined,'required':_0x55beec['query']['tag']?!![]:![]}];}return db[_0x52c8('0x83')]['findAll'](_0x3d0f03);})[_0x52c8('0x10')](function(_0xa248e9){_0x46ec9a[_0x52c8('0x5c')]=_0xa248e9;return _0x46ec9a;});}})['then'](respondWithFilteredResult(_0x146360,_0x3d0f03))[_0x52c8('0x60')](handleError(_0x146360,null));};exports[_0x52c8('0x8e')]=function addApplications(_0x49af87,_0x2e9673){var _0x154330=_0x49af87['params']['id'];var _0x8ce5d4=_0x49af87['body'];var _0x13f8b5=0xc8;var _0x344a39=null;return db['sequelize'][_0x52c8('0x8f')]({'isolationLevel':db[_0x52c8('0x90')][_0x52c8('0x91')]['ISOLATION_LEVELS'][_0x52c8('0x92')]},function(_0x4440f6){return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x154330},'transaction':_0x4440f6})[_0x52c8('0x10')](function(_0x52e0da){if(_0x52e0da){return db['MailApplication'][_0x52c8('0x23')]({'where':{'MailAccountId':_0x154330},'transaction':_0x4440f6})[_0x52c8('0x10')](function(){var _0x43f2c0=_[_0x52c8('0x44')](_0x8ce5d4,function(_0x433152){_0x433152[_0x52c8('0x67')]=_0x154330;return _0x433152;});return db[_0x52c8('0x93')][_0x52c8('0x94')](_0x43f2c0,{'transaction':_0x4440f6});});}else{_0x13f8b5=0x194;_0x344a39=[];}});})['then'](function(){if(_0x13f8b5!==0x194){return db[_0x52c8('0x93')][_0x52c8('0x95')]({'where':{'MailAccountId':_0x154330},'order':'priority'})[_0x52c8('0x10')](function(_0x49f20c){_0x344a39=_0x49f20c;});}})[_0x52c8('0x60')](function(_0x16e641){_0x13f8b5=0x1f4;logger[_0x52c8('0x17')](_0x16e641['stack']);if(_0x16e641[_0x52c8('0x27')]){delete _0x16e641[_0x52c8('0x27')];}_0x344a39=_0x16e641;})[_0x52c8('0x96')](function(){if(_0x344a39===null){_0x2e9673[_0x52c8('0x1b')](_0x13f8b5);}else{if(_0x13f8b5===0x1f4){_0x2e9673['status'](_0x13f8b5)[_0x52c8('0x28')](_0x344a39);}else{_0x2e9673[_0x52c8('0x1c')](_0x13f8b5)[_0x52c8('0x97')](_0x344a39);}}});};exports['getApplications']=function(_0x2d563d,_0x5be4f9){var _0x388244={};var _0x343bf7={};var _0x27d7c8;var _0xe76978;return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x2d563d[_0x52c8('0x5d')]['id']}})['then'](handleEntityNotFound(_0x5be4f9,null))[_0x52c8('0x10')](function(_0x308daf){if(_0x308daf){_0x27d7c8=_0x308daf;_0x343bf7['model']=_[_0x52c8('0x49')](db['MailApplication'][_0x52c8('0x45')]);_0x343bf7[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x2d563d['query']);_0x343bf7[_0x52c8('0x4a')]=_['intersection'](_0x343bf7[_0x52c8('0x4b')],_0x343bf7[_0x52c8('0x48')]);_0x388244[_0x52c8('0x4c')]=_['intersection'](_0x343bf7[_0x52c8('0x4b')],qs[_0x52c8('0x4d')](_0x2d563d[_0x52c8('0x48')][_0x52c8('0x4d')]));_0x388244['attributes']=_0x388244[_0x52c8('0x4c')][_0x52c8('0x4e')]?_0x388244[_0x52c8('0x4c')]:_0x343bf7[_0x52c8('0x4b')];_0x388244['order']=qs[_0x52c8('0x52')](_0x2d563d[_0x52c8('0x48')]['sort']);_0x388244[_0x52c8('0x55')]=qs[_0x52c8('0x4a')](_[_0x52c8('0x53')](_0x2d563d[_0x52c8('0x48')],_0x343bf7[_0x52c8('0x4a')]));if(_0x2d563d[_0x52c8('0x48')][_0x52c8('0x54')]){_0x388244[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x388244[_0x52c8('0x55')],{'$or':_[_0x52c8('0x44')](_0x388244[_0x52c8('0x4c')],function(_0x46a975){var _0x57364a={};_0x57364a[_0x46a975]={'$like':'%'+_0x2d563d[_0x52c8('0x48')][_0x52c8('0x54')]+'%'};return _0x57364a;})});}_0x388244=_['merge']({},_0x388244,_0x2d563d[_0x52c8('0x58')]);return _0x27d7c8['getApplications'](_0x388244);}})['then'](function(_0x41f8c2){if(_0x41f8c2){_0xe76978=_0x41f8c2['length'];if(!_0x2d563d[_0x52c8('0x48')][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x388244[_0x52c8('0x1f')]=qs[_0x52c8('0x1f')](_0x2d563d[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x388244[_0x52c8('0x1e')]=qs[_0x52c8('0x1e')](_0x2d563d['query'][_0x52c8('0x1e')]);}return _0x27d7c8[_0x52c8('0x98')](_0x388244);}})[_0x52c8('0x10')](function(_0x186ccb){if(_0x186ccb){return _0x186ccb?{'count':_0xe76978,'rows':_0x186ccb}:null;}})['then'](respondWithResult(_0x5be4f9,null))['catch'](handleError(_0x5be4f9,null));};exports[_0x52c8('0x99')]=function(_0x48fa6c,_0x149ac4){var _0x59b034={'raw':!![],'where':{}};var _0x2a37d4={};var _0x3b866b={'count':0x0,'rows':[]};return db[_0x52c8('0x59')][_0x52c8('0x6a')]({'where':{'id':_0x48fa6c[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x149ac4,null))[_0x52c8('0x10')](function(_0x11c2fc){if(_0x11c2fc){_0x2a37d4['model']=_[_0x52c8('0x49')](db[_0x52c8('0x9a')]['rawAttributes']);_0x2a37d4[_0x52c8('0x48')]=_[_0x52c8('0x49')](_0x48fa6c[_0x52c8('0x48')]);_0x2a37d4[_0x52c8('0x4a')]=_['intersection'](_0x2a37d4[_0x52c8('0x4b')],_0x2a37d4[_0x52c8('0x48')]);_0x59b034['attributes']=_[_0x52c8('0x5e')](_0x2a37d4[_0x52c8('0x4b')],qs['fields'](_0x48fa6c[_0x52c8('0x48')]['fields']));_0x59b034[_0x52c8('0x4c')]=_0x59b034['attributes']['length']?_0x59b034[_0x52c8('0x4c')]:_0x2a37d4[_0x52c8('0x4b')];if(!_0x48fa6c['query'][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x59b034['limit']=qs[_0x52c8('0x1f')](_0x48fa6c[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x59b034['offset']=qs[_0x52c8('0x1e')](_0x48fa6c[_0x52c8('0x48')][_0x52c8('0x1e')]);}_0x59b034['order']=qs[_0x52c8('0x52')](_0x48fa6c[_0x52c8('0x48')][_0x52c8('0x52')]);_0x59b034[_0x52c8('0x55')]=qs[_0x52c8('0x4a')](_['pick'](_0x48fa6c[_0x52c8('0x48')],_0x2a37d4[_0x52c8('0x4a')]));_0x59b034[_0x52c8('0x55')][_0x52c8('0x67')]=_0x11c2fc['id'];if(_0x48fa6c[_0x52c8('0x48')][_0x52c8('0x54')]){_0x59b034[_0x52c8('0x55')]=_['merge'](_0x59b034['where'],{'$or':_['map'](_0x59b034['attributes'],function(_0x17c904){var _0x59df11={};_0x59df11[_0x17c904]={'$like':'%'+_0x48fa6c['query'][_0x52c8('0x54')]+'%'};return _0x59df11;})});}if(_0x48fa6c['query'][_0x52c8('0x9b')]){var _0x464ee5=_0x48fa6c[_0x52c8('0x48')][_0x52c8('0x9b')][_0x52c8('0x9c')](',');var _0x3e6dd3={};_0x3e6dd3[_0x464ee5[0x0]]={'$gte':moment(_0x464ee5[0x1])['format'](_0x52c8('0x9d'))};_0x59b034[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x59b034[_0x52c8('0x55')],_0x3e6dd3);}_0x59b034=_['merge']({},_0x59b034,_0x48fa6c[_0x52c8('0x58')]);return db[_0x52c8('0x9a')][_0x52c8('0x21')]({'where':_0x59b034[_0x52c8('0x55')]})[_0x52c8('0x10')](function(_0x861160){_0x3b866b[_0x52c8('0x21')]=_0x861160;if(_0x48fa6c['query'][_0x52c8('0x5a')]){_0x59b034[_0x52c8('0x5b')]=[{'all':!![]}];}return db[_0x52c8('0x9a')][_0x52c8('0x6b')](_0x59b034);})[_0x52c8('0x10')](function(_0x8a2404){if(_0x48fa6c['query'][_0x52c8('0x9e')]===_0x52c8('0x9f')){for(var _0x25d9bd=0x0;_0x25d9bd<_0x8a2404[_0x52c8('0x4e')];_0x25d9bd++){_0x8a2404[_0x25d9bd][_0x52c8('0x62')]=juice(_0x8a2404[_0x25d9bd][_0x52c8('0x62')]);}}_0x3b866b['rows']=_0x8a2404;return _0x3b866b;});}})[_0x52c8('0x10')](respondWithFilteredResult(_0x149ac4,_0x59b034))[_0x52c8('0x60')](handleError(_0x149ac4,null));};exports[_0x52c8('0x28')]=function(_0x10404b,_0x55fad9){var _0x5eb835,_0x503448={},_0x534e1a;if(_0x10404b['body']['to']){_0x534e1a=_0x10404b[_0x52c8('0x62')]['to'][_0x52c8('0x9c')](',')[0x0];}return db[_0x52c8('0x59')]['find']({'where':{'id':_0x10404b['params']['id']},'include':[{'model':db[_0x52c8('0xa0')],'as':'List','include':[{'model':db['CmContact'],'as':_0x52c8('0xa1'),'where':{'email':_0x534e1a},'limit':0x1,'order':[[_0x52c8('0xa2'),'DESC']]}]},{'model':db['MailServerOut'],'as':_0x52c8('0x40'),'raw':!![],'include':[{'model':db[_0x52c8('0xa3')],'as':_0x52c8('0xa3'),'raw':!![]}]}]})['then'](handleEntityNotFound(_0x55fad9,null))['then'](function(_0x21ee35){if(!_0x21ee35)return;_0x5eb835=_0x21ee35;if(!_0x21ee35['Smtp'])throw new Error(_0x52c8('0xa4'));if(_[_0x52c8('0x74')](_0x10404b[_0x52c8('0x62')]['from'])){_0x10404b[_0x52c8('0x62')][_0x52c8('0xa5')]=util[_0x52c8('0xa6')](_0x52c8('0xa7'),_0x21ee35[_0x52c8('0x27')],_0x21ee35[_0x52c8('0x73')]||_0x21ee35[_0x52c8('0x40')][_0x52c8('0x34')]);}if(_0x10404b['body']['attachments']&&_0x10404b[_0x52c8('0x62')][_0x52c8('0xa8')][_0x52c8('0x4e')]){for(var _0x534bd2=0x0;_0x534bd2<_0x10404b['body'][_0x52c8('0xa8')]['length'];_0x534bd2+=0x1){_0x10404b[_0x52c8('0x62')][_0x52c8('0xa8')][_0x534bd2]={'filename':_0x10404b[_0x52c8('0x62')][_0x52c8('0xa8')][_0x534bd2][_0x52c8('0x27')],'path':path['join'](config['root'],'server/files/attachments',_0x10404b['body']['attachments'][_0x534bd2][_0x52c8('0xa9')])};}}var _0x3ff774=_0x21ee35[_0x52c8('0xaa')]();return respondWithRpcPromise(_0x52c8('0xab'),'sendMail',{'account':_0x3ff774,'message':_0x10404b[_0x52c8('0x62')]});})[_0x52c8('0x10')](function(_0x33a7ac){if(!_0x33a7ac)return;_0x503448=_0x33a7ac;if(!_0x5eb835[_0x52c8('0xac')])throw new Error(_0x52c8('0xad'));if(_0x5eb835['List'][_0x52c8('0xa1')]['length'])return _0x5eb835['List'][_0x52c8('0xa1')][0x0];return db[_0x52c8('0x86')][_0x52c8('0x69')](_[_0x52c8('0xae')](_0x10404b[_0x52c8('0x62')],{'firstName':_0x10404b[_0x52c8('0x62')]['to'],'email':_0x10404b[_0x52c8('0x62')]['to'],'phone':_0x10404b[_0x52c8('0x62')]['to'],'ListId':_0x5eb835['ListId']}));})[_0x52c8('0x10')](function(_0xfa6140){if(!_0xfa6140)return;var _0x5ed1fe={'UserId':_0x10404b['user']['id'],'ContactId':_0xfa6140['id'],'MailAccountId':_0x5eb835['id'],'inReplyTo':_0x503448[_0x52c8('0xaf')],'to':_0x10404b[_0x52c8('0x62')]['from'],'cc':_0x10404b['body']['cc'],'subject':_0x10404b[_0x52c8('0x62')][_0x52c8('0xb0')],'attach':_0x10404b[_0x52c8('0x62')]['attach'],'firstMsgDirection':_0x52c8('0xb1'),'lastMsgAt':moment()['format'](_0x52c8('0x9d')),'lastMsgDirection':_0x52c8('0xb1'),'Messages':[_[_0x52c8('0x56')](_0x10404b['body'],{'messageId':_0x503448[_0x52c8('0xaf')],'sentAt':moment()['format'](_0x52c8('0x9d')),'read':!![],'MailAccountId':_0x5eb835['id'],'UserId':_0x10404b[_0x52c8('0x34')]['id'],'ContactId':_0xfa6140['id']})]};if(_0x10404b['body'][_0x52c8('0xb2')]){_0x5ed1fe=_[_0x52c8('0x56')](_0x5ed1fe,_0x10404b[_0x52c8('0x62')][_0x52c8('0xb2')]);}return db['MailInteraction']['create'](_0x5ed1fe,{'include':[{'model':db[_0x52c8('0x9a')],'as':_0x52c8('0xb3')}]});})[_0x52c8('0x10')](respondWithResult(_0x55fad9,null))[_0x52c8('0x60')](handleError(_0x55fad9,null));};exports[_0x52c8('0xb4')]=function(_0x216ec4,_0x5af8ba){return db['MailAccount'][_0x52c8('0x5f')]({'where':{'id':_0x216ec4[_0x52c8('0x5d')]['id']},'include':[{'model':db[_0x52c8('0x41')],'as':_0x52c8('0x40'),'raw':!![],'include':[{'model':db[_0x52c8('0xa3')],'as':_0x52c8('0xa3'),'raw':!![]}]}]})['then'](handleEntityNotFound(_0x5af8ba,null))[_0x52c8('0x10')](function(_0xa18041){if(!_0xa18041[_0x52c8('0x40')])return;var _0x4c25ee=_0xa18041[_0x52c8('0xaa')]();return respondWithRpcPromise('VerifySmtp',_0x52c8('0xb4'),{'account':_0x4c25ee});})[_0x52c8('0x10')](respondWithResult(_0x5af8ba,null))[_0x52c8('0x60')](handleError(_0x5af8ba,null));};exports[_0x52c8('0x23')]=function(_0x4a68a2,_0x4f03db){return db[_0x52c8('0x59')]['find']({'where':{'id':_0x4a68a2[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x4f03db,null))['then'](function(_0x58a397){if(_0x58a397&&_0x58a397[_0x52c8('0x3d')]){throw new db['Sequelize'][(_0x52c8('0xb5'))](_0x52c8('0xb6'));}return _0x58a397;})[_0x52c8('0x10')](removeEntity(_0x4f03db,null))[_0x52c8('0x60')](handleError(_0x4f03db,null));};exports[_0x52c8('0xb7')]=function(_0x293da9,_0x522b50){return db[_0x52c8('0x59')][_0x52c8('0x5f')]({'where':{'id':_0x293da9[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x522b50,null))[_0x52c8('0x10')](function(_0x4ffa68){if(_0x4ffa68){return _0x4ffa68['addAgents'](_0x293da9[_0x52c8('0x62')][_0x52c8('0x70')],_[_0x52c8('0x84')](_0x293da9[_0x52c8('0x62')],[_0x52c8('0x70'),'id'])||{})['spread'](function(_0x3ad165){for(var _0x3af5ae=0x0;_0x3af5ae<_0x293da9[_0x52c8('0x62')]['ids']['length'];_0x3af5ae+=0x1){socket[_0x52c8('0xb8')]('userMailAccount:save',{'UserId':Number(_0x293da9[_0x52c8('0x62')][_0x52c8('0x70')][_0x3af5ae]),'MailAccountId':Number(_0x293da9['params']['id'])});}return _0x3ad165;});}})[_0x52c8('0x10')](respondWithResult(_0x522b50,null))[_0x52c8('0x60')](handleError(_0x522b50,null));};exports[_0x52c8('0xb9')]=function(_0x1fadd3,_0x18e878){return db['MailAccount']['find']({'where':{'id':_0x1fadd3[_0x52c8('0x5d')]['id']}})['then'](handleEntityNotFound(_0x18e878,null))['then'](function(_0x48e338){if(_0x48e338){return _0x48e338[_0x52c8('0xb9')](_0x1fadd3[_0x52c8('0x48')][_0x52c8('0x70')])['then'](function(){if(_[_0x52c8('0xba')](_0x1fadd3[_0x52c8('0x48')][_0x52c8('0x70')])){for(var _0x236c93=0x0;_0x236c93<_0x1fadd3[_0x52c8('0x48')][_0x52c8('0x70')][_0x52c8('0x4e')];_0x236c93+=0x1){socket[_0x52c8('0xb8')](_0x52c8('0xbb'),{'UserId':Number(_0x1fadd3['query'][_0x52c8('0x70')][_0x236c93]),'MailAccountId':Number(_0x1fadd3[_0x52c8('0x5d')]['id'])});}}else{socket[_0x52c8('0xb8')](_0x52c8('0xbb'),{'UserId':Number(_0x1fadd3[_0x52c8('0x48')]['ids']),'MailAccountId':Number(_0x1fadd3[_0x52c8('0x5d')]['id'])});}});}})[_0x52c8('0x10')](respondWithStatusCode(_0x18e878,null))['catch'](handleError(_0x18e878,null));};exports[_0x52c8('0xbc')]=function(_0x4ef007,_0x2dbf89){var _0x101b86={};var _0x4f73f5={};var _0x29cfb4;var _0x5ebaa1;return db[_0x52c8('0x59')]['findOne']({'where':{'id':_0x4ef007[_0x52c8('0x5d')]['id']}})[_0x52c8('0x10')](handleEntityNotFound(_0x2dbf89,null))['then'](function(_0x3f18f7){if(_0x3f18f7){_0x29cfb4=_0x3f18f7;_0x4f73f5[_0x52c8('0x4b')]=_[_0x52c8('0x49')](db[_0x52c8('0x88')][_0x52c8('0x45')]);_0x4f73f5[_0x52c8('0x48')]=_['keys'](_0x4ef007[_0x52c8('0x48')]);_0x4f73f5[_0x52c8('0x4a')]=_[_0x52c8('0x5e')](_0x4f73f5['model'],_0x4f73f5['query']);_0x101b86[_0x52c8('0x4c')]=_['intersection'](_0x4f73f5[_0x52c8('0x4b')],qs[_0x52c8('0x4d')](_0x4ef007['query'][_0x52c8('0x4d')]));_0x101b86[_0x52c8('0x4c')]=_0x101b86[_0x52c8('0x4c')]['length']?_0x101b86[_0x52c8('0x4c')]:_0x4f73f5[_0x52c8('0x4b')];_0x101b86[_0x52c8('0x51')]=qs[_0x52c8('0x52')](_0x4ef007[_0x52c8('0x48')][_0x52c8('0x52')]);_0x101b86[_0x52c8('0x55')]=qs[_0x52c8('0x4a')](_[_0x52c8('0x53')](_0x4ef007[_0x52c8('0x48')],_0x4f73f5[_0x52c8('0x4a')]));if(_0x4ef007[_0x52c8('0x48')][_0x52c8('0x54')]){_0x101b86[_0x52c8('0x55')]=_[_0x52c8('0x56')](_0x101b86[_0x52c8('0x55')],{'$or':_[_0x52c8('0x44')](_0x101b86[_0x52c8('0x4c')],function(_0x5d29ea){var _0x100b69={};_0x100b69[_0x5d29ea]={'$like':'%'+_0x4ef007[_0x52c8('0x48')][_0x52c8('0x54')]+'%'};return _0x100b69;})});}_0x101b86=_[_0x52c8('0x56')]({},_0x101b86,_0x4ef007['options']);return _0x29cfb4[_0x52c8('0xbc')](_0x101b86);}})[_0x52c8('0x10')](function(_0x4ec96a){if(_0x4ec96a){_0x5ebaa1=_0x4ec96a[_0x52c8('0x4e')];if(!_0x4ef007[_0x52c8('0x48')][_0x52c8('0x4f')](_0x52c8('0x50'))){_0x101b86[_0x52c8('0x1f')]=qs[_0x52c8('0x1f')](_0x4ef007[_0x52c8('0x48')][_0x52c8('0x1f')]);_0x101b86[_0x52c8('0x1e')]=qs['offset'](_0x4ef007[_0x52c8('0x48')][_0x52c8('0x1e')]);}return _0x29cfb4['getAgents'](_0x101b86);}})[_0x52c8('0x10')](function(_0x579ad5){if(_0x579ad5){return _0x579ad5?{'count':_0x5ebaa1,'rows':_0x579ad5}:null;}})[_0x52c8('0x10')](respondWithResult(_0x2dbf89,null))[_0x52c8('0x60')](handleError(_0x2dbf89,null));};