aa2a2686e0fd203d35115e0715e1ad27daa893f3
[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 _0x6caa=['findAndCountAll','priority','stack','finally','json','getApplications','getMessages','MailMessage','$gte','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','split','CmList','List','Contacts','updatedAt','CloudProvider','Smtp\x20configuration\x20not\x20found','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','getSmtpOptions','SendMail','List\x20not\x20found','messageId','subject','attach','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','addAgents','omit','spread','emit','removeAgents','isArray','userMailAccount:remove','getAgents','moment','util','path','juice','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','jayson/promise','client','http','request','then','info','request\x20sent','stringify','error','code','MailAccount,\x20%s,\x20%s','message','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','update','destroy','get','MailAccounts','UserProfileResource','name','send','gmail','imap.gmail.com','yahoo','imap-mail.outlook.com','outlook.office365.com','Unknown\x20email\x20service\x20provider','smtp.gmail.com','smtp.mail.yahoo.com','hotmail','smtp-mail.outlook.com','outlook365','smtp.office365.com','user','username','password','modernAuthentication','CloudProviderId','pass','host','port','secure','service','authentication','Imap','Smtp','index','MailServerIn','map','MailAccount','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','show','params','MailServerOut','Pause','fields','options','find','body','provider','mandatoryDispositionPause','describe','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','rows','removeDispositions','addAnswer','getAnswers','CannedAnswer','nolimit','removeAnswers','ids','custom','email','ListId','isNil','active','description','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','getInteractions','MailInteraction','CmContact','Contact','User','Owner','fullname','internal','Tag','color','tag','addApplications','sequelize','transaction','Transaction','READ_COMMITTED','MailApplication','bulkCreate'];(function(_0x2d460c,_0x4f08c0){var _0xf6fc4c=function(_0x4fb81c){while(--_0x4fb81c){_0x2d460c['push'](_0x2d460c['shift']());}};_0xf6fc4c(++_0x4f08c0);}(_0x6caa,0xf5));var _0xa6ca=function(_0x3dc1b2,_0x5ad14a){_0x3dc1b2=_0x3dc1b2-0x0;var _0x1f4ea4=_0x6caa[_0x3dc1b2];return _0x1f4ea4;};'use strict';var moment=require(_0xa6ca('0x0'));var BPromise=require('bluebird');var util=require(_0xa6ca('0x1'));var path=require(_0xa6ca('0x2'));var _=require('lodash');var juice=require(_0xa6ca('0x3'));var Redis=require(_0xa6ca('0x4'));var qs=require(_0xa6ca('0x5'));var logger=require(_0xa6ca('0x6'))('api');var config=require(_0xa6ca('0x7'));var db=require(_0xa6ca('0x8'))['db'];config[_0xa6ca('0x9')]=_[_0xa6ca('0xa')](config[_0xa6ca('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0xa6ca('0xb'))(new Redis(config['redis']));require('./mailAccount.socket')[_0xa6ca('0xc')](socket);var jayson=require(_0xa6ca('0xd'));var client=jayson[_0xa6ca('0xe')][_0xa6ca('0xf')]({'port':0x232b});function respondWithRpcPromise(_0x3e234d,_0x439bf8,_0x5cec38,_0x555ca4){return new BPromise(function(_0x4f1985,_0x3e8f1f){var _0x53c7f9=_0x555ca4||client;return _0x53c7f9[_0xa6ca('0x10')](_0x3e234d,_0x5cec38)[_0xa6ca('0x11')](function(_0x204f80){logger[_0xa6ca('0x12')]('MailAccount,\x20%s,\x20%s',_0x439bf8,_0xa6ca('0x13'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x439bf8,_0xa6ca('0x13'),JSON[_0xa6ca('0x14')](_0x204f80));if(_0x204f80[_0xa6ca('0x15')]){if(_0x204f80[_0xa6ca('0x15')][_0xa6ca('0x16')]===0x1f4){logger['error'](_0xa6ca('0x17'),_0x439bf8,_0x204f80[_0xa6ca('0x15')]['message']);return _0x3e8f1f(_0x204f80[_0xa6ca('0x15')][_0xa6ca('0x18')]);}logger[_0xa6ca('0x15')](_0xa6ca('0x17'),_0x439bf8,_0x204f80['error'][_0xa6ca('0x18')]);return _0x4f1985(_0x204f80[_0xa6ca('0x15')]['message']);}else{logger[_0xa6ca('0x12')](_0xa6ca('0x17'),_0x439bf8,_0xa6ca('0x13'));_0x4f1985(_0x204f80['result'][_0xa6ca('0x18')]);}})[_0xa6ca('0x19')](function(_0x2703b0){logger[_0xa6ca('0x15')]('MailAccount,\x20%s,\x20%s',_0x439bf8,_0x2703b0);_0x3e8f1f(_0x2703b0);});});}function respondWithStatusCode(_0x4bfe59,_0x5539bc){_0x5539bc=_0x5539bc||0xcc;return function(_0x5216f1){if(_0x5216f1){return _0x4bfe59[_0xa6ca('0x1a')](_0x5539bc);}return _0x4bfe59[_0xa6ca('0x1b')](_0x5539bc)[_0xa6ca('0x1c')]();};}function respondWithResult(_0xd33177,_0x458668){_0x458668=_0x458668||0xc8;return function(_0x2e1b74){if(_0x2e1b74){return _0xd33177[_0xa6ca('0x1b')](_0x458668)['json'](_0x2e1b74);}};}function respondWithFilteredResult(_0x2197ff,_0x3af4bc){return function(_0xa77960){if(_0xa77960){var _0x1dd843=typeof _0x3af4bc[_0xa6ca('0x1d')]===_0xa6ca('0x1e')&&typeof _0x3af4bc[_0xa6ca('0x1f')]===_0xa6ca('0x1e');var _0x63274e=_0xa77960['count'];var _0x2ac1c1=_0x1dd843?0x0:_0x3af4bc[_0xa6ca('0x1d')];var _0x18c387=_0x1dd843?_0xa77960[_0xa6ca('0x20')]:_0x3af4bc[_0xa6ca('0x1d')]+_0x3af4bc[_0xa6ca('0x1f')];var _0x22d22f;if(_0x18c387>=_0x63274e){_0x18c387=_0x63274e;_0x22d22f=0xc8;}else{_0x22d22f=0xce;}_0x2197ff[_0xa6ca('0x1b')](_0x22d22f);return _0x2197ff[_0xa6ca('0x21')](_0xa6ca('0x22'),_0x2ac1c1+'-'+_0x18c387+'/'+_0x63274e)['json'](_0xa77960);}return null;};}function saveUpdates(_0x43b5c7){return function(_0x17c703){if(_0x17c703){return _0x17c703[_0xa6ca('0x23')](_0x43b5c7)[_0xa6ca('0x11')](function(_0x193c84){return _0x193c84;});}return null;};}function removeEntity(_0x1de9a3){return function(_0x43fcd0){if(_0x43fcd0){return _0x43fcd0[_0xa6ca('0x24')]()[_0xa6ca('0x11')](function(){var _0x345759=_0x43fcd0[_0xa6ca('0x25')]({'plain':!![]});var _0x43de54=_0xa6ca('0x26');return db[_0xa6ca('0x27')]['destroy']({'where':{'type':_0x43de54,'resourceId':_0x345759['id']}})[_0xa6ca('0x11')](function(){return _0x43fcd0;});})[_0xa6ca('0x11')](function(){_0x1de9a3[_0xa6ca('0x1b')](0xcc)[_0xa6ca('0x1c')]();});}};}function handleEntityNotFound(_0x20a536){return function(_0x19532d){if(!_0x19532d){_0x20a536[_0xa6ca('0x1a')](0x194);}return _0x19532d;};}function handleError(_0x1723eb,_0x47f5c0){_0x47f5c0=_0x47f5c0||0x1f4;return function(_0x1ad70b){logger['error'](_0x1ad70b['stack']);if(_0x1ad70b[_0xa6ca('0x28')]){delete _0x1ad70b[_0xa6ca('0x28')];}_0x1723eb[_0xa6ca('0x1b')](_0x47f5c0)[_0xa6ca('0x29')](_0x1ad70b);};}function getImapHost(_0x3b9bd9){switch(_0x3b9bd9){case _0xa6ca('0x2a'):return _0xa6ca('0x2b');case _0xa6ca('0x2c'):return'imap.mail.yahoo.com';case'hotmail':return _0xa6ca('0x2d');case'outlook365':return _0xa6ca('0x2e');}throw new Error(_0xa6ca('0x2f'),_0x3b9bd9);}function getSmtpHost(_0x191d10){switch(_0x191d10){case _0xa6ca('0x2a'):return _0xa6ca('0x30');case'yahoo':return _0xa6ca('0x31');case _0xa6ca('0x32'):return _0xa6ca('0x33');case _0xa6ca('0x34'):return _0xa6ca('0x35');}throw new Error(_0xa6ca('0x2f'),_0x191d10);}function getAuthenticationOptions(_0x334b75,_0x42cf66){var _0x1f26d0={};var _0x3d07b8={};if(_0x334b75){_0x1f26d0[_0xa6ca('0x36')]=_0x3d07b8[_0xa6ca('0x36')]=_0x42cf66[_0xa6ca('0x37')];_0x1f26d0[_0xa6ca('0x38')]=_0x3d07b8['pass']=_0x42cf66['password'];if(_0x42cf66[_0xa6ca('0x39')]){_0x1f26d0[_0xa6ca('0x39')]=_0x3d07b8['modernAuthentication']=!![];_0x1f26d0['CloudProviderId']=_0x3d07b8['CloudProviderId']=_0x42cf66[_0xa6ca('0x3a')];_0x1f26d0['password']=_0x3d07b8[_0xa6ca('0x3b')]=null;}else{_0x1f26d0[_0xa6ca('0x3a')]=_0x3d07b8[_0xa6ca('0x3a')]=null;}_0x1f26d0[_0xa6ca('0x3c')]=getImapHost(_0x334b75);_0x1f26d0['port']=0x3e1;_0x3d07b8[_0xa6ca('0x3c')]=getSmtpHost(_0x334b75);_0x3d07b8[_0xa6ca('0x3d')]=0x24b;_0x3d07b8[_0xa6ca('0x3e')]=![];_0x1f26d0[_0xa6ca('0x3f')]=_0x3d07b8[_0xa6ca('0x3f')]=null;}else{if(_0x42cf66[_0xa6ca('0x40')]){_0x1f26d0[_0xa6ca('0x36')]=_0x3d07b8[_0xa6ca('0x36')]=_0x42cf66[_0xa6ca('0x37')];_0x1f26d0[_0xa6ca('0x38')]=_0x3d07b8[_0xa6ca('0x3b')]=_0x42cf66[_0xa6ca('0x38')];}else{_0x1f26d0['authentication']=_0x3d07b8[_0xa6ca('0x40')]=![];_0x1f26d0[_0xa6ca('0x36')]=_0x3d07b8[_0xa6ca('0x36')]=null;_0x1f26d0[_0xa6ca('0x38')]=_0x3d07b8[_0xa6ca('0x3b')]=null;}_0x1f26d0[_0xa6ca('0x3c')]=_0x42cf66['Imap'][_0xa6ca('0x3c')];_0x1f26d0[_0xa6ca('0x3d')]=_0x42cf66[_0xa6ca('0x41')][_0xa6ca('0x3d')];_0x3d07b8[_0xa6ca('0x3c')]=_0x42cf66['Smtp']['host'];_0x3d07b8[_0xa6ca('0x3d')]=_0x42cf66[_0xa6ca('0x42')][_0xa6ca('0x3d')];}return{'Imap':_0x1f26d0,'Smtp':_0x3d07b8};}exports[_0xa6ca('0x43')]=function(_0x1f1b34,_0x25f490){var _0xfdb119={'include':[{'model':db[_0xa6ca('0x44')],'as':_0xa6ca('0x41')},{'model':db['MailServerOut'],'as':_0xa6ca('0x42')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x2502c6={},_0x47e1ef={'count':0x0,'rows':[]};var _0x51084b=_[_0xa6ca('0x45')](db[_0xa6ca('0x46')][_0xa6ca('0x47')],function(_0x14a52a){return{'name':_0x14a52a['fieldName'],'type':_0x14a52a[_0xa6ca('0x48')][_0xa6ca('0x49')]};});_0x2502c6['model']=_[_0xa6ca('0x45')](_0x51084b,_0xa6ca('0x28'));_0x2502c6[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x1f1b34[_0xa6ca('0x4a')]);_0x2502c6[_0xa6ca('0x4c')]=_[_0xa6ca('0x4d')](_0x2502c6[_0xa6ca('0x4e')],_0x2502c6[_0xa6ca('0x4a')]);_0xfdb119[_0xa6ca('0x4f')]=_['intersection'](_0x2502c6[_0xa6ca('0x4e')],qs['fields'](_0x1f1b34['query']['fields']));_0xfdb119[_0xa6ca('0x4f')]=_0xfdb119[_0xa6ca('0x4f')][_0xa6ca('0x50')]?_0xfdb119['attributes']:_0x2502c6['model'];if(!_0x1f1b34[_0xa6ca('0x4a')][_0xa6ca('0x51')]('nolimit')){_0xfdb119[_0xa6ca('0x1f')]=qs['limit'](_0x1f1b34['query']['limit']);_0xfdb119[_0xa6ca('0x1d')]=qs['offset'](_0x1f1b34[_0xa6ca('0x4a')]['offset']);}_0xfdb119[_0xa6ca('0x52')]=qs[_0xa6ca('0x53')](_0x1f1b34[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0xfdb119[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_[_0xa6ca('0x55')](_0x1f1b34['query'],_0x2502c6[_0xa6ca('0x4c')]),_0x51084b);if(_0x1f1b34[_0xa6ca('0x4a')]['filter']){_0xfdb119[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0xfdb119['where'],{'$or':_[_0xa6ca('0x45')](_0x51084b,function(_0x120e1a){if(_0x120e1a['type']!==_0xa6ca('0x57')){var _0x212321={};_0x212321[_0x120e1a[_0xa6ca('0x28')]]={'$like':'%'+_0x1f1b34[_0xa6ca('0x4a')][_0xa6ca('0x58')]+'%'};return _0x212321;}})});}_0xfdb119=_['merge']({},_0xfdb119,_0x1f1b34['options']);var _0x28f3c2={'where':_0xfdb119['where']};return db[_0xa6ca('0x46')][_0xa6ca('0x20')](_0x28f3c2)[_0xa6ca('0x11')](function(_0x58847d){_0x47e1ef[_0xa6ca('0x20')]=_0x58847d;if(_0x1f1b34[_0xa6ca('0x4a')][_0xa6ca('0x59')]){_0xfdb119[_0xa6ca('0x5a')]=[{'all':!![]}];}return db[_0xa6ca('0x46')][_0xa6ca('0x5b')](_0xfdb119);})[_0xa6ca('0x11')](function(_0x5495e2){_0x47e1ef['rows']=_0x5495e2;return _0x47e1ef;})['then'](respondWithFilteredResult(_0x25f490,_0xfdb119))[_0xa6ca('0x19')](handleError(_0x25f490,null));};exports[_0xa6ca('0x5c')]=function(_0x4242ee,_0x578df6){var _0xc226c2={'raw':![],'where':{'id':_0x4242ee[_0xa6ca('0x5d')]['id']},'include':[{'model':db[_0xa6ca('0x44')],'as':_0xa6ca('0x41')},{'model':db[_0xa6ca('0x5e')],'as':'Smtp'},{'model':db[_0xa6ca('0x5f')],'as':'mandatoryDispositionPause'}]},_0x1617b9={};_0x1617b9[_0xa6ca('0x4e')]=_[_0xa6ca('0x4b')](db['MailAccount']['rawAttributes']);_0x1617b9[_0xa6ca('0x4a')]=_['keys'](_0x4242ee[_0xa6ca('0x4a')]);_0x1617b9[_0xa6ca('0x4c')]=_['intersection'](_0x1617b9[_0xa6ca('0x4e')],_0x1617b9[_0xa6ca('0x4a')]);_0xc226c2[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x1617b9[_0xa6ca('0x4e')],qs[_0xa6ca('0x60')](_0x4242ee[_0xa6ca('0x4a')][_0xa6ca('0x60')]));_0xc226c2[_0xa6ca('0x4f')]=_0xc226c2[_0xa6ca('0x4f')][_0xa6ca('0x50')]?_0xc226c2['attributes']:_0x1617b9['model'];if(_0x4242ee[_0xa6ca('0x4a')]['includeAll']){_0xc226c2[_0xa6ca('0x5a')]=[{'all':!![]}];}_0xc226c2=_[_0xa6ca('0x56')]({},_0xc226c2,_0x4242ee[_0xa6ca('0x61')]);return db[_0xa6ca('0x46')][_0xa6ca('0x62')](_0xc226c2)[_0xa6ca('0x11')](handleEntityNotFound(_0x578df6,null))[_0xa6ca('0x11')](respondWithResult(_0x578df6,null))['catch'](handleError(_0x578df6,null));};exports['update']=function(_0x4b427d,_0x43da28){if(_0x4b427d[_0xa6ca('0x63')]['id']){delete _0x4b427d['body']['id'];}var _0x633bad=_0x4b427d['body'][_0xa6ca('0x64')]==='custom'?null:_0x4b427d[_0xa6ca('0x63')]['provider'];var _0x54bc3f=_0x4b427d[_0xa6ca('0x63')][_0xa6ca('0x41')]||{};var _0x198bb0=_0x4b427d[_0xa6ca('0x63')]['Smtp']||{};if(_0x633bad){_0x54bc3f[_0xa6ca('0x3c')]=getImapHost(_0x633bad);_0x54bc3f[_0xa6ca('0x3d')]=0x3e1;_0x198bb0['host']=getSmtpHost(_0x633bad);_0x198bb0[_0xa6ca('0x3d')]=0x24b;_0x198bb0[_0xa6ca('0x3e')]=![];}if(_0x198bb0[_0xa6ca('0x39')]){_0x198bb0[_0xa6ca('0x3e')]=![];}else{_0x198bb0['CloudProviderId']=null;}if(!_0x54bc3f[_0xa6ca('0x39')])_0x54bc3f[_0xa6ca('0x3a')]=null;_0x4b427d['body'][_0xa6ca('0x41')]=_0x54bc3f;_0x4b427d['body'][_0xa6ca('0x42')]=_0x198bb0;return db[_0xa6ca('0x46')]['find']({'where':{'id':_0x4b427d[_0xa6ca('0x5d')]['id']},'include':[{'model':db[_0xa6ca('0x44')],'as':_0xa6ca('0x41')},{'model':db[_0xa6ca('0x5e')],'as':_0xa6ca('0x42')},{'model':db['Pause'],'as':_0xa6ca('0x65')}]})[_0xa6ca('0x11')](handleEntityNotFound(_0x43da28,null))[_0xa6ca('0x11')](function(_0xc034b3){if(!_0xc034b3)throw new Error('Mail\x20Account\x20not\x20found');if(_0xc034b3[_0xa6ca('0x3f')])delete _0x4b427d[_0xa6ca('0x63')][_0xa6ca('0x41')];return _0xc034b3;})['then'](saveUpdates(_0x4b427d[_0xa6ca('0x63')],null))[_0xa6ca('0x11')](function(_0x512480){if(!_0x4b427d['body'][_0xa6ca('0x41')])return _0x512480;return db[_0xa6ca('0x44')][_0xa6ca('0x23')](_0x4b427d[_0xa6ca('0x63')]['Imap'],{'where':{'MailAccountId':_0x512480['id']}})[_0xa6ca('0x11')](function(){return _0x512480;});})[_0xa6ca('0x11')](function(_0x122cfc){if(!_0x4b427d[_0xa6ca('0x63')]['Smtp'])return _0x122cfc;return db[_0xa6ca('0x5e')][_0xa6ca('0x23')](_0x4b427d[_0xa6ca('0x63')][_0xa6ca('0x42')],{'where':{'MailAccountId':_0x122cfc['id']}})[_0xa6ca('0x11')](function(){return _0x122cfc;});})[_0xa6ca('0x11')](respondWithResult(_0x43da28,null))[_0xa6ca('0x19')](handleError(_0x43da28,null));};exports[_0xa6ca('0x66')]=function(_0x5b2e91,_0xd279af){return db[_0xa6ca('0x46')][_0xa6ca('0x66')]()[_0xa6ca('0x11')](respondWithResult(_0xd279af,null))[_0xa6ca('0x19')](handleError(_0xd279af,null));};exports[_0xa6ca('0x67')]=function(_0xa9de1,_0x5cccc7){if(_0xa9de1[_0xa6ca('0x63')]['id']){delete _0xa9de1[_0xa6ca('0x63')]['id'];}return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0xa9de1[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x5cccc7,null))['then'](function(_0x2da120){if(_0x2da120){_0xa9de1['body'][_0xa6ca('0x68')]=_0x2da120['id'];return db[_0xa6ca('0x69')][_0xa6ca('0x6a')](_0xa9de1[_0xa6ca('0x63')]);}})[_0xa6ca('0x11')](respondWithResult(_0x5cccc7,null))['catch'](handleError(_0x5cccc7,null));};exports[_0xa6ca('0x6b')]=function(_0x2b260d,_0x4c998f){var _0x4f6db5={'raw':![],'where':{}};var _0x200123={};var _0xcd9aa7={'count':0x0,'rows':[]};return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x2b260d[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x4c998f,null))[_0xa6ca('0x11')](function(_0x4df1de){if(_0x4df1de){_0x200123[_0xa6ca('0x4e')]=_[_0xa6ca('0x4b')](db['Disposition'][_0xa6ca('0x47')]);_0x200123[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x2b260d[_0xa6ca('0x4a')]);_0x200123[_0xa6ca('0x4c')]=_['intersection'](_0x200123['model'],_0x200123[_0xa6ca('0x4a')]);_0x4f6db5[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x200123[_0xa6ca('0x4e')],qs['fields'](_0x2b260d[_0xa6ca('0x4a')][_0xa6ca('0x60')]));_0x4f6db5[_0xa6ca('0x4f')]=_0x4f6db5['attributes']['length']?_0x4f6db5[_0xa6ca('0x4f')]:_0x200123['model'];if(!_0x2b260d[_0xa6ca('0x4a')]['hasOwnProperty']('nolimit')){_0x4f6db5[_0xa6ca('0x1f')]=qs['limit'](_0x2b260d[_0xa6ca('0x4a')][_0xa6ca('0x1f')]);_0x4f6db5[_0xa6ca('0x1d')]=qs['offset'](_0x2b260d[_0xa6ca('0x4a')][_0xa6ca('0x1d')]);}_0x4f6db5['order']=qs[_0xa6ca('0x53')](_0x2b260d[_0xa6ca('0x4a')]['sort']);_0x4f6db5[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_[_0xa6ca('0x55')](_0x2b260d[_0xa6ca('0x4a')],_0x200123['filters']));_0x4f6db5[_0xa6ca('0x54')]['MailAccountId']=_0x4df1de['id'];if(_0x2b260d['query']['filter']){_0x4f6db5[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0x4f6db5['where'],{'$or':_[_0xa6ca('0x45')](_0x4f6db5[_0xa6ca('0x4f')],function(_0x30d514){var _0x320667={};_0x320667[_0x30d514]={'$like':'%'+_0x2b260d[_0xa6ca('0x4a')][_0xa6ca('0x58')]+'%'};return _0x320667;})});}_0x4f6db5=_[_0xa6ca('0x56')]({},_0x4f6db5,_0x2b260d['options']);return db['Disposition'][_0xa6ca('0x20')]({'where':_0x4f6db5['where']})[_0xa6ca('0x11')](function(_0x3f3f0a){_0xcd9aa7[_0xa6ca('0x20')]=_0x3f3f0a;if(_0x2b260d[_0xa6ca('0x4a')][_0xa6ca('0x59')]){_0x4f6db5[_0xa6ca('0x5a')]=[{'all':!![]}];}return db[_0xa6ca('0x69')][_0xa6ca('0x5b')](_0x4f6db5);})[_0xa6ca('0x11')](function(_0x41a012){_0xcd9aa7[_0xa6ca('0x6d')]=_0x41a012;return _0xcd9aa7;});}})[_0xa6ca('0x11')](respondWithFilteredResult(_0x4c998f,_0x4f6db5))['catch'](handleError(_0x4c998f,null));};exports[_0xa6ca('0x6e')]=function(_0x92dc23,_0x164fab){return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x92dc23[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0x164fab,null))[_0xa6ca('0x11')](function(_0x13f543){if(_0x13f543){return _0x13f543[_0xa6ca('0x6e')](_0x92dc23[_0xa6ca('0x4a')]['ids']);}})[_0xa6ca('0x11')](respondWithStatusCode(_0x164fab,null))[_0xa6ca('0x19')](handleError(_0x164fab,null));};exports[_0xa6ca('0x6f')]=function(_0x27b034,_0x3b9c09){if(_0x27b034[_0xa6ca('0x63')]['id']){delete _0x27b034['body']['id'];}return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x27b034['params']['id']}})['then'](handleEntityNotFound(_0x3b9c09,null))['then'](function(_0x5ae34a){if(_0x5ae34a){_0x27b034['body'][_0xa6ca('0x68')]=_0x5ae34a['id'];return db['CannedAnswer'][_0xa6ca('0x6a')](_0x27b034['body']);}})['then'](respondWithResult(_0x3b9c09,null))['catch'](handleError(_0x3b9c09,null));};exports[_0xa6ca('0x70')]=function(_0x3596df,_0x325fe2){var _0x2ddf80={'raw':![],'where':{}};var _0x2012ce={};var _0x59e643={'count':0x0,'rows':[]};return db['MailAccount'][_0xa6ca('0x6c')]({'where':{'id':_0x3596df[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0x325fe2,null))[_0xa6ca('0x11')](function(_0x4a83d9){if(_0x4a83d9){_0x2012ce['model']=_[_0xa6ca('0x4b')](db[_0xa6ca('0x71')][_0xa6ca('0x47')]);_0x2012ce[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x3596df[_0xa6ca('0x4a')]);_0x2012ce[_0xa6ca('0x4c')]=_[_0xa6ca('0x4d')](_0x2012ce['model'],_0x2012ce['query']);_0x2ddf80[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x2012ce[_0xa6ca('0x4e')],qs[_0xa6ca('0x60')](_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x60')]));_0x2ddf80['attributes']=_0x2ddf80['attributes'][_0xa6ca('0x50')]?_0x2ddf80[_0xa6ca('0x4f')]:_0x2012ce['model'];if(!_0x3596df['query'][_0xa6ca('0x51')](_0xa6ca('0x72'))){_0x2ddf80['limit']=qs[_0xa6ca('0x1f')](_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x1f')]);_0x2ddf80[_0xa6ca('0x1d')]=qs[_0xa6ca('0x1d')](_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x1d')]);}_0x2ddf80[_0xa6ca('0x52')]=qs[_0xa6ca('0x53')](_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0x2ddf80[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_['pick'](_0x3596df[_0xa6ca('0x4a')],_0x2012ce[_0xa6ca('0x4c')]));_0x2ddf80['where']['MailAccountId']=_0x4a83d9['id'];if(_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x58')]){_0x2ddf80['where']=_[_0xa6ca('0x56')](_0x2ddf80[_0xa6ca('0x54')],{'$or':_[_0xa6ca('0x45')](_0x2ddf80[_0xa6ca('0x4f')],function(_0x43caed){var _0x4e7f5b={};_0x4e7f5b[_0x43caed]={'$like':'%'+_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x58')]+'%'};return _0x4e7f5b;})});}_0x2ddf80=_[_0xa6ca('0x56')]({},_0x2ddf80,_0x3596df[_0xa6ca('0x61')]);return db[_0xa6ca('0x71')]['count']({'where':_0x2ddf80[_0xa6ca('0x54')]})[_0xa6ca('0x11')](function(_0x32d1d2){_0x59e643[_0xa6ca('0x20')]=_0x32d1d2;if(_0x3596df[_0xa6ca('0x4a')][_0xa6ca('0x59')]){_0x2ddf80[_0xa6ca('0x5a')]=[{'all':!![]}];}return db[_0xa6ca('0x71')][_0xa6ca('0x5b')](_0x2ddf80);})[_0xa6ca('0x11')](function(_0x41889d){_0x59e643['rows']=_0x41889d;return _0x59e643;});}})[_0xa6ca('0x11')](respondWithFilteredResult(_0x325fe2,_0x2ddf80))[_0xa6ca('0x19')](handleError(_0x325fe2,null));};exports[_0xa6ca('0x73')]=function(_0x1d1007,_0x3e3a09){return db[_0xa6ca('0x46')]['find']({'where':{'id':_0x1d1007[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0x3e3a09,null))['then'](function(_0xa1c507){if(_0xa1c507){return _0xa1c507[_0xa6ca('0x73')](_0x1d1007[_0xa6ca('0x4a')][_0xa6ca('0x74')]);}})[_0xa6ca('0x11')](respondWithStatusCode(_0x3e3a09,null))[_0xa6ca('0x19')](handleError(_0x3e3a09,null));};exports[_0xa6ca('0x6a')]=function(_0x5193d5,_0x5d2160){var _0x5b33d6={'name':_0x5193d5['body'][_0xa6ca('0x28')],'key':_0x5193d5['body']['key'],'provider':_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x64')]===_0xa6ca('0x75')?null:_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x64')],'email':_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x76')],'ListId':_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x77')],'active':!_[_0xa6ca('0x78')](_0x5193d5['body'][_0xa6ca('0x79')])?_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x79')]:!![],'description':_0x5193d5[_0xa6ca('0x63')][_0xa6ca('0x7a')]||null};var _0x473a6e=getAuthenticationOptions(_0x5b33d6['provider'],_0x5193d5[_0xa6ca('0x63')]);_0x5b33d6[_0xa6ca('0x41')]=_0x473a6e[_0xa6ca('0x41')];_0x5b33d6[_0xa6ca('0x42')]=_0x473a6e[_0xa6ca('0x42')];return db[_0xa6ca('0x46')][_0xa6ca('0x6a')](_0x5b33d6,{'include':[{'model':db[_0xa6ca('0x5e')],'as':'Smtp'},{'model':db[_0xa6ca('0x44')],'as':_0xa6ca('0x41')}]})[_0xa6ca('0x11')](function(_0x22fc95){var _0x14c666=_0x5193d5[_0xa6ca('0x36')][_0xa6ca('0x25')]({'plain':!![]});if(!_0x14c666)throw new Error(_0xa6ca('0x7b'));if(_0x14c666['role']===_0xa6ca('0x36')){var _0x4296be=_0x22fc95['get']({'plain':!![]});return db[_0xa6ca('0x7c')][_0xa6ca('0x62')]({'where':{'name':'MailAccounts','userProfileId':_0x14c666[_0xa6ca('0x7d')]},'raw':!![]})[_0xa6ca('0x11')](function(_0x810ba2){if(_0x810ba2&&_0x810ba2[_0xa6ca('0x7e')]===0x0){return db[_0xa6ca('0x27')][_0xa6ca('0x6a')]({'name':_0x4296be[_0xa6ca('0x28')],'resourceId':_0x4296be['id'],'type':_0x810ba2[_0xa6ca('0x28')],'sectionId':_0x810ba2['id']},{})[_0xa6ca('0x11')](function(){return _0x22fc95;});}else{return _0x22fc95;}})[_0xa6ca('0x19')](function(_0x5d0fb7){logger[_0xa6ca('0x15')](_0xa6ca('0x7f'),_0x5d0fb7);throw _0x5d0fb7;});}return _0x22fc95;})[_0xa6ca('0x11')](respondWithResult(_0x5d2160,0xc9))[_0xa6ca('0x19')](handleError(_0x5d2160,null));};exports[_0xa6ca('0x80')]=function(_0x57dc2d,_0x486ab2){return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x57dc2d[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0x486ab2,null))[_0xa6ca('0x11')](function(_0x581bef){if(_0x581bef){return _0x581bef['getImap']();}return null;})[_0xa6ca('0x11')](respondWithResult(_0x486ab2,null))[_0xa6ca('0x19')](handleError(_0x486ab2,null));};exports['addImap']=function(_0x5e3a41,_0x25abf3){if(_0x5e3a41[_0xa6ca('0x63')]['id']){delete _0x5e3a41['body']['id'];}return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x5e3a41[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x25abf3,null))['then'](function(_0x323c1a){if(_0x323c1a){_0x5e3a41[_0xa6ca('0x63')]['MailAccountId']=_0x323c1a['id'];return db[_0xa6ca('0x44')][_0xa6ca('0x6a')](_0x5e3a41['body']);}})['then'](respondWithResult(_0x25abf3,null))[_0xa6ca('0x19')](handleError(_0x25abf3,null));};exports['removeImap']=function(_0x5511a7,_0x48e522){return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x5511a7['params']['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x48e522,null))[_0xa6ca('0x11')](function(_0x3d7493){if(_0x3d7493){return _0x3d7493[_0xa6ca('0x81')](null);}return null;})['then'](respondWithStatusCode(_0x48e522,null))[_0xa6ca('0x19')](handleError(_0x48e522,null));};exports[_0xa6ca('0x82')]=function(_0x49674d,_0x56a072){return db[_0xa6ca('0x46')]['findOne']({'where':{'id':_0x49674d[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0x56a072,null))['then'](function(_0x47cb8f){if(_0x47cb8f){return _0x47cb8f[_0xa6ca('0x82')]();}return null;})[_0xa6ca('0x11')](respondWithResult(_0x56a072,null))[_0xa6ca('0x19')](handleError(_0x56a072,null));};exports[_0xa6ca('0x83')]=function(_0x4c611f,_0x56b746){if(_0x4c611f['body']['id']){delete _0x4c611f[_0xa6ca('0x63')]['id'];}return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x4c611f['params']['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x56b746,null))[_0xa6ca('0x11')](function(_0x4637ea){if(_0x4637ea){_0x4c611f['body'][_0xa6ca('0x68')]=_0x4637ea['id'];return db['MailServerOut'][_0xa6ca('0x6a')](_0x4c611f['body']);}})[_0xa6ca('0x11')](respondWithResult(_0x56b746,null))[_0xa6ca('0x19')](handleError(_0x56b746,null));};exports[_0xa6ca('0x84')]=function(_0x4a6133,_0x5c1b58){return db['MailAccount'][_0xa6ca('0x6c')]({'where':{'id':_0x4a6133['params']['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x5c1b58,null))[_0xa6ca('0x11')](function(_0x31f6aa){if(_0x31f6aa){return _0x31f6aa[_0xa6ca('0x85')](null);}return null;})[_0xa6ca('0x11')](respondWithStatusCode(_0x5c1b58,null))[_0xa6ca('0x19')](handleError(_0x5c1b58,null));};exports[_0xa6ca('0x86')]=function(_0x1de781,_0x326146){return db['MailInteraction'][_0xa6ca('0x62')]({'where':{'id':_0x1de781[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x326146,null))['then'](function(_0x4da2be){if(_0x4da2be){return _0x4da2be['addInteraction'](_0x1de781['body'][_0xa6ca('0x74')],_['omit'](_0x1de781['body'],[_0xa6ca('0x74'),'id'])||{});}})[_0xa6ca('0x11')](respondWithResult(_0x326146,null))[_0xa6ca('0x19')](handleError(_0x326146,null));};exports[_0xa6ca('0x87')]=function(_0x5d4f57,_0x490bf6){var _0x568b27={'raw':![],'where':{}};var _0x117e20={};var _0x10f105={'count':0x0,'rows':[]};return db['MailAccount'][_0xa6ca('0x6c')]({'where':{'id':_0x5d4f57['params']['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x490bf6,null))['then'](function(_0x184324){if(_0x184324){_0x117e20['model']=_[_0xa6ca('0x4b')](db[_0xa6ca('0x88')][_0xa6ca('0x47')]);_0x117e20[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x5d4f57[_0xa6ca('0x4a')]);_0x117e20['filters']=_[_0xa6ca('0x4d')](_0x117e20[_0xa6ca('0x4e')],_0x117e20[_0xa6ca('0x4a')]);_0x568b27[_0xa6ca('0x4f')]=_['intersection'](_0x117e20[_0xa6ca('0x4e')],qs[_0xa6ca('0x60')](_0x5d4f57[_0xa6ca('0x4a')]['fields']));_0x568b27[_0xa6ca('0x4f')]=_0x568b27[_0xa6ca('0x4f')][_0xa6ca('0x50')]?_0x568b27[_0xa6ca('0x4f')]:_0x117e20[_0xa6ca('0x4e')];if(!_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x51')](_0xa6ca('0x72'))){_0x568b27[_0xa6ca('0x1f')]=qs['limit'](_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x1f')]);_0x568b27[_0xa6ca('0x1d')]=qs[_0xa6ca('0x1d')](_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x1d')]);}_0x568b27[_0xa6ca('0x52')]=qs[_0xa6ca('0x53')](_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0x568b27[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_['pick'](_0x5d4f57[_0xa6ca('0x4a')],_0x117e20[_0xa6ca('0x4c')]));_0x568b27[_0xa6ca('0x54')]['MailAccountId']=_0x184324['id'];if(_0x5d4f57['query'][_0xa6ca('0x58')]){_0x568b27[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0x568b27['where'],{'$or':_[_0xa6ca('0x45')](_0x568b27[_0xa6ca('0x4f')],function(_0x4a97bc){var _0x542c3b={};_0x542c3b[_0x4a97bc]={'$like':'%'+_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x58')]+'%'};return _0x542c3b;})});}_0x568b27=_[_0xa6ca('0x56')]({},_0x568b27,_0x5d4f57[_0xa6ca('0x61')]);return db[_0xa6ca('0x88')][_0xa6ca('0x20')]({'where':_0x568b27['where']})[_0xa6ca('0x11')](function(_0x86ee84){_0x10f105[_0xa6ca('0x20')]=_0x86ee84;if(_0x5d4f57[_0xa6ca('0x4a')]['includeAll']){_0x568b27[_0xa6ca('0x5a')]=[{'model':db[_0xa6ca('0x89')],'as':_0xa6ca('0x8a'),'required':![]},{'model':db[_0xa6ca('0x8b')],'as':_0xa6ca('0x8c'),'attributes':['name',_0xa6ca('0x8d'),_0xa6ca('0x8e')],'required':![]},{'model':db[_0xa6ca('0x8f')],'as':'Tags','attributes':['id',_0xa6ca('0x28'),_0xa6ca('0x90')],'where':_0x5d4f57['query'][_0xa6ca('0x91')]?{'id':_0x5d4f57[_0xa6ca('0x4a')][_0xa6ca('0x91')]}:undefined,'required':_0x5d4f57['query'][_0xa6ca('0x91')]?!![]:![]}];}return db[_0xa6ca('0x88')][_0xa6ca('0x5b')](_0x568b27);})[_0xa6ca('0x11')](function(_0x420dd2){_0x10f105[_0xa6ca('0x6d')]=_0x420dd2;return _0x10f105;});}})[_0xa6ca('0x11')](respondWithFilteredResult(_0x490bf6,_0x568b27))[_0xa6ca('0x19')](handleError(_0x490bf6,null));};exports[_0xa6ca('0x92')]=function addApplications(_0x1cc897,_0x6eaea6){var _0x2c5790=_0x1cc897[_0xa6ca('0x5d')]['id'];var _0xb9f749=_0x1cc897[_0xa6ca('0x63')];var _0x4e8353=0xc8;var _0x3c2bb5=null;return db[_0xa6ca('0x93')][_0xa6ca('0x94')]({'isolationLevel':db['sequelize'][_0xa6ca('0x95')]['ISOLATION_LEVELS'][_0xa6ca('0x96')]},function(_0x4dd6fd){return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x2c5790},'transaction':_0x4dd6fd})[_0xa6ca('0x11')](function(_0x42e7b0){if(_0x42e7b0){return db['MailApplication'][_0xa6ca('0x24')]({'where':{'MailAccountId':_0x2c5790},'transaction':_0x4dd6fd})[_0xa6ca('0x11')](function(){var _0x24248d=_[_0xa6ca('0x45')](_0xb9f749,function(_0x5782eb){_0x5782eb[_0xa6ca('0x68')]=_0x2c5790;return _0x5782eb;});return db[_0xa6ca('0x97')][_0xa6ca('0x98')](_0x24248d,{'transaction':_0x4dd6fd});});}else{_0x4e8353=0x194;_0x3c2bb5=[];}});})[_0xa6ca('0x11')](function(){if(_0x4e8353!==0x194){return db[_0xa6ca('0x97')][_0xa6ca('0x99')]({'where':{'MailAccountId':_0x2c5790},'order':_0xa6ca('0x9a')})[_0xa6ca('0x11')](function(_0x31986a){_0x3c2bb5=_0x31986a;});}})[_0xa6ca('0x19')](function(_0x11a18a){_0x4e8353=0x1f4;logger[_0xa6ca('0x15')](_0x11a18a[_0xa6ca('0x9b')]);if(_0x11a18a[_0xa6ca('0x28')]){delete _0x11a18a[_0xa6ca('0x28')];}_0x3c2bb5=_0x11a18a;})[_0xa6ca('0x9c')](function(){if(_0x3c2bb5===null){_0x6eaea6[_0xa6ca('0x1a')](_0x4e8353);}else{if(_0x4e8353===0x1f4){_0x6eaea6[_0xa6ca('0x1b')](_0x4e8353)[_0xa6ca('0x29')](_0x3c2bb5);}else{_0x6eaea6['status'](_0x4e8353)[_0xa6ca('0x9d')](_0x3c2bb5);}}});};exports[_0xa6ca('0x9e')]=function(_0x5a897b,_0x59a1ca){var _0x3209e={};var _0x581adf={};var _0x836bce;var _0x19a785;return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x5a897b['params']['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x59a1ca,null))[_0xa6ca('0x11')](function(_0x3952be){if(_0x3952be){_0x836bce=_0x3952be;_0x581adf[_0xa6ca('0x4e')]=_['keys'](db[_0xa6ca('0x97')]['rawAttributes']);_0x581adf[_0xa6ca('0x4a')]=_['keys'](_0x5a897b[_0xa6ca('0x4a')]);_0x581adf[_0xa6ca('0x4c')]=_['intersection'](_0x581adf[_0xa6ca('0x4e')],_0x581adf[_0xa6ca('0x4a')]);_0x3209e[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x581adf[_0xa6ca('0x4e')],qs[_0xa6ca('0x60')](_0x5a897b[_0xa6ca('0x4a')]['fields']));_0x3209e[_0xa6ca('0x4f')]=_0x3209e[_0xa6ca('0x4f')]['length']?_0x3209e[_0xa6ca('0x4f')]:_0x581adf[_0xa6ca('0x4e')];_0x3209e[_0xa6ca('0x52')]=qs['sort'](_0x5a897b[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0x3209e[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_[_0xa6ca('0x55')](_0x5a897b[_0xa6ca('0x4a')],_0x581adf[_0xa6ca('0x4c')]));if(_0x5a897b[_0xa6ca('0x4a')][_0xa6ca('0x58')]){_0x3209e[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0x3209e[_0xa6ca('0x54')],{'$or':_[_0xa6ca('0x45')](_0x3209e[_0xa6ca('0x4f')],function(_0x2ab9fc){var _0x453db8={};_0x453db8[_0x2ab9fc]={'$like':'%'+_0x5a897b[_0xa6ca('0x4a')]['filter']+'%'};return _0x453db8;})});}_0x3209e=_[_0xa6ca('0x56')]({},_0x3209e,_0x5a897b[_0xa6ca('0x61')]);return _0x836bce['getApplications'](_0x3209e);}})[_0xa6ca('0x11')](function(_0x8bf3a){if(_0x8bf3a){_0x19a785=_0x8bf3a['length'];if(!_0x5a897b[_0xa6ca('0x4a')][_0xa6ca('0x51')](_0xa6ca('0x72'))){_0x3209e[_0xa6ca('0x1f')]=qs[_0xa6ca('0x1f')](_0x5a897b[_0xa6ca('0x4a')][_0xa6ca('0x1f')]);_0x3209e[_0xa6ca('0x1d')]=qs[_0xa6ca('0x1d')](_0x5a897b[_0xa6ca('0x4a')][_0xa6ca('0x1d')]);}return _0x836bce[_0xa6ca('0x9e')](_0x3209e);}})[_0xa6ca('0x11')](function(_0x3ac517){if(_0x3ac517){return _0x3ac517?{'count':_0x19a785,'rows':_0x3ac517}:null;}})['then'](respondWithResult(_0x59a1ca,null))[_0xa6ca('0x19')](handleError(_0x59a1ca,null));};exports[_0xa6ca('0x9f')]=function(_0x5d53e0,_0x20aa60){var _0x19466c={'raw':!![],'where':{}};var _0x42b05={};var _0xa4ce9={'count':0x0,'rows':[]};return db[_0xa6ca('0x46')][_0xa6ca('0x6c')]({'where':{'id':_0x5d53e0[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x20aa60,null))['then'](function(_0x383858){if(_0x383858){_0x42b05[_0xa6ca('0x4e')]=_[_0xa6ca('0x4b')](db[_0xa6ca('0xa0')][_0xa6ca('0x47')]);_0x42b05[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x5d53e0[_0xa6ca('0x4a')]);_0x42b05[_0xa6ca('0x4c')]=_['intersection'](_0x42b05['model'],_0x42b05['query']);_0x19466c[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x42b05[_0xa6ca('0x4e')],qs['fields'](_0x5d53e0[_0xa6ca('0x4a')]['fields']));_0x19466c[_0xa6ca('0x4f')]=_0x19466c[_0xa6ca('0x4f')][_0xa6ca('0x50')]?_0x19466c[_0xa6ca('0x4f')]:_0x42b05[_0xa6ca('0x4e')];if(!_0x5d53e0[_0xa6ca('0x4a')]['hasOwnProperty'](_0xa6ca('0x72'))){_0x19466c[_0xa6ca('0x1f')]=qs[_0xa6ca('0x1f')](_0x5d53e0['query'][_0xa6ca('0x1f')]);_0x19466c[_0xa6ca('0x1d')]=qs[_0xa6ca('0x1d')](_0x5d53e0[_0xa6ca('0x4a')]['offset']);}_0x19466c[_0xa6ca('0x52')]=qs['sort'](_0x5d53e0[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0x19466c[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_[_0xa6ca('0x55')](_0x5d53e0[_0xa6ca('0x4a')],_0x42b05['filters']));_0x19466c['where'][_0xa6ca('0x68')]=_0x383858['id'];if(_0x5d53e0[_0xa6ca('0x4a')][_0xa6ca('0x58')]){_0x19466c[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0x19466c[_0xa6ca('0x54')],{'$or':_[_0xa6ca('0x45')](_0x19466c[_0xa6ca('0x4f')],function(_0x495f0a){var _0x59c50a={};_0x59c50a[_0x495f0a]={'$like':'%'+_0x5d53e0['query'][_0xa6ca('0x58')]+'%'};return _0x59c50a;})});}if(_0x5d53e0[_0xa6ca('0x4a')][_0xa6ca('0xa1')]){var _0x3a211e=_0x5d53e0[_0xa6ca('0x4a')][_0xa6ca('0xa1')]['split'](',');var _0x496393={};_0x496393[_0x3a211e[0x0]]={'$gte':moment(_0x3a211e[0x1])[_0xa6ca('0xa2')](_0xa6ca('0xa3'))};_0x19466c['where']=_[_0xa6ca('0x56')](_0x19466c[_0xa6ca('0x54')],_0x496393);}_0x19466c=_['merge']({},_0x19466c,_0x5d53e0[_0xa6ca('0x61')]);return db['MailMessage'][_0xa6ca('0x20')]({'where':_0x19466c[_0xa6ca('0x54')]})['then'](function(_0x1cd08b){_0xa4ce9[_0xa6ca('0x20')]=_0x1cd08b;if(_0x5d53e0[_0xa6ca('0x4a')]['includeAll']){_0x19466c['include']=[{'all':!![]}];}return db['MailMessage']['findAll'](_0x19466c);})[_0xa6ca('0x11')](function(_0x4eaf47){if(_0x5d53e0[_0xa6ca('0x4a')][_0xa6ca('0xa4')]==='true'){for(var _0x48e364=0x0;_0x48e364<_0x4eaf47[_0xa6ca('0x50')];_0x48e364++){_0x4eaf47[_0x48e364][_0xa6ca('0x63')]=juice(_0x4eaf47[_0x48e364][_0xa6ca('0x63')]);}}_0xa4ce9[_0xa6ca('0x6d')]=_0x4eaf47;return _0xa4ce9;});}})[_0xa6ca('0x11')](respondWithFilteredResult(_0x20aa60,_0x19466c))[_0xa6ca('0x19')](handleError(_0x20aa60,null));};exports[_0xa6ca('0x29')]=function(_0x439806,_0x24c695){var _0x242adc,_0x44d420={},_0x44a3c3;if(_0x439806[_0xa6ca('0x63')]['to']){_0x44a3c3=_0x439806['body']['to'][_0xa6ca('0xa5')](',')[0x0];}return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x439806[_0xa6ca('0x5d')]['id']},'include':[{'model':db[_0xa6ca('0xa6')],'as':_0xa6ca('0xa7'),'include':[{'model':db[_0xa6ca('0x89')],'as':_0xa6ca('0xa8'),'where':{'email':_0x44a3c3},'limit':0x1,'order':[[_0xa6ca('0xa9'),'DESC']]}]},{'model':db[_0xa6ca('0x5e')],'as':_0xa6ca('0x42'),'raw':!![],'include':[{'model':db[_0xa6ca('0xaa')],'as':'CloudProvider','raw':!![]}]}]})['then'](handleEntityNotFound(_0x24c695,null))[_0xa6ca('0x11')](function(_0x3ffa54){if(!_0x3ffa54)return;_0x242adc=_0x3ffa54;if(!_0x3ffa54[_0xa6ca('0x42')])throw new Error(_0xa6ca('0xab'));if(_['isNil'](_0x439806[_0xa6ca('0x63')][_0xa6ca('0xac')])){_0x439806[_0xa6ca('0x63')][_0xa6ca('0xac')]=util['format'](_0xa6ca('0xad'),_0x3ffa54['name'],_0x3ffa54[_0xa6ca('0x76')]||_0x3ffa54[_0xa6ca('0x42')][_0xa6ca('0x36')]);}if(_0x439806['body'][_0xa6ca('0xae')]&&_0x439806[_0xa6ca('0x63')][_0xa6ca('0xae')]['length']){for(var _0x223c93=0x0;_0x223c93<_0x439806[_0xa6ca('0x63')][_0xa6ca('0xae')]['length'];_0x223c93+=0x1){_0x439806[_0xa6ca('0x63')][_0xa6ca('0xae')][_0x223c93]={'filename':_0x439806[_0xa6ca('0x63')][_0xa6ca('0xae')][_0x223c93]['name'],'path':path[_0xa6ca('0xaf')](config[_0xa6ca('0xb0')],_0xa6ca('0xb1'),_0x439806[_0xa6ca('0x63')][_0xa6ca('0xae')][_0x223c93][_0xa6ca('0xb2')])};}}var _0x1d174e=_0x3ffa54[_0xa6ca('0xb3')]();return respondWithRpcPromise(_0xa6ca('0xb4'),'sendMail',{'account':_0x1d174e,'message':_0x439806['body']});})['then'](function(_0x5a7305){if(!_0x5a7305)return;_0x44d420=_0x5a7305;if(!_0x242adc[_0xa6ca('0xa7')])throw new Error(_0xa6ca('0xb5'));if(_0x242adc[_0xa6ca('0xa7')][_0xa6ca('0xa8')][_0xa6ca('0x50')])return _0x242adc[_0xa6ca('0xa7')]['Contacts'][0x0];return db[_0xa6ca('0x89')]['create'](_[_0xa6ca('0xa')](_0x439806[_0xa6ca('0x63')],{'firstName':_0x439806['body']['to'],'email':_0x439806['body']['to'],'phone':_0x439806[_0xa6ca('0x63')]['to'],'ListId':_0x242adc[_0xa6ca('0x77')]}));})['then'](function(_0x4c466c){if(!_0x4c466c)return;var _0x5721e1={'UserId':_0x439806[_0xa6ca('0x36')]['id'],'ContactId':_0x4c466c['id'],'MailAccountId':_0x242adc['id'],'inReplyTo':_0x44d420[_0xa6ca('0xb6')],'to':_0x439806[_0xa6ca('0x63')][_0xa6ca('0xac')],'cc':_0x439806['body']['cc'],'subject':_0x439806[_0xa6ca('0x63')][_0xa6ca('0xb7')],'attach':_0x439806[_0xa6ca('0x63')][_0xa6ca('0xb8')],'firstMsgDirection':'out','lastMsgAt':moment()[_0xa6ca('0xa2')](_0xa6ca('0xa3')),'lastMsgDirection':'out','Messages':[_[_0xa6ca('0x56')](_0x439806[_0xa6ca('0x63')],{'messageId':_0x44d420[_0xa6ca('0xb6')],'sentAt':moment()[_0xa6ca('0xa2')]('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x242adc['id'],'UserId':_0x439806[_0xa6ca('0x36')]['id'],'ContactId':_0x4c466c['id']})]};if(_0x439806[_0xa6ca('0x63')][_0xa6ca('0xb9')]){_0x5721e1=_[_0xa6ca('0x56')](_0x5721e1,_0x439806[_0xa6ca('0x63')]['Interaction']);}return db[_0xa6ca('0x88')][_0xa6ca('0x6a')](_0x5721e1,{'include':[{'model':db[_0xa6ca('0xa0')],'as':_0xa6ca('0xba')}]});})[_0xa6ca('0x11')](respondWithResult(_0x24c695,null))['catch'](handleError(_0x24c695,null));};exports[_0xa6ca('0xbb')]=function(_0x39542b,_0x4e5bbb){return db['MailAccount'][_0xa6ca('0x62')]({'where':{'id':_0x39542b['params']['id']},'include':[{'model':db[_0xa6ca('0x5e')],'as':_0xa6ca('0x42'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]})[_0xa6ca('0x11')](handleEntityNotFound(_0x4e5bbb,null))[_0xa6ca('0x11')](function(_0x38c9ca){if(!_0x38c9ca[_0xa6ca('0x42')])return;var _0x311b8e=_0x38c9ca[_0xa6ca('0xb3')]();return respondWithRpcPromise(_0xa6ca('0xbc'),_0xa6ca('0xbb'),{'account':_0x311b8e});})[_0xa6ca('0x11')](respondWithResult(_0x4e5bbb,null))[_0xa6ca('0x19')](handleError(_0x4e5bbb,null));};exports[_0xa6ca('0x24')]=function(_0x394022,_0x16b0fc){return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x394022[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x16b0fc,null))[_0xa6ca('0x11')](function(_0xfe5049){if(_0xfe5049&&_0xfe5049[_0xa6ca('0x3f')]){throw new db[(_0xa6ca('0xbd'))][(_0xa6ca('0xbe'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0xfe5049;})[_0xa6ca('0x11')](removeEntity(_0x16b0fc,null))[_0xa6ca('0x19')](handleError(_0x16b0fc,null));};exports[_0xa6ca('0xbf')]=function(_0x3aa31a,_0xf5ccaa){return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x3aa31a[_0xa6ca('0x5d')]['id']}})['then'](handleEntityNotFound(_0xf5ccaa,null))[_0xa6ca('0x11')](function(_0x2567ac){if(_0x2567ac){return _0x2567ac[_0xa6ca('0xbf')](_0x3aa31a['body'][_0xa6ca('0x74')],_[_0xa6ca('0xc0')](_0x3aa31a[_0xa6ca('0x63')],[_0xa6ca('0x74'),'id'])||{})[_0xa6ca('0xc1')](function(_0x2772ce){for(var _0x1cf3d6=0x0;_0x1cf3d6<_0x3aa31a[_0xa6ca('0x63')][_0xa6ca('0x74')]['length'];_0x1cf3d6+=0x1){socket[_0xa6ca('0xc2')]('userMailAccount:save',{'UserId':Number(_0x3aa31a['body']['ids'][_0x1cf3d6]),'MailAccountId':Number(_0x3aa31a[_0xa6ca('0x5d')]['id'])});}return _0x2772ce;});}})['then'](respondWithResult(_0xf5ccaa,null))[_0xa6ca('0x19')](handleError(_0xf5ccaa,null));};exports[_0xa6ca('0xc3')]=function(_0x4dd460,_0x576891){return db[_0xa6ca('0x46')][_0xa6ca('0x62')]({'where':{'id':_0x4dd460[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x576891,null))[_0xa6ca('0x11')](function(_0x3433ff){if(_0x3433ff){return _0x3433ff[_0xa6ca('0xc3')](_0x4dd460[_0xa6ca('0x4a')][_0xa6ca('0x74')])[_0xa6ca('0x11')](function(){if(_[_0xa6ca('0xc4')](_0x4dd460[_0xa6ca('0x4a')][_0xa6ca('0x74')])){for(var _0x21a097=0x0;_0x21a097<_0x4dd460['query'][_0xa6ca('0x74')][_0xa6ca('0x50')];_0x21a097+=0x1){socket[_0xa6ca('0xc2')](_0xa6ca('0xc5'),{'UserId':Number(_0x4dd460[_0xa6ca('0x4a')]['ids'][_0x21a097]),'MailAccountId':Number(_0x4dd460[_0xa6ca('0x5d')]['id'])});}}else{socket[_0xa6ca('0xc2')](_0xa6ca('0xc5'),{'UserId':Number(_0x4dd460[_0xa6ca('0x4a')][_0xa6ca('0x74')]),'MailAccountId':Number(_0x4dd460[_0xa6ca('0x5d')]['id'])});}});}})[_0xa6ca('0x11')](respondWithStatusCode(_0x576891,null))['catch'](handleError(_0x576891,null));};exports['getAgents']=function(_0x2de30c,_0x4dc7de){var _0x447350={};var _0x30cc95={};var _0x21adc1;var _0x35310d;return db[_0xa6ca('0x46')]['findOne']({'where':{'id':_0x2de30c[_0xa6ca('0x5d')]['id']}})[_0xa6ca('0x11')](handleEntityNotFound(_0x4dc7de,null))[_0xa6ca('0x11')](function(_0x444c8d){if(_0x444c8d){_0x21adc1=_0x444c8d;_0x30cc95[_0xa6ca('0x4e')]=_[_0xa6ca('0x4b')](db[_0xa6ca('0x8b')][_0xa6ca('0x47')]);_0x30cc95[_0xa6ca('0x4a')]=_[_0xa6ca('0x4b')](_0x2de30c[_0xa6ca('0x4a')]);_0x30cc95[_0xa6ca('0x4c')]=_[_0xa6ca('0x4d')](_0x30cc95[_0xa6ca('0x4e')],_0x30cc95[_0xa6ca('0x4a')]);_0x447350[_0xa6ca('0x4f')]=_[_0xa6ca('0x4d')](_0x30cc95[_0xa6ca('0x4e')],qs[_0xa6ca('0x60')](_0x2de30c['query']['fields']));_0x447350[_0xa6ca('0x4f')]=_0x447350[_0xa6ca('0x4f')][_0xa6ca('0x50')]?_0x447350[_0xa6ca('0x4f')]:_0x30cc95[_0xa6ca('0x4e')];_0x447350['order']=qs['sort'](_0x2de30c[_0xa6ca('0x4a')][_0xa6ca('0x53')]);_0x447350[_0xa6ca('0x54')]=qs[_0xa6ca('0x4c')](_[_0xa6ca('0x55')](_0x2de30c[_0xa6ca('0x4a')],_0x30cc95['filters']));if(_0x2de30c[_0xa6ca('0x4a')][_0xa6ca('0x58')]){_0x447350[_0xa6ca('0x54')]=_[_0xa6ca('0x56')](_0x447350[_0xa6ca('0x54')],{'$or':_[_0xa6ca('0x45')](_0x447350[_0xa6ca('0x4f')],function(_0x3e9def){var _0x261c1c={};_0x261c1c[_0x3e9def]={'$like':'%'+_0x2de30c[_0xa6ca('0x4a')][_0xa6ca('0x58')]+'%'};return _0x261c1c;})});}_0x447350=_[_0xa6ca('0x56')]({},_0x447350,_0x2de30c[_0xa6ca('0x61')]);return _0x21adc1[_0xa6ca('0xc6')](_0x447350);}})[_0xa6ca('0x11')](function(_0x2e1a7f){if(_0x2e1a7f){_0x35310d=_0x2e1a7f[_0xa6ca('0x50')];if(!_0x2de30c['query'][_0xa6ca('0x51')]('nolimit')){_0x447350[_0xa6ca('0x1f')]=qs[_0xa6ca('0x1f')](_0x2de30c['query'][_0xa6ca('0x1f')]);_0x447350[_0xa6ca('0x1d')]=qs[_0xa6ca('0x1d')](_0x2de30c['query'][_0xa6ca('0x1d')]);}return _0x21adc1[_0xa6ca('0xc6')](_0x447350);}})[_0xa6ca('0x11')](function(_0x14c69e){if(_0x14c69e){return _0x14c69e?{'count':_0x35310d,'rows':_0x14c69e}:null;}})['then'](respondWithResult(_0x4dc7de,null))['catch'](handleError(_0x4dc7de,null));};