Built motion from commit d5e4af8c.|2.6.23
[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 _0x40cd=['rows','show','params','keys','rawAttributes','length','find','body','provider','Mail\x20Account\x20not\x20found','update','describe','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','filter','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','custom','email','ListId','isNil','active','description','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','setImap','getSmtp','addSmtp','removeSmtp','addInteraction','MailInteraction','omit','getInteractions','order','CmContact','Contact','User','Tag','Tags','tag','addApplications','sequelize','transaction','Transaction','READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','priority','stack','finally','getApplications','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inlineCss','DESC','CloudProvider','Smtp\x20configuration\x20not\x20found','from','%s\x20<%s>','attachments','join','server/files/attachments','sendMail','List\x20not\x20found','List','Contacts','defaults','messageId','subject','attach','out','Interaction','verifySmtp','VerifySmtp','service','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','isArray','userMailAccount:remove','moment','bluebird','util','juice','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','localhost','socket.io-emitter','register','client','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','count','set','destroy','get','MailAccounts','UserProfileResource','name','send','gmail','yahoo','hotmail','outlook365','outlook.office365.com','Unknown\x20email\x20service\x20provider','smtp.mail.yahoo.com','smtp-mail.outlook.com','smtp.office365.com','user','username','password','modernAuthentication','CloudProviderId','host','port','secure','authentication','pass','Imap','Smtp','index','MailServerIn','MailServerOut','Pause','mandatoryDispositionPause','map','MailAccount','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll'];(function(_0x56fd29,_0x17790b){var _0x2a0bf7=function(_0x568f20){while(--_0x568f20){_0x56fd29['push'](_0x56fd29['shift']());}};_0x2a0bf7(++_0x17790b);}(_0x40cd,0x64));var _0xd40c=function(_0x2d4747,_0x2a39a7){_0x2d4747=_0x2d4747-0x0;var _0x2f0f63=_0x40cd[_0x2d4747];return _0x2f0f63;};'use strict';var moment=require(_0xd40c('0x0'));var BPromise=require(_0xd40c('0x1'));var util=require(_0xd40c('0x2'));var path=require('path');var _=require('lodash');var juice=require(_0xd40c('0x3'));var Redis=require('ioredis');var qs=require(_0xd40c('0x4'));var logger=require(_0xd40c('0x5'))(_0xd40c('0x6'));var config=require('../../config/environment');var db=require(_0xd40c('0x7'))['db'];config['redis']=_['defaults'](config[_0xd40c('0x8')],{'host':_0xd40c('0x9'),'port':0x18eb});var socket=require(_0xd40c('0xa'))(new Redis(config['redis']));require('./mailAccount.socket')[_0xd40c('0xb')](socket);var jayson=require('jayson/promise');var client=jayson[_0xd40c('0xc')]['http']({'port':0x232b});function respondWithRpcPromise(_0x4e7f98,_0x18536b,_0x201fac,_0x4b4aab){return new BPromise(function(_0x53f685,_0x152235){var _0x38b6e9=_0x4b4aab||client;return _0x38b6e9[_0xd40c('0xd')](_0x4e7f98,_0x201fac)[_0xd40c('0xe')](function(_0x468cbf){logger[_0xd40c('0xf')](_0xd40c('0x10'),_0x18536b,_0xd40c('0x11'));logger[_0xd40c('0x12')](_0xd40c('0x13'),_0x18536b,_0xd40c('0x11'),JSON[_0xd40c('0x14')](_0x468cbf));if(_0x468cbf['error']){if(_0x468cbf[_0xd40c('0x15')][_0xd40c('0x16')]===0x1f4){logger[_0xd40c('0x15')]('MailAccount,\x20%s,\x20%s',_0x18536b,_0x468cbf[_0xd40c('0x15')]['message']);return _0x152235(_0x468cbf[_0xd40c('0x15')]['message']);}logger[_0xd40c('0x15')](_0xd40c('0x10'),_0x18536b,_0x468cbf[_0xd40c('0x15')]['message']);return _0x53f685(_0x468cbf[_0xd40c('0x15')][_0xd40c('0x17')]);}else{logger[_0xd40c('0xf')]('MailAccount,\x20%s,\x20%s',_0x18536b,'request\x20sent');_0x53f685(_0x468cbf[_0xd40c('0x18')][_0xd40c('0x17')]);}})[_0xd40c('0x19')](function(_0x5e4bd6){logger['error'](_0xd40c('0x10'),_0x18536b,_0x5e4bd6);_0x152235(_0x5e4bd6);});});}function respondWithStatusCode(_0x2c510f,_0x10e36f){_0x10e36f=_0x10e36f||0xcc;return function(_0x2d5494){if(_0x2d5494){return _0x2c510f[_0xd40c('0x1a')](_0x10e36f);}return _0x2c510f[_0xd40c('0x1b')](_0x10e36f)['end']();};}function respondWithResult(_0x3c04d8,_0x3fd7f0){_0x3fd7f0=_0x3fd7f0||0xc8;return function(_0x100023){if(_0x100023){return _0x3c04d8[_0xd40c('0x1b')](_0x3fd7f0)[_0xd40c('0x1c')](_0x100023);}};}function respondWithFilteredResult(_0x124982,_0xef1459){return function(_0x4d4f44){if(_0x4d4f44){var _0x60b52d=typeof _0xef1459[_0xd40c('0x1d')]===_0xd40c('0x1e')&&typeof _0xef1459['limit']===_0xd40c('0x1e');var _0x86a30e=_0x4d4f44[_0xd40c('0x1f')];var _0x1c321e=_0x60b52d?0x0:_0xef1459[_0xd40c('0x1d')];var _0x22089f=_0x60b52d?_0x4d4f44[_0xd40c('0x1f')]:_0xef1459['offset']+_0xef1459['limit'];var _0x32f63c;if(_0x22089f>=_0x86a30e){_0x22089f=_0x86a30e;_0x32f63c=0xc8;}else{_0x32f63c=0xce;}_0x124982[_0xd40c('0x1b')](_0x32f63c);return _0x124982[_0xd40c('0x20')]('Content-Range',_0x1c321e+'-'+_0x22089f+'/'+_0x86a30e)['json'](_0x4d4f44);}return null;};}function saveUpdates(_0x5523fc){return function(_0xb24bc8){if(_0xb24bc8){return _0xb24bc8['update'](_0x5523fc)[_0xd40c('0xe')](function(_0x4155c5){return _0x4155c5;});}return null;};}function removeEntity(_0x1e4923){return function(_0x1fd7a9){if(_0x1fd7a9){return _0x1fd7a9[_0xd40c('0x21')]()[_0xd40c('0xe')](function(){var _0x3e0b08=_0x1fd7a9[_0xd40c('0x22')]({'plain':!![]});var _0x21e4a3=_0xd40c('0x23');return db[_0xd40c('0x24')][_0xd40c('0x21')]({'where':{'type':_0x21e4a3,'resourceId':_0x3e0b08['id']}})[_0xd40c('0xe')](function(){return _0x1fd7a9;});})[_0xd40c('0xe')](function(){_0x1e4923['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c3a26){return function(_0x4bd76c){if(!_0x4bd76c){_0x2c3a26['sendStatus'](0x194);}return _0x4bd76c;};}function handleError(_0x5c47b6,_0x3ca1b6){_0x3ca1b6=_0x3ca1b6||0x1f4;return function(_0x3ba64e){logger['error'](_0x3ba64e['stack']);if(_0x3ba64e[_0xd40c('0x25')]){delete _0x3ba64e[_0xd40c('0x25')];}_0x5c47b6[_0xd40c('0x1b')](_0x3ca1b6)[_0xd40c('0x26')](_0x3ba64e);};}function getImapHost(_0x1b3316){switch(_0x1b3316){case _0xd40c('0x27'):return'imap.gmail.com';case _0xd40c('0x28'):return'imap.mail.yahoo.com';case _0xd40c('0x29'):return'imap-mail.outlook.com';case _0xd40c('0x2a'):return _0xd40c('0x2b');}throw new Error(_0xd40c('0x2c'),_0x1b3316);}function getSmtpHost(_0x47d44c){switch(_0x47d44c){case _0xd40c('0x27'):return'smtp.gmail.com';case _0xd40c('0x28'):return _0xd40c('0x2d');case _0xd40c('0x29'):return _0xd40c('0x2e');case'outlook365':return _0xd40c('0x2f');}throw new Error(_0xd40c('0x2c'),_0x47d44c);}function getAuthenticationOptions(_0x296e83,_0x221839){var _0x27dfe8={};var _0x3570c9={};if(_0x296e83){_0x27dfe8[_0xd40c('0x30')]=_0x3570c9[_0xd40c('0x30')]=_0x221839[_0xd40c('0x31')];_0x27dfe8[_0xd40c('0x32')]=_0x3570c9['pass']=_0x221839[_0xd40c('0x32')];if(_0x221839[_0xd40c('0x33')]){_0x27dfe8[_0xd40c('0x33')]=_0x3570c9['modernAuthentication']=!![];_0x27dfe8[_0xd40c('0x34')]=_0x3570c9[_0xd40c('0x34')]=_0x221839['CloudProviderId'];_0x27dfe8['password']=_0x3570c9['pass']=null;}else{_0x27dfe8['CloudProviderId']=_0x3570c9['CloudProviderId']=null;}_0x27dfe8[_0xd40c('0x35')]=getImapHost(_0x296e83);_0x27dfe8[_0xd40c('0x36')]=0x3e1;_0x3570c9[_0xd40c('0x35')]=getSmtpHost(_0x296e83);_0x3570c9[_0xd40c('0x36')]=0x24b;_0x3570c9[_0xd40c('0x37')]=![];_0x27dfe8['service']=_0x3570c9['service']=null;}else{if(_0x221839[_0xd40c('0x38')]){_0x27dfe8[_0xd40c('0x30')]=_0x3570c9[_0xd40c('0x30')]=_0x221839[_0xd40c('0x31')];_0x27dfe8[_0xd40c('0x32')]=_0x3570c9[_0xd40c('0x39')]=_0x221839[_0xd40c('0x32')];}else{_0x27dfe8['authentication']=_0x3570c9['authentication']=![];_0x27dfe8[_0xd40c('0x30')]=_0x3570c9['user']=null;_0x27dfe8['password']=_0x3570c9[_0xd40c('0x39')]=null;}_0x27dfe8[_0xd40c('0x35')]=_0x221839[_0xd40c('0x3a')][_0xd40c('0x35')];_0x27dfe8[_0xd40c('0x36')]=_0x221839[_0xd40c('0x3a')][_0xd40c('0x36')];_0x3570c9['host']=_0x221839['Smtp'][_0xd40c('0x35')];_0x3570c9[_0xd40c('0x36')]=_0x221839[_0xd40c('0x3b')]['port'];}return{'Imap':_0x27dfe8,'Smtp':_0x3570c9};}exports[_0xd40c('0x3c')]=function(_0x5de1e2,_0x33a191){var _0x483606={'include':[{'model':db[_0xd40c('0x3d')],'as':_0xd40c('0x3a')},{'model':db[_0xd40c('0x3e')],'as':'Smtp'},{'model':db[_0xd40c('0x3f')],'as':_0xd40c('0x40')}]},_0x572add={},_0x3fe6f4={'count':0x0,'rows':[]};var _0x4065fd=_[_0xd40c('0x41')](db[_0xd40c('0x42')]['rawAttributes'],function(_0x8df080){return{'name':_0x8df080[_0xd40c('0x43')],'type':_0x8df080[_0xd40c('0x44')][_0xd40c('0x45')]};});_0x572add[_0xd40c('0x46')]=_[_0xd40c('0x41')](_0x4065fd,_0xd40c('0x25'));_0x572add[_0xd40c('0x47')]=_['keys'](_0x5de1e2[_0xd40c('0x47')]);_0x572add[_0xd40c('0x48')]=_[_0xd40c('0x49')](_0x572add[_0xd40c('0x46')],_0x572add[_0xd40c('0x47')]);_0x483606[_0xd40c('0x4a')]=_['intersection'](_0x572add[_0xd40c('0x46')],qs[_0xd40c('0x4b')](_0x5de1e2[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x483606[_0xd40c('0x4a')]=_0x483606[_0xd40c('0x4a')]['length']?_0x483606[_0xd40c('0x4a')]:_0x572add[_0xd40c('0x46')];if(!_0x5de1e2[_0xd40c('0x47')][_0xd40c('0x4c')](_0xd40c('0x4d'))){_0x483606[_0xd40c('0x4e')]=qs[_0xd40c('0x4e')](_0x5de1e2[_0xd40c('0x47')][_0xd40c('0x4e')]);_0x483606['offset']=qs['offset'](_0x5de1e2[_0xd40c('0x47')][_0xd40c('0x1d')]);}_0x483606['order']=qs[_0xd40c('0x4f')](_0x5de1e2['query']['sort']);_0x483606[_0xd40c('0x50')]=qs['filters'](_[_0xd40c('0x51')](_0x5de1e2[_0xd40c('0x47')],_0x572add[_0xd40c('0x48')]),_0x4065fd);if(_0x5de1e2[_0xd40c('0x47')]['filter']){_0x483606[_0xd40c('0x50')]=_[_0xd40c('0x52')](_0x483606[_0xd40c('0x50')],{'$or':_['map'](_0x4065fd,function(_0xd4abe3){if(_0xd4abe3[_0xd40c('0x44')]!==_0xd40c('0x53')){var _0x1a137f={};_0x1a137f[_0xd4abe3['name']]={'$like':'%'+_0x5de1e2[_0xd40c('0x47')]['filter']+'%'};return _0x1a137f;}})});}_0x483606=_['merge']({},_0x483606,_0x5de1e2[_0xd40c('0x54')]);var _0x5845d6={'where':_0x483606[_0xd40c('0x50')]};return db['MailAccount'][_0xd40c('0x1f')](_0x5845d6)[_0xd40c('0xe')](function(_0x316f7d){_0x3fe6f4[_0xd40c('0x1f')]=_0x316f7d;if(_0x5de1e2[_0xd40c('0x47')][_0xd40c('0x55')]){_0x483606[_0xd40c('0x56')]=[{'all':!![]}];}return db[_0xd40c('0x42')][_0xd40c('0x57')](_0x483606);})[_0xd40c('0xe')](function(_0xfff399){_0x3fe6f4[_0xd40c('0x58')]=_0xfff399;return _0x3fe6f4;})[_0xd40c('0xe')](respondWithFilteredResult(_0x33a191,_0x483606))[_0xd40c('0x19')](handleError(_0x33a191,null));};exports[_0xd40c('0x59')]=function(_0x41b6be,_0x2b04e0){var _0x4462b5={'raw':![],'where':{'id':_0x41b6be[_0xd40c('0x5a')]['id']},'include':[{'model':db[_0xd40c('0x3d')],'as':_0xd40c('0x3a')},{'model':db['MailServerOut'],'as':_0xd40c('0x3b')},{'model':db[_0xd40c('0x3f')],'as':_0xd40c('0x40')}]},_0x550838={};_0x550838[_0xd40c('0x46')]=_[_0xd40c('0x5b')](db[_0xd40c('0x42')][_0xd40c('0x5c')]);_0x550838[_0xd40c('0x47')]=_[_0xd40c('0x5b')](_0x41b6be[_0xd40c('0x47')]);_0x550838[_0xd40c('0x48')]=_[_0xd40c('0x49')](_0x550838[_0xd40c('0x46')],_0x550838['query']);_0x4462b5[_0xd40c('0x4a')]=_[_0xd40c('0x49')](_0x550838[_0xd40c('0x46')],qs[_0xd40c('0x4b')](_0x41b6be[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x4462b5[_0xd40c('0x4a')]=_0x4462b5[_0xd40c('0x4a')][_0xd40c('0x5d')]?_0x4462b5[_0xd40c('0x4a')]:_0x550838[_0xd40c('0x46')];if(_0x41b6be[_0xd40c('0x47')]['includeAll']){_0x4462b5['include']=[{'all':!![]}];}_0x4462b5=_[_0xd40c('0x52')]({},_0x4462b5,_0x41b6be[_0xd40c('0x54')]);return db[_0xd40c('0x42')][_0xd40c('0x5e')](_0x4462b5)[_0xd40c('0xe')](handleEntityNotFound(_0x2b04e0,null))[_0xd40c('0xe')](respondWithResult(_0x2b04e0,null))[_0xd40c('0x19')](handleError(_0x2b04e0,null));};exports['update']=function(_0xef2dfb,_0x1f9ed8){if(_0xef2dfb[_0xd40c('0x5f')]['id']){delete _0xef2dfb[_0xd40c('0x5f')]['id'];}var _0x18016a=_0xef2dfb['body'][_0xd40c('0x60')]==='custom'?null:_0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x60')];var _0x190cce=_0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x3a')]||{};var _0x2c8595=_0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x3b')]||{};if(_0x18016a){_0x190cce[_0xd40c('0x35')]=getImapHost(_0x18016a);_0x190cce[_0xd40c('0x36')]=0x3e1;_0x2c8595[_0xd40c('0x35')]=getSmtpHost(_0x18016a);_0x2c8595[_0xd40c('0x36')]=0x24b;_0x2c8595[_0xd40c('0x37')]=![];}if(_0x2c8595[_0xd40c('0x33')]){_0x2c8595[_0xd40c('0x37')]=![];}else{_0x2c8595[_0xd40c('0x34')]=null;}if(!_0x190cce['modernAuthentication'])_0x190cce[_0xd40c('0x34')]=null;_0xef2dfb[_0xd40c('0x5f')]['Imap']=_0x190cce;_0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x3b')]=_0x2c8595;return db[_0xd40c('0x42')]['find']({'where':{'id':_0xef2dfb[_0xd40c('0x5a')]['id']},'include':[{'model':db[_0xd40c('0x3d')],'as':'Imap'},{'model':db[_0xd40c('0x3e')],'as':'Smtp'},{'model':db[_0xd40c('0x3f')],'as':_0xd40c('0x40')}]})['then'](handleEntityNotFound(_0x1f9ed8,null))[_0xd40c('0xe')](function(_0x174025){if(!_0x174025)throw new Error(_0xd40c('0x61'));if(_0x174025['service'])delete _0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x3a')];return _0x174025;})[_0xd40c('0xe')](saveUpdates(_0xef2dfb[_0xd40c('0x5f')],null))[_0xd40c('0xe')](function(_0x1ec9a7){if(!_0xef2dfb[_0xd40c('0x5f')]['Imap'])return _0x1ec9a7;return db[_0xd40c('0x3d')]['update'](_0xef2dfb['body'][_0xd40c('0x3a')],{'where':{'MailAccountId':_0x1ec9a7['id']}})['then'](function(){return _0x1ec9a7;});})[_0xd40c('0xe')](function(_0xdb8039){if(!_0xef2dfb[_0xd40c('0x5f')]['Smtp'])return _0xdb8039;return db[_0xd40c('0x3e')][_0xd40c('0x62')](_0xef2dfb[_0xd40c('0x5f')][_0xd40c('0x3b')],{'where':{'MailAccountId':_0xdb8039['id']}})[_0xd40c('0xe')](function(){return _0xdb8039;});})[_0xd40c('0xe')](respondWithResult(_0x1f9ed8,null))[_0xd40c('0x19')](handleError(_0x1f9ed8,null));};exports['describe']=function(_0x1953da,_0x5c9365){return db[_0xd40c('0x42')][_0xd40c('0x63')]()[_0xd40c('0xe')](respondWithResult(_0x5c9365,null))[_0xd40c('0x19')](handleError(_0x5c9365,null));};exports[_0xd40c('0x64')]=function(_0x19e18a,_0xe925ae){if(_0x19e18a[_0xd40c('0x5f')]['id']){delete _0x19e18a[_0xd40c('0x5f')]['id'];}return db[_0xd40c('0x42')][_0xd40c('0x5e')]({'where':{'id':_0x19e18a[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0xe925ae,null))[_0xd40c('0xe')](function(_0x197e46){if(_0x197e46){_0x19e18a[_0xd40c('0x5f')][_0xd40c('0x65')]=_0x197e46['id'];return db[_0xd40c('0x66')][_0xd40c('0x67')](_0x19e18a[_0xd40c('0x5f')]);}})[_0xd40c('0xe')](respondWithResult(_0xe925ae,null))[_0xd40c('0x19')](handleError(_0xe925ae,null));};exports[_0xd40c('0x68')]=function(_0xc88002,_0x4abcd6){var _0x5aa78b={'raw':![],'where':{}};var _0x43dc47={};var _0x89ccda={'count':0x0,'rows':[]};return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0xc88002[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x4abcd6,null))[_0xd40c('0xe')](function(_0x5e9422){if(_0x5e9422){_0x43dc47[_0xd40c('0x46')]=_[_0xd40c('0x5b')](db[_0xd40c('0x66')]['rawAttributes']);_0x43dc47[_0xd40c('0x47')]=_[_0xd40c('0x5b')](_0xc88002[_0xd40c('0x47')]);_0x43dc47['filters']=_[_0xd40c('0x49')](_0x43dc47[_0xd40c('0x46')],_0x43dc47[_0xd40c('0x47')]);_0x5aa78b[_0xd40c('0x4a')]=_['intersection'](_0x43dc47[_0xd40c('0x46')],qs[_0xd40c('0x4b')](_0xc88002[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x5aa78b['attributes']=_0x5aa78b[_0xd40c('0x4a')][_0xd40c('0x5d')]?_0x5aa78b[_0xd40c('0x4a')]:_0x43dc47[_0xd40c('0x46')];if(!_0xc88002[_0xd40c('0x47')][_0xd40c('0x4c')]('nolimit')){_0x5aa78b[_0xd40c('0x4e')]=qs['limit'](_0xc88002[_0xd40c('0x47')][_0xd40c('0x4e')]);_0x5aa78b[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0xc88002[_0xd40c('0x47')][_0xd40c('0x1d')]);}_0x5aa78b['order']=qs[_0xd40c('0x4f')](_0xc88002[_0xd40c('0x47')][_0xd40c('0x4f')]);_0x5aa78b[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_[_0xd40c('0x51')](_0xc88002[_0xd40c('0x47')],_0x43dc47[_0xd40c('0x48')]));_0x5aa78b['where'][_0xd40c('0x65')]=_0x5e9422['id'];if(_0xc88002[_0xd40c('0x47')]['filter']){_0x5aa78b[_0xd40c('0x50')]=_[_0xd40c('0x52')](_0x5aa78b[_0xd40c('0x50')],{'$or':_[_0xd40c('0x41')](_0x5aa78b[_0xd40c('0x4a')],function(_0x289403){var _0x117c6f={};_0x117c6f[_0x289403]={'$like':'%'+_0xc88002[_0xd40c('0x47')][_0xd40c('0x6a')]+'%'};return _0x117c6f;})});}_0x5aa78b=_[_0xd40c('0x52')]({},_0x5aa78b,_0xc88002[_0xd40c('0x54')]);return db[_0xd40c('0x66')][_0xd40c('0x1f')]({'where':_0x5aa78b[_0xd40c('0x50')]})[_0xd40c('0xe')](function(_0x4aca13){_0x89ccda['count']=_0x4aca13;if(_0xc88002['query']['includeAll']){_0x5aa78b[_0xd40c('0x56')]=[{'all':!![]}];}return db[_0xd40c('0x66')][_0xd40c('0x57')](_0x5aa78b);})[_0xd40c('0xe')](function(_0x5e780b){_0x89ccda[_0xd40c('0x58')]=_0x5e780b;return _0x89ccda;});}})['then'](respondWithFilteredResult(_0x4abcd6,_0x5aa78b))['catch'](handleError(_0x4abcd6,null));};exports[_0xd40c('0x6b')]=function(_0x358e15,_0x2f8023){return db[_0xd40c('0x42')]['find']({'where':{'id':_0x358e15[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x2f8023,null))[_0xd40c('0xe')](function(_0x39e073){if(_0x39e073){return _0x39e073['removeDispositions'](_0x358e15[_0xd40c('0x47')][_0xd40c('0x6c')]);}})[_0xd40c('0xe')](respondWithStatusCode(_0x2f8023,null))[_0xd40c('0x19')](handleError(_0x2f8023,null));};exports[_0xd40c('0x6d')]=function(_0x1741ff,_0x3a10b4){if(_0x1741ff[_0xd40c('0x5f')]['id']){delete _0x1741ff[_0xd40c('0x5f')]['id'];}return db[_0xd40c('0x42')]['find']({'where':{'id':_0x1741ff[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x3a10b4,null))[_0xd40c('0xe')](function(_0x3824f7){if(_0x3824f7){_0x1741ff[_0xd40c('0x5f')][_0xd40c('0x65')]=_0x3824f7['id'];return db['CannedAnswer'][_0xd40c('0x67')](_0x1741ff[_0xd40c('0x5f')]);}})[_0xd40c('0xe')](respondWithResult(_0x3a10b4,null))[_0xd40c('0x19')](handleError(_0x3a10b4,null));};exports[_0xd40c('0x6e')]=function(_0x3db287,_0x31c327){var _0x3b7fcc={'raw':![],'where':{}};var _0x4c43b2={};var _0x3c08ab={'count':0x0,'rows':[]};return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x3db287[_0xd40c('0x5a')]['id']}})['then'](handleEntityNotFound(_0x31c327,null))['then'](function(_0xfedca){if(_0xfedca){_0x4c43b2[_0xd40c('0x46')]=_[_0xd40c('0x5b')](db[_0xd40c('0x6f')][_0xd40c('0x5c')]);_0x4c43b2['query']=_[_0xd40c('0x5b')](_0x3db287[_0xd40c('0x47')]);_0x4c43b2['filters']=_[_0xd40c('0x49')](_0x4c43b2['model'],_0x4c43b2[_0xd40c('0x47')]);_0x3b7fcc['attributes']=_[_0xd40c('0x49')](_0x4c43b2['model'],qs['fields'](_0x3db287[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x3b7fcc['attributes']=_0x3b7fcc[_0xd40c('0x4a')][_0xd40c('0x5d')]?_0x3b7fcc[_0xd40c('0x4a')]:_0x4c43b2[_0xd40c('0x46')];if(!_0x3db287[_0xd40c('0x47')][_0xd40c('0x4c')](_0xd40c('0x4d'))){_0x3b7fcc[_0xd40c('0x4e')]=qs[_0xd40c('0x4e')](_0x3db287[_0xd40c('0x47')][_0xd40c('0x4e')]);_0x3b7fcc[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0x3db287['query'][_0xd40c('0x1d')]);}_0x3b7fcc['order']=qs[_0xd40c('0x4f')](_0x3db287[_0xd40c('0x47')][_0xd40c('0x4f')]);_0x3b7fcc[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_[_0xd40c('0x51')](_0x3db287[_0xd40c('0x47')],_0x4c43b2[_0xd40c('0x48')]));_0x3b7fcc[_0xd40c('0x50')]['MailAccountId']=_0xfedca['id'];if(_0x3db287['query'][_0xd40c('0x6a')]){_0x3b7fcc['where']=_[_0xd40c('0x52')](_0x3b7fcc['where'],{'$or':_['map'](_0x3b7fcc[_0xd40c('0x4a')],function(_0x4a1300){var _0x2752b5={};_0x2752b5[_0x4a1300]={'$like':'%'+_0x3db287[_0xd40c('0x47')][_0xd40c('0x6a')]+'%'};return _0x2752b5;})});}_0x3b7fcc=_[_0xd40c('0x52')]({},_0x3b7fcc,_0x3db287[_0xd40c('0x54')]);return db['CannedAnswer'][_0xd40c('0x1f')]({'where':_0x3b7fcc[_0xd40c('0x50')]})[_0xd40c('0xe')](function(_0x2660eb){_0x3c08ab[_0xd40c('0x1f')]=_0x2660eb;if(_0x3db287[_0xd40c('0x47')][_0xd40c('0x55')]){_0x3b7fcc[_0xd40c('0x56')]=[{'all':!![]}];}return db['CannedAnswer'][_0xd40c('0x57')](_0x3b7fcc);})['then'](function(_0x2059fd){_0x3c08ab['rows']=_0x2059fd;return _0x3c08ab;});}})['then'](respondWithFilteredResult(_0x31c327,_0x3b7fcc))['catch'](handleError(_0x31c327,null));};exports[_0xd40c('0x70')]=function(_0x10275c,_0x1bc76d){return db[_0xd40c('0x42')][_0xd40c('0x5e')]({'where':{'id':_0x10275c['params']['id']}})['then'](handleEntityNotFound(_0x1bc76d,null))[_0xd40c('0xe')](function(_0x2110e4){if(_0x2110e4){return _0x2110e4[_0xd40c('0x70')](_0x10275c['query']['ids']);}})['then'](respondWithStatusCode(_0x1bc76d,null))['catch'](handleError(_0x1bc76d,null));};exports['create']=function(_0x4a873b,_0x531c12){var _0x2a99ed={'name':_0x4a873b[_0xd40c('0x5f')][_0xd40c('0x25')],'key':_0x4a873b[_0xd40c('0x5f')][_0xd40c('0x45')],'provider':_0x4a873b['body']['provider']===_0xd40c('0x71')?null:_0x4a873b[_0xd40c('0x5f')][_0xd40c('0x60')],'email':_0x4a873b[_0xd40c('0x5f')][_0xd40c('0x72')],'ListId':_0x4a873b['body'][_0xd40c('0x73')],'active':!_[_0xd40c('0x74')](_0x4a873b[_0xd40c('0x5f')]['active'])?_0x4a873b['body'][_0xd40c('0x75')]:!![],'description':_0x4a873b['body'][_0xd40c('0x76')]||null};var _0x2c7009=getAuthenticationOptions(_0x2a99ed['provider'],_0x4a873b[_0xd40c('0x5f')]);_0x2a99ed[_0xd40c('0x3a')]=_0x2c7009[_0xd40c('0x3a')];_0x2a99ed[_0xd40c('0x3b')]=_0x2c7009[_0xd40c('0x3b')];return db['MailAccount'][_0xd40c('0x67')](_0x2a99ed,{'include':[{'model':db['MailServerOut'],'as':_0xd40c('0x3b')},{'model':db[_0xd40c('0x3d')],'as':'Imap'}]})[_0xd40c('0xe')](function(_0x58bb0a){var _0x213723=_0x4a873b[_0xd40c('0x30')]['get']({'plain':!![]});if(!_0x213723)throw new Error(_0xd40c('0x77'));if(_0x213723[_0xd40c('0x78')]===_0xd40c('0x30')){var _0x41df87=_0x58bb0a[_0xd40c('0x22')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xd40c('0x23'),'userProfileId':_0x213723['userProfileId']},'raw':!![]})[_0xd40c('0xe')](function(_0x1c9389){if(_0x1c9389&&_0x1c9389[_0xd40c('0x79')]===0x0){return db[_0xd40c('0x24')][_0xd40c('0x67')]({'name':_0x41df87[_0xd40c('0x25')],'resourceId':_0x41df87['id'],'type':_0x1c9389['name'],'sectionId':_0x1c9389['id']},{})[_0xd40c('0xe')](function(){return _0x58bb0a;});}else{return _0x58bb0a;}})[_0xd40c('0x19')](function(_0x5ed8e3){logger[_0xd40c('0x15')](_0xd40c('0x7a'),_0x5ed8e3);throw _0x5ed8e3;});}return _0x58bb0a;})[_0xd40c('0xe')](respondWithResult(_0x531c12,0xc9))[_0xd40c('0x19')](handleError(_0x531c12,null));};exports[_0xd40c('0x7b')]=function(_0x37dafc,_0xa5d3c2){return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x37dafc['params']['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0xa5d3c2,null))['then'](function(_0x59f944){if(_0x59f944){return _0x59f944['getImap']();}return null;})[_0xd40c('0xe')](respondWithResult(_0xa5d3c2,null))[_0xd40c('0x19')](handleError(_0xa5d3c2,null));};exports[_0xd40c('0x7c')]=function(_0x1b55bb,_0x5bbb18){if(_0x1b55bb[_0xd40c('0x5f')]['id']){delete _0x1b55bb[_0xd40c('0x5f')]['id'];}return db[_0xd40c('0x42')]['find']({'where':{'id':_0x1b55bb[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x5bbb18,null))[_0xd40c('0xe')](function(_0x3ab772){if(_0x3ab772){_0x1b55bb[_0xd40c('0x5f')]['MailAccountId']=_0x3ab772['id'];return db['MailServerIn'][_0xd40c('0x67')](_0x1b55bb[_0xd40c('0x5f')]);}})[_0xd40c('0xe')](respondWithResult(_0x5bbb18,null))[_0xd40c('0x19')](handleError(_0x5bbb18,null));};exports['removeImap']=function(_0x1ea1f8,_0x59bb42){return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x1ea1f8[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x59bb42,null))[_0xd40c('0xe')](function(_0x1d1d08){if(_0x1d1d08){return _0x1d1d08[_0xd40c('0x7d')](null);}return null;})[_0xd40c('0xe')](respondWithStatusCode(_0x59bb42,null))[_0xd40c('0x19')](handleError(_0x59bb42,null));};exports['getSmtp']=function(_0xc6abd3,_0x2042c6){return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0xc6abd3[_0xd40c('0x5a')]['id']}})['then'](handleEntityNotFound(_0x2042c6,null))[_0xd40c('0xe')](function(_0x544402){if(_0x544402){return _0x544402[_0xd40c('0x7e')]();}return null;})[_0xd40c('0xe')](respondWithResult(_0x2042c6,null))['catch'](handleError(_0x2042c6,null));};exports[_0xd40c('0x7f')]=function(_0x883c60,_0x2e7288){if(_0x883c60['body']['id']){delete _0x883c60[_0xd40c('0x5f')]['id'];}return db[_0xd40c('0x42')][_0xd40c('0x5e')]({'where':{'id':_0x883c60[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x2e7288,null))['then'](function(_0x52810d){if(_0x52810d){_0x883c60[_0xd40c('0x5f')][_0xd40c('0x65')]=_0x52810d['id'];return db[_0xd40c('0x3e')][_0xd40c('0x67')](_0x883c60[_0xd40c('0x5f')]);}})[_0xd40c('0xe')](respondWithResult(_0x2e7288,null))[_0xd40c('0x19')](handleError(_0x2e7288,null));};exports[_0xd40c('0x80')]=function(_0x15ad05,_0x37c351){return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x15ad05['params']['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x37c351,null))[_0xd40c('0xe')](function(_0x5e43cb){if(_0x5e43cb){return _0x5e43cb['setSmtp'](null);}return null;})[_0xd40c('0xe')](respondWithStatusCode(_0x37c351,null))['catch'](handleError(_0x37c351,null));};exports[_0xd40c('0x81')]=function(_0x27cec8,_0xf184e4){return db[_0xd40c('0x82')][_0xd40c('0x5e')]({'where':{'id':_0x27cec8[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0xf184e4,null))[_0xd40c('0xe')](function(_0x445528){if(_0x445528){return _0x445528['addInteraction'](_0x27cec8['body'][_0xd40c('0x6c')],_[_0xd40c('0x83')](_0x27cec8[_0xd40c('0x5f')],[_0xd40c('0x6c'),'id'])||{});}})[_0xd40c('0xe')](respondWithResult(_0xf184e4,null))[_0xd40c('0x19')](handleError(_0xf184e4,null));};exports[_0xd40c('0x84')]=function(_0x2c8a49,_0x55b3f0){var _0x35d8dc={'raw':![],'where':{}};var _0x5100d7={};var _0x2f5f3d={'count':0x0,'rows':[]};return db[_0xd40c('0x42')]['findOne']({'where':{'id':_0x2c8a49[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x55b3f0,null))[_0xd40c('0xe')](function(_0x43e99a){if(_0x43e99a){_0x5100d7['model']=_['keys'](db[_0xd40c('0x82')][_0xd40c('0x5c')]);_0x5100d7[_0xd40c('0x47')]=_[_0xd40c('0x5b')](_0x2c8a49['query']);_0x5100d7[_0xd40c('0x48')]=_[_0xd40c('0x49')](_0x5100d7['model'],_0x5100d7[_0xd40c('0x47')]);_0x35d8dc[_0xd40c('0x4a')]=_['intersection'](_0x5100d7[_0xd40c('0x46')],qs[_0xd40c('0x4b')](_0x2c8a49[_0xd40c('0x47')]['fields']));_0x35d8dc[_0xd40c('0x4a')]=_0x35d8dc['attributes'][_0xd40c('0x5d')]?_0x35d8dc['attributes']:_0x5100d7[_0xd40c('0x46')];if(!_0x2c8a49[_0xd40c('0x47')]['hasOwnProperty'](_0xd40c('0x4d'))){_0x35d8dc[_0xd40c('0x4e')]=qs[_0xd40c('0x4e')](_0x2c8a49[_0xd40c('0x47')][_0xd40c('0x4e')]);_0x35d8dc[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0x2c8a49[_0xd40c('0x47')][_0xd40c('0x1d')]);}_0x35d8dc[_0xd40c('0x85')]=qs['sort'](_0x2c8a49[_0xd40c('0x47')]['sort']);_0x35d8dc[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_['pick'](_0x2c8a49[_0xd40c('0x47')],_0x5100d7['filters']));_0x35d8dc['where'][_0xd40c('0x65')]=_0x43e99a['id'];if(_0x2c8a49[_0xd40c('0x47')][_0xd40c('0x6a')]){_0x35d8dc[_0xd40c('0x50')]=_['merge'](_0x35d8dc[_0xd40c('0x50')],{'$or':_[_0xd40c('0x41')](_0x35d8dc['attributes'],function(_0x70e5da){var _0x26db8d={};_0x26db8d[_0x70e5da]={'$like':'%'+_0x2c8a49[_0xd40c('0x47')][_0xd40c('0x6a')]+'%'};return _0x26db8d;})});}_0x35d8dc=_[_0xd40c('0x52')]({},_0x35d8dc,_0x2c8a49[_0xd40c('0x54')]);return db[_0xd40c('0x82')][_0xd40c('0x1f')]({'where':_0x35d8dc[_0xd40c('0x50')]})['then'](function(_0x47744f){_0x2f5f3d['count']=_0x47744f;if(_0x2c8a49['query']['includeAll']){_0x35d8dc[_0xd40c('0x56')]=[{'model':db[_0xd40c('0x86')],'as':_0xd40c('0x87'),'required':![]},{'model':db[_0xd40c('0x88')],'as':'Owner','attributes':[_0xd40c('0x25'),'fullname','internal'],'required':![]},{'model':db[_0xd40c('0x89')],'as':_0xd40c('0x8a'),'attributes':['id',_0xd40c('0x25'),'color'],'where':_0x2c8a49[_0xd40c('0x47')][_0xd40c('0x8b')]?{'id':_0x2c8a49['query']['tag']}:undefined,'required':_0x2c8a49['query']['tag']?!![]:![]}];}return db[_0xd40c('0x82')]['findAll'](_0x35d8dc);})[_0xd40c('0xe')](function(_0x58d525){_0x2f5f3d['rows']=_0x58d525;return _0x2f5f3d;});}})[_0xd40c('0xe')](respondWithFilteredResult(_0x55b3f0,_0x35d8dc))[_0xd40c('0x19')](handleError(_0x55b3f0,null));};exports[_0xd40c('0x8c')]=function addApplications(_0x3cdccb,_0x49fc75){var _0x189188=_0x3cdccb[_0xd40c('0x5a')]['id'];var _0x7bda59=_0x3cdccb[_0xd40c('0x5f')];var _0x176d6a=0xc8;var _0x4407f0=null;return db[_0xd40c('0x8d')][_0xd40c('0x8e')]({'isolationLevel':db[_0xd40c('0x8d')][_0xd40c('0x8f')]['ISOLATION_LEVELS'][_0xd40c('0x90')]},function(_0x1bf106){return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x189188},'transaction':_0x1bf106})['then'](function(_0x19a974){if(_0x19a974){return db['MailApplication'][_0xd40c('0x21')]({'where':{'MailAccountId':_0x189188},'transaction':_0x1bf106})[_0xd40c('0xe')](function(){var _0xb27d9=_[_0xd40c('0x41')](_0x7bda59,function(_0x5e8519){_0x5e8519['MailAccountId']=_0x189188;return _0x5e8519;});return db[_0xd40c('0x91')][_0xd40c('0x92')](_0xb27d9,{'transaction':_0x1bf106});});}else{_0x176d6a=0x194;_0x4407f0=[];}});})[_0xd40c('0xe')](function(){if(_0x176d6a!==0x194){return db['MailApplication'][_0xd40c('0x93')]({'where':{'MailAccountId':_0x189188},'order':_0xd40c('0x94')})['then'](function(_0x21971c){_0x4407f0=_0x21971c;});}})['catch'](function(_0xf89fa9){_0x176d6a=0x1f4;logger[_0xd40c('0x15')](_0xf89fa9[_0xd40c('0x95')]);if(_0xf89fa9[_0xd40c('0x25')]){delete _0xf89fa9[_0xd40c('0x25')];}_0x4407f0=_0xf89fa9;})[_0xd40c('0x96')](function(){if(_0x4407f0===null){_0x49fc75[_0xd40c('0x1a')](_0x176d6a);}else{if(_0x176d6a===0x1f4){_0x49fc75[_0xd40c('0x1b')](_0x176d6a)[_0xd40c('0x26')](_0x4407f0);}else{_0x49fc75[_0xd40c('0x1b')](_0x176d6a)[_0xd40c('0x1c')](_0x4407f0);}}});};exports[_0xd40c('0x97')]=function(_0x437b79,_0x1f14e3){var _0x34fb00={};var _0x2dbe24={};var _0x58eac8;var _0x365903;return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x437b79['params']['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x1f14e3,null))[_0xd40c('0xe')](function(_0x469014){if(_0x469014){_0x58eac8=_0x469014;_0x2dbe24[_0xd40c('0x46')]=_[_0xd40c('0x5b')](db[_0xd40c('0x91')]['rawAttributes']);_0x2dbe24[_0xd40c('0x47')]=_[_0xd40c('0x5b')](_0x437b79['query']);_0x2dbe24['filters']=_[_0xd40c('0x49')](_0x2dbe24[_0xd40c('0x46')],_0x2dbe24[_0xd40c('0x47')]);_0x34fb00[_0xd40c('0x4a')]=_['intersection'](_0x2dbe24[_0xd40c('0x46')],qs['fields'](_0x437b79[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x34fb00[_0xd40c('0x4a')]=_0x34fb00['attributes'][_0xd40c('0x5d')]?_0x34fb00[_0xd40c('0x4a')]:_0x2dbe24[_0xd40c('0x46')];_0x34fb00['order']=qs[_0xd40c('0x4f')](_0x437b79[_0xd40c('0x47')][_0xd40c('0x4f')]);_0x34fb00[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_['pick'](_0x437b79[_0xd40c('0x47')],_0x2dbe24[_0xd40c('0x48')]));if(_0x437b79['query']['filter']){_0x34fb00['where']=_[_0xd40c('0x52')](_0x34fb00['where'],{'$or':_[_0xd40c('0x41')](_0x34fb00[_0xd40c('0x4a')],function(_0x4b64d2){var _0x5b1f9a={};_0x5b1f9a[_0x4b64d2]={'$like':'%'+_0x437b79[_0xd40c('0x47')][_0xd40c('0x6a')]+'%'};return _0x5b1f9a;})});}_0x34fb00=_[_0xd40c('0x52')]({},_0x34fb00,_0x437b79[_0xd40c('0x54')]);return _0x58eac8['getApplications'](_0x34fb00);}})['then'](function(_0x23bb59){if(_0x23bb59){_0x365903=_0x23bb59['length'];if(!_0x437b79['query'][_0xd40c('0x4c')](_0xd40c('0x4d'))){_0x34fb00['limit']=qs[_0xd40c('0x4e')](_0x437b79[_0xd40c('0x47')]['limit']);_0x34fb00[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0x437b79[_0xd40c('0x47')][_0xd40c('0x1d')]);}return _0x58eac8[_0xd40c('0x97')](_0x34fb00);}})['then'](function(_0x24a627){if(_0x24a627){return _0x24a627?{'count':_0x365903,'rows':_0x24a627}:null;}})[_0xd40c('0xe')](respondWithResult(_0x1f14e3,null))['catch'](handleError(_0x1f14e3,null));};exports[_0xd40c('0x98')]=function(_0x25cab8,_0x20d296){var _0x3a3543={'raw':!![],'where':{}};var _0x370632={};var _0x55d34b={'count':0x0,'rows':[]};return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x25cab8[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x20d296,null))[_0xd40c('0xe')](function(_0x2c14bb){if(_0x2c14bb){_0x370632[_0xd40c('0x46')]=_['keys'](db['MailMessage'][_0xd40c('0x5c')]);_0x370632['query']=_[_0xd40c('0x5b')](_0x25cab8[_0xd40c('0x47')]);_0x370632['filters']=_['intersection'](_0x370632[_0xd40c('0x46')],_0x370632[_0xd40c('0x47')]);_0x3a3543['attributes']=_['intersection'](_0x370632[_0xd40c('0x46')],qs[_0xd40c('0x4b')](_0x25cab8[_0xd40c('0x47')][_0xd40c('0x4b')]));_0x3a3543[_0xd40c('0x4a')]=_0x3a3543[_0xd40c('0x4a')][_0xd40c('0x5d')]?_0x3a3543[_0xd40c('0x4a')]:_0x370632[_0xd40c('0x46')];if(!_0x25cab8[_0xd40c('0x47')]['hasOwnProperty'](_0xd40c('0x4d'))){_0x3a3543[_0xd40c('0x4e')]=qs[_0xd40c('0x4e')](_0x25cab8['query'][_0xd40c('0x4e')]);_0x3a3543[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0x25cab8['query'][_0xd40c('0x1d')]);}_0x3a3543[_0xd40c('0x85')]=qs[_0xd40c('0x4f')](_0x25cab8[_0xd40c('0x47')][_0xd40c('0x4f')]);_0x3a3543[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_['pick'](_0x25cab8['query'],_0x370632['filters']));_0x3a3543[_0xd40c('0x50')][_0xd40c('0x65')]=_0x2c14bb['id'];if(_0x25cab8[_0xd40c('0x47')][_0xd40c('0x6a')]){_0x3a3543['where']=_[_0xd40c('0x52')](_0x3a3543[_0xd40c('0x50')],{'$or':_[_0xd40c('0x41')](_0x3a3543[_0xd40c('0x4a')],function(_0x36005f){var _0x2f40cc={};_0x2f40cc[_0x36005f]={'$like':'%'+_0x25cab8[_0xd40c('0x47')][_0xd40c('0x6a')]+'%'};return _0x2f40cc;})});}if(_0x25cab8[_0xd40c('0x47')]['$gte']){var _0x3bf5ab=_0x25cab8['query'][_0xd40c('0x99')][_0xd40c('0x9a')](',');var _0x5d1da0={};_0x5d1da0[_0x3bf5ab[0x0]]={'$gte':moment(_0x3bf5ab[0x1])[_0xd40c('0x9b')](_0xd40c('0x9c'))};_0x3a3543[_0xd40c('0x50')]=_[_0xd40c('0x52')](_0x3a3543[_0xd40c('0x50')],_0x5d1da0);}_0x3a3543=_['merge']({},_0x3a3543,_0x25cab8['options']);return db[_0xd40c('0x9d')][_0xd40c('0x1f')]({'where':_0x3a3543['where']})[_0xd40c('0xe')](function(_0x46c40d){_0x55d34b['count']=_0x46c40d;if(_0x25cab8[_0xd40c('0x47')][_0xd40c('0x55')]){_0x3a3543['include']=[{'all':!![]}];}return db[_0xd40c('0x9d')][_0xd40c('0x57')](_0x3a3543);})[_0xd40c('0xe')](function(_0x39dc77){if(_0x25cab8[_0xd40c('0x47')][_0xd40c('0x9e')]==='true'){for(var _0x27d131=0x0;_0x27d131<_0x39dc77[_0xd40c('0x5d')];_0x27d131++){_0x39dc77[_0x27d131][_0xd40c('0x5f')]=juice(_0x39dc77[_0x27d131][_0xd40c('0x5f')]);}}_0x55d34b[_0xd40c('0x58')]=_0x39dc77;return _0x55d34b;});}})[_0xd40c('0xe')](respondWithFilteredResult(_0x20d296,_0x3a3543))['catch'](handleError(_0x20d296,null));};exports[_0xd40c('0x26')]=function(_0x513d17,_0x26d331){var _0x2fd1a7,_0x2be64c={},_0x41f2a8;if(_0x513d17[_0xd40c('0x5f')]['to']){_0x41f2a8=_0x513d17['body']['to'][_0xd40c('0x9a')](',')[0x0];}return db[_0xd40c('0x42')]['find']({'where':{'id':_0x513d17[_0xd40c('0x5a')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0xd40c('0x86')],'as':'Contacts','where':{'email':_0x41f2a8},'limit':0x1,'order':[['updatedAt',_0xd40c('0x9f')]]}]},{'model':db[_0xd40c('0x3e')],'as':_0xd40c('0x3b'),'raw':!![],'include':[{'model':db[_0xd40c('0xa0')],'as':_0xd40c('0xa0'),'raw':!![]}]}]})[_0xd40c('0xe')](handleEntityNotFound(_0x26d331,null))['then'](function(_0x585a90){if(!_0x585a90)return;_0x2fd1a7=_0x585a90;if(!_0x585a90[_0xd40c('0x3b')])throw new Error(_0xd40c('0xa1'));if(_[_0xd40c('0x74')](_0x513d17[_0xd40c('0x5f')]['from'])){_0x513d17[_0xd40c('0x5f')][_0xd40c('0xa2')]=util[_0xd40c('0x9b')](_0xd40c('0xa3'),_0x585a90['name'],_0x585a90[_0xd40c('0x72')]||_0x585a90['Smtp']['user']);}if(_0x513d17[_0xd40c('0x5f')][_0xd40c('0xa4')]&&_0x513d17[_0xd40c('0x5f')]['attachments'][_0xd40c('0x5d')]){for(var _0xe5cab9=0x0;_0xe5cab9<_0x513d17[_0xd40c('0x5f')][_0xd40c('0xa4')][_0xd40c('0x5d')];_0xe5cab9+=0x1){_0x513d17['body'][_0xd40c('0xa4')][_0xe5cab9]={'filename':_0x513d17[_0xd40c('0x5f')][_0xd40c('0xa4')][_0xe5cab9]['name'],'path':path[_0xd40c('0xa5')](config['root'],_0xd40c('0xa6'),_0x513d17['body'][_0xd40c('0xa4')][_0xe5cab9]['basename'])};}}var _0x322103=_0x585a90['getSmtpOptions']();return respondWithRpcPromise('SendMail',_0xd40c('0xa7'),{'account':_0x322103,'message':_0x513d17[_0xd40c('0x5f')]});})[_0xd40c('0xe')](function(_0x2c7e38){if(!_0x2c7e38)return;_0x2be64c=_0x2c7e38;if(!_0x2fd1a7['List'])throw new Error(_0xd40c('0xa8'));if(_0x2fd1a7[_0xd40c('0xa9')][_0xd40c('0xaa')][_0xd40c('0x5d')])return _0x2fd1a7[_0xd40c('0xa9')][_0xd40c('0xaa')][0x0];return db['CmContact']['create'](_[_0xd40c('0xab')](_0x513d17[_0xd40c('0x5f')],{'firstName':_0x513d17['body']['to'],'email':_0x513d17[_0xd40c('0x5f')]['to'],'phone':_0x513d17['body']['to'],'ListId':_0x2fd1a7[_0xd40c('0x73')]}));})[_0xd40c('0xe')](function(_0x128b08){if(!_0x128b08)return;var _0xbe3196={'UserId':_0x513d17[_0xd40c('0x30')]['id'],'ContactId':_0x128b08['id'],'MailAccountId':_0x2fd1a7['id'],'inReplyTo':_0x2be64c[_0xd40c('0xac')],'to':_0x513d17['body'][_0xd40c('0xa2')],'cc':_0x513d17[_0xd40c('0x5f')]['cc'],'subject':_0x513d17[_0xd40c('0x5f')][_0xd40c('0xad')],'attach':_0x513d17[_0xd40c('0x5f')][_0xd40c('0xae')],'firstMsgDirection':_0xd40c('0xaf'),'lastMsgAt':moment()[_0xd40c('0x9b')](_0xd40c('0x9c')),'lastMsgDirection':_0xd40c('0xaf'),'Messages':[_[_0xd40c('0x52')](_0x513d17[_0xd40c('0x5f')],{'messageId':_0x2be64c['messageId'],'sentAt':moment()[_0xd40c('0x9b')](_0xd40c('0x9c')),'read':!![],'MailAccountId':_0x2fd1a7['id'],'UserId':_0x513d17[_0xd40c('0x30')]['id'],'ContactId':_0x128b08['id']})]};if(_0x513d17[_0xd40c('0x5f')][_0xd40c('0xb0')]){_0xbe3196=_['merge'](_0xbe3196,_0x513d17[_0xd40c('0x5f')][_0xd40c('0xb0')]);}return db[_0xd40c('0x82')]['create'](_0xbe3196,{'include':[{'model':db[_0xd40c('0x9d')],'as':'Messages'}]});})[_0xd40c('0xe')](respondWithResult(_0x26d331,null))[_0xd40c('0x19')](handleError(_0x26d331,null));};exports[_0xd40c('0xb1')]=function(_0x410fef,_0x6e1dde){return db['MailAccount']['find']({'where':{'id':_0x410fef[_0xd40c('0x5a')]['id']},'include':[{'model':db['MailServerOut'],'as':_0xd40c('0x3b'),'raw':!![],'include':[{'model':db['CloudProvider'],'as':'CloudProvider','raw':!![]}]}]})[_0xd40c('0xe')](handleEntityNotFound(_0x6e1dde,null))[_0xd40c('0xe')](function(_0x46abbb){if(!_0x46abbb[_0xd40c('0x3b')])return;var _0x58c10e=_0x46abbb['getSmtpOptions']();return respondWithRpcPromise(_0xd40c('0xb2'),_0xd40c('0xb1'),{'account':_0x58c10e});})[_0xd40c('0xe')](respondWithResult(_0x6e1dde,null))[_0xd40c('0x19')](handleError(_0x6e1dde,null));};exports[_0xd40c('0x21')]=function(_0x44210a,_0x39f746){return db['MailAccount']['find']({'where':{'id':_0x44210a[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x39f746,null))[_0xd40c('0xe')](function(_0x1fc7ce){if(_0x1fc7ce&&_0x1fc7ce[_0xd40c('0xb3')]){throw new db['Sequelize'][(_0xd40c('0xb4'))](_0xd40c('0xb5'));}return _0x1fc7ce;})['then'](removeEntity(_0x39f746,null))[_0xd40c('0x19')](handleError(_0x39f746,null));};exports[_0xd40c('0xb6')]=function(_0x42445d,_0xc8b532){return db[_0xd40c('0x42')][_0xd40c('0x5e')]({'where':{'id':_0x42445d[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0xc8b532,null))[_0xd40c('0xe')](function(_0x2c3ec4){if(_0x2c3ec4){return _0x2c3ec4['addAgents'](_0x42445d['body'][_0xd40c('0x6c')],_[_0xd40c('0x83')](_0x42445d[_0xd40c('0x5f')],['ids','id'])||{})[_0xd40c('0xb7')](function(_0x5100d9){for(var _0x103818=0x0;_0x103818<_0x42445d[_0xd40c('0x5f')][_0xd40c('0x6c')]['length'];_0x103818+=0x1){socket[_0xd40c('0xb8')](_0xd40c('0xb9'),{'UserId':Number(_0x42445d[_0xd40c('0x5f')]['ids'][_0x103818]),'MailAccountId':Number(_0x42445d[_0xd40c('0x5a')]['id'])});}return _0x5100d9;});}})[_0xd40c('0xe')](respondWithResult(_0xc8b532,null))[_0xd40c('0x19')](handleError(_0xc8b532,null));};exports['removeAgents']=function(_0x88c2c2,_0x33bf95){return db[_0xd40c('0x42')]['find']({'where':{'id':_0x88c2c2[_0xd40c('0x5a')]['id']}})[_0xd40c('0xe')](handleEntityNotFound(_0x33bf95,null))['then'](function(_0x1ecb77){if(_0x1ecb77){return _0x1ecb77['removeAgents'](_0x88c2c2[_0xd40c('0x47')][_0xd40c('0x6c')])[_0xd40c('0xe')](function(){if(_[_0xd40c('0xba')](_0x88c2c2[_0xd40c('0x47')][_0xd40c('0x6c')])){for(var _0x243aa5=0x0;_0x243aa5<_0x88c2c2[_0xd40c('0x47')]['ids'][_0xd40c('0x5d')];_0x243aa5+=0x1){socket['emit'](_0xd40c('0xbb'),{'UserId':Number(_0x88c2c2[_0xd40c('0x47')][_0xd40c('0x6c')][_0x243aa5]),'MailAccountId':Number(_0x88c2c2[_0xd40c('0x5a')]['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x88c2c2[_0xd40c('0x47')][_0xd40c('0x6c')]),'MailAccountId':Number(_0x88c2c2['params']['id'])});}});}})['then'](respondWithStatusCode(_0x33bf95,null))[_0xd40c('0x19')](handleError(_0x33bf95,null));};exports['getAgents']=function(_0x32eb16,_0x20360e){var _0xf1389e={};var _0x3f070b={};var _0x40e8bf;var _0x5b2f95;return db[_0xd40c('0x42')][_0xd40c('0x69')]({'where':{'id':_0x32eb16['params']['id']}})['then'](handleEntityNotFound(_0x20360e,null))['then'](function(_0x5d26ff){if(_0x5d26ff){_0x40e8bf=_0x5d26ff;_0x3f070b[_0xd40c('0x46')]=_[_0xd40c('0x5b')](db[_0xd40c('0x88')][_0xd40c('0x5c')]);_0x3f070b['query']=_[_0xd40c('0x5b')](_0x32eb16[_0xd40c('0x47')]);_0x3f070b[_0xd40c('0x48')]=_[_0xd40c('0x49')](_0x3f070b[_0xd40c('0x46')],_0x3f070b[_0xd40c('0x47')]);_0xf1389e['attributes']=_['intersection'](_0x3f070b[_0xd40c('0x46')],qs['fields'](_0x32eb16['query'][_0xd40c('0x4b')]));_0xf1389e[_0xd40c('0x4a')]=_0xf1389e[_0xd40c('0x4a')][_0xd40c('0x5d')]?_0xf1389e[_0xd40c('0x4a')]:_0x3f070b[_0xd40c('0x46')];_0xf1389e[_0xd40c('0x85')]=qs[_0xd40c('0x4f')](_0x32eb16[_0xd40c('0x47')][_0xd40c('0x4f')]);_0xf1389e[_0xd40c('0x50')]=qs[_0xd40c('0x48')](_[_0xd40c('0x51')](_0x32eb16['query'],_0x3f070b[_0xd40c('0x48')]));if(_0x32eb16['query'][_0xd40c('0x6a')]){_0xf1389e[_0xd40c('0x50')]=_[_0xd40c('0x52')](_0xf1389e[_0xd40c('0x50')],{'$or':_[_0xd40c('0x41')](_0xf1389e[_0xd40c('0x4a')],function(_0x15d40b){var _0x3bb427={};_0x3bb427[_0x15d40b]={'$like':'%'+_0x32eb16['query'][_0xd40c('0x6a')]+'%'};return _0x3bb427;})});}_0xf1389e=_[_0xd40c('0x52')]({},_0xf1389e,_0x32eb16[_0xd40c('0x54')]);return _0x40e8bf['getAgents'](_0xf1389e);}})['then'](function(_0xb445b0){if(_0xb445b0){_0x5b2f95=_0xb445b0[_0xd40c('0x5d')];if(!_0x32eb16['query'][_0xd40c('0x4c')](_0xd40c('0x4d'))){_0xf1389e['limit']=qs['limit'](_0x32eb16[_0xd40c('0x47')][_0xd40c('0x4e')]);_0xf1389e[_0xd40c('0x1d')]=qs[_0xd40c('0x1d')](_0x32eb16[_0xd40c('0x47')][_0xd40c('0x1d')]);}return _0x40e8bf['getAgents'](_0xf1389e);}})[_0xd40c('0xe')](function(_0x44fb68){if(_0x44fb68){return _0x44fb68?{'count':_0x5b2f95,'rows':_0x44fb68}:null;}})[_0xd40c('0xe')](respondWithResult(_0x20360e,null))[_0xd40c('0x19')](handleError(_0x20360e,null));};