Built motion from commit f7863d46.|2.5.41
[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 _0xa02b=['READ_COMMITTED','MailApplication','bulkCreate','findAndCountAll','finally','getApplications','getMessages','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','CmList','List','CmContact','Contacts','updatedAt','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','secure','auth','SendMail','sendMail','List\x20not\x20found','attach','out','messageId','Interaction','Messages','verifySmtp','CloudProvider','OAuth2','data5','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','moment','bluebird','util','path','lodash','juice','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','client','http','info','request\x20sent','debug','stringify','error','MailAccount,\x20%s,\x20%s','message','result','catch','status','end','json','undefined','count','offset','Content-Range','update','then','destroy','get','UserProfileResource','sendStatus','stack','name','send','index','MailServerIn','Imap','Smtp','Pause','mandatoryDispositionPause','map','MailAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','show','params','MailServerOut','keys','fields','length','merge','find','body','modernAuthentication','CloudProviderId','describe','addDisposition','MailAccountId','Disposition','create','getDispositions','hasOwnProperty','removeDispositions','ids','addAnswer','findOne','CannedAnswer','removeAnswers','custom','provider','email','ListId','isNil','active','description','user','username','password','pass','service','host','port','authentication','role','UserProfileSection','MailAccounts','autoAssociation','getImap','addImap','setImap','getSmtp','addSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','User','Owner','fullname','internal','Tags','color','tag','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS'];(function(_0x2d8ad5,_0x4a7b22){var _0x110cf1=function(_0x5bfacd){while(--_0x5bfacd){_0x2d8ad5['push'](_0x2d8ad5['shift']());}};_0x110cf1(++_0x4a7b22);}(_0xa02b,0xef));var _0xba02=function(_0x51aae2,_0x24124d){_0x51aae2=_0x51aae2-0x0;var _0x3532de=_0xa02b[_0x51aae2];return _0x3532de;};'use strict';var moment=require(_0xba02('0x0'));var BPromise=require(_0xba02('0x1'));var util=require(_0xba02('0x2'));var path=require(_0xba02('0x3'));var _=require(_0xba02('0x4'));var juice=require(_0xba02('0x5'));var Redis=require(_0xba02('0x6'));var qs=require(_0xba02('0x7'));var logger=require('../../config/logger')(_0xba02('0x8'));var config=require(_0xba02('0x9'));var db=require(_0xba02('0xa'))['db'];config[_0xba02('0xb')]=_[_0xba02('0xc')](config[_0xba02('0xb')],{'host':_0xba02('0xd'),'port':0x18eb});var socket=require(_0xba02('0xe'))(new Redis(config[_0xba02('0xb')]));require(_0xba02('0xf'))[_0xba02('0x10')](socket);var jayson=require('jayson/promise');var client=jayson[_0xba02('0x11')][_0xba02('0x12')]({'port':0x232b});function respondWithRpcPromise(_0xa26975,_0x84bb8b,_0x4cf6f7,_0x39b7a2){return new BPromise(function(_0x52d40f,_0xbfd0c9){var _0x16c514=_0x39b7a2||client;return _0x16c514['request'](_0xa26975,_0x4cf6f7)['then'](function(_0x5af81b){logger[_0xba02('0x13')]('MailAccount,\x20%s,\x20%s',_0x84bb8b,_0xba02('0x14'));logger[_0xba02('0x15')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x84bb8b,_0xba02('0x14'),JSON[_0xba02('0x16')](_0x5af81b));if(_0x5af81b['error']){if(_0x5af81b[_0xba02('0x17')]['code']===0x1f4){logger[_0xba02('0x17')](_0xba02('0x18'),_0x84bb8b,_0x5af81b[_0xba02('0x17')][_0xba02('0x19')]);return _0xbfd0c9(_0x5af81b['error']['message']);}logger['error'](_0xba02('0x18'),_0x84bb8b,_0x5af81b[_0xba02('0x17')][_0xba02('0x19')]);return _0x52d40f(_0x5af81b['error'][_0xba02('0x19')]);}else{logger[_0xba02('0x13')]('MailAccount,\x20%s,\x20%s',_0x84bb8b,_0xba02('0x14'));_0x52d40f(_0x5af81b[_0xba02('0x1a')]['message']);}})[_0xba02('0x1b')](function(_0x2ebcc4){logger[_0xba02('0x17')]('MailAccount,\x20%s,\x20%s',_0x84bb8b,_0x2ebcc4);_0xbfd0c9(_0x2ebcc4);});});}function respondWithStatusCode(_0x2425f6,_0x141c66){_0x141c66=_0x141c66||0xcc;return function(_0x56263e){if(_0x56263e){return _0x2425f6['sendStatus'](_0x141c66);}return _0x2425f6[_0xba02('0x1c')](_0x141c66)[_0xba02('0x1d')]();};}function respondWithResult(_0x3398b7,_0x5aeae3){_0x5aeae3=_0x5aeae3||0xc8;return function(_0xcef7cb){if(_0xcef7cb){return _0x3398b7['status'](_0x5aeae3)[_0xba02('0x1e')](_0xcef7cb);}};}function respondWithFilteredResult(_0x255320,_0x5010c2){return function(_0x1ee30a){if(_0x1ee30a){var _0x51914f=typeof _0x5010c2['offset']===_0xba02('0x1f')&&typeof _0x5010c2['limit']===_0xba02('0x1f');var _0x140f2e=_0x1ee30a[_0xba02('0x20')];var _0x4c2e63=_0x51914f?0x0:_0x5010c2['offset'];var _0xf8daa7=_0x51914f?_0x1ee30a['count']:_0x5010c2[_0xba02('0x21')]+_0x5010c2['limit'];var _0x2e8ff6;if(_0xf8daa7>=_0x140f2e){_0xf8daa7=_0x140f2e;_0x2e8ff6=0xc8;}else{_0x2e8ff6=0xce;}_0x255320[_0xba02('0x1c')](_0x2e8ff6);return _0x255320['set'](_0xba02('0x22'),_0x4c2e63+'-'+_0xf8daa7+'/'+_0x140f2e)[_0xba02('0x1e')](_0x1ee30a);}return null;};}function saveUpdates(_0x1948dd){return function(_0x28e557){if(_0x28e557){return _0x28e557[_0xba02('0x23')](_0x1948dd)[_0xba02('0x24')](function(_0x1f4a87){return _0x1f4a87;});}return null;};}function removeEntity(_0x9200e8){return function(_0x11224d){if(_0x11224d){return _0x11224d[_0xba02('0x25')]()[_0xba02('0x24')](function(){var _0x3e02b0=_0x11224d[_0xba02('0x26')]({'plain':!![]});var _0x2ba399='MailAccounts';return db[_0xba02('0x27')][_0xba02('0x25')]({'where':{'type':_0x2ba399,'resourceId':_0x3e02b0['id']}})[_0xba02('0x24')](function(){return _0x11224d;});})[_0xba02('0x24')](function(){_0x9200e8[_0xba02('0x1c')](0xcc)[_0xba02('0x1d')]();});}};}function handleEntityNotFound(_0x53866c){return function(_0x202741){if(!_0x202741){_0x53866c[_0xba02('0x28')](0x194);}return _0x202741;};}function handleError(_0x15fa1c,_0x5cebeb){_0x5cebeb=_0x5cebeb||0x1f4;return function(_0x16862b){logger['error'](_0x16862b[_0xba02('0x29')]);if(_0x16862b[_0xba02('0x2a')]){delete _0x16862b[_0xba02('0x2a')];}_0x15fa1c['status'](_0x5cebeb)[_0xba02('0x2b')](_0x16862b);};}exports[_0xba02('0x2c')]=function(_0x1d156b,_0x565cf7){var _0x2cf41e={'include':[{'model':db[_0xba02('0x2d')],'as':_0xba02('0x2e')},{'model':db['MailServerOut'],'as':_0xba02('0x2f')},{'model':db[_0xba02('0x30')],'as':_0xba02('0x31')}]},_0x26dccc={},_0x243a64={'count':0x0,'rows':[]};var _0x4da0ea=_[_0xba02('0x32')](db[_0xba02('0x33')][_0xba02('0x34')],function(_0xb7ca74){return{'name':_0xb7ca74[_0xba02('0x35')],'type':_0xb7ca74[_0xba02('0x36')][_0xba02('0x37')]};});_0x26dccc[_0xba02('0x38')]=_[_0xba02('0x32')](_0x4da0ea,_0xba02('0x2a'));_0x26dccc[_0xba02('0x39')]=_['keys'](_0x1d156b[_0xba02('0x39')]);_0x26dccc[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x26dccc[_0xba02('0x38')],_0x26dccc[_0xba02('0x39')]);_0x2cf41e[_0xba02('0x3c')]=_[_0xba02('0x3b')](_0x26dccc[_0xba02('0x38')],qs['fields'](_0x1d156b[_0xba02('0x39')]['fields']));_0x2cf41e[_0xba02('0x3c')]=_0x2cf41e[_0xba02('0x3c')]['length']?_0x2cf41e[_0xba02('0x3c')]:_0x26dccc[_0xba02('0x38')];if(!_0x1d156b[_0xba02('0x39')]['hasOwnProperty'](_0xba02('0x3d'))){_0x2cf41e[_0xba02('0x3e')]=qs[_0xba02('0x3e')](_0x1d156b[_0xba02('0x39')]['limit']);_0x2cf41e[_0xba02('0x21')]=qs[_0xba02('0x21')](_0x1d156b['query'][_0xba02('0x21')]);}_0x2cf41e[_0xba02('0x3f')]=qs[_0xba02('0x40')](_0x1d156b[_0xba02('0x39')][_0xba02('0x40')]);_0x2cf41e[_0xba02('0x41')]=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x1d156b[_0xba02('0x39')],_0x26dccc['filters']),_0x4da0ea);if(_0x1d156b[_0xba02('0x39')][_0xba02('0x43')]){_0x2cf41e[_0xba02('0x41')]=_['merge'](_0x2cf41e[_0xba02('0x41')],{'$or':_[_0xba02('0x32')](_0x4da0ea,function(_0x1dce9e){if(_0x1dce9e[_0xba02('0x36')]!==_0xba02('0x44')){var _0x79d369={};_0x79d369[_0x1dce9e[_0xba02('0x2a')]]={'$like':'%'+_0x1d156b[_0xba02('0x39')][_0xba02('0x43')]+'%'};return _0x79d369;}})});}_0x2cf41e=_['merge']({},_0x2cf41e,_0x1d156b[_0xba02('0x45')]);var _0x46cf70={'where':_0x2cf41e[_0xba02('0x41')]};return db[_0xba02('0x33')][_0xba02('0x20')](_0x46cf70)['then'](function(_0x1d0baf){_0x243a64[_0xba02('0x20')]=_0x1d0baf;if(_0x1d156b[_0xba02('0x39')][_0xba02('0x46')]){_0x2cf41e[_0xba02('0x47')]=[{'all':!![]}];}return db['MailAccount'][_0xba02('0x48')](_0x2cf41e);})[_0xba02('0x24')](function(_0x33985a){_0x243a64[_0xba02('0x49')]=_0x33985a;return _0x243a64;})[_0xba02('0x24')](respondWithFilteredResult(_0x565cf7,_0x2cf41e))[_0xba02('0x1b')](handleError(_0x565cf7,null));};exports[_0xba02('0x4a')]=function(_0x49c172,_0x7501c6){var _0x2840ee={'raw':![],'where':{'id':_0x49c172[_0xba02('0x4b')]['id']},'include':[{'model':db[_0xba02('0x2d')],'as':_0xba02('0x2e')},{'model':db[_0xba02('0x4c')],'as':_0xba02('0x2f')},{'model':db[_0xba02('0x30')],'as':_0xba02('0x31')}]},_0x11ba8b={};_0x11ba8b[_0xba02('0x38')]=_[_0xba02('0x4d')](db[_0xba02('0x33')]['rawAttributes']);_0x11ba8b[_0xba02('0x39')]=_['keys'](_0x49c172[_0xba02('0x39')]);_0x11ba8b[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x11ba8b[_0xba02('0x38')],_0x11ba8b['query']);_0x2840ee['attributes']=_[_0xba02('0x3b')](_0x11ba8b[_0xba02('0x38')],qs[_0xba02('0x4e')](_0x49c172[_0xba02('0x39')]['fields']));_0x2840ee[_0xba02('0x3c')]=_0x2840ee[_0xba02('0x3c')][_0xba02('0x4f')]?_0x2840ee['attributes']:_0x11ba8b[_0xba02('0x38')];if(_0x49c172[_0xba02('0x39')][_0xba02('0x46')]){_0x2840ee[_0xba02('0x47')]=[{'all':!![]}];}_0x2840ee=_[_0xba02('0x50')]({},_0x2840ee,_0x49c172['options']);return db[_0xba02('0x33')][_0xba02('0x51')](_0x2840ee)['then'](handleEntityNotFound(_0x7501c6,null))['then'](respondWithResult(_0x7501c6,null))[_0xba02('0x1b')](handleError(_0x7501c6,null));};exports['update']=function(_0x23677f,_0x3bc25b){if(_0x23677f[_0xba02('0x52')]['id']){delete _0x23677f[_0xba02('0x52')]['id'];}if(_0x23677f[_0xba02('0x52')]['Imap']){if(!_0x23677f[_0xba02('0x52')][_0xba02('0x2e')][_0xba02('0x53')]){_0x23677f[_0xba02('0x52')][_0xba02('0x2e')][_0xba02('0x54')]=null;}}if(_0x23677f[_0xba02('0x52')][_0xba02('0x2f')]){if(!_0x23677f[_0xba02('0x52')]['Smtp'][_0xba02('0x53')]){_0x23677f[_0xba02('0x52')]['Smtp']['CloudProviderId']=null;}}return db[_0xba02('0x33')]['find']({'where':{'id':_0x23677f[_0xba02('0x4b')]['id']},'include':[{'model':db['MailServerIn'],'as':_0xba02('0x2e')},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db[_0xba02('0x30')],'as':_0xba02('0x31')}]})[_0xba02('0x24')](handleEntityNotFound(_0x3bc25b,null))['then'](saveUpdates(_0x23677f['body'],null))[_0xba02('0x24')](function(_0x6476e0){if(_0x6476e0&&_0x23677f[_0xba02('0x52')][_0xba02('0x2e')]){return db['MailServerIn'][_0xba02('0x23')](_0x23677f[_0xba02('0x52')]['Imap'],{'where':{'MailAccountId':_0x6476e0['id']}})[_0xba02('0x24')](function(){return _0x6476e0;});}return _0x6476e0;})[_0xba02('0x24')](function(_0x52bc37){if(_0x52bc37&&_0x23677f[_0xba02('0x52')]['Smtp']){return db['MailServerOut'][_0xba02('0x23')](_0x23677f[_0xba02('0x52')][_0xba02('0x2f')],{'where':{'MailAccountId':_0x52bc37['id']}})[_0xba02('0x24')](function(){return _0x52bc37;});}return _0x52bc37;})['then'](respondWithResult(_0x3bc25b,null))['catch'](handleError(_0x3bc25b,null));};exports[_0xba02('0x55')]=function(_0x3078ea,_0x3269f7){return db['MailAccount'][_0xba02('0x55')]()[_0xba02('0x24')](respondWithResult(_0x3269f7,null))[_0xba02('0x1b')](handleError(_0x3269f7,null));};exports[_0xba02('0x56')]=function(_0x1157fc,_0xdd40a7){if(_0x1157fc[_0xba02('0x52')]['id']){delete _0x1157fc['body']['id'];}return db['MailAccount'][_0xba02('0x51')]({'where':{'id':_0x1157fc[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0xdd40a7,null))[_0xba02('0x24')](function(_0x266088){if(_0x266088){_0x1157fc[_0xba02('0x52')][_0xba02('0x57')]=_0x266088['id'];return db[_0xba02('0x58')][_0xba02('0x59')](_0x1157fc[_0xba02('0x52')]);}})[_0xba02('0x24')](respondWithResult(_0xdd40a7,null))[_0xba02('0x1b')](handleError(_0xdd40a7,null));};exports[_0xba02('0x5a')]=function(_0x242bbd,_0x2ac205){var _0x22087e={'raw':![],'where':{}};var _0x37c996={};var _0x579b12={'count':0x0,'rows':[]};return db[_0xba02('0x33')]['findOne']({'where':{'id':_0x242bbd[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x2ac205,null))['then'](function(_0x19a669){if(_0x19a669){_0x37c996[_0xba02('0x38')]=_[_0xba02('0x4d')](db[_0xba02('0x58')][_0xba02('0x34')]);_0x37c996[_0xba02('0x39')]=_[_0xba02('0x4d')](_0x242bbd[_0xba02('0x39')]);_0x37c996[_0xba02('0x3a')]=_['intersection'](_0x37c996[_0xba02('0x38')],_0x37c996[_0xba02('0x39')]);_0x22087e['attributes']=_[_0xba02('0x3b')](_0x37c996[_0xba02('0x38')],qs[_0xba02('0x4e')](_0x242bbd[_0xba02('0x39')][_0xba02('0x4e')]));_0x22087e[_0xba02('0x3c')]=_0x22087e['attributes'][_0xba02('0x4f')]?_0x22087e[_0xba02('0x3c')]:_0x37c996[_0xba02('0x38')];if(!_0x242bbd[_0xba02('0x39')][_0xba02('0x5b')]('nolimit')){_0x22087e[_0xba02('0x3e')]=qs[_0xba02('0x3e')](_0x242bbd[_0xba02('0x39')][_0xba02('0x3e')]);_0x22087e['offset']=qs[_0xba02('0x21')](_0x242bbd[_0xba02('0x39')]['offset']);}_0x22087e['order']=qs[_0xba02('0x40')](_0x242bbd[_0xba02('0x39')][_0xba02('0x40')]);_0x22087e[_0xba02('0x41')]=qs['filters'](_[_0xba02('0x42')](_0x242bbd['query'],_0x37c996[_0xba02('0x3a')]));_0x22087e[_0xba02('0x41')][_0xba02('0x57')]=_0x19a669['id'];if(_0x242bbd['query'][_0xba02('0x43')]){_0x22087e[_0xba02('0x41')]=_[_0xba02('0x50')](_0x22087e[_0xba02('0x41')],{'$or':_['map'](_0x22087e[_0xba02('0x3c')],function(_0xd7106d){var _0x626bfd={};_0x626bfd[_0xd7106d]={'$like':'%'+_0x242bbd[_0xba02('0x39')][_0xba02('0x43')]+'%'};return _0x626bfd;})});}_0x22087e=_[_0xba02('0x50')]({},_0x22087e,_0x242bbd[_0xba02('0x45')]);return db['Disposition'][_0xba02('0x20')]({'where':_0x22087e[_0xba02('0x41')]})[_0xba02('0x24')](function(_0x174663){_0x579b12[_0xba02('0x20')]=_0x174663;if(_0x242bbd[_0xba02('0x39')]['includeAll']){_0x22087e[_0xba02('0x47')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x22087e);})[_0xba02('0x24')](function(_0x2da3d2){_0x579b12['rows']=_0x2da3d2;return _0x579b12;});}})[_0xba02('0x24')](respondWithFilteredResult(_0x2ac205,_0x22087e))[_0xba02('0x1b')](handleError(_0x2ac205,null));};exports[_0xba02('0x5c')]=function(_0x29a366,_0x2ee3b7){return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x29a366[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x2ee3b7,null))[_0xba02('0x24')](function(_0x475360){if(_0x475360){return _0x475360['removeDispositions'](_0x29a366['query'][_0xba02('0x5d')]);}})[_0xba02('0x24')](respondWithStatusCode(_0x2ee3b7,null))['catch'](handleError(_0x2ee3b7,null));};exports[_0xba02('0x5e')]=function(_0x17b1ed,_0x3ce87a){if(_0x17b1ed[_0xba02('0x52')]['id']){delete _0x17b1ed['body']['id'];}return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x17b1ed[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x3ce87a,null))[_0xba02('0x24')](function(_0xbfbb54){if(_0xbfbb54){_0x17b1ed[_0xba02('0x52')][_0xba02('0x57')]=_0xbfbb54['id'];return db['CannedAnswer'][_0xba02('0x59')](_0x17b1ed[_0xba02('0x52')]);}})[_0xba02('0x24')](respondWithResult(_0x3ce87a,null))['catch'](handleError(_0x3ce87a,null));};exports['getAnswers']=function(_0x8f72d2,_0xabfa1f){var _0x1e4915={'raw':![],'where':{}};var _0x46dd4a={};var _0x5848ef={'count':0x0,'rows':[]};return db[_0xba02('0x33')][_0xba02('0x5f')]({'where':{'id':_0x8f72d2[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0xabfa1f,null))[_0xba02('0x24')](function(_0xad2225){if(_0xad2225){_0x46dd4a['model']=_[_0xba02('0x4d')](db[_0xba02('0x60')][_0xba02('0x34')]);_0x46dd4a['query']=_['keys'](_0x8f72d2['query']);_0x46dd4a[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x46dd4a['model'],_0x46dd4a[_0xba02('0x39')]);_0x1e4915[_0xba02('0x3c')]=_[_0xba02('0x3b')](_0x46dd4a[_0xba02('0x38')],qs['fields'](_0x8f72d2['query'][_0xba02('0x4e')]));_0x1e4915['attributes']=_0x1e4915[_0xba02('0x3c')][_0xba02('0x4f')]?_0x1e4915[_0xba02('0x3c')]:_0x46dd4a[_0xba02('0x38')];if(!_0x8f72d2[_0xba02('0x39')]['hasOwnProperty']('nolimit')){_0x1e4915['limit']=qs[_0xba02('0x3e')](_0x8f72d2[_0xba02('0x39')][_0xba02('0x3e')]);_0x1e4915[_0xba02('0x21')]=qs[_0xba02('0x21')](_0x8f72d2['query'][_0xba02('0x21')]);}_0x1e4915[_0xba02('0x3f')]=qs[_0xba02('0x40')](_0x8f72d2['query'][_0xba02('0x40')]);_0x1e4915[_0xba02('0x41')]=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x8f72d2[_0xba02('0x39')],_0x46dd4a[_0xba02('0x3a')]));_0x1e4915[_0xba02('0x41')][_0xba02('0x57')]=_0xad2225['id'];if(_0x8f72d2[_0xba02('0x39')]['filter']){_0x1e4915[_0xba02('0x41')]=_[_0xba02('0x50')](_0x1e4915[_0xba02('0x41')],{'$or':_[_0xba02('0x32')](_0x1e4915[_0xba02('0x3c')],function(_0x424f67){var _0x266c82={};_0x266c82[_0x424f67]={'$like':'%'+_0x8f72d2['query']['filter']+'%'};return _0x266c82;})});}_0x1e4915=_[_0xba02('0x50')]({},_0x1e4915,_0x8f72d2[_0xba02('0x45')]);return db[_0xba02('0x60')]['count']({'where':_0x1e4915[_0xba02('0x41')]})[_0xba02('0x24')](function(_0x30db54){_0x5848ef['count']=_0x30db54;if(_0x8f72d2[_0xba02('0x39')][_0xba02('0x46')]){_0x1e4915[_0xba02('0x47')]=[{'all':!![]}];}return db[_0xba02('0x60')][_0xba02('0x48')](_0x1e4915);})[_0xba02('0x24')](function(_0x10b6e5){_0x5848ef[_0xba02('0x49')]=_0x10b6e5;return _0x5848ef;});}})['then'](respondWithFilteredResult(_0xabfa1f,_0x1e4915))[_0xba02('0x1b')](handleError(_0xabfa1f,null));};exports[_0xba02('0x61')]=function(_0x2cb716,_0x3e5975){return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x2cb716[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x3e5975,null))['then'](function(_0x28c480){if(_0x28c480){return _0x28c480['removeAnswers'](_0x2cb716[_0xba02('0x39')][_0xba02('0x5d')]);}})[_0xba02('0x24')](respondWithStatusCode(_0x3e5975,null))['catch'](handleError(_0x3e5975,null));};exports[_0xba02('0x59')]=function(_0x14be2e,_0x9834ce){var _0x388ba6={'name':_0x14be2e['body'][_0xba02('0x2a')],'key':_0x14be2e[_0xba02('0x52')][_0xba02('0x37')],'provider':_0x14be2e[_0xba02('0x52')]['provider']===_0xba02('0x62')?null:_0x14be2e['body'][_0xba02('0x63')],'email':_0x14be2e[_0xba02('0x52')][_0xba02('0x64')],'ListId':_0x14be2e[_0xba02('0x52')][_0xba02('0x65')],'active':!_[_0xba02('0x66')](_0x14be2e[_0xba02('0x52')]['active'])?_0x14be2e[_0xba02('0x52')][_0xba02('0x67')]:!![],'description':_0x14be2e['body'][_0xba02('0x68')]||null,'Imap':{},'Smtp':{}};if(_0x388ba6[_0xba02('0x63')]){_0x388ba6[_0xba02('0x2e')][_0xba02('0x69')]=_0x388ba6[_0xba02('0x2f')]['user']=_0x14be2e[_0xba02('0x52')][_0xba02('0x6a')];_0x388ba6[_0xba02('0x2e')][_0xba02('0x6b')]=_0x388ba6['Smtp'][_0xba02('0x6c')]=_0x14be2e[_0xba02('0x52')]['password'];if(_0x14be2e['body']['modernAuthentication']){_0x388ba6[_0xba02('0x2e')][_0xba02('0x53')]=_0x388ba6[_0xba02('0x2f')][_0xba02('0x53')]=!![];_0x388ba6[_0xba02('0x2e')][_0xba02('0x54')]=_0x388ba6[_0xba02('0x2f')][_0xba02('0x54')]=_0x14be2e[_0xba02('0x52')][_0xba02('0x54')];_0x388ba6['Imap']['password']=_0x388ba6[_0xba02('0x2f')][_0xba02('0x6c')]=null;}else{_0x388ba6[_0xba02('0x2e')][_0xba02('0x54')]=_0x388ba6[_0xba02('0x2f')]['CloudProviderId']=null;}_0x388ba6['Imap'][_0xba02('0x6d')]=_0x388ba6['Smtp']['service']=null;_0x388ba6[_0xba02('0x2e')]['host']=_0x388ba6['Smtp'][_0xba02('0x6e')]=null;_0x388ba6[_0xba02('0x2e')][_0xba02('0x6f')]=_0x388ba6['Smtp'][_0xba02('0x6f')]=null;}else{if(_0x14be2e['body'][_0xba02('0x70')]){_0x388ba6['Imap']['user']=_0x388ba6[_0xba02('0x2f')][_0xba02('0x69')]=_0x14be2e[_0xba02('0x52')][_0xba02('0x6a')];_0x388ba6[_0xba02('0x2e')][_0xba02('0x6b')]=_0x388ba6[_0xba02('0x2f')][_0xba02('0x6c')]=_0x14be2e[_0xba02('0x52')][_0xba02('0x6b')];}else{_0x388ba6[_0xba02('0x2e')][_0xba02('0x70')]=_0x388ba6[_0xba02('0x2f')][_0xba02('0x70')]=![];_0x388ba6[_0xba02('0x2e')][_0xba02('0x69')]=_0x388ba6[_0xba02('0x2f')][_0xba02('0x69')]=null;_0x388ba6[_0xba02('0x2e')][_0xba02('0x6b')]=_0x388ba6['Smtp']['pass']=null;}_0x388ba6[_0xba02('0x2e')][_0xba02('0x6e')]=_0x14be2e[_0xba02('0x52')][_0xba02('0x2e')][_0xba02('0x6e')];_0x388ba6[_0xba02('0x2e')][_0xba02('0x6f')]=_0x14be2e[_0xba02('0x52')]['Imap'][_0xba02('0x6f')];_0x388ba6['Smtp'][_0xba02('0x6e')]=_0x14be2e[_0xba02('0x52')]['Smtp']['host'];_0x388ba6[_0xba02('0x2f')][_0xba02('0x6f')]=_0x14be2e[_0xba02('0x52')][_0xba02('0x2f')][_0xba02('0x6f')];}return db[_0xba02('0x33')][_0xba02('0x59')](_0x388ba6,{'include':[{'model':db['MailServerOut'],'as':_0xba02('0x2f')},{'model':db['MailServerIn'],'as':_0xba02('0x2e')}]})[_0xba02('0x24')](function(_0x4efa42){var _0x2dfcee=_0x14be2e['user'][_0xba02('0x26')]({'plain':!![]});if(!_0x2dfcee)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2dfcee[_0xba02('0x71')]==='user'){var _0x1437ea=_0x4efa42[_0xba02('0x26')]({'plain':!![]});return db[_0xba02('0x72')]['find']({'where':{'name':_0xba02('0x73'),'userProfileId':_0x2dfcee['userProfileId']},'raw':!![]})[_0xba02('0x24')](function(_0x46b6bd){if(_0x46b6bd&&_0x46b6bd[_0xba02('0x74')]===0x0){return db[_0xba02('0x27')][_0xba02('0x59')]({'name':_0x1437ea[_0xba02('0x2a')],'resourceId':_0x1437ea['id'],'type':_0x46b6bd[_0xba02('0x2a')],'sectionId':_0x46b6bd['id']},{})[_0xba02('0x24')](function(){return _0x4efa42;});}else{return _0x4efa42;}})['catch'](function(_0x343566){logger[_0xba02('0x17')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x343566);throw _0x343566;});}return _0x4efa42;})['then'](respondWithResult(_0x9834ce,0xc9))['catch'](handleError(_0x9834ce,null));};exports['getImap']=function(_0x4ce444,_0x5b72e5){return db[_0xba02('0x33')]['findOne']({'where':{'id':_0x4ce444[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x5b72e5,null))[_0xba02('0x24')](function(_0x5566a9){if(_0x5566a9){return _0x5566a9[_0xba02('0x75')]();}return null;})[_0xba02('0x24')](respondWithResult(_0x5b72e5,null))[_0xba02('0x1b')](handleError(_0x5b72e5,null));};exports[_0xba02('0x76')]=function(_0x1335db,_0x402c00){if(_0x1335db[_0xba02('0x52')]['id']){delete _0x1335db[_0xba02('0x52')]['id'];}return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x1335db[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x402c00,null))['then'](function(_0x128d5d){if(_0x128d5d){_0x1335db[_0xba02('0x52')][_0xba02('0x57')]=_0x128d5d['id'];return db['MailServerIn'][_0xba02('0x59')](_0x1335db['body']);}})[_0xba02('0x24')](respondWithResult(_0x402c00,null))[_0xba02('0x1b')](handleError(_0x402c00,null));};exports['removeImap']=function(_0x1cad0d,_0x4b32aa){return db[_0xba02('0x33')]['findOne']({'where':{'id':_0x1cad0d[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0x4b32aa,null))[_0xba02('0x24')](function(_0x2e8fed){if(_0x2e8fed){return _0x2e8fed[_0xba02('0x77')](null);}return null;})['then'](respondWithStatusCode(_0x4b32aa,null))[_0xba02('0x1b')](handleError(_0x4b32aa,null));};exports[_0xba02('0x78')]=function(_0x112554,_0xc98b6c){return db['MailAccount'][_0xba02('0x5f')]({'where':{'id':_0x112554[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0xc98b6c,null))['then'](function(_0x2e0ed9){if(_0x2e0ed9){return _0x2e0ed9[_0xba02('0x78')]();}return null;})[_0xba02('0x24')](respondWithResult(_0xc98b6c,null))[_0xba02('0x1b')](handleError(_0xc98b6c,null));};exports[_0xba02('0x79')]=function(_0x4e63bc,_0x2a0ce1){if(_0x4e63bc['body']['id']){delete _0x4e63bc[_0xba02('0x52')]['id'];}return db['MailAccount'][_0xba02('0x51')]({'where':{'id':_0x4e63bc['params']['id']}})['then'](handleEntityNotFound(_0x2a0ce1,null))[_0xba02('0x24')](function(_0x14473e){if(_0x14473e){_0x4e63bc[_0xba02('0x52')][_0xba02('0x57')]=_0x14473e['id'];return db['MailServerOut']['create'](_0x4e63bc[_0xba02('0x52')]);}})[_0xba02('0x24')](respondWithResult(_0x2a0ce1,null))[_0xba02('0x1b')](handleError(_0x2a0ce1,null));};exports['removeSmtp']=function(_0x45c2fb,_0x425240){return db['MailAccount']['findOne']({'where':{'id':_0x45c2fb[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0x425240,null))[_0xba02('0x24')](function(_0x3fdba2){if(_0x3fdba2){return _0x3fdba2[_0xba02('0x7a')](null);}return null;})[_0xba02('0x24')](respondWithStatusCode(_0x425240,null))[_0xba02('0x1b')](handleError(_0x425240,null));};exports[_0xba02('0x7b')]=function(_0xa70133,_0x3bf2a7){return db[_0xba02('0x7c')]['find']({'where':{'id':_0xa70133[_0xba02('0x4b')]['id']}})['then'](handleEntityNotFound(_0x3bf2a7,null))[_0xba02('0x24')](function(_0x50d713){if(_0x50d713){return _0x50d713[_0xba02('0x7b')](_0xa70133['body'][_0xba02('0x5d')],_[_0xba02('0x7d')](_0xa70133[_0xba02('0x52')],[_0xba02('0x5d'),'id'])||{});}})[_0xba02('0x24')](respondWithResult(_0x3bf2a7,null))['catch'](handleError(_0x3bf2a7,null));};exports[_0xba02('0x7e')]=function(_0x36a8c2,_0x20004d){var _0x3f2f4a={'raw':![],'where':{}};var _0x23dfda={};var _0x4c88f1={'count':0x0,'rows':[]};return db[_0xba02('0x33')][_0xba02('0x5f')]({'where':{'id':_0x36a8c2[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x20004d,null))[_0xba02('0x24')](function(_0x1037cc){if(_0x1037cc){_0x23dfda[_0xba02('0x38')]=_[_0xba02('0x4d')](db['MailInteraction'][_0xba02('0x34')]);_0x23dfda['query']=_[_0xba02('0x4d')](_0x36a8c2[_0xba02('0x39')]);_0x23dfda[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x23dfda['model'],_0x23dfda[_0xba02('0x39')]);_0x3f2f4a[_0xba02('0x3c')]=_[_0xba02('0x3b')](_0x23dfda['model'],qs[_0xba02('0x4e')](_0x36a8c2[_0xba02('0x39')][_0xba02('0x4e')]));_0x3f2f4a[_0xba02('0x3c')]=_0x3f2f4a[_0xba02('0x3c')][_0xba02('0x4f')]?_0x3f2f4a[_0xba02('0x3c')]:_0x23dfda[_0xba02('0x38')];if(!_0x36a8c2[_0xba02('0x39')][_0xba02('0x5b')](_0xba02('0x3d'))){_0x3f2f4a['limit']=qs[_0xba02('0x3e')](_0x36a8c2[_0xba02('0x39')][_0xba02('0x3e')]);_0x3f2f4a['offset']=qs['offset'](_0x36a8c2[_0xba02('0x39')][_0xba02('0x21')]);}_0x3f2f4a['order']=qs[_0xba02('0x40')](_0x36a8c2[_0xba02('0x39')][_0xba02('0x40')]);_0x3f2f4a['where']=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x36a8c2['query'],_0x23dfda[_0xba02('0x3a')]));_0x3f2f4a[_0xba02('0x41')][_0xba02('0x57')]=_0x1037cc['id'];if(_0x36a8c2['query']['filter']){_0x3f2f4a[_0xba02('0x41')]=_[_0xba02('0x50')](_0x3f2f4a[_0xba02('0x41')],{'$or':_[_0xba02('0x32')](_0x3f2f4a[_0xba02('0x3c')],function(_0x5830d9){var _0x18fae6={};_0x18fae6[_0x5830d9]={'$like':'%'+_0x36a8c2[_0xba02('0x39')][_0xba02('0x43')]+'%'};return _0x18fae6;})});}_0x3f2f4a=_[_0xba02('0x50')]({},_0x3f2f4a,_0x36a8c2[_0xba02('0x45')]);return db[_0xba02('0x7c')][_0xba02('0x20')]({'where':_0x3f2f4a[_0xba02('0x41')]})[_0xba02('0x24')](function(_0x5dc6de){_0x4c88f1[_0xba02('0x20')]=_0x5dc6de;if(_0x36a8c2[_0xba02('0x39')][_0xba02('0x46')]){_0x3f2f4a['include']=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db[_0xba02('0x7f')],'as':_0xba02('0x80'),'attributes':[_0xba02('0x2a'),_0xba02('0x81'),_0xba02('0x82')],'required':![]},{'model':db['Tag'],'as':_0xba02('0x83'),'attributes':['id',_0xba02('0x2a'),_0xba02('0x84')],'where':_0x36a8c2['query'][_0xba02('0x85')]?{'id':_0x36a8c2[_0xba02('0x39')]['tag']}:undefined,'required':_0x36a8c2['query'][_0xba02('0x85')]?!![]:![]}];}return db[_0xba02('0x7c')][_0xba02('0x48')](_0x3f2f4a);})['then'](function(_0x183b44){_0x4c88f1['rows']=_0x183b44;return _0x4c88f1;});}})['then'](respondWithFilteredResult(_0x20004d,_0x3f2f4a))['catch'](handleError(_0x20004d,null));};exports[_0xba02('0x86')]=function addApplications(_0xd4ba7a,_0x114241){var _0xc988ea=_0xd4ba7a[_0xba02('0x4b')]['id'];var _0x6b346f=_0xd4ba7a[_0xba02('0x52')];var _0x2c9dea=0xc8;var _0x5a5a15=null;return db[_0xba02('0x87')][_0xba02('0x88')]({'isolationLevel':db[_0xba02('0x87')][_0xba02('0x89')][_0xba02('0x8a')][_0xba02('0x8b')]},function(_0x4e63d9){return db['MailAccount'][_0xba02('0x5f')]({'where':{'id':_0xc988ea},'transaction':_0x4e63d9})[_0xba02('0x24')](function(_0x2bf5cc){if(_0x2bf5cc){return db['MailApplication']['destroy']({'where':{'MailAccountId':_0xc988ea},'transaction':_0x4e63d9})[_0xba02('0x24')](function(){var _0x4d196c=_[_0xba02('0x32')](_0x6b346f,function(_0x2f9c7f){_0x2f9c7f[_0xba02('0x57')]=_0xc988ea;return _0x2f9c7f;});return db[_0xba02('0x8c')][_0xba02('0x8d')](_0x4d196c,{'transaction':_0x4e63d9});});}else{_0x2c9dea=0x194;_0x5a5a15=[];}});})['then'](function(){if(_0x2c9dea!==0x194){return db['MailApplication'][_0xba02('0x8e')]({'where':{'MailAccountId':_0xc988ea},'order':'priority'})[_0xba02('0x24')](function(_0x2b75a2){_0x5a5a15=_0x2b75a2;});}})['catch'](function(_0x5550db){_0x2c9dea=0x1f4;logger[_0xba02('0x17')](_0x5550db[_0xba02('0x29')]);if(_0x5550db[_0xba02('0x2a')]){delete _0x5550db[_0xba02('0x2a')];}_0x5a5a15=_0x5550db;})[_0xba02('0x8f')](function(){if(_0x5a5a15===null){_0x114241[_0xba02('0x28')](_0x2c9dea);}else{if(_0x2c9dea===0x1f4){_0x114241[_0xba02('0x1c')](_0x2c9dea)[_0xba02('0x2b')](_0x5a5a15);}else{_0x114241['status'](_0x2c9dea)[_0xba02('0x1e')](_0x5a5a15);}}});};exports[_0xba02('0x90')]=function(_0x30d4bc,_0x4afbec){var _0x1b91b9={};var _0x1dce97={};var _0x554561;var _0x41fa83;return db[_0xba02('0x33')][_0xba02('0x5f')]({'where':{'id':_0x30d4bc[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x4afbec,null))[_0xba02('0x24')](function(_0x241c68){if(_0x241c68){_0x554561=_0x241c68;_0x1dce97[_0xba02('0x38')]=_[_0xba02('0x4d')](db[_0xba02('0x8c')][_0xba02('0x34')]);_0x1dce97[_0xba02('0x39')]=_['keys'](_0x30d4bc[_0xba02('0x39')]);_0x1dce97[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x1dce97['model'],_0x1dce97[_0xba02('0x39')]);_0x1b91b9['attributes']=_['intersection'](_0x1dce97['model'],qs['fields'](_0x30d4bc[_0xba02('0x39')][_0xba02('0x4e')]));_0x1b91b9['attributes']=_0x1b91b9['attributes'][_0xba02('0x4f')]?_0x1b91b9[_0xba02('0x3c')]:_0x1dce97['model'];_0x1b91b9['order']=qs[_0xba02('0x40')](_0x30d4bc[_0xba02('0x39')]['sort']);_0x1b91b9[_0xba02('0x41')]=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x30d4bc[_0xba02('0x39')],_0x1dce97[_0xba02('0x3a')]));if(_0x30d4bc[_0xba02('0x39')]['filter']){_0x1b91b9[_0xba02('0x41')]=_[_0xba02('0x50')](_0x1b91b9[_0xba02('0x41')],{'$or':_[_0xba02('0x32')](_0x1b91b9['attributes'],function(_0x207d9d){var _0x2493c4={};_0x2493c4[_0x207d9d]={'$like':'%'+_0x30d4bc[_0xba02('0x39')][_0xba02('0x43')]+'%'};return _0x2493c4;})});}_0x1b91b9=_[_0xba02('0x50')]({},_0x1b91b9,_0x30d4bc[_0xba02('0x45')]);return _0x554561['getApplications'](_0x1b91b9);}})[_0xba02('0x24')](function(_0x5c966a){if(_0x5c966a){_0x41fa83=_0x5c966a[_0xba02('0x4f')];if(!_0x30d4bc[_0xba02('0x39')][_0xba02('0x5b')]('nolimit')){_0x1b91b9[_0xba02('0x3e')]=qs[_0xba02('0x3e')](_0x30d4bc['query']['limit']);_0x1b91b9[_0xba02('0x21')]=qs[_0xba02('0x21')](_0x30d4bc['query'][_0xba02('0x21')]);}return _0x554561[_0xba02('0x90')](_0x1b91b9);}})['then'](function(_0x207d54){if(_0x207d54){return _0x207d54?{'count':_0x41fa83,'rows':_0x207d54}:null;}})[_0xba02('0x24')](respondWithResult(_0x4afbec,null))['catch'](handleError(_0x4afbec,null));};exports[_0xba02('0x91')]=function(_0x31f768,_0x46f1bd){var _0x16630d={'raw':!![],'where':{}};var _0x5862b9={};var _0x43a05b={'count':0x0,'rows':[]};return db[_0xba02('0x33')]['findOne']({'where':{'id':_0x31f768[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x46f1bd,null))['then'](function(_0x5200f1){if(_0x5200f1){_0x5862b9[_0xba02('0x38')]=_['keys'](db[_0xba02('0x92')][_0xba02('0x34')]);_0x5862b9[_0xba02('0x39')]=_[_0xba02('0x4d')](_0x31f768['query']);_0x5862b9[_0xba02('0x3a')]=_[_0xba02('0x3b')](_0x5862b9[_0xba02('0x38')],_0x5862b9['query']);_0x16630d[_0xba02('0x3c')]=_['intersection'](_0x5862b9[_0xba02('0x38')],qs[_0xba02('0x4e')](_0x31f768[_0xba02('0x39')]['fields']));_0x16630d['attributes']=_0x16630d[_0xba02('0x3c')]['length']?_0x16630d[_0xba02('0x3c')]:_0x5862b9[_0xba02('0x38')];if(!_0x31f768[_0xba02('0x39')][_0xba02('0x5b')]('nolimit')){_0x16630d[_0xba02('0x3e')]=qs['limit'](_0x31f768[_0xba02('0x39')][_0xba02('0x3e')]);_0x16630d['offset']=qs['offset'](_0x31f768[_0xba02('0x39')][_0xba02('0x21')]);}_0x16630d[_0xba02('0x3f')]=qs[_0xba02('0x40')](_0x31f768[_0xba02('0x39')]['sort']);_0x16630d[_0xba02('0x41')]=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x31f768[_0xba02('0x39')],_0x5862b9['filters']));_0x16630d[_0xba02('0x41')][_0xba02('0x57')]=_0x5200f1['id'];if(_0x31f768[_0xba02('0x39')][_0xba02('0x43')]){_0x16630d[_0xba02('0x41')]=_[_0xba02('0x50')](_0x16630d[_0xba02('0x41')],{'$or':_['map'](_0x16630d[_0xba02('0x3c')],function(_0x1ab95b){var _0x91ecce={};_0x91ecce[_0x1ab95b]={'$like':'%'+_0x31f768[_0xba02('0x39')][_0xba02('0x43')]+'%'};return _0x91ecce;})});}if(_0x31f768[_0xba02('0x39')][_0xba02('0x93')]){var _0x2e731e=_0x31f768['query'][_0xba02('0x93')][_0xba02('0x94')](',');var _0x2c1bef={};_0x2c1bef[_0x2e731e[0x0]]={'$gte':moment(_0x2e731e[0x1])[_0xba02('0x95')](_0xba02('0x96'))};_0x16630d[_0xba02('0x41')]=_['merge'](_0x16630d[_0xba02('0x41')],_0x2c1bef);}_0x16630d=_['merge']({},_0x16630d,_0x31f768['options']);return db[_0xba02('0x92')][_0xba02('0x20')]({'where':_0x16630d[_0xba02('0x41')]})[_0xba02('0x24')](function(_0x21027a){_0x43a05b[_0xba02('0x20')]=_0x21027a;if(_0x31f768[_0xba02('0x39')][_0xba02('0x46')]){_0x16630d[_0xba02('0x47')]=[{'all':!![]}];}return db[_0xba02('0x92')][_0xba02('0x48')](_0x16630d);})[_0xba02('0x24')](function(_0x24f779){if(_0x31f768['query'][_0xba02('0x97')]===_0xba02('0x98')){for(var _0x5538ca=0x0;_0x5538ca<_0x24f779['length'];_0x5538ca++){_0x24f779[_0x5538ca][_0xba02('0x52')]=juice(_0x24f779[_0x5538ca]['body']);}}_0x43a05b[_0xba02('0x49')]=_0x24f779;return _0x43a05b;});}})[_0xba02('0x24')](respondWithFilteredResult(_0x46f1bd,_0x16630d))[_0xba02('0x1b')](handleError(_0x46f1bd,null));};exports[_0xba02('0x2b')]=function(_0x139048,_0x1e5068){var _0xd19004,_0x246841={},_0xb87374;if(_0x139048[_0xba02('0x52')]['to']){_0xb87374=_0x139048[_0xba02('0x52')]['to'][_0xba02('0x94')](',')[0x0];}return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x139048[_0xba02('0x4b')]['id']},'include':[{'model':db[_0xba02('0x99')],'as':_0xba02('0x9a'),'include':[{'model':db[_0xba02('0x9b')],'as':_0xba02('0x9c'),'where':{'email':_0xb87374},'limit':0x1,'order':[[_0xba02('0x9d'),'DESC']]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0xba02('0x24')](handleEntityNotFound(_0x1e5068,null))[_0xba02('0x24')](function(_0x3ac3bd){if(_0x3ac3bd){_0xd19004=_0x3ac3bd;if(_0x3ac3bd[_0xba02('0x2f')]){if(_[_0xba02('0x66')](_0x139048['body'][_0xba02('0x9e')])){_0x139048[_0xba02('0x52')]['from']=util['format'](_0xba02('0x9f'),_0x3ac3bd[_0xba02('0x2a')],_0x3ac3bd[_0xba02('0x64')]||_0x3ac3bd['Smtp'][_0xba02('0x69')]);}if(_0x139048['body']['attachments']&&_0x139048[_0xba02('0x52')][_0xba02('0xa0')]['length']){for(var _0x56f400=0x0;_0x56f400<_0x139048[_0xba02('0x52')][_0xba02('0xa0')]['length'];_0x56f400+=0x1){_0x139048[_0xba02('0x52')][_0xba02('0xa0')][_0x56f400]={'filename':_0x139048['body'][_0xba02('0xa0')][_0x56f400][_0xba02('0x2a')],'path':path[_0xba02('0xa1')](config[_0xba02('0xa2')],_0xba02('0xa3'),_0x139048['body'][_0xba02('0xa0')][_0x56f400][_0xba02('0xa4')])};}}var _0x3189c1={'tls':{'rejectUnauthorized':![]}};if(_[_0xba02('0x66')](_0x3ac3bd[_0xba02('0x2f')]['service'])){if(_0x3ac3bd[_0xba02('0x2f')]['authentication']){_0x3189c1['auth']={'user':_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x69')],'pass':_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x6c')]};}_0x3189c1[_0xba02('0x6e')]=_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x6e')];_0x3189c1[_0xba02('0x6f')]=_0x3ac3bd['Smtp']['port'];_0x3189c1['secure']=_0x3ac3bd[_0xba02('0x2f')][_0xba02('0xa5')];}else{_0x3189c1[_0xba02('0x6d')]=_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x6d')];_0x3189c1[_0xba02('0xa6')]={'user':_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x69')],'pass':_0x3ac3bd[_0xba02('0x2f')][_0xba02('0x6c')]};}return respondWithRpcPromise(_0xba02('0xa7'),_0xba02('0xa8'),{'account':_0x3189c1,'message':_0x139048['body']});}else{throw new Error('List\x20not\x20found');}}})[_0xba02('0x24')](function(_0xed27bd){if(_0xed27bd){_0x246841=_0xed27bd;if(_0xd19004[_0xba02('0x9a')]){if(_0xd19004['List'][_0xba02('0x9c')][_0xba02('0x4f')]){return _0xd19004[_0xba02('0x9a')][_0xba02('0x9c')][0x0];}else{return db['CmContact'][_0xba02('0x59')](_[_0xba02('0xc')](_0x139048[_0xba02('0x52')],{'firstName':_0x139048[_0xba02('0x52')]['to'],'email':_0x139048['body']['to'],'phone':_0x139048['body']['to'],'ListId':_0xd19004['ListId']}));}}else{throw new Error(_0xba02('0xa9'));}}})[_0xba02('0x24')](function(_0x307162){if(_0x307162){var _0x10af76={'UserId':_0x139048[_0xba02('0x69')]['id'],'ContactId':_0x307162['id'],'MailAccountId':_0xd19004['id'],'inReplyTo':_0x246841['messageId'],'to':_0x139048[_0xba02('0x52')]['from'],'cc':_0x139048['body']['cc'],'subject':_0x139048[_0xba02('0x52')]['subject'],'attach':_0x139048[_0xba02('0x52')][_0xba02('0xaa')],'firstMsgDirection':_0xba02('0xab'),'lastMsgAt':moment()['format'](_0xba02('0x96')),'lastMsgDirection':_0xba02('0xab'),'Messages':[_[_0xba02('0x50')](_0x139048[_0xba02('0x52')],{'messageId':_0x246841[_0xba02('0xac')],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0xd19004['id'],'UserId':_0x139048[_0xba02('0x69')]['id'],'ContactId':_0x307162['id']})]};if(_0x139048[_0xba02('0x52')]['Interaction']){_0x10af76=_[_0xba02('0x50')](_0x10af76,_0x139048[_0xba02('0x52')][_0xba02('0xad')]);}return db[_0xba02('0x7c')]['create'](_0x10af76,{'include':[{'model':db[_0xba02('0x92')],'as':_0xba02('0xae')}]});}})[_0xba02('0x24')](respondWithResult(_0x1e5068,null))['catch'](handleError(_0x1e5068,null));};exports[_0xba02('0xaf')]=function(_0x449dc1,_0x4c6912){return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x449dc1[_0xba02('0x4b')]['id']},'include':[{'model':db['MailServerOut'],'as':'Smtp','raw':!![],'include':[{'model':db[_0xba02('0xb0')],'as':'CloudProvider','raw':!![]}]}]})['then'](handleEntityNotFound(_0x4c6912,null))[_0xba02('0x24')](function(_0x521e9d){if(!_0x521e9d[_0xba02('0x2f')])return;var _0x493bfe={'id':_0x521e9d['id'],'tls':{'rejectUnauthorized':![]}};if(_0x521e9d[_0xba02('0x63')]!==_0xba02('0x62')){_0x493bfe[_0xba02('0x6d')]=_0x521e9d['provider'];}else{_0x493bfe['host']=_0x521e9d['Smtp']['host'];_0x493bfe[_0xba02('0x6f')]=_0x521e9d[_0xba02('0x2f')]['port'];_0x493bfe[_0xba02('0xa5')]=_0x521e9d[_0xba02('0x2f')][_0xba02('0xa5')];}if(_0x521e9d[_0xba02('0x2f')][_0xba02('0x70')]){if(_0x521e9d[_0xba02('0x2f')][_0xba02('0x53')]){_0x493bfe['auth']={'type':_0xba02('0xb1'),'user':_0x521e9d[_0xba02('0x2f')]['user'],'accessToken':_0x521e9d[_0xba02('0x2f')][_0xba02('0xb0')][_0xba02('0xb2')]};}else{_0x493bfe[_0xba02('0xa6')]={'user':_0x521e9d[_0xba02('0x2f')][_0xba02('0x69')],'pass':_0x521e9d['Smtp']['pass']};}}return respondWithRpcPromise('VerifySmtp',_0xba02('0xaf'),{'account':_0x493bfe});})['then'](respondWithResult(_0x4c6912,null))[_0xba02('0x1b')](handleError(_0x4c6912,null));};exports['destroy']=function(_0x385b2,_0x2159a8){return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x385b2[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x2159a8,null))[_0xba02('0x24')](function(_0x40c9d4){if(_0x40c9d4&&_0x40c9d4[_0xba02('0x6d')]){throw new db[(_0xba02('0xb3'))][(_0xba02('0xb4'))](_0xba02('0xb5'));}return _0x40c9d4;})[_0xba02('0x24')](removeEntity(_0x2159a8,null))[_0xba02('0x1b')](handleError(_0x2159a8,null));};exports['addAgents']=function(_0x145d93,_0x2cdbd4){return db[_0xba02('0x33')][_0xba02('0x51')]({'where':{'id':_0x145d93[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x2cdbd4,null))[_0xba02('0x24')](function(_0x5a8b18){if(_0x5a8b18){return _0x5a8b18[_0xba02('0xb6')](_0x145d93[_0xba02('0x52')]['ids'],_[_0xba02('0x7d')](_0x145d93[_0xba02('0x52')],[_0xba02('0x5d'),'id'])||{})[_0xba02('0xb7')](function(_0x1c1c1a){for(var _0x4356ce=0x0;_0x4356ce<_0x145d93['body'][_0xba02('0x5d')]['length'];_0x4356ce+=0x1){socket[_0xba02('0xb8')](_0xba02('0xb9'),{'UserId':Number(_0x145d93[_0xba02('0x52')][_0xba02('0x5d')][_0x4356ce]),'MailAccountId':Number(_0x145d93[_0xba02('0x4b')]['id'])});}return _0x1c1c1a;});}})[_0xba02('0x24')](respondWithResult(_0x2cdbd4,null))[_0xba02('0x1b')](handleError(_0x2cdbd4,null));};exports[_0xba02('0xba')]=function(_0x42f914,_0x573f1f){return db[_0xba02('0x33')]['find']({'where':{'id':_0x42f914[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x573f1f,null))[_0xba02('0x24')](function(_0x14e2fe){if(_0x14e2fe){return _0x14e2fe[_0xba02('0xba')](_0x42f914[_0xba02('0x39')]['ids'])['then'](function(){if(_['isArray'](_0x42f914[_0xba02('0x39')]['ids'])){for(var _0x1fb12d=0x0;_0x1fb12d<_0x42f914['query'][_0xba02('0x5d')]['length'];_0x1fb12d+=0x1){socket[_0xba02('0xb8')](_0xba02('0xbb'),{'UserId':Number(_0x42f914[_0xba02('0x39')][_0xba02('0x5d')][_0x1fb12d]),'MailAccountId':Number(_0x42f914[_0xba02('0x4b')]['id'])});}}else{socket[_0xba02('0xb8')]('userMailAccount:remove',{'UserId':Number(_0x42f914[_0xba02('0x39')][_0xba02('0x5d')]),'MailAccountId':Number(_0x42f914[_0xba02('0x4b')]['id'])});}});}})['then'](respondWithStatusCode(_0x573f1f,null))['catch'](handleError(_0x573f1f,null));};exports['getAgents']=function(_0x57b02b,_0x37f20a){var _0x113fd8={};var _0x2306fc={};var _0xa202aa;var _0x499170;return db[_0xba02('0x33')][_0xba02('0x5f')]({'where':{'id':_0x57b02b[_0xba02('0x4b')]['id']}})[_0xba02('0x24')](handleEntityNotFound(_0x37f20a,null))[_0xba02('0x24')](function(_0x1351fe){if(_0x1351fe){_0xa202aa=_0x1351fe;_0x2306fc[_0xba02('0x38')]=_[_0xba02('0x4d')](db['User'][_0xba02('0x34')]);_0x2306fc[_0xba02('0x39')]=_['keys'](_0x57b02b[_0xba02('0x39')]);_0x2306fc[_0xba02('0x3a')]=_['intersection'](_0x2306fc[_0xba02('0x38')],_0x2306fc[_0xba02('0x39')]);_0x113fd8[_0xba02('0x3c')]=_[_0xba02('0x3b')](_0x2306fc[_0xba02('0x38')],qs[_0xba02('0x4e')](_0x57b02b[_0xba02('0x39')]['fields']));_0x113fd8[_0xba02('0x3c')]=_0x113fd8[_0xba02('0x3c')][_0xba02('0x4f')]?_0x113fd8[_0xba02('0x3c')]:_0x2306fc[_0xba02('0x38')];_0x113fd8['order']=qs[_0xba02('0x40')](_0x57b02b[_0xba02('0x39')][_0xba02('0x40')]);_0x113fd8['where']=qs[_0xba02('0x3a')](_[_0xba02('0x42')](_0x57b02b[_0xba02('0x39')],_0x2306fc['filters']));if(_0x57b02b[_0xba02('0x39')]['filter']){_0x113fd8[_0xba02('0x41')]=_[_0xba02('0x50')](_0x113fd8['where'],{'$or':_[_0xba02('0x32')](_0x113fd8['attributes'],function(_0x553965){var _0x1eefd5={};_0x1eefd5[_0x553965]={'$like':'%'+_0x57b02b[_0xba02('0x39')]['filter']+'%'};return _0x1eefd5;})});}_0x113fd8=_[_0xba02('0x50')]({},_0x113fd8,_0x57b02b[_0xba02('0x45')]);return _0xa202aa[_0xba02('0xbc')](_0x113fd8);}})[_0xba02('0x24')](function(_0x2ad3ac){if(_0x2ad3ac){_0x499170=_0x2ad3ac[_0xba02('0x4f')];if(!_0x57b02b[_0xba02('0x39')]['hasOwnProperty'](_0xba02('0x3d'))){_0x113fd8[_0xba02('0x3e')]=qs[_0xba02('0x3e')](_0x57b02b[_0xba02('0x39')][_0xba02('0x3e')]);_0x113fd8[_0xba02('0x21')]=qs[_0xba02('0x21')](_0x57b02b[_0xba02('0x39')][_0xba02('0x21')]);}return _0xa202aa[_0xba02('0xbc')](_0x113fd8);}})[_0xba02('0x24')](function(_0x2ea80e){if(_0x2ea80e){return _0x2ea80e?{'count':_0x499170,'rows':_0x2ea80e}:null;}})[_0xba02('0x24')](respondWithResult(_0x37f20a,null))[_0xba02('0x1b')](handleError(_0x37f20a,null));};