Built motion from commit 19a84241.|2.5.34
[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 _0x4f7b=['name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','rows','show','params','MailServerIn','length','find','update','body','describe','addDisposition','create','getDispositions','findOne','Disposition','MailAccountId','include','findAll','removeDispositions','ids','CannedAnswer','getAnswers','options','removeAnswers','isNil','active','cservice','cauthentication','user','pass','authentication','host','port','service','password','cpassword','UserProfileSection','MailAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','MailInteraction','CmContact','Contact','Owner','Tag','Tags','color','tag','addApplications','transaction','MailApplication','bulkCreate','findAndCountAll','priority','getApplications','getMessages','MailMessage','$gte','split','format','inlineCss','true','CmList','updatedAt','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','SendMail','sendMail','List\x20not\x20found','List','Contacts','ListId','messageId','subject','attach','out','YYYY-MM-DD\x20HH:mm:ss','Interaction','Messages','verifySmtp','secure','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','omit','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','User','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','html-to-text','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','client','http','then','info','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','MailAccount,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','get','UserProfileResource','end','stack','send','index','Imap','MailServerOut','Smtp','Pause','map','MailAccount','rawAttributes','fieldName','type','key','model'];(function(_0x1fa497,_0x2f10b1){var _0x4526a8=function(_0x4f5db2){while(--_0x4f5db2){_0x1fa497['push'](_0x1fa497['shift']());}};_0x4526a8(++_0x2f10b1);}(_0x4f7b,0x13e));var _0xb4f7=function(_0x3b8219,_0x216e48){_0x3b8219=_0x3b8219-0x0;var _0x2e3071=_0x4f7b[_0x3b8219];return _0x2e3071;};'use strict';var emlformat=require(_0xb4f7('0x0'));var rimraf=require(_0xb4f7('0x1'));var zipdir=require(_0xb4f7('0x2'));var jsonpatch=require(_0xb4f7('0x3'));var rp=require('request-promise');var moment=require(_0xb4f7('0x4'));var BPromise=require(_0xb4f7('0x5'));var Mustache=require(_0xb4f7('0x6'));var util=require(_0xb4f7('0x7'));var path=require(_0xb4f7('0x8'));var sox=require(_0xb4f7('0x9'));var csv=require(_0xb4f7('0xa'));var ejs=require(_0xb4f7('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb4f7('0xc'));var squel=require('squel');var crypto=require(_0xb4f7('0xd'));var jsforce=require(_0xb4f7('0xe'));var deskjs=require(_0xb4f7('0xf'));var toCsv=require('to-csv');var querystring=require(_0xb4f7('0x10'));var Papa=require('papaparse');var htmlToText=require(_0xb4f7('0x11'));var juice=require(_0xb4f7('0x12'));var Redis=require(_0xb4f7('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xb4f7('0x14'));var as=require(_0xb4f7('0x15'));var hardwareService=require(_0xb4f7('0x16'));var logger=require(_0xb4f7('0x17'))(_0xb4f7('0x18'));var utils=require(_0xb4f7('0x19'));var config=require(_0xb4f7('0x1a'));var licenseUtil=require(_0xb4f7('0x1b'));var db=require('../../mysqldb')['db'];config[_0xb4f7('0x1c')]=_[_0xb4f7('0x1d')](config[_0xb4f7('0x1c')],{'host':_0xb4f7('0x1e'),'port':0x18eb});var socket=require(_0xb4f7('0x1f'))(new Redis(config[_0xb4f7('0x1c')]));require('./mailAccount.socket')[_0xb4f7('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb4f7('0x21')][_0xb4f7('0x22')]({'port':0x232b});function respondWithRpcPromise(_0x8bd17c,_0x2c304b,_0x33e473,_0x35ce44){return new BPromise(function(_0xbc599a,_0x40b3ac){var _0x12ea5d=_0x35ce44||client;return _0x12ea5d['request'](_0x8bd17c,_0x33e473)[_0xb4f7('0x23')](function(_0x3a78b7){logger[_0xb4f7('0x24')]('MailAccount,\x20%s,\x20%s',_0x2c304b,_0xb4f7('0x25'));logger[_0xb4f7('0x26')](_0xb4f7('0x27'),_0x2c304b,'request\x20sent',JSON['stringify'](_0x3a78b7));if(_0x3a78b7[_0xb4f7('0x28')]){if(_0x3a78b7[_0xb4f7('0x28')]['code']===0x1f4){logger[_0xb4f7('0x28')](_0xb4f7('0x29'),_0x2c304b,_0x3a78b7[_0xb4f7('0x28')][_0xb4f7('0x2a')]);return _0x40b3ac(_0x3a78b7['error'][_0xb4f7('0x2a')]);}logger['error'](_0xb4f7('0x29'),_0x2c304b,_0x3a78b7[_0xb4f7('0x28')][_0xb4f7('0x2a')]);return _0xbc599a(_0x3a78b7[_0xb4f7('0x28')][_0xb4f7('0x2a')]);}else{logger[_0xb4f7('0x24')]('MailAccount,\x20%s,\x20%s',_0x2c304b,_0xb4f7('0x25'));_0xbc599a(_0x3a78b7[_0xb4f7('0x2b')][_0xb4f7('0x2a')]);}})[_0xb4f7('0x2c')](function(_0x2ec8d4){logger[_0xb4f7('0x28')]('MailAccount,\x20%s,\x20%s',_0x2c304b,_0x2ec8d4);_0x40b3ac(_0x2ec8d4);});});}function respondWithStatusCode(_0xd17524,_0x3a344f){_0x3a344f=_0x3a344f||0xcc;return function(_0x3a3afa){if(_0x3a3afa){return _0xd17524[_0xb4f7('0x2d')](_0x3a344f);}return _0xd17524[_0xb4f7('0x2e')](_0x3a344f)['end']();};}function respondWithResult(_0x2c66f6,_0x2757f9){_0x2757f9=_0x2757f9||0xc8;return function(_0x52922c){if(_0x52922c){return _0x2c66f6[_0xb4f7('0x2e')](_0x2757f9)[_0xb4f7('0x2f')](_0x52922c);}};}function respondWithFilteredResult(_0x99a8bb,_0x35582a){return function(_0x47ba78){if(_0x47ba78){var _0x2cb1b3=typeof _0x35582a[_0xb4f7('0x30')]===_0xb4f7('0x31')&&typeof _0x35582a[_0xb4f7('0x32')]==='undefined';var _0x4ea802=_0x47ba78[_0xb4f7('0x33')];var _0x54f33b=_0x2cb1b3?0x0:_0x35582a[_0xb4f7('0x30')];var _0x2d61f0=_0x2cb1b3?_0x47ba78['count']:_0x35582a['offset']+_0x35582a[_0xb4f7('0x32')];var _0x5bf429;if(_0x2d61f0>=_0x4ea802){_0x2d61f0=_0x4ea802;_0x5bf429=0xc8;}else{_0x5bf429=0xce;}_0x99a8bb[_0xb4f7('0x2e')](_0x5bf429);return _0x99a8bb[_0xb4f7('0x34')](_0xb4f7('0x35'),_0x54f33b+'-'+_0x2d61f0+'/'+_0x4ea802)[_0xb4f7('0x2f')](_0x47ba78);}return null;};}function patchUpdates(_0x47365e){return function(_0x1f88da){try{jsonpatch[_0xb4f7('0x36')](_0x1f88da,_0x47365e,!![]);}catch(_0x4824f5){return BPromise['reject'](_0x4824f5);}return _0x1f88da[_0xb4f7('0x37')]();};}function saveUpdates(_0x406f86,_0x5951a3){return function(_0x1dcd2b){if(_0x1dcd2b){return _0x1dcd2b['update'](_0x406f86)[_0xb4f7('0x23')](function(_0x5c7fb1){return _0x5c7fb1;});}return null;};}function removeEntity(_0x182436,_0x3f4d14){return function(_0x36bf43){if(_0x36bf43){return _0x36bf43[_0xb4f7('0x38')]()[_0xb4f7('0x23')](function(){var _0x9ac24c=_0x36bf43[_0xb4f7('0x39')]({'plain':!![]});var _0x13c36e='MailAccounts';return db[_0xb4f7('0x3a')][_0xb4f7('0x38')]({'where':{'type':_0x13c36e,'resourceId':_0x9ac24c['id']}})[_0xb4f7('0x23')](function(){return _0x36bf43;});})[_0xb4f7('0x23')](function(){_0x182436[_0xb4f7('0x2e')](0xcc)[_0xb4f7('0x3b')]();});}};}function handleEntityNotFound(_0x170221,_0x3e82ad){return function(_0x2a3265){if(!_0x2a3265){_0x170221['sendStatus'](0x194);}return _0x2a3265;};}function handleError(_0x15b712,_0x8ccfef){_0x8ccfef=_0x8ccfef||0x1f4;return function(_0x52304){logger[_0xb4f7('0x28')](_0x52304[_0xb4f7('0x3c')]);if(_0x52304['name']){delete _0x52304['name'];}_0x15b712['status'](_0x8ccfef)[_0xb4f7('0x3d')](_0x52304);};}exports[_0xb4f7('0x3e')]=function(_0x5c59a0,_0x394a58){var _0xbc0012={'include':[{'model':db['MailServerIn'],'as':_0xb4f7('0x3f')},{'model':db[_0xb4f7('0x40')],'as':_0xb4f7('0x41')},{'model':db[_0xb4f7('0x42')],'as':'mandatoryDispositionPause'}]},_0xcd02b9={},_0x153741={'count':0x0,'rows':[]};var _0x2d76ef=_[_0xb4f7('0x43')](db[_0xb4f7('0x44')][_0xb4f7('0x45')],function(_0xdc4260){return{'name':_0xdc4260[_0xb4f7('0x46')],'type':_0xdc4260[_0xb4f7('0x47')][_0xb4f7('0x48')]};});_0xcd02b9[_0xb4f7('0x49')]=_[_0xb4f7('0x43')](_0x2d76ef,_0xb4f7('0x4a'));_0xcd02b9[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0x5c59a0[_0xb4f7('0x4b')]);_0xcd02b9[_0xb4f7('0x4d')]=_[_0xb4f7('0x4e')](_0xcd02b9[_0xb4f7('0x49')],_0xcd02b9[_0xb4f7('0x4b')]);_0xbc0012[_0xb4f7('0x4f')]=_[_0xb4f7('0x4e')](_0xcd02b9[_0xb4f7('0x49')],qs[_0xb4f7('0x50')](_0x5c59a0[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0xbc0012['attributes']=_0xbc0012[_0xb4f7('0x4f')]['length']?_0xbc0012[_0xb4f7('0x4f')]:_0xcd02b9[_0xb4f7('0x49')];if(!_0x5c59a0[_0xb4f7('0x4b')][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0xbc0012[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0x5c59a0[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0xbc0012[_0xb4f7('0x30')]=qs['offset'](_0x5c59a0[_0xb4f7('0x4b')]['offset']);}_0xbc0012[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0x5c59a0['query'][_0xb4f7('0x54')]);_0xbc0012[_0xb4f7('0x55')]=qs[_0xb4f7('0x4d')](_[_0xb4f7('0x56')](_0x5c59a0[_0xb4f7('0x4b')],_0xcd02b9[_0xb4f7('0x4d')]),_0x2d76ef);if(_0x5c59a0['query'][_0xb4f7('0x57')]){_0xbc0012[_0xb4f7('0x55')]=_[_0xb4f7('0x58')](_0xbc0012[_0xb4f7('0x55')],{'$or':_[_0xb4f7('0x43')](_0x2d76ef,function(_0x7a407a){if(_0x7a407a['type']!=='VIRTUAL'){var _0x18a324={};_0x18a324[_0x7a407a[_0xb4f7('0x4a')]]={'$like':'%'+_0x5c59a0['query'][_0xb4f7('0x57')]+'%'};return _0x18a324;}})});}_0xbc0012=_[_0xb4f7('0x58')]({},_0xbc0012,_0x5c59a0['options']);var _0x588c76={'where':_0xbc0012[_0xb4f7('0x55')]};return db[_0xb4f7('0x44')]['count'](_0x588c76)[_0xb4f7('0x23')](function(_0x2dffc6){_0x153741[_0xb4f7('0x33')]=_0x2dffc6;if(_0x5c59a0[_0xb4f7('0x4b')][_0xb4f7('0x59')]){_0xbc0012['include']=[{'all':!![]}];}return db[_0xb4f7('0x44')]['findAll'](_0xbc0012);})['then'](function(_0x4e59){_0x153741[_0xb4f7('0x5a')]=_0x4e59;return _0x153741;})[_0xb4f7('0x23')](respondWithFilteredResult(_0x394a58,_0xbc0012))['catch'](handleError(_0x394a58,null));};exports[_0xb4f7('0x5b')]=function(_0x34b986,_0x4fb863){var _0xd7397d={'raw':![],'where':{'id':_0x34b986[_0xb4f7('0x5c')]['id']},'include':[{'model':db[_0xb4f7('0x5d')],'as':_0xb4f7('0x3f')},{'model':db[_0xb4f7('0x40')],'as':_0xb4f7('0x41')},{'model':db[_0xb4f7('0x42')],'as':'mandatoryDispositionPause'}]},_0x810b4={};_0x810b4[_0xb4f7('0x49')]=_[_0xb4f7('0x4c')](db['MailAccount'][_0xb4f7('0x45')]);_0x810b4[_0xb4f7('0x4b')]=_['keys'](_0x34b986['query']);_0x810b4[_0xb4f7('0x4d')]=_[_0xb4f7('0x4e')](_0x810b4[_0xb4f7('0x49')],_0x810b4[_0xb4f7('0x4b')]);_0xd7397d[_0xb4f7('0x4f')]=_[_0xb4f7('0x4e')](_0x810b4[_0xb4f7('0x49')],qs[_0xb4f7('0x50')](_0x34b986[_0xb4f7('0x4b')]['fields']));_0xd7397d[_0xb4f7('0x4f')]=_0xd7397d[_0xb4f7('0x4f')][_0xb4f7('0x5e')]?_0xd7397d[_0xb4f7('0x4f')]:_0x810b4[_0xb4f7('0x49')];if(_0x34b986['query'][_0xb4f7('0x59')]){_0xd7397d['include']=[{'all':!![]}];}_0xd7397d=_[_0xb4f7('0x58')]({},_0xd7397d,_0x34b986['options']);return db[_0xb4f7('0x44')][_0xb4f7('0x5f')](_0xd7397d)[_0xb4f7('0x23')](handleEntityNotFound(_0x4fb863,null))[_0xb4f7('0x23')](respondWithResult(_0x4fb863,null))[_0xb4f7('0x2c')](handleError(_0x4fb863,null));};exports[_0xb4f7('0x60')]=function(_0x5ace70,_0x16e94e){if(_0x5ace70[_0xb4f7('0x61')]['id']){delete _0x5ace70[_0xb4f7('0x61')]['id'];}return db['MailAccount'][_0xb4f7('0x5f')]({'where':{'id':_0x5ace70[_0xb4f7('0x5c')]['id']},'include':[{'model':db[_0xb4f7('0x5d')],'as':'Imap'},{'model':db[_0xb4f7('0x40')],'as':_0xb4f7('0x41')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0xb4f7('0x23')](handleEntityNotFound(_0x16e94e,null))['then'](saveUpdates(_0x5ace70['body'],null))[_0xb4f7('0x23')](function(_0x5383ca){if(_0x5383ca&&_0x5ace70['body'][_0xb4f7('0x3f')]){return db['MailServerIn'][_0xb4f7('0x60')](_0x5ace70[_0xb4f7('0x61')][_0xb4f7('0x3f')],{'where':{'MailAccountId':_0x5383ca['id']}})[_0xb4f7('0x23')](function(){return _0x5383ca;});}return _0x5383ca;})['then'](function(_0x59bf54){if(_0x59bf54&&_0x5ace70[_0xb4f7('0x61')][_0xb4f7('0x41')]){return db[_0xb4f7('0x40')][_0xb4f7('0x60')](_0x5ace70[_0xb4f7('0x61')]['Smtp'],{'where':{'MailAccountId':_0x59bf54['id']}})[_0xb4f7('0x23')](function(){return _0x59bf54;});}return _0x59bf54;})[_0xb4f7('0x23')](respondWithResult(_0x16e94e,null))[_0xb4f7('0x2c')](handleError(_0x16e94e,null));};exports[_0xb4f7('0x62')]=function(_0x39c427,_0x328413){return db['MailAccount']['describe']()[_0xb4f7('0x23')](respondWithResult(_0x328413,null))['catch'](handleError(_0x328413,null));};exports[_0xb4f7('0x63')]=function(_0x31520e,_0x4949b3,_0x5f2184){if(_0x31520e['body']['id']){delete _0x31520e['body']['id'];}return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x31520e[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x4949b3,null))[_0xb4f7('0x23')](function(_0x426679){if(_0x426679){_0x31520e[_0xb4f7('0x61')]['MailAccountId']=_0x426679['id'];return db['Disposition'][_0xb4f7('0x64')](_0x31520e[_0xb4f7('0x61')]);}})['then'](respondWithResult(_0x4949b3,null))['catch'](handleError(_0x4949b3,null));};exports[_0xb4f7('0x65')]=function(_0xcc6213,_0x1da01f,_0x576c10){var _0x839ce4={'raw':![],'where':{}};var _0x483ae3={};var _0x30dfcb={'count':0x0,'rows':[]};return db['MailAccount'][_0xb4f7('0x66')]({'where':{'id':_0xcc6213[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x1da01f,null))['then'](function(_0x5e5d53){if(_0x5e5d53){_0x483ae3[_0xb4f7('0x49')]=_[_0xb4f7('0x4c')](db[_0xb4f7('0x67')][_0xb4f7('0x45')]);_0x483ae3[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0xcc6213[_0xb4f7('0x4b')]);_0x483ae3['filters']=_[_0xb4f7('0x4e')](_0x483ae3['model'],_0x483ae3[_0xb4f7('0x4b')]);_0x839ce4[_0xb4f7('0x4f')]=_[_0xb4f7('0x4e')](_0x483ae3[_0xb4f7('0x49')],qs['fields'](_0xcc6213[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x839ce4[_0xb4f7('0x4f')]=_0x839ce4[_0xb4f7('0x4f')]['length']?_0x839ce4[_0xb4f7('0x4f')]:_0x483ae3[_0xb4f7('0x49')];if(!_0xcc6213['query'][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0x839ce4[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0xcc6213[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0x839ce4[_0xb4f7('0x30')]=qs[_0xb4f7('0x30')](_0xcc6213['query']['offset']);}_0x839ce4[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0xcc6213[_0xb4f7('0x4b')][_0xb4f7('0x54')]);_0x839ce4[_0xb4f7('0x55')]=qs[_0xb4f7('0x4d')](_['pick'](_0xcc6213[_0xb4f7('0x4b')],_0x483ae3['filters']));_0x839ce4[_0xb4f7('0x55')][_0xb4f7('0x68')]=_0x5e5d53['id'];if(_0xcc6213[_0xb4f7('0x4b')]['filter']){_0x839ce4[_0xb4f7('0x55')]=_[_0xb4f7('0x58')](_0x839ce4['where'],{'$or':_[_0xb4f7('0x43')](_0x839ce4['attributes'],function(_0x27b6f1){var _0x4f542a={};_0x4f542a[_0x27b6f1]={'$like':'%'+_0xcc6213[_0xb4f7('0x4b')][_0xb4f7('0x57')]+'%'};return _0x4f542a;})});}_0x839ce4=_[_0xb4f7('0x58')]({},_0x839ce4,_0xcc6213['options']);return db[_0xb4f7('0x67')][_0xb4f7('0x33')]({'where':_0x839ce4[_0xb4f7('0x55')]})[_0xb4f7('0x23')](function(_0xe70236){_0x30dfcb['count']=_0xe70236;if(_0xcc6213['query']['includeAll']){_0x839ce4[_0xb4f7('0x69')]=[{'all':!![]}];}return db[_0xb4f7('0x67')][_0xb4f7('0x6a')](_0x839ce4);})[_0xb4f7('0x23')](function(_0x7d7b6f){_0x30dfcb[_0xb4f7('0x5a')]=_0x7d7b6f;return _0x30dfcb;});}})[_0xb4f7('0x23')](respondWithFilteredResult(_0x1da01f,_0x839ce4))[_0xb4f7('0x2c')](handleError(_0x1da01f,null));};exports[_0xb4f7('0x6b')]=function(_0x42f970,_0x50470c,_0x22a142){return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x42f970[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x50470c,null))[_0xb4f7('0x23')](function(_0x5cbed7){if(_0x5cbed7){return _0x5cbed7[_0xb4f7('0x6b')](_0x42f970[_0xb4f7('0x4b')][_0xb4f7('0x6c')]);}})[_0xb4f7('0x23')](respondWithStatusCode(_0x50470c,null))[_0xb4f7('0x2c')](handleError(_0x50470c,null));};exports['addAnswer']=function(_0x4a6135,_0x52c20b,_0x2afe68){if(_0x4a6135[_0xb4f7('0x61')]['id']){delete _0x4a6135[_0xb4f7('0x61')]['id'];}return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x4a6135[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x52c20b,null))[_0xb4f7('0x23')](function(_0x9cd251){if(_0x9cd251){_0x4a6135[_0xb4f7('0x61')][_0xb4f7('0x68')]=_0x9cd251['id'];return db[_0xb4f7('0x6d')][_0xb4f7('0x64')](_0x4a6135[_0xb4f7('0x61')]);}})['then'](respondWithResult(_0x52c20b,null))[_0xb4f7('0x2c')](handleError(_0x52c20b,null));};exports[_0xb4f7('0x6e')]=function(_0x2f4bb8,_0x550fd2,_0x53e68e){var _0x8189df={'raw':![],'where':{}};var _0x12a833={};var _0x5005c4={'count':0x0,'rows':[]};return db[_0xb4f7('0x44')][_0xb4f7('0x66')]({'where':{'id':_0x2f4bb8[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x550fd2,null))['then'](function(_0x40b0c7){if(_0x40b0c7){_0x12a833[_0xb4f7('0x49')]=_[_0xb4f7('0x4c')](db[_0xb4f7('0x6d')][_0xb4f7('0x45')]);_0x12a833[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0x2f4bb8['query']);_0x12a833[_0xb4f7('0x4d')]=_[_0xb4f7('0x4e')](_0x12a833[_0xb4f7('0x49')],_0x12a833[_0xb4f7('0x4b')]);_0x8189df[_0xb4f7('0x4f')]=_[_0xb4f7('0x4e')](_0x12a833['model'],qs['fields'](_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x8189df['attributes']=_0x8189df['attributes'][_0xb4f7('0x5e')]?_0x8189df[_0xb4f7('0x4f')]:_0x12a833[_0xb4f7('0x49')];if(!_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0x8189df['limit']=qs[_0xb4f7('0x32')](_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0x8189df[_0xb4f7('0x30')]=qs[_0xb4f7('0x30')](_0x2f4bb8['query'][_0xb4f7('0x30')]);}_0x8189df[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x54')]);_0x8189df[_0xb4f7('0x55')]=qs['filters'](_[_0xb4f7('0x56')](_0x2f4bb8[_0xb4f7('0x4b')],_0x12a833[_0xb4f7('0x4d')]));_0x8189df[_0xb4f7('0x55')][_0xb4f7('0x68')]=_0x40b0c7['id'];if(_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x57')]){_0x8189df[_0xb4f7('0x55')]=_[_0xb4f7('0x58')](_0x8189df['where'],{'$or':_[_0xb4f7('0x43')](_0x8189df[_0xb4f7('0x4f')],function(_0x2160ed){var _0x57d11b={};_0x57d11b[_0x2160ed]={'$like':'%'+_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x57')]+'%'};return _0x57d11b;})});}_0x8189df=_[_0xb4f7('0x58')]({},_0x8189df,_0x2f4bb8[_0xb4f7('0x6f')]);return db[_0xb4f7('0x6d')][_0xb4f7('0x33')]({'where':_0x8189df[_0xb4f7('0x55')]})[_0xb4f7('0x23')](function(_0x1c52b9){_0x5005c4[_0xb4f7('0x33')]=_0x1c52b9;if(_0x2f4bb8[_0xb4f7('0x4b')][_0xb4f7('0x59')]){_0x8189df[_0xb4f7('0x69')]=[{'all':!![]}];}return db['CannedAnswer'][_0xb4f7('0x6a')](_0x8189df);})[_0xb4f7('0x23')](function(_0x559cc4){_0x5005c4[_0xb4f7('0x5a')]=_0x559cc4;return _0x5005c4;});}})[_0xb4f7('0x23')](respondWithFilteredResult(_0x550fd2,_0x8189df))[_0xb4f7('0x2c')](handleError(_0x550fd2,null));};exports[_0xb4f7('0x70')]=function(_0x23e0b2,_0x35f4b6,_0x25c1c9){return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x23e0b2['params']['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x35f4b6,null))[_0xb4f7('0x23')](function(_0x307ca2){if(_0x307ca2){return _0x307ca2[_0xb4f7('0x70')](_0x23e0b2[_0xb4f7('0x4b')][_0xb4f7('0x6c')]);}})['then'](respondWithStatusCode(_0x35f4b6,null))['catch'](handleError(_0x35f4b6,null));};exports[_0xb4f7('0x64')]=function(_0xe871cf,_0xf0c001){var _0x301914={'name':_0xe871cf['body'][_0xb4f7('0x4a')],'key':_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x48')],'email':_0xe871cf[_0xb4f7('0x61')]['email'],'ListId':_0xe871cf[_0xb4f7('0x61')]['ListId'],'active':!_[_0xb4f7('0x71')](_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x72')])?_0xe871cf['body'][_0xb4f7('0x72')]:!![],'description':_0xe871cf[_0xb4f7('0x61')]['description']||null,'Imap':{},'Smtp':{}};if(_[_0xb4f7('0x71')](_0xe871cf['body'][_0xb4f7('0x73')])){if(_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x74')]){_0x301914[_0xb4f7('0x3f')][_0xb4f7('0x75')]=_0x301914['Smtp']['user']=_0xe871cf[_0xb4f7('0x61')]['cuser'];_0x301914[_0xb4f7('0x3f')]['password']=_0x301914[_0xb4f7('0x41')][_0xb4f7('0x76')]=_0xe871cf[_0xb4f7('0x61')]['cpassword'];}else{_0x301914['Imap']['authentication']=_0x301914[_0xb4f7('0x41')][_0xb4f7('0x77')]=![];}_0x301914[_0xb4f7('0x3f')][_0xb4f7('0x78')]=_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x3f')]['host'];_0x301914[_0xb4f7('0x3f')]['port']=_0xe871cf['body']['Imap'][_0xb4f7('0x79')];_0x301914['Smtp'][_0xb4f7('0x78')]=_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x41')][_0xb4f7('0x78')];_0x301914[_0xb4f7('0x41')][_0xb4f7('0x79')]=_0xe871cf['body'][_0xb4f7('0x41')]['port'];}else{_0x301914[_0xb4f7('0x3f')][_0xb4f7('0x7a')]=_0x301914[_0xb4f7('0x41')][_0xb4f7('0x7a')]=_0xe871cf['body'][_0xb4f7('0x73')];_0x301914[_0xb4f7('0x3f')][_0xb4f7('0x75')]=_0x301914[_0xb4f7('0x41')][_0xb4f7('0x75')]=_0xe871cf['body']['cuser'];_0x301914[_0xb4f7('0x3f')][_0xb4f7('0x7b')]=_0x301914[_0xb4f7('0x41')][_0xb4f7('0x76')]=_0xe871cf[_0xb4f7('0x61')][_0xb4f7('0x7c')];}return db[_0xb4f7('0x44')][_0xb4f7('0x64')](_0x301914,{'include':[{'model':db['MailServerOut'],'as':_0xb4f7('0x41')},{'model':db['MailServerIn'],'as':_0xb4f7('0x3f')}]})['then'](function(_0x5a6834){var _0x2bc9fb=_0xe871cf[_0xb4f7('0x75')][_0xb4f7('0x39')]({'plain':!![]});if(!_0x2bc9fb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2bc9fb['role']===_0xb4f7('0x75')){var _0x41f5af=_0x5a6834['get']({'plain':!![]});return db[_0xb4f7('0x7d')][_0xb4f7('0x5f')]({'where':{'name':_0xb4f7('0x7e'),'userProfileId':_0x2bc9fb[_0xb4f7('0x7f')]},'raw':!![]})['then'](function(_0x544b08){if(_0x544b08&&_0x544b08[_0xb4f7('0x80')]===0x0){return db[_0xb4f7('0x3a')]['create']({'name':_0x41f5af[_0xb4f7('0x4a')],'resourceId':_0x41f5af['id'],'type':_0x544b08[_0xb4f7('0x4a')],'sectionId':_0x544b08['id']},{})[_0xb4f7('0x23')](function(){return _0x5a6834;});}else{return _0x5a6834;}})['catch'](function(_0x3c1dc6){logger[_0xb4f7('0x28')](_0xb4f7('0x81'),_0x3c1dc6);throw _0x3c1dc6;});}return _0x5a6834;})['then'](respondWithResult(_0xf0c001,0xc9))['catch'](handleError(_0xf0c001,null));};exports[_0xb4f7('0x82')]=function(_0x5d7790,_0x47c848,_0x54b26e){return db['MailAccount']['findOne']({'where':{'id':_0x5d7790[_0xb4f7('0x5c')]['id']}})['then'](handleEntityNotFound(_0x47c848,null))[_0xb4f7('0x23')](function(_0x3a3aa3){if(_0x3a3aa3){return _0x3a3aa3[_0xb4f7('0x82')]();}return null;})[_0xb4f7('0x23')](respondWithResult(_0x47c848,null))[_0xb4f7('0x2c')](handleError(_0x47c848,null));};exports['addImap']=function(_0x21f71c,_0x41257f,_0x3467c1){if(_0x21f71c[_0xb4f7('0x61')]['id']){delete _0x21f71c[_0xb4f7('0x61')]['id'];}return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x21f71c[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x41257f,null))['then'](function(_0xbe1c1b){if(_0xbe1c1b){_0x21f71c[_0xb4f7('0x61')][_0xb4f7('0x68')]=_0xbe1c1b['id'];return db[_0xb4f7('0x5d')][_0xb4f7('0x64')](_0x21f71c[_0xb4f7('0x61')]);}})['then'](respondWithResult(_0x41257f,null))[_0xb4f7('0x2c')](handleError(_0x41257f,null));};exports['removeImap']=function(_0x487d92,_0x139aa9,_0x209f4f){return db[_0xb4f7('0x44')][_0xb4f7('0x66')]({'where':{'id':_0x487d92[_0xb4f7('0x5c')]['id']}})['then'](handleEntityNotFound(_0x139aa9,null))[_0xb4f7('0x23')](function(_0x6deb55){if(_0x6deb55){return _0x6deb55[_0xb4f7('0x83')](null);}return null;})['then'](respondWithStatusCode(_0x139aa9,null))['catch'](handleError(_0x139aa9,null));};exports['getSmtp']=function(_0x1b6c3e,_0x3e4dae,_0xc24170){return db['MailAccount'][_0xb4f7('0x66')]({'where':{'id':_0x1b6c3e[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x3e4dae,null))[_0xb4f7('0x23')](function(_0x420358){if(_0x420358){return _0x420358[_0xb4f7('0x84')]();}return null;})[_0xb4f7('0x23')](respondWithResult(_0x3e4dae,null))[_0xb4f7('0x2c')](handleError(_0x3e4dae,null));};exports[_0xb4f7('0x85')]=function(_0xc60969,_0x5d31f4,_0x5cbaa2){if(_0xc60969[_0xb4f7('0x61')]['id']){delete _0xc60969[_0xb4f7('0x61')]['id'];}return db[_0xb4f7('0x44')]['find']({'where':{'id':_0xc60969[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x5d31f4,null))[_0xb4f7('0x23')](function(_0x5831a4){if(_0x5831a4){_0xc60969[_0xb4f7('0x61')][_0xb4f7('0x68')]=_0x5831a4['id'];return db['MailServerOut'][_0xb4f7('0x64')](_0xc60969['body']);}})[_0xb4f7('0x23')](respondWithResult(_0x5d31f4,null))[_0xb4f7('0x2c')](handleError(_0x5d31f4,null));};exports[_0xb4f7('0x86')]=function(_0x52283f,_0x43e1bf,_0x405c6f){return db[_0xb4f7('0x44')][_0xb4f7('0x66')]({'where':{'id':_0x52283f[_0xb4f7('0x5c')]['id']}})['then'](handleEntityNotFound(_0x43e1bf,null))[_0xb4f7('0x23')](function(_0x5f57a7){if(_0x5f57a7){return _0x5f57a7[_0xb4f7('0x87')](null);}return null;})[_0xb4f7('0x23')](respondWithStatusCode(_0x43e1bf,null))[_0xb4f7('0x2c')](handleError(_0x43e1bf,null));};exports[_0xb4f7('0x88')]=function(_0x357fb9,_0x1910d7,_0x42fab5){return db[_0xb4f7('0x89')][_0xb4f7('0x5f')]({'where':{'id':_0x357fb9['params']['id']}})['then'](handleEntityNotFound(_0x1910d7,null))['then'](function(_0x133fd1){if(_0x133fd1){return _0x133fd1[_0xb4f7('0x88')](_0x357fb9[_0xb4f7('0x61')][_0xb4f7('0x6c')],_['omit'](_0x357fb9[_0xb4f7('0x61')],[_0xb4f7('0x6c'),'id'])||{});}})[_0xb4f7('0x23')](respondWithResult(_0x1910d7,null))[_0xb4f7('0x2c')](handleError(_0x1910d7,null));};exports['getInteractions']=function(_0x45459f,_0x450013,_0x493070){var _0x3ca968={'raw':![],'where':{}};var _0x36cfe7={};var _0x498572={'count':0x0,'rows':[]};return db[_0xb4f7('0x44')][_0xb4f7('0x66')]({'where':{'id':_0x45459f['params']['id']}})['then'](handleEntityNotFound(_0x450013,null))['then'](function(_0x5f0e6e){if(_0x5f0e6e){_0x36cfe7[_0xb4f7('0x49')]=_['keys'](db[_0xb4f7('0x89')][_0xb4f7('0x45')]);_0x36cfe7[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0x45459f['query']);_0x36cfe7[_0xb4f7('0x4d')]=_[_0xb4f7('0x4e')](_0x36cfe7[_0xb4f7('0x49')],_0x36cfe7['query']);_0x3ca968['attributes']=_[_0xb4f7('0x4e')](_0x36cfe7[_0xb4f7('0x49')],qs[_0xb4f7('0x50')](_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x3ca968[_0xb4f7('0x4f')]=_0x3ca968[_0xb4f7('0x4f')][_0xb4f7('0x5e')]?_0x3ca968[_0xb4f7('0x4f')]:_0x36cfe7['model'];if(!_0x45459f[_0xb4f7('0x4b')]['hasOwnProperty'](_0xb4f7('0x52'))){_0x3ca968[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0x3ca968['offset']=qs['offset'](_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x30')]);}_0x3ca968[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x54')]);_0x3ca968[_0xb4f7('0x55')]=qs[_0xb4f7('0x4d')](_[_0xb4f7('0x56')](_0x45459f[_0xb4f7('0x4b')],_0x36cfe7[_0xb4f7('0x4d')]));_0x3ca968[_0xb4f7('0x55')][_0xb4f7('0x68')]=_0x5f0e6e['id'];if(_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x57')]){_0x3ca968['where']=_[_0xb4f7('0x58')](_0x3ca968[_0xb4f7('0x55')],{'$or':_[_0xb4f7('0x43')](_0x3ca968[_0xb4f7('0x4f')],function(_0x508dca){var _0x5bb3be={};_0x5bb3be[_0x508dca]={'$like':'%'+_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x57')]+'%'};return _0x5bb3be;})});}_0x3ca968=_[_0xb4f7('0x58')]({},_0x3ca968,_0x45459f[_0xb4f7('0x6f')]);return db[_0xb4f7('0x89')][_0xb4f7('0x33')]({'where':_0x3ca968[_0xb4f7('0x55')]})[_0xb4f7('0x23')](function(_0x4bd545){_0x498572[_0xb4f7('0x33')]=_0x4bd545;if(_0x45459f[_0xb4f7('0x4b')]['includeAll']){_0x3ca968[_0xb4f7('0x69')]=[{'model':db[_0xb4f7('0x8a')],'as':_0xb4f7('0x8b'),'required':![]},{'model':db['User'],'as':_0xb4f7('0x8c'),'attributes':[_0xb4f7('0x4a'),'fullname','internal'],'required':![]},{'model':db[_0xb4f7('0x8d')],'as':_0xb4f7('0x8e'),'attributes':['id','name',_0xb4f7('0x8f')],'where':_0x45459f['query'][_0xb4f7('0x90')]?{'id':_0x45459f[_0xb4f7('0x4b')][_0xb4f7('0x90')]}:undefined,'required':_0x45459f['query'][_0xb4f7('0x90')]?!![]:![]}];}return db[_0xb4f7('0x89')][_0xb4f7('0x6a')](_0x3ca968);})[_0xb4f7('0x23')](function(_0x4b00fb){_0x498572[_0xb4f7('0x5a')]=_0x4b00fb;return _0x498572;});}})[_0xb4f7('0x23')](respondWithFilteredResult(_0x450013,_0x3ca968))[_0xb4f7('0x2c')](handleError(_0x450013,null));};exports[_0xb4f7('0x91')]=function(_0xd84ec0,_0x3e8211,_0x122544){return db[_0xb4f7('0x44')]['findOne']({'where':{'id':_0xd84ec0['params']['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x3e8211,null))[_0xb4f7('0x23')](function(_0x5921d8){if(_0x5921d8){return db['sequelize'][_0xb4f7('0x92')](function(_0x2de3a0){return db[_0xb4f7('0x93')][_0xb4f7('0x38')]({'where':{'MailAccountId':_0xd84ec0['params']['id']},'transaction':_0x2de3a0})['then'](function(_0x29509c){var _0x16ce91=_['map'](_0xd84ec0[_0xb4f7('0x61')],function(_0x339a89){_0x339a89[_0xb4f7('0x68')]=_0xd84ec0[_0xb4f7('0x5c')]['id'];return _0x339a89;});return db[_0xb4f7('0x93')][_0xb4f7('0x94')](_0x16ce91,{'transaction':_0x2de3a0});});})[_0xb4f7('0x23')](function(){return db[_0xb4f7('0x93')][_0xb4f7('0x95')]({'where':{'MailAccountId':_0xd84ec0[_0xb4f7('0x5c')]['id']},'order':_0xb4f7('0x96')});});}})[_0xb4f7('0x23')](respondWithResult(_0x3e8211,null))[_0xb4f7('0x2c')](handleError(_0x3e8211,null));};exports['getApplications']=function(_0x40a0bd,_0x39b850,_0x1e3f26){var _0x155341={};var _0x524361={};var _0x38ad22;var _0x4d40a1;return db['MailAccount'][_0xb4f7('0x66')]({'where':{'id':_0x40a0bd[_0xb4f7('0x5c')]['id']}})['then'](handleEntityNotFound(_0x39b850,null))[_0xb4f7('0x23')](function(_0x2fb4a6){if(_0x2fb4a6){_0x38ad22=_0x2fb4a6;_0x524361['model']=_[_0xb4f7('0x4c')](db[_0xb4f7('0x93')][_0xb4f7('0x45')]);_0x524361[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0x40a0bd['query']);_0x524361[_0xb4f7('0x4d')]=_['intersection'](_0x524361['model'],_0x524361[_0xb4f7('0x4b')]);_0x155341['attributes']=_['intersection'](_0x524361[_0xb4f7('0x49')],qs[_0xb4f7('0x50')](_0x40a0bd[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x155341[_0xb4f7('0x4f')]=_0x155341[_0xb4f7('0x4f')][_0xb4f7('0x5e')]?_0x155341[_0xb4f7('0x4f')]:_0x524361['model'];_0x155341['order']=qs[_0xb4f7('0x54')](_0x40a0bd['query'][_0xb4f7('0x54')]);_0x155341[_0xb4f7('0x55')]=qs['filters'](_[_0xb4f7('0x56')](_0x40a0bd[_0xb4f7('0x4b')],_0x524361['filters']));if(_0x40a0bd[_0xb4f7('0x4b')][_0xb4f7('0x57')]){_0x155341[_0xb4f7('0x55')]=_[_0xb4f7('0x58')](_0x155341[_0xb4f7('0x55')],{'$or':_['map'](_0x155341[_0xb4f7('0x4f')],function(_0x7418de){var _0x1967b4={};_0x1967b4[_0x7418de]={'$like':'%'+_0x40a0bd[_0xb4f7('0x4b')]['filter']+'%'};return _0x1967b4;})});}_0x155341=_['merge']({},_0x155341,_0x40a0bd['options']);return _0x38ad22[_0xb4f7('0x97')](_0x155341);}})[_0xb4f7('0x23')](function(_0x20e5cf){if(_0x20e5cf){_0x4d40a1=_0x20e5cf[_0xb4f7('0x5e')];if(!_0x40a0bd['query'][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0x155341[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0x40a0bd[_0xb4f7('0x4b')]['limit']);_0x155341['offset']=qs[_0xb4f7('0x30')](_0x40a0bd[_0xb4f7('0x4b')][_0xb4f7('0x30')]);}return _0x38ad22[_0xb4f7('0x97')](_0x155341);}})[_0xb4f7('0x23')](function(_0x31b028){if(_0x31b028){return _0x31b028?{'count':_0x4d40a1,'rows':_0x31b028}:null;}})[_0xb4f7('0x23')](respondWithResult(_0x39b850,null))[_0xb4f7('0x2c')](handleError(_0x39b850,null));};exports[_0xb4f7('0x98')]=function(_0x299112,_0x590afd,_0x2a7613){var _0x37bf78={'raw':!![],'where':{}};var _0x2aa1b6={};var _0x13c571={'count':0x0,'rows':[]};return db[_0xb4f7('0x44')][_0xb4f7('0x66')]({'where':{'id':_0x299112[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x590afd,null))[_0xb4f7('0x23')](function(_0x5adc26){if(_0x5adc26){_0x2aa1b6['model']=_[_0xb4f7('0x4c')](db[_0xb4f7('0x99')]['rawAttributes']);_0x2aa1b6['query']=_[_0xb4f7('0x4c')](_0x299112['query']);_0x2aa1b6[_0xb4f7('0x4d')]=_['intersection'](_0x2aa1b6['model'],_0x2aa1b6[_0xb4f7('0x4b')]);_0x37bf78[_0xb4f7('0x4f')]=_[_0xb4f7('0x4e')](_0x2aa1b6['model'],qs[_0xb4f7('0x50')](_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x37bf78[_0xb4f7('0x4f')]=_0x37bf78[_0xb4f7('0x4f')][_0xb4f7('0x5e')]?_0x37bf78['attributes']:_0x2aa1b6[_0xb4f7('0x49')];if(!_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0x37bf78[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0x37bf78[_0xb4f7('0x30')]=qs[_0xb4f7('0x30')](_0x299112['query'][_0xb4f7('0x30')]);}_0x37bf78[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0x299112[_0xb4f7('0x4b')]['sort']);_0x37bf78['where']=qs[_0xb4f7('0x4d')](_[_0xb4f7('0x56')](_0x299112[_0xb4f7('0x4b')],_0x2aa1b6[_0xb4f7('0x4d')]));_0x37bf78[_0xb4f7('0x55')][_0xb4f7('0x68')]=_0x5adc26['id'];if(_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x57')]){_0x37bf78['where']=_[_0xb4f7('0x58')](_0x37bf78['where'],{'$or':_['map'](_0x37bf78[_0xb4f7('0x4f')],function(_0x31eae1){var _0x54cbb9={};_0x54cbb9[_0x31eae1]={'$like':'%'+_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x57')]+'%'};return _0x54cbb9;})});}if(_0x299112['query'][_0xb4f7('0x9a')]){var _0x203c9a=_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x9a')][_0xb4f7('0x9b')](',');var _0x159dd1={};_0x159dd1[_0x203c9a[0x0]]={'$gte':moment(_0x203c9a[0x1])[_0xb4f7('0x9c')]('YYYY-MM-DD\x20HH:mm:ss')};_0x37bf78[_0xb4f7('0x55')]=_['merge'](_0x37bf78[_0xb4f7('0x55')],_0x159dd1);}_0x37bf78=_[_0xb4f7('0x58')]({},_0x37bf78,_0x299112[_0xb4f7('0x6f')]);return db['MailMessage']['count']({'where':_0x37bf78[_0xb4f7('0x55')]})[_0xb4f7('0x23')](function(_0x3b58c3){_0x13c571[_0xb4f7('0x33')]=_0x3b58c3;if(_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x59')]){_0x37bf78[_0xb4f7('0x69')]=[{'all':!![]}];}return db[_0xb4f7('0x99')]['findAll'](_0x37bf78);})[_0xb4f7('0x23')](function(_0x43d890){if(_0x299112[_0xb4f7('0x4b')][_0xb4f7('0x9d')]===_0xb4f7('0x9e')){for(var _0x2f9d27=0x0;_0x2f9d27<_0x43d890['length'];_0x2f9d27++){_0x43d890[_0x2f9d27]['body']=juice(_0x43d890[_0x2f9d27][_0xb4f7('0x61')]);}}_0x13c571['rows']=_0x43d890;return _0x13c571;});}})[_0xb4f7('0x23')](respondWithFilteredResult(_0x590afd,_0x37bf78))[_0xb4f7('0x2c')](handleError(_0x590afd,null));};exports[_0xb4f7('0x3d')]=function(_0x43db32,_0x35fb6f,_0x2d18c2){var _0x4df451,_0x47cf5f={},_0x4db2ac;if(_0x43db32[_0xb4f7('0x61')]['to']){_0x4db2ac=_0x43db32[_0xb4f7('0x61')]['to']['split'](',')[0x0];}return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x43db32[_0xb4f7('0x5c')]['id']},'include':[{'model':db[_0xb4f7('0x9f')],'as':'List','include':[{'model':db[_0xb4f7('0x8a')],'as':'Contacts','where':{'email':_0x4db2ac},'limit':0x1,'order':[[_0xb4f7('0xa0'),'DESC']]}]},{'model':db[_0xb4f7('0x40')],'as':_0xb4f7('0x41'),'raw':!![]}]})['then'](handleEntityNotFound(_0x35fb6f,null))['then'](function(_0x5f5b13){if(_0x5f5b13){_0x4df451=_0x5f5b13;if(_0x5f5b13['Smtp']){if(_[_0xb4f7('0x71')](_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xa1')])){_0x43db32[_0xb4f7('0x61')]['from']=util['format'](_0xb4f7('0xa2'),_0x5f5b13[_0xb4f7('0x4a')],_0x5f5b13['email']||_0x5f5b13[_0xb4f7('0x41')]['user']);}if(_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xa3')]&&_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xa3')][_0xb4f7('0x5e')]){for(var _0x4b157c=0x0;_0x4b157c<_0x43db32['body'][_0xb4f7('0xa3')][_0xb4f7('0x5e')];_0x4b157c+=0x1){_0x43db32['body'][_0xb4f7('0xa3')][_0x4b157c]={'filename':_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xa3')][_0x4b157c]['name'],'path':path[_0xb4f7('0xa4')](config[_0xb4f7('0xa5')],_0xb4f7('0xa6'),_0x43db32['body']['attachments'][_0x4b157c][_0xb4f7('0xa7')])};}}var _0x51a2e6={'tls':{'rejectUnauthorized':![]}};if(_[_0xb4f7('0x71')](_0x5f5b13['Smtp'][_0xb4f7('0x7a')])){if(_0x5f5b13[_0xb4f7('0x41')]['authentication']){_0x51a2e6['auth']={'user':_0x5f5b13['Smtp'][_0xb4f7('0x75')],'pass':_0x5f5b13[_0xb4f7('0x41')][_0xb4f7('0x76')]};}_0x51a2e6[_0xb4f7('0x78')]=_0x5f5b13[_0xb4f7('0x41')][_0xb4f7('0x78')];_0x51a2e6['port']=_0x5f5b13[_0xb4f7('0x41')]['port'];_0x51a2e6['secure']=_0x5f5b13['Smtp']['secure'];}else{_0x51a2e6[_0xb4f7('0x7a')]=_0x5f5b13['Smtp']['service'];_0x51a2e6['auth']={'user':_0x5f5b13['Smtp'][_0xb4f7('0x75')],'pass':_0x5f5b13[_0xb4f7('0x41')]['pass']};}return respondWithRpcPromise(_0xb4f7('0xa8'),_0xb4f7('0xa9'),{'account':_0x51a2e6,'message':_0x43db32['body']});}else{throw new Error(_0xb4f7('0xaa'));}}})['then'](function(_0x5bf4d1){if(_0x5bf4d1){_0x47cf5f=_0x5bf4d1;if(_0x4df451[_0xb4f7('0xab')]){if(_0x4df451['List'][_0xb4f7('0xac')][_0xb4f7('0x5e')]){return _0x4df451[_0xb4f7('0xab')][_0xb4f7('0xac')][0x0];}else{return db['CmContact']['create'](_[_0xb4f7('0x1d')](_0x43db32[_0xb4f7('0x61')],{'firstName':_0x43db32[_0xb4f7('0x61')]['to'],'email':_0x43db32[_0xb4f7('0x61')]['to'],'phone':_0x43db32[_0xb4f7('0x61')]['to'],'ListId':_0x4df451[_0xb4f7('0xad')]}));}}else{throw new Error('List\x20not\x20found');}}})['then'](function(_0x17661a){if(_0x17661a){var _0x41a835={'UserId':_0x43db32[_0xb4f7('0x75')]['id'],'ContactId':_0x17661a['id'],'MailAccountId':_0x4df451['id'],'inReplyTo':_0x47cf5f[_0xb4f7('0xae')],'to':_0x43db32[_0xb4f7('0x61')]['from'],'cc':_0x43db32[_0xb4f7('0x61')]['cc'],'subject':_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xaf')],'attach':_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xb0')],'firstMsgDirection':_0xb4f7('0xb1'),'lastMsgAt':moment()['format'](_0xb4f7('0xb2')),'lastMsgDirection':_0xb4f7('0xb1'),'Messages':[_[_0xb4f7('0x58')](_0x43db32[_0xb4f7('0x61')],{'messageId':_0x47cf5f['messageId'],'sentAt':moment()[_0xb4f7('0x9c')](_0xb4f7('0xb2')),'read':!![],'MailAccountId':_0x4df451['id'],'UserId':_0x43db32[_0xb4f7('0x75')]['id'],'ContactId':_0x17661a['id']})]};if(_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xb3')]){_0x41a835=_[_0xb4f7('0x58')](_0x41a835,_0x43db32[_0xb4f7('0x61')][_0xb4f7('0xb3')]);}return db[_0xb4f7('0x89')]['create'](_0x41a835,{'include':[{'model':db[_0xb4f7('0x99')],'as':_0xb4f7('0xb4')}]});}})[_0xb4f7('0x23')](respondWithResult(_0x35fb6f,null))['catch'](handleError(_0x35fb6f,null));};exports[_0xb4f7('0xb5')]=function(_0x5785cd,_0x33547e,_0x588cf4){return db[_0xb4f7('0x44')]['find']({'where':{'id':_0x5785cd[_0xb4f7('0x5c')]['id']},'include':[{'model':db[_0xb4f7('0x40')],'as':_0xb4f7('0x41'),'raw':!![]}]})[_0xb4f7('0x23')](handleEntityNotFound(_0x33547e,null))[_0xb4f7('0x23')](function(_0x220351){if(_0x220351&&_0x220351[_0xb4f7('0x41')]){var _0x41d2f6={'id':_0x220351['id'],'tls':{'rejectUnauthorized':![]}};if(_0x220351[_0xb4f7('0x41')]['service']){_0x41d2f6['service']=_0x220351[_0xb4f7('0x41')][_0xb4f7('0x7a')];}else{_0x41d2f6[_0xb4f7('0x78')]=_0x220351[_0xb4f7('0x41')]['host'];_0x41d2f6['port']=_0x220351[_0xb4f7('0x41')][_0xb4f7('0x79')];_0x41d2f6[_0xb4f7('0xb6')]=_0x220351[_0xb4f7('0x41')]['secure'];}if(_0x220351['Smtp']['authentication']){_0x41d2f6['auth']={'user':_0x220351[_0xb4f7('0x41')][_0xb4f7('0x75')],'pass':_0x220351[_0xb4f7('0x41')][_0xb4f7('0x76')]};}return respondWithRpcPromise(_0xb4f7('0xb7'),_0xb4f7('0xb5'),{'account':_0x41d2f6});}})[_0xb4f7('0x23')](respondWithResult(_0x33547e,null))[_0xb4f7('0x2c')](handleError(_0x33547e,null));};exports['destroy']=function(_0xd4c746,_0x4dccad){return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0xd4c746['params']['id']}})['then'](handleEntityNotFound(_0x4dccad,null))[_0xb4f7('0x23')](function(_0x38a65f){if(_0x38a65f&&_0x38a65f[_0xb4f7('0x7a')]){throw new db[(_0xb4f7('0xb8'))][(_0xb4f7('0xb9'))](_0xb4f7('0xba'));}return _0x38a65f;})[_0xb4f7('0x23')](removeEntity(_0x4dccad,null))['catch'](handleError(_0x4dccad,null));};exports[_0xb4f7('0xbb')]=function(_0x1094a2,_0x25bb9c,_0x2f8da1){return db[_0xb4f7('0x44')][_0xb4f7('0x5f')]({'where':{'id':_0x1094a2[_0xb4f7('0x5c')]['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x25bb9c,null))[_0xb4f7('0x23')](function(_0x2a5dc8){if(_0x2a5dc8){return _0x2a5dc8[_0xb4f7('0xbb')](_0x1094a2[_0xb4f7('0x61')]['ids'],_[_0xb4f7('0xbc')](_0x1094a2[_0xb4f7('0x61')],['ids','id'])||{})[_0xb4f7('0xbd')](function(_0x27d788){for(var _0x1ab496=0x0;_0x1ab496<_0x1094a2[_0xb4f7('0x61')][_0xb4f7('0x6c')][_0xb4f7('0x5e')];_0x1ab496+=0x1){socket[_0xb4f7('0xbe')](_0xb4f7('0xbf'),{'UserId':Number(_0x1094a2['body'][_0xb4f7('0x6c')][_0x1ab496]),'MailAccountId':Number(_0x1094a2['params']['id'])});}return _0x27d788;});}})['then'](respondWithResult(_0x25bb9c,null))[_0xb4f7('0x2c')](handleError(_0x25bb9c,null));};exports[_0xb4f7('0xc0')]=function(_0x580772,_0x323a29,_0x18e5e8){return db[_0xb4f7('0x44')]['find']({'where':{'id':_0x580772['params']['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x323a29,null))[_0xb4f7('0x23')](function(_0x181659){if(_0x181659){return _0x181659[_0xb4f7('0xc0')](_0x580772[_0xb4f7('0x4b')][_0xb4f7('0x6c')])[_0xb4f7('0x23')](function(){if(_['isArray'](_0x580772['query'][_0xb4f7('0x6c')])){for(var _0x526afc=0x0;_0x526afc<_0x580772[_0xb4f7('0x4b')][_0xb4f7('0x6c')][_0xb4f7('0x5e')];_0x526afc+=0x1){socket[_0xb4f7('0xbe')](_0xb4f7('0xc1'),{'UserId':Number(_0x580772['query'][_0xb4f7('0x6c')][_0x526afc]),'MailAccountId':Number(_0x580772[_0xb4f7('0x5c')]['id'])});}}else{socket[_0xb4f7('0xbe')](_0xb4f7('0xc1'),{'UserId':Number(_0x580772[_0xb4f7('0x4b')]['ids']),'MailAccountId':Number(_0x580772[_0xb4f7('0x5c')]['id'])});}});}})[_0xb4f7('0x23')](respondWithStatusCode(_0x323a29,null))[_0xb4f7('0x2c')](handleError(_0x323a29,null));};exports[_0xb4f7('0xc2')]=function(_0x465a47,_0x1044af,_0x66682a){var _0x5a6b95={};var _0x3250df={};var _0x53f1e6;var _0x4b3f9c;return db['MailAccount'][_0xb4f7('0x66')]({'where':{'id':_0x465a47['params']['id']}})[_0xb4f7('0x23')](handleEntityNotFound(_0x1044af,null))['then'](function(_0x48cd46){if(_0x48cd46){_0x53f1e6=_0x48cd46;_0x3250df[_0xb4f7('0x49')]=_['keys'](db[_0xb4f7('0xc3')]['rawAttributes']);_0x3250df[_0xb4f7('0x4b')]=_[_0xb4f7('0x4c')](_0x465a47[_0xb4f7('0x4b')]);_0x3250df[_0xb4f7('0x4d')]=_[_0xb4f7('0x4e')](_0x3250df[_0xb4f7('0x49')],_0x3250df[_0xb4f7('0x4b')]);_0x5a6b95[_0xb4f7('0x4f')]=_['intersection'](_0x3250df[_0xb4f7('0x49')],qs[_0xb4f7('0x50')](_0x465a47[_0xb4f7('0x4b')][_0xb4f7('0x50')]));_0x5a6b95[_0xb4f7('0x4f')]=_0x5a6b95['attributes'][_0xb4f7('0x5e')]?_0x5a6b95[_0xb4f7('0x4f')]:_0x3250df[_0xb4f7('0x49')];_0x5a6b95[_0xb4f7('0x53')]=qs[_0xb4f7('0x54')](_0x465a47[_0xb4f7('0x4b')]['sort']);_0x5a6b95['where']=qs[_0xb4f7('0x4d')](_[_0xb4f7('0x56')](_0x465a47[_0xb4f7('0x4b')],_0x3250df[_0xb4f7('0x4d')]));if(_0x465a47['query'][_0xb4f7('0x57')]){_0x5a6b95[_0xb4f7('0x55')]=_[_0xb4f7('0x58')](_0x5a6b95['where'],{'$or':_['map'](_0x5a6b95[_0xb4f7('0x4f')],function(_0x58d8b1){var _0x58d9a6={};_0x58d9a6[_0x58d8b1]={'$like':'%'+_0x465a47[_0xb4f7('0x4b')][_0xb4f7('0x57')]+'%'};return _0x58d9a6;})});}_0x5a6b95=_['merge']({},_0x5a6b95,_0x465a47[_0xb4f7('0x6f')]);return _0x53f1e6[_0xb4f7('0xc2')](_0x5a6b95);}})[_0xb4f7('0x23')](function(_0x545910){if(_0x545910){_0x4b3f9c=_0x545910[_0xb4f7('0x5e')];if(!_0x465a47[_0xb4f7('0x4b')][_0xb4f7('0x51')](_0xb4f7('0x52'))){_0x5a6b95[_0xb4f7('0x32')]=qs[_0xb4f7('0x32')](_0x465a47[_0xb4f7('0x4b')][_0xb4f7('0x32')]);_0x5a6b95[_0xb4f7('0x30')]=qs['offset'](_0x465a47[_0xb4f7('0x4b')][_0xb4f7('0x30')]);}return _0x53f1e6['getAgents'](_0x5a6b95);}})['then'](function(_0x10e9be){if(_0x10e9be){return _0x10e9be?{'count':_0x4b3f9c,'rows':_0x10e9be}:null;}})[_0xb4f7('0x23')](respondWithResult(_0x1044af,null))['catch'](handleError(_0x1044af,null));};