282f5a616cf795a543eab1a78b6a4c937ba6a0e9
[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 _0x7a54=['Smtp','pass','host','port','service','cpassword','get','UserProfileSection','getImap','addImap','getSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','omit','getInteractions','CmContact','Contact','User','fullname','internal','Tag','Tags','color','tag','sequelize','transaction','MailApplication','destroy','bulkCreate','priority','getApplications','MailMessage','$gte','split','YYYY-MM-DD\x20HH:mm:ss','inlineCss','send','CmList','List','Contacts','DESC','from','format','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','auth','secure','sendMail','List\x20not\x20found','ListId','messageId','subject','attach','out','Interaction','Messages','verifySmtp','authentication','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','isArray','userMailAccount:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','html-to-text','juice','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','http','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','Content-Range','reject','save','update','MailAccounts','UserProfileResource','then','sendStatus','stack','name','index','Imap','MailServerOut','Pause','mandatoryDispositionPause','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','nolimit','sort','where','pick','filter','merge','includeAll','include','MailAccount','findAll','show','MailServerIn','options','body','find','params','describe','addDisposition','MailAccountId','Disposition','getDispositions','findOne','length','hasOwnProperty','order','rows','removeDispositions','ids','CannedAnswer','create','getAnswers','removeAnswers','email','isNil','active','description','cservice','cauthentication','user','password'];(function(_0x5317b5,_0x4dfd6e){var _0x3b7ce2=function(_0xc146d6){while(--_0xc146d6){_0x5317b5['push'](_0x5317b5['shift']());}};_0x3b7ce2(++_0x4dfd6e);}(_0x7a54,0x106));var _0x47a5=function(_0x51a52c,_0x3b0a2a){_0x51a52c=_0x51a52c-0x0;var _0x1d0602=_0x7a54[_0x51a52c];return _0x1d0602;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0x47a5('0xe'));var juice=require(_0x47a5('0xf'));var Redis=require('ioredis');var authService=require(_0x47a5('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x47a5('0x11'));var logger=require(_0x47a5('0x12'))(_0x47a5('0x13'));var utils=require(_0x47a5('0x14'));var config=require(_0x47a5('0x15'));var licenseUtil=require(_0x47a5('0x16'));var db=require(_0x47a5('0x17'))['db'];config['redis']=_[_0x47a5('0x18')](config[_0x47a5('0x19')],{'host':_0x47a5('0x1a'),'port':0x18eb});var socket=require(_0x47a5('0x1b'))(new Redis(config[_0x47a5('0x19')]));require(_0x47a5('0x1c'))[_0x47a5('0x1d')](socket);var jayson=require(_0x47a5('0x1e'));var client=jayson['client'][_0x47a5('0x1f')]({'port':0x232b});function respondWithRpcPromise(_0x11faf5,_0x3b001e,_0x2a2cbb,_0x1ef44c){return new BPromise(function(_0x574af6,_0x549de3){var _0x138bc0=_0x1ef44c||client;return _0x138bc0['request'](_0x11faf5,_0x2a2cbb)['then'](function(_0x423a81){logger[_0x47a5('0x20')](_0x47a5('0x21'),_0x3b001e,_0x47a5('0x22'));logger[_0x47a5('0x23')](_0x47a5('0x24'),_0x3b001e,_0x47a5('0x22'),JSON[_0x47a5('0x25')](_0x423a81));if(_0x423a81[_0x47a5('0x26')]){if(_0x423a81['error'][_0x47a5('0x27')]===0x1f4){logger[_0x47a5('0x26')]('MailAccount,\x20%s,\x20%s',_0x3b001e,_0x423a81[_0x47a5('0x26')][_0x47a5('0x28')]);return _0x549de3(_0x423a81[_0x47a5('0x26')]['message']);}logger[_0x47a5('0x26')](_0x47a5('0x21'),_0x3b001e,_0x423a81[_0x47a5('0x26')][_0x47a5('0x28')]);return _0x574af6(_0x423a81['error'][_0x47a5('0x28')]);}else{logger[_0x47a5('0x20')]('MailAccount,\x20%s,\x20%s',_0x3b001e,_0x47a5('0x22'));_0x574af6(_0x423a81[_0x47a5('0x29')][_0x47a5('0x28')]);}})[_0x47a5('0x2a')](function(_0x3abd6a){logger['error']('MailAccount,\x20%s,\x20%s',_0x3b001e,_0x3abd6a);_0x549de3(_0x3abd6a);});});}function respondWithStatusCode(_0x136745,_0x5686db){_0x5686db=_0x5686db||0xcc;return function(_0x1ea9c8){if(_0x1ea9c8){return _0x136745['sendStatus'](_0x5686db);}return _0x136745[_0x47a5('0x2b')](_0x5686db)[_0x47a5('0x2c')]();};}function respondWithResult(_0x36ad34,_0x1dac65){_0x1dac65=_0x1dac65||0xc8;return function(_0x21f296){if(_0x21f296){return _0x36ad34[_0x47a5('0x2b')](_0x1dac65)[_0x47a5('0x2d')](_0x21f296);}};}function respondWithFilteredResult(_0x136b14,_0x16631f){return function(_0x361bfa){if(_0x361bfa){var _0x1127f8=_0x361bfa[_0x47a5('0x2e')],_0x11a4fa=_0x16631f['offset'],_0x3ad507=_0x16631f[_0x47a5('0x2f')]+_0x16631f[_0x47a5('0x30')],_0x528582;if(_0x3ad507>=_0x1127f8){_0x3ad507=_0x1127f8;_0x528582=0xc8;}else{_0x528582=0xce;}_0x136b14[_0x47a5('0x2b')](_0x528582);return _0x136b14['set'](_0x47a5('0x31'),_0x11a4fa+'-'+_0x3ad507+'/'+_0x1127f8)[_0x47a5('0x2d')](_0x361bfa);}return null;};}function patchUpdates(_0x39b50b){return function(_0x1f1c68){try{jsonpatch['apply'](_0x1f1c68,_0x39b50b,!![]);}catch(_0x50d875){return BPromise[_0x47a5('0x32')](_0x50d875);}return _0x1f1c68[_0x47a5('0x33')]();};}function saveUpdates(_0x5bd7eb,_0x4e1006){return function(_0x836303){if(_0x836303){return _0x836303[_0x47a5('0x34')](_0x5bd7eb)['then'](function(_0x42f70c){return _0x42f70c;});}return null;};}function removeEntity(_0x53119b,_0x122ed6){return function(_0xd972c){if(_0xd972c){return _0xd972c['destroy']()['then'](function(){var _0x274e34=_0xd972c['get']({'plain':!![]});var _0x403028=_0x47a5('0x35');return db[_0x47a5('0x36')]['destroy']({'where':{'type':_0x403028,'resourceId':_0x274e34['id']}})[_0x47a5('0x37')](function(){return _0xd972c;});})['then'](function(){_0x53119b['status'](0xcc)[_0x47a5('0x2c')]();});}};}function handleEntityNotFound(_0x5a8a7c,_0x25cce0){return function(_0x5ef577){if(!_0x5ef577){_0x5a8a7c[_0x47a5('0x38')](0x194);}return _0x5ef577;};}function handleError(_0x3534cb,_0x38c8d4){_0x38c8d4=_0x38c8d4||0x1f4;return function(_0x199698){logger[_0x47a5('0x26')](_0x199698[_0x47a5('0x39')]);if(_0x199698[_0x47a5('0x3a')]){delete _0x199698[_0x47a5('0x3a')];}_0x3534cb[_0x47a5('0x2b')](_0x38c8d4)['send'](_0x199698);};}exports[_0x47a5('0x3b')]=function(_0x10f136,_0x511c06){var _0x2c50d6={'include':[{'model':db['MailServerIn'],'as':_0x47a5('0x3c')},{'model':db[_0x47a5('0x3d')],'as':'Smtp'},{'model':db[_0x47a5('0x3e')],'as':_0x47a5('0x3f')}]},_0x2bf53d={},_0x1d4348={'count':0x0,'rows':[]};var _0x54ae35=_['map'](db['MailAccount'][_0x47a5('0x40')],function(_0x5c569e){return{'name':_0x5c569e[_0x47a5('0x41')],'type':_0x5c569e[_0x47a5('0x42')][_0x47a5('0x43')]};});_0x2bf53d[_0x47a5('0x44')]=_[_0x47a5('0x45')](_0x54ae35,_0x47a5('0x3a'));_0x2bf53d[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0x10f136[_0x47a5('0x46')]);_0x2bf53d[_0x47a5('0x48')]=_[_0x47a5('0x49')](_0x2bf53d[_0x47a5('0x44')],_0x2bf53d[_0x47a5('0x46')]);_0x2c50d6['attributes']=_[_0x47a5('0x49')](_0x2bf53d[_0x47a5('0x44')],qs[_0x47a5('0x4a')](_0x10f136[_0x47a5('0x46')]['fields']));_0x2c50d6[_0x47a5('0x4b')]=_0x2c50d6['attributes']['length']?_0x2c50d6['attributes']:_0x2bf53d['model'];if(!_0x10f136[_0x47a5('0x46')]['hasOwnProperty'](_0x47a5('0x4c'))){_0x2c50d6[_0x47a5('0x30')]=qs[_0x47a5('0x30')](_0x10f136['query'][_0x47a5('0x30')]);_0x2c50d6[_0x47a5('0x2f')]=qs['offset'](_0x10f136['query'][_0x47a5('0x2f')]);}_0x2c50d6['order']=qs[_0x47a5('0x4d')](_0x10f136[_0x47a5('0x46')][_0x47a5('0x4d')]);_0x2c50d6[_0x47a5('0x4e')]=qs[_0x47a5('0x48')](_[_0x47a5('0x4f')](_0x10f136[_0x47a5('0x46')],_0x2bf53d[_0x47a5('0x48')]),_0x54ae35);if(_0x10f136[_0x47a5('0x46')][_0x47a5('0x50')]){_0x2c50d6[_0x47a5('0x4e')]=_[_0x47a5('0x51')](_0x2c50d6[_0x47a5('0x4e')],{'$or':_[_0x47a5('0x45')](_0x54ae35,function(_0x4e5e7){if(_0x4e5e7[_0x47a5('0x42')]!=='VIRTUAL'){var _0x2d38de={};_0x2d38de[_0x4e5e7[_0x47a5('0x3a')]]={'$like':'%'+_0x10f136['query']['filter']+'%'};return _0x2d38de;}})});}_0x2c50d6=_[_0x47a5('0x51')]({},_0x2c50d6,_0x10f136['options']);var _0x13750d={'where':_0x2c50d6[_0x47a5('0x4e')]};return db['MailAccount']['count'](_0x13750d)[_0x47a5('0x37')](function(_0x52d409){_0x1d4348[_0x47a5('0x2e')]=_0x52d409;if(_0x10f136[_0x47a5('0x46')][_0x47a5('0x52')]){_0x2c50d6[_0x47a5('0x53')]=[{'all':!![]}];}return db[_0x47a5('0x54')][_0x47a5('0x55')](_0x2c50d6);})[_0x47a5('0x37')](function(_0x53e994){_0x1d4348['rows']=_0x53e994;return _0x1d4348;})[_0x47a5('0x37')](respondWithFilteredResult(_0x511c06,_0x2c50d6))[_0x47a5('0x2a')](handleError(_0x511c06,null));};exports[_0x47a5('0x56')]=function(_0x9ea93e,_0x2c7020){var _0x2c0c86={'raw':![],'where':{'id':_0x9ea93e['params']['id']},'include':[{'model':db[_0x47a5('0x57')],'as':_0x47a5('0x3c')},{'model':db[_0x47a5('0x3d')],'as':'Smtp'},{'model':db[_0x47a5('0x3e')],'as':'mandatoryDispositionPause'}]},_0x249de5={};_0x249de5[_0x47a5('0x44')]=_[_0x47a5('0x47')](db[_0x47a5('0x54')][_0x47a5('0x40')]);_0x249de5['query']=_[_0x47a5('0x47')](_0x9ea93e[_0x47a5('0x46')]);_0x249de5[_0x47a5('0x48')]=_[_0x47a5('0x49')](_0x249de5[_0x47a5('0x44')],_0x249de5[_0x47a5('0x46')]);_0x2c0c86[_0x47a5('0x4b')]=_['intersection'](_0x249de5[_0x47a5('0x44')],qs[_0x47a5('0x4a')](_0x9ea93e[_0x47a5('0x46')][_0x47a5('0x4a')]));_0x2c0c86[_0x47a5('0x4b')]=_0x2c0c86[_0x47a5('0x4b')]['length']?_0x2c0c86[_0x47a5('0x4b')]:_0x249de5[_0x47a5('0x44')];if(_0x9ea93e[_0x47a5('0x46')]['includeAll']){_0x2c0c86[_0x47a5('0x53')]=[{'all':!![]}];}_0x2c0c86=_[_0x47a5('0x51')]({},_0x2c0c86,_0x9ea93e[_0x47a5('0x58')]);return db['MailAccount']['find'](_0x2c0c86)[_0x47a5('0x37')](handleEntityNotFound(_0x2c7020,null))[_0x47a5('0x37')](respondWithResult(_0x2c7020,null))['catch'](handleError(_0x2c7020,null));};exports['update']=function(_0x6d6b2b,_0x4d6a82){if(_0x6d6b2b[_0x47a5('0x59')]['id']){delete _0x6d6b2b['body']['id'];}return db['MailAccount'][_0x47a5('0x5a')]({'where':{'id':_0x6d6b2b[_0x47a5('0x5b')]['id']},'include':[{'model':db['MailServerIn'],'as':_0x47a5('0x3c')},{'model':db[_0x47a5('0x3d')],'as':'Smtp'},{'model':db['Pause'],'as':_0x47a5('0x3f')}]})[_0x47a5('0x37')](handleEntityNotFound(_0x4d6a82,null))[_0x47a5('0x37')](saveUpdates(_0x6d6b2b[_0x47a5('0x59')],null))['then'](function(_0x199621){if(_0x199621&&_0x6d6b2b[_0x47a5('0x59')][_0x47a5('0x3c')]){return db['MailServerIn'][_0x47a5('0x34')](_0x6d6b2b['body'][_0x47a5('0x3c')],{'where':{'MailAccountId':_0x199621['id']}})[_0x47a5('0x37')](function(){return _0x199621;});}return _0x199621;})[_0x47a5('0x37')](function(_0x1c485b){if(_0x1c485b&&_0x6d6b2b[_0x47a5('0x59')]['Smtp']){return db[_0x47a5('0x3d')]['update'](_0x6d6b2b['body']['Smtp'],{'where':{'MailAccountId':_0x1c485b['id']}})['then'](function(){return _0x1c485b;});}return _0x1c485b;})[_0x47a5('0x37')](respondWithResult(_0x4d6a82,null))[_0x47a5('0x2a')](handleError(_0x4d6a82,null));};exports[_0x47a5('0x5c')]=function(_0x52e3ee,_0x4d3db1){return db[_0x47a5('0x54')][_0x47a5('0x5c')]()[_0x47a5('0x37')](respondWithResult(_0x4d3db1,null))[_0x47a5('0x2a')](handleError(_0x4d3db1,null));};exports[_0x47a5('0x5d')]=function(_0x4b5d0c,_0x3474b7,_0x519e9e){if(_0x4b5d0c[_0x47a5('0x59')]['id']){delete _0x4b5d0c[_0x47a5('0x59')]['id'];}return db['MailAccount'][_0x47a5('0x5a')]({'where':{'id':_0x4b5d0c[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x3474b7,null))[_0x47a5('0x37')](function(_0x2d6494){if(_0x2d6494){_0x4b5d0c[_0x47a5('0x59')][_0x47a5('0x5e')]=_0x2d6494['id'];return db[_0x47a5('0x5f')]['create'](_0x4b5d0c[_0x47a5('0x59')]);}})[_0x47a5('0x37')](respondWithResult(_0x3474b7,null))[_0x47a5('0x2a')](handleError(_0x3474b7,null));};exports[_0x47a5('0x60')]=function(_0x396cb0,_0x4bbe14,_0xbec033){var _0xdfcecc={'raw':![],'where':{}};var _0x1224bc={};var _0x144aaa={'count':0x0,'rows':[]};return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x396cb0[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x4bbe14,null))[_0x47a5('0x37')](function(_0x44cb90){if(_0x44cb90){_0x1224bc[_0x47a5('0x44')]=_[_0x47a5('0x47')](db[_0x47a5('0x5f')][_0x47a5('0x40')]);_0x1224bc[_0x47a5('0x46')]=_['keys'](_0x396cb0[_0x47a5('0x46')]);_0x1224bc[_0x47a5('0x48')]=_[_0x47a5('0x49')](_0x1224bc['model'],_0x1224bc[_0x47a5('0x46')]);_0xdfcecc[_0x47a5('0x4b')]=_[_0x47a5('0x49')](_0x1224bc[_0x47a5('0x44')],qs['fields'](_0x396cb0[_0x47a5('0x46')]['fields']));_0xdfcecc[_0x47a5('0x4b')]=_0xdfcecc['attributes'][_0x47a5('0x62')]?_0xdfcecc['attributes']:_0x1224bc[_0x47a5('0x44')];if(!_0x396cb0[_0x47a5('0x46')][_0x47a5('0x63')]('nolimit')){_0xdfcecc['limit']=qs['limit'](_0x396cb0[_0x47a5('0x46')][_0x47a5('0x30')]);_0xdfcecc[_0x47a5('0x2f')]=qs[_0x47a5('0x2f')](_0x396cb0['query'][_0x47a5('0x2f')]);}_0xdfcecc[_0x47a5('0x64')]=qs[_0x47a5('0x4d')](_0x396cb0[_0x47a5('0x46')][_0x47a5('0x4d')]);_0xdfcecc[_0x47a5('0x4e')]=qs[_0x47a5('0x48')](_[_0x47a5('0x4f')](_0x396cb0[_0x47a5('0x46')],_0x1224bc[_0x47a5('0x48')]));_0xdfcecc[_0x47a5('0x4e')][_0x47a5('0x5e')]=_0x44cb90['id'];if(_0x396cb0['query'][_0x47a5('0x50')]){_0xdfcecc['where']=_[_0x47a5('0x51')](_0xdfcecc[_0x47a5('0x4e')],{'$or':_[_0x47a5('0x45')](_0xdfcecc[_0x47a5('0x4b')],function(_0x40e584){var _0xa9c853={};_0xa9c853[_0x40e584]={'$like':'%'+_0x396cb0[_0x47a5('0x46')][_0x47a5('0x50')]+'%'};return _0xa9c853;})});}_0xdfcecc=_[_0x47a5('0x51')]({},_0xdfcecc,_0x396cb0[_0x47a5('0x58')]);return db[_0x47a5('0x5f')][_0x47a5('0x2e')]({'where':_0xdfcecc[_0x47a5('0x4e')]})[_0x47a5('0x37')](function(_0x441d64){_0x144aaa['count']=_0x441d64;if(_0x396cb0['query']['includeAll']){_0xdfcecc['include']=[{'all':!![]}];}return db[_0x47a5('0x5f')][_0x47a5('0x55')](_0xdfcecc);})['then'](function(_0x732e00){_0x144aaa[_0x47a5('0x65')]=_0x732e00;return _0x144aaa;});}})[_0x47a5('0x37')](respondWithFilteredResult(_0x4bbe14,_0xdfcecc))[_0x47a5('0x2a')](handleError(_0x4bbe14,null));};exports[_0x47a5('0x66')]=function(_0x930d25,_0x218dfa,_0x1c7302){return db[_0x47a5('0x54')][_0x47a5('0x5a')]({'where':{'id':_0x930d25[_0x47a5('0x5b')]['id']}})['then'](handleEntityNotFound(_0x218dfa,null))[_0x47a5('0x37')](function(_0x1fbd42){if(_0x1fbd42){return _0x1fbd42[_0x47a5('0x66')](_0x930d25['query'][_0x47a5('0x67')]);}})[_0x47a5('0x37')](respondWithStatusCode(_0x218dfa,null))[_0x47a5('0x2a')](handleError(_0x218dfa,null));};exports['addAnswer']=function(_0x19dc8c,_0x5205ba,_0x49d93d){if(_0x19dc8c[_0x47a5('0x59')]['id']){delete _0x19dc8c[_0x47a5('0x59')]['id'];}return db[_0x47a5('0x54')][_0x47a5('0x5a')]({'where':{'id':_0x19dc8c[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x5205ba,null))['then'](function(_0x592322){if(_0x592322){_0x19dc8c[_0x47a5('0x59')]['MailAccountId']=_0x592322['id'];return db[_0x47a5('0x68')][_0x47a5('0x69')](_0x19dc8c[_0x47a5('0x59')]);}})[_0x47a5('0x37')](respondWithResult(_0x5205ba,null))['catch'](handleError(_0x5205ba,null));};exports[_0x47a5('0x6a')]=function(_0x550bde,_0x5f3a04,_0x139c79){var _0x391f8e={'raw':![],'where':{}};var _0x5b91f7={};var _0x1926bd={'count':0x0,'rows':[]};return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x550bde['params']['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x5f3a04,null))['then'](function(_0x2307da){if(_0x2307da){_0x5b91f7[_0x47a5('0x44')]=_[_0x47a5('0x47')](db['CannedAnswer'][_0x47a5('0x40')]);_0x5b91f7[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0x550bde['query']);_0x5b91f7[_0x47a5('0x48')]=_['intersection'](_0x5b91f7[_0x47a5('0x44')],_0x5b91f7['query']);_0x391f8e[_0x47a5('0x4b')]=_[_0x47a5('0x49')](_0x5b91f7[_0x47a5('0x44')],qs[_0x47a5('0x4a')](_0x550bde['query'][_0x47a5('0x4a')]));_0x391f8e[_0x47a5('0x4b')]=_0x391f8e[_0x47a5('0x4b')][_0x47a5('0x62')]?_0x391f8e[_0x47a5('0x4b')]:_0x5b91f7['model'];if(!_0x550bde['query'][_0x47a5('0x63')]('nolimit')){_0x391f8e[_0x47a5('0x30')]=qs[_0x47a5('0x30')](_0x550bde[_0x47a5('0x46')]['limit']);_0x391f8e[_0x47a5('0x2f')]=qs[_0x47a5('0x2f')](_0x550bde['query'][_0x47a5('0x2f')]);}_0x391f8e[_0x47a5('0x64')]=qs[_0x47a5('0x4d')](_0x550bde[_0x47a5('0x46')]['sort']);_0x391f8e['where']=qs[_0x47a5('0x48')](_[_0x47a5('0x4f')](_0x550bde['query'],_0x5b91f7[_0x47a5('0x48')]));_0x391f8e[_0x47a5('0x4e')]['MailAccountId']=_0x2307da['id'];if(_0x550bde[_0x47a5('0x46')][_0x47a5('0x50')]){_0x391f8e[_0x47a5('0x4e')]=_['merge'](_0x391f8e[_0x47a5('0x4e')],{'$or':_['map'](_0x391f8e[_0x47a5('0x4b')],function(_0x5e2946){var _0x243c8b={};_0x243c8b[_0x5e2946]={'$like':'%'+_0x550bde[_0x47a5('0x46')]['filter']+'%'};return _0x243c8b;})});}_0x391f8e=_[_0x47a5('0x51')]({},_0x391f8e,_0x550bde['options']);return db[_0x47a5('0x68')][_0x47a5('0x2e')]({'where':_0x391f8e[_0x47a5('0x4e')]})[_0x47a5('0x37')](function(_0x49b76a){_0x1926bd[_0x47a5('0x2e')]=_0x49b76a;if(_0x550bde['query']['includeAll']){_0x391f8e[_0x47a5('0x53')]=[{'all':!![]}];}return db[_0x47a5('0x68')][_0x47a5('0x55')](_0x391f8e);})[_0x47a5('0x37')](function(_0x380c8b){_0x1926bd['rows']=_0x380c8b;return _0x1926bd;});}})[_0x47a5('0x37')](respondWithFilteredResult(_0x5f3a04,_0x391f8e))[_0x47a5('0x2a')](handleError(_0x5f3a04,null));};exports[_0x47a5('0x6b')]=function(_0x11b68b,_0x50b98e,_0x240db9){return db['MailAccount'][_0x47a5('0x5a')]({'where':{'id':_0x11b68b[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x50b98e,null))[_0x47a5('0x37')](function(_0x29a1cf){if(_0x29a1cf){return _0x29a1cf[_0x47a5('0x6b')](_0x11b68b[_0x47a5('0x46')][_0x47a5('0x67')]);}})[_0x47a5('0x37')](respondWithStatusCode(_0x50b98e,null))['catch'](handleError(_0x50b98e,null));};exports[_0x47a5('0x69')]=function(_0x18f8b2,_0x59266f){var _0x2fd46f={'name':_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x3a')],'key':_0x18f8b2['body']['key'],'email':_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x6c')],'ListId':_0x18f8b2['body']['ListId'],'active':!_[_0x47a5('0x6d')](_0x18f8b2[_0x47a5('0x59')]['active'])?_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x6e')]:!![],'description':_0x18f8b2['body'][_0x47a5('0x6f')]||null,'Imap':{},'Smtp':{}};if(_[_0x47a5('0x6d')](_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x70')])){if(_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x71')]){_0x2fd46f['Imap']['user']=_0x2fd46f['Smtp'][_0x47a5('0x72')]=_0x18f8b2[_0x47a5('0x59')]['cuser'];_0x2fd46f[_0x47a5('0x3c')][_0x47a5('0x73')]=_0x2fd46f[_0x47a5('0x74')][_0x47a5('0x75')]=_0x18f8b2[_0x47a5('0x59')]['cpassword'];}else{_0x2fd46f[_0x47a5('0x3c')]['authentication']=_0x2fd46f['Smtp']['authentication']=![];}_0x2fd46f[_0x47a5('0x3c')]['host']=_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x3c')][_0x47a5('0x76')];_0x2fd46f['Imap'][_0x47a5('0x77')]=_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x3c')][_0x47a5('0x77')];_0x2fd46f[_0x47a5('0x74')]['host']=_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x74')]['host'];_0x2fd46f[_0x47a5('0x74')][_0x47a5('0x77')]=_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x74')][_0x47a5('0x77')];}else{_0x2fd46f[_0x47a5('0x3c')]['service']=_0x2fd46f[_0x47a5('0x74')][_0x47a5('0x78')]=_0x18f8b2['body'][_0x47a5('0x70')];_0x2fd46f[_0x47a5('0x3c')][_0x47a5('0x72')]=_0x2fd46f[_0x47a5('0x74')]['user']=_0x18f8b2['body']['cuser'];_0x2fd46f['Imap'][_0x47a5('0x73')]=_0x2fd46f[_0x47a5('0x74')][_0x47a5('0x75')]=_0x18f8b2[_0x47a5('0x59')][_0x47a5('0x79')];}return db[_0x47a5('0x54')][_0x47a5('0x69')](_0x2fd46f,{'include':[{'model':db[_0x47a5('0x3d')],'as':'Smtp'},{'model':db[_0x47a5('0x57')],'as':_0x47a5('0x3c')}]})[_0x47a5('0x37')](function(_0x399528){var _0x47be87=_0x18f8b2['user'][_0x47a5('0x7a')]({'plain':!![]});if(!_0x47be87)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x47be87['role']===_0x47a5('0x72')){var _0x3f0a15=_0x399528['get']({'plain':!![]});return db[_0x47a5('0x7b')][_0x47a5('0x5a')]({'where':{'name':_0x47a5('0x35'),'userProfileId':_0x47be87['userProfileId']},'raw':!![]})[_0x47a5('0x37')](function(_0xee23c7){if(_0xee23c7&&_0xee23c7['autoAssociation']===0x0){return db[_0x47a5('0x36')][_0x47a5('0x69')]({'name':_0x3f0a15[_0x47a5('0x3a')],'resourceId':_0x3f0a15['id'],'type':_0xee23c7[_0x47a5('0x3a')],'sectionId':_0xee23c7['id']},{})[_0x47a5('0x37')](function(){return _0x399528;});}else{return _0x399528;}})[_0x47a5('0x2a')](function(_0x482c87){logger[_0x47a5('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x482c87);throw _0x482c87;});}return _0x399528;})[_0x47a5('0x37')](respondWithResult(_0x59266f,0xc9))[_0x47a5('0x2a')](handleError(_0x59266f,null));};exports[_0x47a5('0x7c')]=function(_0x25f188,_0x522972,_0x3d93ad){return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x25f188[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x522972,null))[_0x47a5('0x37')](function(_0x31b8b1){if(_0x31b8b1){return _0x31b8b1[_0x47a5('0x7c')]();}return null;})[_0x47a5('0x37')](respondWithResult(_0x522972,null))[_0x47a5('0x2a')](handleError(_0x522972,null));};exports[_0x47a5('0x7d')]=function(_0x301031,_0x52a2be,_0x4218fd){if(_0x301031[_0x47a5('0x59')]['id']){delete _0x301031['body']['id'];}return db[_0x47a5('0x54')][_0x47a5('0x5a')]({'where':{'id':_0x301031[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x52a2be,null))[_0x47a5('0x37')](function(_0x58fac0){if(_0x58fac0){_0x301031[_0x47a5('0x59')][_0x47a5('0x5e')]=_0x58fac0['id'];return db[_0x47a5('0x57')][_0x47a5('0x69')](_0x301031[_0x47a5('0x59')]);}})[_0x47a5('0x37')](respondWithResult(_0x52a2be,null))[_0x47a5('0x2a')](handleError(_0x52a2be,null));};exports['removeImap']=function(_0x596562,_0xa3d578,_0x580ce8){return db[_0x47a5('0x54')]['findOne']({'where':{'id':_0x596562[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0xa3d578,null))[_0x47a5('0x37')](function(_0x2bc7ae){if(_0x2bc7ae){return _0x2bc7ae['setImap'](null);}return null;})[_0x47a5('0x37')](respondWithStatusCode(_0xa3d578,null))[_0x47a5('0x2a')](handleError(_0xa3d578,null));};exports[_0x47a5('0x7e')]=function(_0x5a150a,_0x581759,_0x30375f){return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x5a150a[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x581759,null))[_0x47a5('0x37')](function(_0x1c0323){if(_0x1c0323){return _0x1c0323[_0x47a5('0x7e')]();}return null;})['then'](respondWithResult(_0x581759,null))[_0x47a5('0x2a')](handleError(_0x581759,null));};exports['addSmtp']=function(_0x346322,_0xc3b5e1,_0x5b0b0b){if(_0x346322['body']['id']){delete _0x346322[_0x47a5('0x59')]['id'];}return db[_0x47a5('0x54')]['find']({'where':{'id':_0x346322[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0xc3b5e1,null))[_0x47a5('0x37')](function(_0x44567e){if(_0x44567e){_0x346322['body'][_0x47a5('0x5e')]=_0x44567e['id'];return db['MailServerOut']['create'](_0x346322['body']);}})[_0x47a5('0x37')](respondWithResult(_0xc3b5e1,null))['catch'](handleError(_0xc3b5e1,null));};exports[_0x47a5('0x7f')]=function(_0x156d51,_0x401139,_0x2005d5){return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x156d51[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x401139,null))[_0x47a5('0x37')](function(_0x2200f9){if(_0x2200f9){return _0x2200f9[_0x47a5('0x80')](null);}return null;})[_0x47a5('0x37')](respondWithStatusCode(_0x401139,null))[_0x47a5('0x2a')](handleError(_0x401139,null));};exports[_0x47a5('0x81')]=function(_0xff64fb,_0x5e17cb,_0xdd95c8){return db[_0x47a5('0x82')][_0x47a5('0x5a')]({'where':{'id':_0xff64fb[_0x47a5('0x5b')]['id']}})['then'](handleEntityNotFound(_0x5e17cb,null))[_0x47a5('0x37')](function(_0x49998b){if(_0x49998b){return _0x49998b[_0x47a5('0x81')](_0xff64fb['body'][_0x47a5('0x67')],_[_0x47a5('0x83')](_0xff64fb[_0x47a5('0x59')],['ids','id'])||{});}})[_0x47a5('0x37')](respondWithResult(_0x5e17cb,null))[_0x47a5('0x2a')](handleError(_0x5e17cb,null));};exports[_0x47a5('0x84')]=function(_0x4ac804,_0x52798d,_0x20f320){var _0x1a5e07={'raw':![],'where':{}};var _0x31c88c={};var _0x4594df={'count':0x0,'rows':[]};return db[_0x47a5('0x54')]['findOne']({'where':{'id':_0x4ac804[_0x47a5('0x5b')]['id']}})['then'](handleEntityNotFound(_0x52798d,null))[_0x47a5('0x37')](function(_0xdeaf4e){if(_0xdeaf4e){_0x31c88c[_0x47a5('0x44')]=_[_0x47a5('0x47')](db['MailInteraction']['rawAttributes']);_0x31c88c[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0x4ac804[_0x47a5('0x46')]);_0x31c88c[_0x47a5('0x48')]=_[_0x47a5('0x49')](_0x31c88c[_0x47a5('0x44')],_0x31c88c[_0x47a5('0x46')]);_0x1a5e07[_0x47a5('0x4b')]=_[_0x47a5('0x49')](_0x31c88c['model'],qs['fields'](_0x4ac804[_0x47a5('0x46')]['fields']));_0x1a5e07[_0x47a5('0x4b')]=_0x1a5e07[_0x47a5('0x4b')][_0x47a5('0x62')]?_0x1a5e07['attributes']:_0x31c88c[_0x47a5('0x44')];if(!_0x4ac804[_0x47a5('0x46')]['hasOwnProperty'](_0x47a5('0x4c'))){_0x1a5e07['limit']=qs[_0x47a5('0x30')](_0x4ac804[_0x47a5('0x46')][_0x47a5('0x30')]);_0x1a5e07['offset']=qs['offset'](_0x4ac804['query']['offset']);}_0x1a5e07['order']=qs[_0x47a5('0x4d')](_0x4ac804['query'][_0x47a5('0x4d')]);_0x1a5e07[_0x47a5('0x4e')]=qs['filters'](_['pick'](_0x4ac804['query'],_0x31c88c[_0x47a5('0x48')]));_0x1a5e07['where']['MailAccountId']=_0xdeaf4e['id'];if(_0x4ac804['query'][_0x47a5('0x50')]){_0x1a5e07[_0x47a5('0x4e')]=_[_0x47a5('0x51')](_0x1a5e07[_0x47a5('0x4e')],{'$or':_['map'](_0x1a5e07[_0x47a5('0x4b')],function(_0x559943){var _0x2b6f9e={};_0x2b6f9e[_0x559943]={'$like':'%'+_0x4ac804['query'][_0x47a5('0x50')]+'%'};return _0x2b6f9e;})});}_0x1a5e07=_[_0x47a5('0x51')]({},_0x1a5e07,_0x4ac804[_0x47a5('0x58')]);return db['MailInteraction'][_0x47a5('0x2e')]({'where':_0x1a5e07[_0x47a5('0x4e')]})[_0x47a5('0x37')](function(_0x31100e){_0x4594df['count']=_0x31100e;if(_0x4ac804[_0x47a5('0x46')][_0x47a5('0x52')]){_0x1a5e07[_0x47a5('0x53')]=[{'model':db[_0x47a5('0x85')],'as':_0x47a5('0x86'),'required':![]},{'model':db[_0x47a5('0x87')],'as':'Owner','attributes':[_0x47a5('0x3a'),_0x47a5('0x88'),_0x47a5('0x89')],'required':![]},{'model':db[_0x47a5('0x8a')],'as':_0x47a5('0x8b'),'attributes':['id',_0x47a5('0x3a'),_0x47a5('0x8c')],'where':_0x4ac804[_0x47a5('0x46')][_0x47a5('0x8d')]?{'id':_0x4ac804[_0x47a5('0x46')][_0x47a5('0x8d')]}:undefined,'required':_0x4ac804[_0x47a5('0x46')][_0x47a5('0x8d')]?!![]:![]}];}return db[_0x47a5('0x82')][_0x47a5('0x55')](_0x1a5e07);})[_0x47a5('0x37')](function(_0x40505e){_0x4594df['rows']=_0x40505e;return _0x4594df;});}})[_0x47a5('0x37')](respondWithFilteredResult(_0x52798d,_0x1a5e07))['catch'](handleError(_0x52798d,null));};exports['addApplications']=function(_0x1542b9,_0x154365,_0x36f910){return db['MailAccount'][_0x47a5('0x61')]({'where':{'id':_0x1542b9[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x154365,null))[_0x47a5('0x37')](function(_0x30e5fb){if(_0x30e5fb){return db[_0x47a5('0x8e')][_0x47a5('0x8f')](function(_0x46cb3a){return db[_0x47a5('0x90')][_0x47a5('0x91')]({'where':{'MailAccountId':_0x1542b9[_0x47a5('0x5b')]['id']},'transaction':_0x46cb3a})[_0x47a5('0x37')](function(_0x203bc9){var _0x4d7fd4=_['map'](_0x1542b9[_0x47a5('0x59')],function(_0x5e7d56){_0x5e7d56[_0x47a5('0x5e')]=_0x1542b9[_0x47a5('0x5b')]['id'];return _0x5e7d56;});return db[_0x47a5('0x90')][_0x47a5('0x92')](_0x4d7fd4,{'transaction':_0x46cb3a});});})[_0x47a5('0x37')](function(){return db[_0x47a5('0x90')]['findAndCountAll']({'where':{'MailAccountId':_0x1542b9[_0x47a5('0x5b')]['id']},'order':_0x47a5('0x93')});});}})[_0x47a5('0x37')](respondWithResult(_0x154365,null))['catch'](handleError(_0x154365,null));};exports[_0x47a5('0x94')]=function(_0x439f60,_0x3ecc41,_0x3e4148){var _0x4c46ea={};var _0x23e649={};var _0x35e20f;var _0x46615a;return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x439f60[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x3ecc41,null))[_0x47a5('0x37')](function(_0x2ac386){if(_0x2ac386){_0x35e20f=_0x2ac386;_0x23e649[_0x47a5('0x44')]=_[_0x47a5('0x47')](db[_0x47a5('0x90')][_0x47a5('0x40')]);_0x23e649[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0x439f60[_0x47a5('0x46')]);_0x23e649[_0x47a5('0x48')]=_['intersection'](_0x23e649[_0x47a5('0x44')],_0x23e649['query']);_0x4c46ea[_0x47a5('0x4b')]=_[_0x47a5('0x49')](_0x23e649[_0x47a5('0x44')],qs[_0x47a5('0x4a')](_0x439f60[_0x47a5('0x46')][_0x47a5('0x4a')]));_0x4c46ea[_0x47a5('0x4b')]=_0x4c46ea[_0x47a5('0x4b')]['length']?_0x4c46ea[_0x47a5('0x4b')]:_0x23e649[_0x47a5('0x44')];_0x4c46ea[_0x47a5('0x64')]=qs['sort'](_0x439f60[_0x47a5('0x46')][_0x47a5('0x4d')]);_0x4c46ea[_0x47a5('0x4e')]=qs[_0x47a5('0x48')](_['pick'](_0x439f60[_0x47a5('0x46')],_0x23e649[_0x47a5('0x48')]));if(_0x439f60[_0x47a5('0x46')][_0x47a5('0x50')]){_0x4c46ea['where']=_[_0x47a5('0x51')](_0x4c46ea['where'],{'$or':_['map'](_0x4c46ea[_0x47a5('0x4b')],function(_0x1efae8){var _0x407fd2={};_0x407fd2[_0x1efae8]={'$like':'%'+_0x439f60[_0x47a5('0x46')]['filter']+'%'};return _0x407fd2;})});}_0x4c46ea=_[_0x47a5('0x51')]({},_0x4c46ea,_0x439f60[_0x47a5('0x58')]);return _0x35e20f[_0x47a5('0x94')](_0x4c46ea);}})[_0x47a5('0x37')](function(_0xf470f5){if(_0xf470f5){_0x46615a=_0xf470f5[_0x47a5('0x62')];if(!_0x439f60['query'][_0x47a5('0x63')](_0x47a5('0x4c'))){_0x4c46ea[_0x47a5('0x30')]=qs[_0x47a5('0x30')](_0x439f60[_0x47a5('0x46')]['limit']);_0x4c46ea[_0x47a5('0x2f')]=qs['offset'](_0x439f60[_0x47a5('0x46')]['offset']);}return _0x35e20f[_0x47a5('0x94')](_0x4c46ea);}})['then'](function(_0x56a3c4){if(_0x56a3c4){return _0x56a3c4?{'count':_0x46615a,'rows':_0x56a3c4}:null;}})[_0x47a5('0x37')](respondWithResult(_0x3ecc41,null))[_0x47a5('0x2a')](handleError(_0x3ecc41,null));};exports['getMessages']=function(_0xa07bc6,_0x2d7e13,_0x530542){var _0x3a09e6={'raw':!![],'where':{}};var _0x112e1e={};var _0x36871e={'count':0x0,'rows':[]};return db['MailAccount'][_0x47a5('0x61')]({'where':{'id':_0xa07bc6[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x2d7e13,null))[_0x47a5('0x37')](function(_0x37721c){if(_0x37721c){_0x112e1e['model']=_['keys'](db[_0x47a5('0x95')]['rawAttributes']);_0x112e1e[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0xa07bc6['query']);_0x112e1e['filters']=_[_0x47a5('0x49')](_0x112e1e['model'],_0x112e1e[_0x47a5('0x46')]);_0x3a09e6[_0x47a5('0x4b')]=_[_0x47a5('0x49')](_0x112e1e[_0x47a5('0x44')],qs[_0x47a5('0x4a')](_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x4a')]));_0x3a09e6['attributes']=_0x3a09e6[_0x47a5('0x4b')]['length']?_0x3a09e6[_0x47a5('0x4b')]:_0x112e1e[_0x47a5('0x44')];if(!_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x63')](_0x47a5('0x4c'))){_0x3a09e6[_0x47a5('0x30')]=qs[_0x47a5('0x30')](_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x30')]);_0x3a09e6[_0x47a5('0x2f')]=qs[_0x47a5('0x2f')](_0xa07bc6[_0x47a5('0x46')]['offset']);}_0x3a09e6[_0x47a5('0x64')]=qs[_0x47a5('0x4d')](_0xa07bc6[_0x47a5('0x46')]['sort']);_0x3a09e6[_0x47a5('0x4e')]=qs[_0x47a5('0x48')](_[_0x47a5('0x4f')](_0xa07bc6[_0x47a5('0x46')],_0x112e1e[_0x47a5('0x48')]));_0x3a09e6[_0x47a5('0x4e')]['MailAccountId']=_0x37721c['id'];if(_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x50')]){_0x3a09e6[_0x47a5('0x4e')]=_[_0x47a5('0x51')](_0x3a09e6[_0x47a5('0x4e')],{'$or':_[_0x47a5('0x45')](_0x3a09e6[_0x47a5('0x4b')],function(_0x188bdf){var _0x355c4b={};_0x355c4b[_0x188bdf]={'$like':'%'+_0xa07bc6[_0x47a5('0x46')]['filter']+'%'};return _0x355c4b;})});}if(_0xa07bc6['query'][_0x47a5('0x96')]){var _0x144524=_0xa07bc6[_0x47a5('0x46')]['$gte'][_0x47a5('0x97')](',');var _0x50b7fc={};_0x50b7fc[_0x144524[0x0]]={'$gte':moment(_0x144524[0x1])['format'](_0x47a5('0x98'))};_0x3a09e6[_0x47a5('0x4e')]=_[_0x47a5('0x51')](_0x3a09e6[_0x47a5('0x4e')],_0x50b7fc);}_0x3a09e6=_['merge']({},_0x3a09e6,_0xa07bc6[_0x47a5('0x58')]);return db[_0x47a5('0x95')]['count']({'where':_0x3a09e6['where']})['then'](function(_0x28a52a){_0x36871e[_0x47a5('0x2e')]=_0x28a52a;if(_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x52')]){_0x3a09e6[_0x47a5('0x53')]=[{'all':!![]}];}return db['MailMessage']['findAll'](_0x3a09e6);})[_0x47a5('0x37')](function(_0x1b0fd4){if(_0xa07bc6[_0x47a5('0x46')][_0x47a5('0x99')]==='true'){for(var _0x873e26=0x0;_0x873e26<_0x1b0fd4[_0x47a5('0x62')];_0x873e26++){_0x1b0fd4[_0x873e26][_0x47a5('0x59')]=juice(_0x1b0fd4[_0x873e26][_0x47a5('0x59')]);}}_0x36871e['rows']=_0x1b0fd4;return _0x36871e;});}})['then'](respondWithFilteredResult(_0x2d7e13,_0x3a09e6))['catch'](handleError(_0x2d7e13,null));};exports[_0x47a5('0x9a')]=function(_0x15ddfc,_0x156ceb,_0x3c6142){var _0x242006,_0x1441c3={},_0x3bcdbc;if(_0x15ddfc[_0x47a5('0x59')]['to']){_0x3bcdbc=_0x15ddfc[_0x47a5('0x59')]['to']['split'](',')[0x0];}return db[_0x47a5('0x54')][_0x47a5('0x5a')]({'where':{'id':_0x15ddfc['params']['id']},'include':[{'model':db[_0x47a5('0x9b')],'as':_0x47a5('0x9c'),'include':[{'model':db[_0x47a5('0x85')],'as':_0x47a5('0x9d'),'where':{'email':_0x3bcdbc},'limit':0x1,'order':[['updatedAt',_0x47a5('0x9e')]]}]},{'model':db[_0x47a5('0x3d')],'as':_0x47a5('0x74'),'raw':!![]}]})['then'](handleEntityNotFound(_0x156ceb,null))['then'](function(_0x27a666){if(_0x27a666){_0x242006=_0x27a666;if(_0x27a666['Smtp']){if(_[_0x47a5('0x6d')](_0x15ddfc['body'][_0x47a5('0x9f')])){_0x15ddfc[_0x47a5('0x59')][_0x47a5('0x9f')]=util[_0x47a5('0xa0')](_0x47a5('0xa1'),_0x27a666['name'],_0x27a666['email']||_0x27a666[_0x47a5('0x74')][_0x47a5('0x72')]);}if(_0x15ddfc[_0x47a5('0x59')][_0x47a5('0xa2')]&&_0x15ddfc['body']['attachments'][_0x47a5('0x62')]){for(var _0x4c9f4f=0x0;_0x4c9f4f<_0x15ddfc[_0x47a5('0x59')]['attachments'][_0x47a5('0x62')];_0x4c9f4f+=0x1){_0x15ddfc['body'][_0x47a5('0xa2')][_0x4c9f4f]={'filename':_0x15ddfc[_0x47a5('0x59')][_0x47a5('0xa2')][_0x4c9f4f][_0x47a5('0x3a')],'path':path[_0x47a5('0xa3')](config[_0x47a5('0xa4')],_0x47a5('0xa5'),_0x15ddfc[_0x47a5('0x59')]['attachments'][_0x4c9f4f][_0x47a5('0xa6')])};}}var _0x4394f0={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x27a666[_0x47a5('0x74')][_0x47a5('0x78')])){if(_0x27a666['Smtp']['authentication']){_0x4394f0[_0x47a5('0xa7')]={'user':_0x27a666['Smtp'][_0x47a5('0x72')],'pass':_0x27a666[_0x47a5('0x74')][_0x47a5('0x75')]};}_0x4394f0['host']=_0x27a666[_0x47a5('0x74')][_0x47a5('0x76')];_0x4394f0[_0x47a5('0x77')]=_0x27a666[_0x47a5('0x74')][_0x47a5('0x77')];_0x4394f0[_0x47a5('0xa8')]=_0x27a666[_0x47a5('0x74')]['secure'];}else{_0x4394f0[_0x47a5('0x78')]=_0x27a666[_0x47a5('0x74')][_0x47a5('0x78')];_0x4394f0[_0x47a5('0xa7')]={'user':_0x27a666[_0x47a5('0x74')][_0x47a5('0x72')],'pass':_0x27a666[_0x47a5('0x74')]['pass']};}return respondWithRpcPromise('SendMail',_0x47a5('0xa9'),{'account':_0x4394f0,'message':_0x15ddfc[_0x47a5('0x59')]});}else{throw new Error(_0x47a5('0xaa'));}}})['then'](function(_0x5d2a10){if(_0x5d2a10){_0x1441c3=_0x5d2a10;if(_0x242006[_0x47a5('0x9c')]){if(_0x242006[_0x47a5('0x9c')][_0x47a5('0x9d')][_0x47a5('0x62')]){return _0x242006[_0x47a5('0x9c')][_0x47a5('0x9d')][0x0];}else{return db[_0x47a5('0x85')]['create'](_[_0x47a5('0x18')](_0x15ddfc[_0x47a5('0x59')],{'firstName':_0x15ddfc[_0x47a5('0x59')]['to'],'email':_0x15ddfc['body']['to'],'phone':_0x15ddfc[_0x47a5('0x59')]['to'],'ListId':_0x242006[_0x47a5('0xab')]}));}}else{throw new Error(_0x47a5('0xaa'));}}})[_0x47a5('0x37')](function(_0x38aab1){if(_0x38aab1){var _0x20eff3={'UserId':_0x15ddfc[_0x47a5('0x72')]['id'],'ContactId':_0x38aab1['id'],'MailAccountId':_0x242006['id'],'inReplyTo':_0x1441c3[_0x47a5('0xac')],'to':_0x15ddfc[_0x47a5('0x59')][_0x47a5('0x9f')],'cc':_0x15ddfc[_0x47a5('0x59')]['cc'],'subject':_0x15ddfc[_0x47a5('0x59')][_0x47a5('0xad')],'attach':_0x15ddfc['body'][_0x47a5('0xae')],'firstMsgDirection':'out','lastMsgAt':moment()[_0x47a5('0xa0')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0x47a5('0xaf'),'Messages':[_[_0x47a5('0x51')](_0x15ddfc[_0x47a5('0x59')],{'messageId':_0x1441c3['messageId'],'sentAt':moment()[_0x47a5('0xa0')]('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x242006['id'],'UserId':_0x15ddfc[_0x47a5('0x72')]['id'],'ContactId':_0x38aab1['id']})]};if(_0x15ddfc[_0x47a5('0x59')][_0x47a5('0xb0')]){_0x20eff3=_[_0x47a5('0x51')](_0x20eff3,_0x15ddfc['body'][_0x47a5('0xb0')]);}return db['MailInteraction']['create'](_0x20eff3,{'include':[{'model':db[_0x47a5('0x95')],'as':_0x47a5('0xb1')}]});}})[_0x47a5('0x37')](respondWithResult(_0x156ceb,null))[_0x47a5('0x2a')](handleError(_0x156ceb,null));};exports[_0x47a5('0xb2')]=function(_0x11ae07,_0x10a789,_0x33ac8b){return db[_0x47a5('0x54')]['find']({'where':{'id':_0x11ae07['params']['id']},'include':[{'model':db[_0x47a5('0x3d')],'as':_0x47a5('0x74'),'raw':!![]}]})[_0x47a5('0x37')](handleEntityNotFound(_0x10a789,null))[_0x47a5('0x37')](function(_0x616b88){if(_0x616b88&&_0x616b88['Smtp']){var _0x3cfa62={'id':_0x616b88['id'],'tls':{'rejectUnauthorized':![]}};if(_0x616b88[_0x47a5('0x74')][_0x47a5('0x78')]){_0x3cfa62['service']=_0x616b88['Smtp'][_0x47a5('0x78')];}else{_0x3cfa62[_0x47a5('0x76')]=_0x616b88['Smtp'][_0x47a5('0x76')];_0x3cfa62[_0x47a5('0x77')]=_0x616b88[_0x47a5('0x74')]['port'];_0x3cfa62[_0x47a5('0xa8')]=_0x616b88[_0x47a5('0x74')][_0x47a5('0xa8')];}if(_0x616b88[_0x47a5('0x74')][_0x47a5('0xb3')]){_0x3cfa62['auth']={'user':_0x616b88[_0x47a5('0x74')][_0x47a5('0x72')],'pass':_0x616b88[_0x47a5('0x74')][_0x47a5('0x75')]};}return respondWithRpcPromise('VerifySmtp','verifySmtp',{'account':_0x3cfa62});}})[_0x47a5('0x37')](respondWithResult(_0x10a789,null))['catch'](handleError(_0x10a789,null));};exports[_0x47a5('0x91')]=function(_0xe66584,_0x17a4c2){return db[_0x47a5('0x54')][_0x47a5('0x5a')]({'where':{'id':_0xe66584[_0x47a5('0x5b')]['id']}})['then'](handleEntityNotFound(_0x17a4c2,null))[_0x47a5('0x37')](function(_0x4035c6){if(_0x4035c6&&_0x4035c6[_0x47a5('0x78')]){throw new db['Sequelize']['ValidationError'](_0x47a5('0xb4'));}return _0x4035c6;})['then'](removeEntity(_0x17a4c2,null))[_0x47a5('0x2a')](handleError(_0x17a4c2,null));};exports[_0x47a5('0xb5')]=function(_0x3641f8,_0x22390f,_0x184d43){return db['MailAccount']['find']({'where':{'id':_0x3641f8[_0x47a5('0x5b')]['id']}})[_0x47a5('0x37')](handleEntityNotFound(_0x22390f,null))[_0x47a5('0x37')](function(_0x9fdee1){if(_0x9fdee1){return _0x9fdee1[_0x47a5('0xb5')](_0x3641f8['body'][_0x47a5('0x67')],_[_0x47a5('0x83')](_0x3641f8[_0x47a5('0x59')],[_0x47a5('0x67'),'id'])||{})[_0x47a5('0xb6')](function(_0x4df71d){for(var _0x28a5f3=0x0;_0x28a5f3<_0x3641f8[_0x47a5('0x59')][_0x47a5('0x67')][_0x47a5('0x62')];_0x28a5f3+=0x1){socket[_0x47a5('0xb7')](_0x47a5('0xb8'),{'UserId':_0x3641f8[_0x47a5('0x59')][_0x47a5('0x67')][_0x28a5f3],'MailAccountId':_0x3641f8[_0x47a5('0x5b')]['id']});}return _0x4df71d;});}})[_0x47a5('0x37')](respondWithResult(_0x22390f,null))[_0x47a5('0x2a')](handleError(_0x22390f,null));};exports['removeAgents']=function(_0x39786a,_0x1ccb2e,_0x19f0da){return db[_0x47a5('0x54')]['find']({'where':{'id':_0x39786a['params']['id']}})['then'](handleEntityNotFound(_0x1ccb2e,null))[_0x47a5('0x37')](function(_0x52e921){if(_0x52e921){return _0x52e921[_0x47a5('0xb9')](_0x39786a[_0x47a5('0x46')]['ids'])[_0x47a5('0x37')](function(){if(_[_0x47a5('0xba')](_0x39786a[_0x47a5('0x46')]['ids'])){for(var _0x457398=0x0;_0x457398<_0x39786a['query'][_0x47a5('0x67')][_0x47a5('0x62')];_0x457398+=0x1){socket[_0x47a5('0xb7')](_0x47a5('0xbb'),{'UserId':Number(_0x39786a[_0x47a5('0x46')][_0x47a5('0x67')][_0x457398]),'MailAccountId':Number(_0x39786a['params']['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x39786a[_0x47a5('0x46')][_0x47a5('0x67')]),'MailAccountId':Number(_0x39786a[_0x47a5('0x5b')]['id'])});}});}})[_0x47a5('0x37')](respondWithStatusCode(_0x1ccb2e,null))[_0x47a5('0x2a')](handleError(_0x1ccb2e,null));};exports[_0x47a5('0xbc')]=function(_0x338c9d,_0x138b92,_0x232c36){var _0x25954e={};var _0x277061={};var _0x3917e0;var _0x1c7695;return db[_0x47a5('0x54')][_0x47a5('0x61')]({'where':{'id':_0x338c9d[_0x47a5('0x5b')]['id']}})['then'](handleEntityNotFound(_0x138b92,null))[_0x47a5('0x37')](function(_0x46b82a){if(_0x46b82a){_0x3917e0=_0x46b82a;_0x277061[_0x47a5('0x44')]=_[_0x47a5('0x47')](db[_0x47a5('0x87')][_0x47a5('0x40')]);_0x277061[_0x47a5('0x46')]=_[_0x47a5('0x47')](_0x338c9d['query']);_0x277061[_0x47a5('0x48')]=_['intersection'](_0x277061[_0x47a5('0x44')],_0x277061[_0x47a5('0x46')]);_0x25954e['attributes']=_[_0x47a5('0x49')](_0x277061['model'],qs[_0x47a5('0x4a')](_0x338c9d[_0x47a5('0x46')][_0x47a5('0x4a')]));_0x25954e[_0x47a5('0x4b')]=_0x25954e[_0x47a5('0x4b')]['length']?_0x25954e[_0x47a5('0x4b')]:_0x277061[_0x47a5('0x44')];_0x25954e[_0x47a5('0x64')]=qs['sort'](_0x338c9d['query'][_0x47a5('0x4d')]);_0x25954e[_0x47a5('0x4e')]=qs[_0x47a5('0x48')](_['pick'](_0x338c9d[_0x47a5('0x46')],_0x277061[_0x47a5('0x48')]));if(_0x338c9d[_0x47a5('0x46')]['filter']){_0x25954e[_0x47a5('0x4e')]=_[_0x47a5('0x51')](_0x25954e[_0x47a5('0x4e')],{'$or':_[_0x47a5('0x45')](_0x25954e['attributes'],function(_0x1a1be9){var _0x5d6808={};_0x5d6808[_0x1a1be9]={'$like':'%'+_0x338c9d[_0x47a5('0x46')][_0x47a5('0x50')]+'%'};return _0x5d6808;})});}_0x25954e=_[_0x47a5('0x51')]({},_0x25954e,_0x338c9d[_0x47a5('0x58')]);return _0x3917e0['getAgents'](_0x25954e);}})[_0x47a5('0x37')](function(_0x147d77){if(_0x147d77){_0x1c7695=_0x147d77[_0x47a5('0x62')];if(!_0x338c9d[_0x47a5('0x46')][_0x47a5('0x63')]('nolimit')){_0x25954e[_0x47a5('0x30')]=qs[_0x47a5('0x30')](_0x338c9d[_0x47a5('0x46')][_0x47a5('0x30')]);_0x25954e[_0x47a5('0x2f')]=qs[_0x47a5('0x2f')](_0x338c9d['query'][_0x47a5('0x2f')]);}return _0x3917e0[_0x47a5('0xbc')](_0x25954e);}})['then'](function(_0x556e8e){if(_0x556e8e){return _0x556e8e?{'count':_0x1c7695,'rows':_0x556e8e}:null;}})[_0x47a5('0x37')](respondWithResult(_0x138b92,null))[_0x47a5('0x2a')](handleError(_0x138b92,null));};