f3a46ef7d3e5b2d338a330fd78eea27e41ad1b43
[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 _0x5b6a=['params','MailServerIn','rawAttributes','length','find','body','Pause','describe','addDisposition','MailAccountId','Disposition','getDispositions','nolimit','map','removeDispositions','ids','addAnswer','getAnswers','findOne','CannedAnswer','removeAnswers','create','email','isNil','active','description','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','getSmtp','removeSmtp','setSmtp','MailInteraction','omit','getInteractions','Contact','User','fullname','internal','Tag','Tags','color','tag','addApplications','MailApplication','bulkCreate','findAndCountAll','priority','getApplications','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','CmList','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','auth','secure','sendMail','List\x20not\x20found','List','ListId','messageId','subject','out','Interaction','Messages','verifySmtp','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','html-to-text','juice','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','client','request','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','update','destroy','get','MailAccounts','then','stack','name','send','index','Imap','MailServerOut','Smtp','mandatoryDispositionPause','MailAccount','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show'];(function(_0x1b7368,_0x3286ed){var _0x25d54c=function(_0x2366da){while(--_0x2366da){_0x1b7368['push'](_0x1b7368['shift']());}};_0x25d54c(++_0x3286ed);}(_0x5b6a,0x66));var _0xa5b6=function(_0x627cb8,_0x2b89d6){_0x627cb8=_0x627cb8-0x0;var _0x5629b5=_0x5b6a[_0x627cb8];return _0x5629b5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa5b6('0x0'));var zipdir=require(_0xa5b6('0x1'));var jsonpatch=require(_0xa5b6('0x2'));var rp=require(_0xa5b6('0x3'));var moment=require(_0xa5b6('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa5b6('0x5'));var util=require(_0xa5b6('0x6'));var path=require(_0xa5b6('0x7'));var sox=require(_0xa5b6('0x8'));var csv=require('to-csv');var ejs=require(_0xa5b6('0x9'));var fs=require('fs');var fs_extra=require(_0xa5b6('0xa'));var _=require(_0xa5b6('0xb'));var squel=require(_0xa5b6('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa5b6('0xd'));var toCsv=require(_0xa5b6('0xe'));var querystring=require(_0xa5b6('0xf'));var Papa=require('papaparse');var htmlToText=require(_0xa5b6('0x10'));var juice=require(_0xa5b6('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa5b6('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa5b6('0x13'));var logger=require(_0xa5b6('0x14'))(_0xa5b6('0x15'));var utils=require(_0xa5b6('0x16'));var config=require(_0xa5b6('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xa5b6('0x18'))['db'];config[_0xa5b6('0x19')]=_[_0xa5b6('0x1a')](config[_0xa5b6('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xa5b6('0x1b'))(new Redis(config[_0xa5b6('0x19')]));require('./mailAccount.socket')[_0xa5b6('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0xa5b6('0x1d')]['http']({'port':0x232b});function respondWithRpcPromise(_0x5e64dc,_0x21c4e3,_0x6580e0,_0x222361){return new BPromise(function(_0x3ffa1d,_0x222f45){var _0x5279e3=_0x222361||client;return _0x5279e3[_0xa5b6('0x1e')](_0x5e64dc,_0x6580e0)['then'](function(_0x1417af){logger['info'](_0xa5b6('0x1f'),_0x21c4e3,_0xa5b6('0x20'));logger[_0xa5b6('0x21')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x21c4e3,_0xa5b6('0x20'),JSON[_0xa5b6('0x22')](_0x1417af));if(_0x1417af[_0xa5b6('0x23')]){if(_0x1417af[_0xa5b6('0x23')][_0xa5b6('0x24')]===0x1f4){logger[_0xa5b6('0x23')](_0xa5b6('0x1f'),_0x21c4e3,_0x1417af[_0xa5b6('0x23')][_0xa5b6('0x25')]);return _0x222f45(_0x1417af[_0xa5b6('0x23')]['message']);}logger['error'](_0xa5b6('0x1f'),_0x21c4e3,_0x1417af[_0xa5b6('0x23')]['message']);return _0x3ffa1d(_0x1417af['error'][_0xa5b6('0x25')]);}else{logger[_0xa5b6('0x26')](_0xa5b6('0x1f'),_0x21c4e3,_0xa5b6('0x20'));_0x3ffa1d(_0x1417af['result'][_0xa5b6('0x25')]);}})[_0xa5b6('0x27')](function(_0x558623){logger[_0xa5b6('0x23')](_0xa5b6('0x1f'),_0x21c4e3,_0x558623);_0x222f45(_0x558623);});});}function respondWithStatusCode(_0xaf5822,_0x4464f1){_0x4464f1=_0x4464f1||0xcc;return function(_0x5ebed6){if(_0x5ebed6){return _0xaf5822[_0xa5b6('0x28')](_0x4464f1);}return _0xaf5822[_0xa5b6('0x29')](_0x4464f1)[_0xa5b6('0x2a')]();};}function respondWithResult(_0x331253,_0x64c6c1){_0x64c6c1=_0x64c6c1||0xc8;return function(_0x559cd1){if(_0x559cd1){return _0x331253[_0xa5b6('0x29')](_0x64c6c1)['json'](_0x559cd1);}};}function respondWithFilteredResult(_0x5b462e,_0x36c614){return function(_0x5e338e){if(_0x5e338e){var _0x2d60e8=typeof _0x36c614[_0xa5b6('0x2b')]===_0xa5b6('0x2c')&&typeof _0x36c614[_0xa5b6('0x2d')]===_0xa5b6('0x2c');var _0x535df8=_0x5e338e[_0xa5b6('0x2e')];var _0x4236ab=_0x2d60e8?0x0:_0x36c614[_0xa5b6('0x2b')];var _0x5f5abc=_0x2d60e8?_0x5e338e[_0xa5b6('0x2e')]:_0x36c614[_0xa5b6('0x2b')]+_0x36c614[_0xa5b6('0x2d')];var _0x40c710;if(_0x5f5abc>=_0x535df8){_0x5f5abc=_0x535df8;_0x40c710=0xc8;}else{_0x40c710=0xce;}_0x5b462e[_0xa5b6('0x29')](_0x40c710);return _0x5b462e['set'](_0xa5b6('0x2f'),_0x4236ab+'-'+_0x5f5abc+'/'+_0x535df8)[_0xa5b6('0x30')](_0x5e338e);}return null;};}function patchUpdates(_0x4476a8){return function(_0x2fe18c){try{jsonpatch[_0xa5b6('0x31')](_0x2fe18c,_0x4476a8,!![]);}catch(_0x27de78){return BPromise['reject'](_0x27de78);}return _0x2fe18c['save']();};}function saveUpdates(_0x330a3a,_0x355ff6){return function(_0x4aee79){if(_0x4aee79){return _0x4aee79[_0xa5b6('0x32')](_0x330a3a)['then'](function(_0x1bfddd){return _0x1bfddd;});}return null;};}function removeEntity(_0x39b4cc,_0x471964){return function(_0x5b2763){if(_0x5b2763){return _0x5b2763[_0xa5b6('0x33')]()['then'](function(){var _0x470a95=_0x5b2763[_0xa5b6('0x34')]({'plain':!![]});var _0xd70444=_0xa5b6('0x35');return db['UserProfileResource'][_0xa5b6('0x33')]({'where':{'type':_0xd70444,'resourceId':_0x470a95['id']}})[_0xa5b6('0x36')](function(){return _0x5b2763;});})[_0xa5b6('0x36')](function(){_0x39b4cc[_0xa5b6('0x29')](0xcc)[_0xa5b6('0x2a')]();});}};}function handleEntityNotFound(_0x180cea,_0x522cc7){return function(_0x580b96){if(!_0x580b96){_0x180cea[_0xa5b6('0x28')](0x194);}return _0x580b96;};}function handleError(_0x4b7d02,_0x4de5e9){_0x4de5e9=_0x4de5e9||0x1f4;return function(_0xc3258e){logger[_0xa5b6('0x23')](_0xc3258e[_0xa5b6('0x37')]);if(_0xc3258e[_0xa5b6('0x38')]){delete _0xc3258e[_0xa5b6('0x38')];}_0x4b7d02['status'](_0x4de5e9)[_0xa5b6('0x39')](_0xc3258e);};}exports[_0xa5b6('0x3a')]=function(_0x2f01d8,_0x37392c){var _0x3a8cb5={'include':[{'model':db['MailServerIn'],'as':_0xa5b6('0x3b')},{'model':db[_0xa5b6('0x3c')],'as':_0xa5b6('0x3d')},{'model':db['Pause'],'as':_0xa5b6('0x3e')}]},_0xf03bef={},_0x143fff={'count':0x0,'rows':[]};var _0x4f3f91=_['map'](db[_0xa5b6('0x3f')]['rawAttributes'],function(_0xcba11e){return{'name':_0xcba11e[_0xa5b6('0x40')],'type':_0xcba11e[_0xa5b6('0x41')][_0xa5b6('0x42')]};});_0xf03bef[_0xa5b6('0x43')]=_['map'](_0x4f3f91,'name');_0xf03bef[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x2f01d8[_0xa5b6('0x44')]);_0xf03bef[_0xa5b6('0x46')]=_['intersection'](_0xf03bef[_0xa5b6('0x43')],_0xf03bef[_0xa5b6('0x44')]);_0x3a8cb5[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0xf03bef['model'],qs[_0xa5b6('0x49')](_0x2f01d8[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x3a8cb5['attributes']=_0x3a8cb5[_0xa5b6('0x47')]['length']?_0x3a8cb5[_0xa5b6('0x47')]:_0xf03bef[_0xa5b6('0x43')];if(!_0x2f01d8[_0xa5b6('0x44')][_0xa5b6('0x4a')]('nolimit')){_0x3a8cb5[_0xa5b6('0x2d')]=qs['limit'](_0x2f01d8['query'][_0xa5b6('0x2d')]);_0x3a8cb5[_0xa5b6('0x2b')]=qs[_0xa5b6('0x2b')](_0x2f01d8[_0xa5b6('0x44')][_0xa5b6('0x2b')]);}_0x3a8cb5[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x2f01d8[_0xa5b6('0x44')]['sort']);_0x3a8cb5[_0xa5b6('0x4d')]=qs[_0xa5b6('0x46')](_[_0xa5b6('0x4e')](_0x2f01d8[_0xa5b6('0x44')],_0xf03bef[_0xa5b6('0x46')]),_0x4f3f91);if(_0x2f01d8[_0xa5b6('0x44')][_0xa5b6('0x4f')]){_0x3a8cb5[_0xa5b6('0x4d')]=_[_0xa5b6('0x50')](_0x3a8cb5[_0xa5b6('0x4d')],{'$or':_['map'](_0x4f3f91,function(_0x3af0f6){if(_0x3af0f6[_0xa5b6('0x41')]!==_0xa5b6('0x51')){var _0x19ac15={};_0x19ac15[_0x3af0f6['name']]={'$like':'%'+_0x2f01d8[_0xa5b6('0x44')][_0xa5b6('0x4f')]+'%'};return _0x19ac15;}})});}_0x3a8cb5=_[_0xa5b6('0x50')]({},_0x3a8cb5,_0x2f01d8[_0xa5b6('0x52')]);var _0x1e6f8c={'where':_0x3a8cb5[_0xa5b6('0x4d')]};return db['MailAccount'][_0xa5b6('0x2e')](_0x1e6f8c)[_0xa5b6('0x36')](function(_0x4beede){_0x143fff['count']=_0x4beede;if(_0x2f01d8['query'][_0xa5b6('0x53')]){_0x3a8cb5[_0xa5b6('0x54')]=[{'all':!![]}];}return db[_0xa5b6('0x3f')][_0xa5b6('0x55')](_0x3a8cb5);})[_0xa5b6('0x36')](function(_0x4f3fb8){_0x143fff[_0xa5b6('0x56')]=_0x4f3fb8;return _0x143fff;})['then'](respondWithFilteredResult(_0x37392c,_0x3a8cb5))[_0xa5b6('0x27')](handleError(_0x37392c,null));};exports[_0xa5b6('0x57')]=function(_0x2afcc4,_0x4c1219){var _0x146f7b={'raw':![],'where':{'id':_0x2afcc4[_0xa5b6('0x58')]['id']},'include':[{'model':db[_0xa5b6('0x59')],'as':_0xa5b6('0x3b')},{'model':db['MailServerOut'],'as':_0xa5b6('0x3d')},{'model':db['Pause'],'as':_0xa5b6('0x3e')}]},_0x8e50f3={};_0x8e50f3[_0xa5b6('0x43')]=_[_0xa5b6('0x45')](db['MailAccount'][_0xa5b6('0x5a')]);_0x8e50f3[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x2afcc4[_0xa5b6('0x44')]);_0x8e50f3['filters']=_[_0xa5b6('0x48')](_0x8e50f3[_0xa5b6('0x43')],_0x8e50f3[_0xa5b6('0x44')]);_0x146f7b[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x8e50f3[_0xa5b6('0x43')],qs[_0xa5b6('0x49')](_0x2afcc4[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x146f7b[_0xa5b6('0x47')]=_0x146f7b[_0xa5b6('0x47')][_0xa5b6('0x5b')]?_0x146f7b['attributes']:_0x8e50f3['model'];if(_0x2afcc4['query'][_0xa5b6('0x53')]){_0x146f7b[_0xa5b6('0x54')]=[{'all':!![]}];}_0x146f7b=_[_0xa5b6('0x50')]({},_0x146f7b,_0x2afcc4[_0xa5b6('0x52')]);return db['MailAccount'][_0xa5b6('0x5c')](_0x146f7b)[_0xa5b6('0x36')](handleEntityNotFound(_0x4c1219,null))['then'](respondWithResult(_0x4c1219,null))[_0xa5b6('0x27')](handleError(_0x4c1219,null));};exports[_0xa5b6('0x32')]=function(_0x4e8d33,_0x43e0ff){if(_0x4e8d33[_0xa5b6('0x5d')]['id']){delete _0x4e8d33[_0xa5b6('0x5d')]['id'];}return db[_0xa5b6('0x3f')]['find']({'where':{'id':_0x4e8d33[_0xa5b6('0x58')]['id']},'include':[{'model':db[_0xa5b6('0x59')],'as':'Imap'},{'model':db['MailServerOut'],'as':_0xa5b6('0x3d')},{'model':db[_0xa5b6('0x5e')],'as':_0xa5b6('0x3e')}]})[_0xa5b6('0x36')](handleEntityNotFound(_0x43e0ff,null))['then'](saveUpdates(_0x4e8d33[_0xa5b6('0x5d')],null))[_0xa5b6('0x36')](function(_0x29b186){if(_0x29b186&&_0x4e8d33[_0xa5b6('0x5d')][_0xa5b6('0x3b')]){return db[_0xa5b6('0x59')]['update'](_0x4e8d33[_0xa5b6('0x5d')][_0xa5b6('0x3b')],{'where':{'MailAccountId':_0x29b186['id']}})[_0xa5b6('0x36')](function(){return _0x29b186;});}return _0x29b186;})[_0xa5b6('0x36')](function(_0x362ac7){if(_0x362ac7&&_0x4e8d33[_0xa5b6('0x5d')]['Smtp']){return db[_0xa5b6('0x3c')][_0xa5b6('0x32')](_0x4e8d33['body'][_0xa5b6('0x3d')],{'where':{'MailAccountId':_0x362ac7['id']}})[_0xa5b6('0x36')](function(){return _0x362ac7;});}return _0x362ac7;})['then'](respondWithResult(_0x43e0ff,null))[_0xa5b6('0x27')](handleError(_0x43e0ff,null));};exports[_0xa5b6('0x5f')]=function(_0x4008b0,_0xe212d2){return db['MailAccount'][_0xa5b6('0x5f')]()[_0xa5b6('0x36')](respondWithResult(_0xe212d2,null))[_0xa5b6('0x27')](handleError(_0xe212d2,null));};exports[_0xa5b6('0x60')]=function(_0x160912,_0x5758cd,_0x48c5b2){if(_0x160912[_0xa5b6('0x5d')]['id']){delete _0x160912[_0xa5b6('0x5d')]['id'];}return db['MailAccount'][_0xa5b6('0x5c')]({'where':{'id':_0x160912[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x5758cd,null))[_0xa5b6('0x36')](function(_0x300701){if(_0x300701){_0x160912[_0xa5b6('0x5d')][_0xa5b6('0x61')]=_0x300701['id'];return db[_0xa5b6('0x62')]['create'](_0x160912[_0xa5b6('0x5d')]);}})[_0xa5b6('0x36')](respondWithResult(_0x5758cd,null))[_0xa5b6('0x27')](handleError(_0x5758cd,null));};exports[_0xa5b6('0x63')]=function(_0x163c1f,_0x4f8c6c,_0x1a237d){var _0x2ef04a={'raw':![],'where':{}};var _0x59859d={};var _0x1cff0e={'count':0x0,'rows':[]};return db[_0xa5b6('0x3f')]['findOne']({'where':{'id':_0x163c1f[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x4f8c6c,null))[_0xa5b6('0x36')](function(_0x343813){if(_0x343813){_0x59859d[_0xa5b6('0x43')]=_['keys'](db[_0xa5b6('0x62')]['rawAttributes']);_0x59859d[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x163c1f[_0xa5b6('0x44')]);_0x59859d['filters']=_[_0xa5b6('0x48')](_0x59859d['model'],_0x59859d['query']);_0x2ef04a[_0xa5b6('0x47')]=_['intersection'](_0x59859d[_0xa5b6('0x43')],qs[_0xa5b6('0x49')](_0x163c1f[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x2ef04a[_0xa5b6('0x47')]=_0x2ef04a['attributes']['length']?_0x2ef04a[_0xa5b6('0x47')]:_0x59859d[_0xa5b6('0x43')];if(!_0x163c1f['query'][_0xa5b6('0x4a')](_0xa5b6('0x64'))){_0x2ef04a[_0xa5b6('0x2d')]=qs[_0xa5b6('0x2d')](_0x163c1f[_0xa5b6('0x44')]['limit']);_0x2ef04a[_0xa5b6('0x2b')]=qs[_0xa5b6('0x2b')](_0x163c1f['query'][_0xa5b6('0x2b')]);}_0x2ef04a[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x163c1f[_0xa5b6('0x44')]['sort']);_0x2ef04a[_0xa5b6('0x4d')]=qs['filters'](_[_0xa5b6('0x4e')](_0x163c1f['query'],_0x59859d[_0xa5b6('0x46')]));_0x2ef04a['where'][_0xa5b6('0x61')]=_0x343813['id'];if(_0x163c1f['query'][_0xa5b6('0x4f')]){_0x2ef04a[_0xa5b6('0x4d')]=_[_0xa5b6('0x50')](_0x2ef04a['where'],{'$or':_[_0xa5b6('0x65')](_0x2ef04a[_0xa5b6('0x47')],function(_0x20e7ec){var _0x8c38fc={};_0x8c38fc[_0x20e7ec]={'$like':'%'+_0x163c1f[_0xa5b6('0x44')][_0xa5b6('0x4f')]+'%'};return _0x8c38fc;})});}_0x2ef04a=_['merge']({},_0x2ef04a,_0x163c1f['options']);return db[_0xa5b6('0x62')][_0xa5b6('0x2e')]({'where':_0x2ef04a['where']})[_0xa5b6('0x36')](function(_0x2d7913){_0x1cff0e[_0xa5b6('0x2e')]=_0x2d7913;if(_0x163c1f['query'][_0xa5b6('0x53')]){_0x2ef04a['include']=[{'all':!![]}];}return db[_0xa5b6('0x62')][_0xa5b6('0x55')](_0x2ef04a);})['then'](function(_0x2f1aa9){_0x1cff0e[_0xa5b6('0x56')]=_0x2f1aa9;return _0x1cff0e;});}})['then'](respondWithFilteredResult(_0x4f8c6c,_0x2ef04a))[_0xa5b6('0x27')](handleError(_0x4f8c6c,null));};exports[_0xa5b6('0x66')]=function(_0x7b918b,_0x13c677,_0x50ce51){return db['MailAccount'][_0xa5b6('0x5c')]({'where':{'id':_0x7b918b[_0xa5b6('0x58')]['id']}})['then'](handleEntityNotFound(_0x13c677,null))['then'](function(_0x2bbdf5){if(_0x2bbdf5){return _0x2bbdf5['removeDispositions'](_0x7b918b[_0xa5b6('0x44')][_0xa5b6('0x67')]);}})[_0xa5b6('0x36')](respondWithStatusCode(_0x13c677,null))['catch'](handleError(_0x13c677,null));};exports[_0xa5b6('0x68')]=function(_0x1703ec,_0x3b8844,_0x51e80e){if(_0x1703ec[_0xa5b6('0x5d')]['id']){delete _0x1703ec[_0xa5b6('0x5d')]['id'];}return db[_0xa5b6('0x3f')][_0xa5b6('0x5c')]({'where':{'id':_0x1703ec[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x3b8844,null))[_0xa5b6('0x36')](function(_0x1b69e1){if(_0x1b69e1){_0x1703ec[_0xa5b6('0x5d')][_0xa5b6('0x61')]=_0x1b69e1['id'];return db['CannedAnswer']['create'](_0x1703ec[_0xa5b6('0x5d')]);}})['then'](respondWithResult(_0x3b8844,null))[_0xa5b6('0x27')](handleError(_0x3b8844,null));};exports[_0xa5b6('0x69')]=function(_0x54dbde,_0x144c2c,_0x331ac1){var _0x211a0b={'raw':![],'where':{}};var _0x27b1f6={};var _0x9bfeb4={'count':0x0,'rows':[]};return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x54dbde[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x144c2c,null))[_0xa5b6('0x36')](function(_0xfb0b59){if(_0xfb0b59){_0x27b1f6[_0xa5b6('0x43')]=_[_0xa5b6('0x45')](db[_0xa5b6('0x6b')][_0xa5b6('0x5a')]);_0x27b1f6[_0xa5b6('0x44')]=_['keys'](_0x54dbde[_0xa5b6('0x44')]);_0x27b1f6[_0xa5b6('0x46')]=_[_0xa5b6('0x48')](_0x27b1f6[_0xa5b6('0x43')],_0x27b1f6[_0xa5b6('0x44')]);_0x211a0b[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x27b1f6[_0xa5b6('0x43')],qs['fields'](_0x54dbde[_0xa5b6('0x44')]['fields']));_0x211a0b[_0xa5b6('0x47')]=_0x211a0b[_0xa5b6('0x47')]['length']?_0x211a0b[_0xa5b6('0x47')]:_0x27b1f6[_0xa5b6('0x43')];if(!_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x4a')]('nolimit')){_0x211a0b['limit']=qs[_0xa5b6('0x2d')](_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x2d')]);_0x211a0b[_0xa5b6('0x2b')]=qs[_0xa5b6('0x2b')](_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x2b')]);}_0x211a0b[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x4c')]);_0x211a0b[_0xa5b6('0x4d')]=qs[_0xa5b6('0x46')](_[_0xa5b6('0x4e')](_0x54dbde['query'],_0x27b1f6['filters']));_0x211a0b[_0xa5b6('0x4d')][_0xa5b6('0x61')]=_0xfb0b59['id'];if(_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x4f')]){_0x211a0b[_0xa5b6('0x4d')]=_[_0xa5b6('0x50')](_0x211a0b[_0xa5b6('0x4d')],{'$or':_[_0xa5b6('0x65')](_0x211a0b[_0xa5b6('0x47')],function(_0x290c9e){var _0x3c9ae4={};_0x3c9ae4[_0x290c9e]={'$like':'%'+_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x4f')]+'%'};return _0x3c9ae4;})});}_0x211a0b=_[_0xa5b6('0x50')]({},_0x211a0b,_0x54dbde['options']);return db[_0xa5b6('0x6b')][_0xa5b6('0x2e')]({'where':_0x211a0b[_0xa5b6('0x4d')]})['then'](function(_0x55eb41){_0x9bfeb4[_0xa5b6('0x2e')]=_0x55eb41;if(_0x54dbde[_0xa5b6('0x44')][_0xa5b6('0x53')]){_0x211a0b[_0xa5b6('0x54')]=[{'all':!![]}];}return db[_0xa5b6('0x6b')][_0xa5b6('0x55')](_0x211a0b);})[_0xa5b6('0x36')](function(_0x1f4997){_0x9bfeb4[_0xa5b6('0x56')]=_0x1f4997;return _0x9bfeb4;});}})[_0xa5b6('0x36')](respondWithFilteredResult(_0x144c2c,_0x211a0b))[_0xa5b6('0x27')](handleError(_0x144c2c,null));};exports[_0xa5b6('0x6c')]=function(_0xe054b8,_0x33cf77,_0x47d5fc){return db['MailAccount'][_0xa5b6('0x5c')]({'where':{'id':_0xe054b8[_0xa5b6('0x58')]['id']}})['then'](handleEntityNotFound(_0x33cf77,null))[_0xa5b6('0x36')](function(_0x5da5a0){if(_0x5da5a0){return _0x5da5a0[_0xa5b6('0x6c')](_0xe054b8[_0xa5b6('0x44')][_0xa5b6('0x67')]);}})[_0xa5b6('0x36')](respondWithStatusCode(_0x33cf77,null))['catch'](handleError(_0x33cf77,null));};exports[_0xa5b6('0x6d')]=function(_0x4dbcac,_0x54711b){var _0x182e0d={'name':_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x38')],'key':_0x4dbcac['body'][_0xa5b6('0x42')],'email':_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x6e')],'ListId':_0x4dbcac['body']['ListId'],'active':!_[_0xa5b6('0x6f')](_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x70')])?_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x70')]:!![],'description':_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x71')]||null,'Imap':{},'Smtp':{}};if(_[_0xa5b6('0x6f')](_0x4dbcac['body'][_0xa5b6('0x72')])){if(_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x73')]){_0x182e0d[_0xa5b6('0x3b')][_0xa5b6('0x74')]=_0x182e0d[_0xa5b6('0x3d')][_0xa5b6('0x74')]=_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x75')];_0x182e0d[_0xa5b6('0x3b')][_0xa5b6('0x76')]=_0x182e0d['Smtp'][_0xa5b6('0x77')]=_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x78')];}else{_0x182e0d['Imap'][_0xa5b6('0x79')]=_0x182e0d[_0xa5b6('0x3d')]['authentication']=![];}_0x182e0d['Imap'][_0xa5b6('0x7a')]=_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x3b')][_0xa5b6('0x7a')];_0x182e0d[_0xa5b6('0x3b')][_0xa5b6('0x7b')]=_0x4dbcac['body']['Imap'][_0xa5b6('0x7b')];_0x182e0d[_0xa5b6('0x3d')][_0xa5b6('0x7a')]=_0x4dbcac[_0xa5b6('0x5d')]['Smtp']['host'];_0x182e0d[_0xa5b6('0x3d')]['port']=_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x3d')][_0xa5b6('0x7b')];}else{_0x182e0d['Imap']['service']=_0x182e0d[_0xa5b6('0x3d')][_0xa5b6('0x7c')]=_0x4dbcac[_0xa5b6('0x5d')][_0xa5b6('0x72')];_0x182e0d[_0xa5b6('0x3b')][_0xa5b6('0x74')]=_0x182e0d[_0xa5b6('0x3d')][_0xa5b6('0x74')]=_0x4dbcac['body'][_0xa5b6('0x75')];_0x182e0d[_0xa5b6('0x3b')][_0xa5b6('0x76')]=_0x182e0d['Smtp']['pass']=_0x4dbcac['body'][_0xa5b6('0x78')];}return db[_0xa5b6('0x3f')][_0xa5b6('0x6d')](_0x182e0d,{'include':[{'model':db[_0xa5b6('0x3c')],'as':_0xa5b6('0x3d')},{'model':db['MailServerIn'],'as':'Imap'}]})['then'](function(_0x4e705e){var _0x26a7b7=_0x4dbcac['user'][_0xa5b6('0x34')]({'plain':!![]});if(!_0x26a7b7)throw new Error(_0xa5b6('0x7d'));if(_0x26a7b7[_0xa5b6('0x7e')]===_0xa5b6('0x74')){var _0x133fab=_0x4e705e[_0xa5b6('0x34')]({'plain':!![]});return db[_0xa5b6('0x7f')][_0xa5b6('0x5c')]({'where':{'name':_0xa5b6('0x35'),'userProfileId':_0x26a7b7['userProfileId']},'raw':!![]})[_0xa5b6('0x36')](function(_0x545b1c){if(_0x545b1c&&_0x545b1c[_0xa5b6('0x80')]===0x0){return db[_0xa5b6('0x81')]['create']({'name':_0x133fab[_0xa5b6('0x38')],'resourceId':_0x133fab['id'],'type':_0x545b1c[_0xa5b6('0x38')],'sectionId':_0x545b1c['id']},{})['then'](function(){return _0x4e705e;});}else{return _0x4e705e;}})[_0xa5b6('0x27')](function(_0x2d0418){logger['error'](_0xa5b6('0x82'),_0x2d0418);throw _0x2d0418;});}return _0x4e705e;})[_0xa5b6('0x36')](respondWithResult(_0x54711b,0xc9))['catch'](handleError(_0x54711b,null));};exports[_0xa5b6('0x83')]=function(_0x33ea32,_0x643e65,_0x5ed5cf){return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x33ea32[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x643e65,null))[_0xa5b6('0x36')](function(_0x43dc07){if(_0x43dc07){return _0x43dc07[_0xa5b6('0x83')]();}return null;})[_0xa5b6('0x36')](respondWithResult(_0x643e65,null))['catch'](handleError(_0x643e65,null));};exports[_0xa5b6('0x84')]=function(_0x5838d9,_0x423958,_0xd4a829){if(_0x5838d9[_0xa5b6('0x5d')]['id']){delete _0x5838d9[_0xa5b6('0x5d')]['id'];}return db[_0xa5b6('0x3f')][_0xa5b6('0x5c')]({'where':{'id':_0x5838d9[_0xa5b6('0x58')]['id']}})['then'](handleEntityNotFound(_0x423958,null))['then'](function(_0x2d0530){if(_0x2d0530){_0x5838d9[_0xa5b6('0x5d')]['MailAccountId']=_0x2d0530['id'];return db['MailServerIn'][_0xa5b6('0x6d')](_0x5838d9[_0xa5b6('0x5d')]);}})['then'](respondWithResult(_0x423958,null))[_0xa5b6('0x27')](handleError(_0x423958,null));};exports[_0xa5b6('0x85')]=function(_0x524105,_0x242461,_0x5eecd5){return db['MailAccount']['findOne']({'where':{'id':_0x524105[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x242461,null))[_0xa5b6('0x36')](function(_0x256161){if(_0x256161){return _0x256161['setImap'](null);}return null;})[_0xa5b6('0x36')](respondWithStatusCode(_0x242461,null))[_0xa5b6('0x27')](handleError(_0x242461,null));};exports['getSmtp']=function(_0x5027cf,_0x59fe60,_0x28f323){return db['MailAccount'][_0xa5b6('0x6a')]({'where':{'id':_0x5027cf['params']['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x59fe60,null))[_0xa5b6('0x36')](function(_0x374090){if(_0x374090){return _0x374090[_0xa5b6('0x86')]();}return null;})[_0xa5b6('0x36')](respondWithResult(_0x59fe60,null))['catch'](handleError(_0x59fe60,null));};exports['addSmtp']=function(_0x1061f2,_0x4e8e25,_0xfff216){if(_0x1061f2[_0xa5b6('0x5d')]['id']){delete _0x1061f2[_0xa5b6('0x5d')]['id'];}return db['MailAccount']['find']({'where':{'id':_0x1061f2[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x4e8e25,null))['then'](function(_0x5f17b1){if(_0x5f17b1){_0x1061f2[_0xa5b6('0x5d')][_0xa5b6('0x61')]=_0x5f17b1['id'];return db[_0xa5b6('0x3c')][_0xa5b6('0x6d')](_0x1061f2[_0xa5b6('0x5d')]);}})['then'](respondWithResult(_0x4e8e25,null))['catch'](handleError(_0x4e8e25,null));};exports[_0xa5b6('0x87')]=function(_0x5065e2,_0x396995,_0x2978f4){return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x5065e2[_0xa5b6('0x58')]['id']}})['then'](handleEntityNotFound(_0x396995,null))['then'](function(_0x8e91e0){if(_0x8e91e0){return _0x8e91e0[_0xa5b6('0x88')](null);}return null;})['then'](respondWithStatusCode(_0x396995,null))['catch'](handleError(_0x396995,null));};exports['addInteraction']=function(_0x276238,_0x513b40,_0x11518e){return db[_0xa5b6('0x89')][_0xa5b6('0x5c')]({'where':{'id':_0x276238[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x513b40,null))['then'](function(_0x3b3561){if(_0x3b3561){return _0x3b3561['addInteraction'](_0x276238[_0xa5b6('0x5d')]['ids'],_[_0xa5b6('0x8a')](_0x276238['body'],[_0xa5b6('0x67'),'id'])||{});}})[_0xa5b6('0x36')](respondWithResult(_0x513b40,null))[_0xa5b6('0x27')](handleError(_0x513b40,null));};exports[_0xa5b6('0x8b')]=function(_0x5a3537,_0x397394,_0x4dffd9){var _0xaa17fb={'raw':![],'where':{}};var _0x437d6d={};var _0x51b947={'count':0x0,'rows':[]};return db['MailAccount'][_0xa5b6('0x6a')]({'where':{'id':_0x5a3537['params']['id']}})['then'](handleEntityNotFound(_0x397394,null))[_0xa5b6('0x36')](function(_0x431cad){if(_0x431cad){_0x437d6d['model']=_[_0xa5b6('0x45')](db[_0xa5b6('0x89')][_0xa5b6('0x5a')]);_0x437d6d[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x5a3537[_0xa5b6('0x44')]);_0x437d6d[_0xa5b6('0x46')]=_[_0xa5b6('0x48')](_0x437d6d[_0xa5b6('0x43')],_0x437d6d[_0xa5b6('0x44')]);_0xaa17fb[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x437d6d[_0xa5b6('0x43')],qs['fields'](_0x5a3537[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0xaa17fb[_0xa5b6('0x47')]=_0xaa17fb[_0xa5b6('0x47')]['length']?_0xaa17fb[_0xa5b6('0x47')]:_0x437d6d[_0xa5b6('0x43')];if(!_0x5a3537['query'][_0xa5b6('0x4a')](_0xa5b6('0x64'))){_0xaa17fb[_0xa5b6('0x2d')]=qs[_0xa5b6('0x2d')](_0x5a3537['query'][_0xa5b6('0x2d')]);_0xaa17fb['offset']=qs[_0xa5b6('0x2b')](_0x5a3537['query']['offset']);}_0xaa17fb[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x5a3537[_0xa5b6('0x44')][_0xa5b6('0x4c')]);_0xaa17fb['where']=qs['filters'](_[_0xa5b6('0x4e')](_0x5a3537[_0xa5b6('0x44')],_0x437d6d['filters']));_0xaa17fb[_0xa5b6('0x4d')][_0xa5b6('0x61')]=_0x431cad['id'];if(_0x5a3537[_0xa5b6('0x44')][_0xa5b6('0x4f')]){_0xaa17fb[_0xa5b6('0x4d')]=_['merge'](_0xaa17fb[_0xa5b6('0x4d')],{'$or':_[_0xa5b6('0x65')](_0xaa17fb[_0xa5b6('0x47')],function(_0x29827e){var _0x2d390a={};_0x2d390a[_0x29827e]={'$like':'%'+_0x5a3537[_0xa5b6('0x44')][_0xa5b6('0x4f')]+'%'};return _0x2d390a;})});}_0xaa17fb=_[_0xa5b6('0x50')]({},_0xaa17fb,_0x5a3537[_0xa5b6('0x52')]);return db['MailInteraction'][_0xa5b6('0x2e')]({'where':_0xaa17fb[_0xa5b6('0x4d')]})[_0xa5b6('0x36')](function(_0x301de3){_0x51b947[_0xa5b6('0x2e')]=_0x301de3;if(_0x5a3537['query'][_0xa5b6('0x53')]){_0xaa17fb['include']=[{'model':db['CmContact'],'as':_0xa5b6('0x8c'),'required':![]},{'model':db[_0xa5b6('0x8d')],'as':'Owner','attributes':[_0xa5b6('0x38'),_0xa5b6('0x8e'),_0xa5b6('0x8f')],'required':![]},{'model':db[_0xa5b6('0x90')],'as':_0xa5b6('0x91'),'attributes':['id','name',_0xa5b6('0x92')],'where':_0x5a3537[_0xa5b6('0x44')][_0xa5b6('0x93')]?{'id':_0x5a3537[_0xa5b6('0x44')]['tag']}:undefined,'required':_0x5a3537['query'][_0xa5b6('0x93')]?!![]:![]}];}return db[_0xa5b6('0x89')][_0xa5b6('0x55')](_0xaa17fb);})['then'](function(_0x534793){_0x51b947[_0xa5b6('0x56')]=_0x534793;return _0x51b947;});}})[_0xa5b6('0x36')](respondWithFilteredResult(_0x397394,_0xaa17fb))[_0xa5b6('0x27')](handleError(_0x397394,null));};exports[_0xa5b6('0x94')]=function(_0x2c9470,_0x25d5d5,_0x155cc5){return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x2c9470[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x25d5d5,null))['then'](function(_0x2a57ba){if(_0x2a57ba){return db['sequelize']['transaction'](function(_0x5940ab){return db['MailApplication'][_0xa5b6('0x33')]({'where':{'MailAccountId':_0x2c9470[_0xa5b6('0x58')]['id']},'transaction':_0x5940ab})['then'](function(_0x3d2606){var _0x22ffef=_[_0xa5b6('0x65')](_0x2c9470[_0xa5b6('0x5d')],function(_0x40fb67){_0x40fb67[_0xa5b6('0x61')]=_0x2c9470[_0xa5b6('0x58')]['id'];return _0x40fb67;});return db[_0xa5b6('0x95')][_0xa5b6('0x96')](_0x22ffef,{'transaction':_0x5940ab});});})[_0xa5b6('0x36')](function(){return db[_0xa5b6('0x95')][_0xa5b6('0x97')]({'where':{'MailAccountId':_0x2c9470[_0xa5b6('0x58')]['id']},'order':_0xa5b6('0x98')});});}})[_0xa5b6('0x36')](respondWithResult(_0x25d5d5,null))[_0xa5b6('0x27')](handleError(_0x25d5d5,null));};exports[_0xa5b6('0x99')]=function(_0x37ce76,_0x402f89,_0x2374bb){var _0x180cba={};var _0x257caf={};var _0x5bf2c8;var _0x3bef68;return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x37ce76['params']['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x402f89,null))['then'](function(_0x8499fd){if(_0x8499fd){_0x5bf2c8=_0x8499fd;_0x257caf['model']=_[_0xa5b6('0x45')](db[_0xa5b6('0x95')][_0xa5b6('0x5a')]);_0x257caf[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x37ce76[_0xa5b6('0x44')]);_0x257caf[_0xa5b6('0x46')]=_[_0xa5b6('0x48')](_0x257caf[_0xa5b6('0x43')],_0x257caf['query']);_0x180cba[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x257caf[_0xa5b6('0x43')],qs[_0xa5b6('0x49')](_0x37ce76[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x180cba[_0xa5b6('0x47')]=_0x180cba[_0xa5b6('0x47')][_0xa5b6('0x5b')]?_0x180cba[_0xa5b6('0x47')]:_0x257caf[_0xa5b6('0x43')];_0x180cba[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x37ce76[_0xa5b6('0x44')][_0xa5b6('0x4c')]);_0x180cba[_0xa5b6('0x4d')]=qs[_0xa5b6('0x46')](_['pick'](_0x37ce76[_0xa5b6('0x44')],_0x257caf['filters']));if(_0x37ce76['query'][_0xa5b6('0x4f')]){_0x180cba['where']=_[_0xa5b6('0x50')](_0x180cba[_0xa5b6('0x4d')],{'$or':_[_0xa5b6('0x65')](_0x180cba[_0xa5b6('0x47')],function(_0x166186){var _0x41ea40={};_0x41ea40[_0x166186]={'$like':'%'+_0x37ce76[_0xa5b6('0x44')][_0xa5b6('0x4f')]+'%'};return _0x41ea40;})});}_0x180cba=_[_0xa5b6('0x50')]({},_0x180cba,_0x37ce76['options']);return _0x5bf2c8[_0xa5b6('0x99')](_0x180cba);}})[_0xa5b6('0x36')](function(_0x4917ab){if(_0x4917ab){_0x3bef68=_0x4917ab['length'];if(!_0x37ce76['query']['hasOwnProperty'](_0xa5b6('0x64'))){_0x180cba[_0xa5b6('0x2d')]=qs[_0xa5b6('0x2d')](_0x37ce76[_0xa5b6('0x44')]['limit']);_0x180cba['offset']=qs[_0xa5b6('0x2b')](_0x37ce76['query'][_0xa5b6('0x2b')]);}return _0x5bf2c8[_0xa5b6('0x99')](_0x180cba);}})[_0xa5b6('0x36')](function(_0xefd4ef){if(_0xefd4ef){return _0xefd4ef?{'count':_0x3bef68,'rows':_0xefd4ef}:null;}})[_0xa5b6('0x36')](respondWithResult(_0x402f89,null))[_0xa5b6('0x27')](handleError(_0x402f89,null));};exports['getMessages']=function(_0x209005,_0x27214f,_0x7ebea7){var _0x4540f8={'raw':!![],'where':{}};var _0x31c0e0={};var _0x4e3305={'count':0x0,'rows':[]};return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x209005['params']['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x27214f,null))['then'](function(_0x55a938){if(_0x55a938){_0x31c0e0[_0xa5b6('0x43')]=_[_0xa5b6('0x45')](db[_0xa5b6('0x9a')][_0xa5b6('0x5a')]);_0x31c0e0['query']=_[_0xa5b6('0x45')](_0x209005[_0xa5b6('0x44')]);_0x31c0e0[_0xa5b6('0x46')]=_['intersection'](_0x31c0e0[_0xa5b6('0x43')],_0x31c0e0[_0xa5b6('0x44')]);_0x4540f8[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x31c0e0[_0xa5b6('0x43')],qs[_0xa5b6('0x49')](_0x209005[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x4540f8[_0xa5b6('0x47')]=_0x4540f8[_0xa5b6('0x47')][_0xa5b6('0x5b')]?_0x4540f8[_0xa5b6('0x47')]:_0x31c0e0[_0xa5b6('0x43')];if(!_0x209005['query'][_0xa5b6('0x4a')]('nolimit')){_0x4540f8[_0xa5b6('0x2d')]=qs[_0xa5b6('0x2d')](_0x209005[_0xa5b6('0x44')]['limit']);_0x4540f8['offset']=qs[_0xa5b6('0x2b')](_0x209005[_0xa5b6('0x44')][_0xa5b6('0x2b')]);}_0x4540f8['order']=qs[_0xa5b6('0x4c')](_0x209005[_0xa5b6('0x44')][_0xa5b6('0x4c')]);_0x4540f8[_0xa5b6('0x4d')]=qs[_0xa5b6('0x46')](_[_0xa5b6('0x4e')](_0x209005[_0xa5b6('0x44')],_0x31c0e0[_0xa5b6('0x46')]));_0x4540f8[_0xa5b6('0x4d')][_0xa5b6('0x61')]=_0x55a938['id'];if(_0x209005[_0xa5b6('0x44')]['filter']){_0x4540f8['where']=_['merge'](_0x4540f8['where'],{'$or':_[_0xa5b6('0x65')](_0x4540f8['attributes'],function(_0xd0878b){var _0x4c421a={};_0x4c421a[_0xd0878b]={'$like':'%'+_0x209005[_0xa5b6('0x44')]['filter']+'%'};return _0x4c421a;})});}if(_0x209005[_0xa5b6('0x44')]['$gte']){var _0x99ce2c=_0x209005[_0xa5b6('0x44')][_0xa5b6('0x9b')][_0xa5b6('0x9c')](',');var _0x420325={};_0x420325[_0x99ce2c[0x0]]={'$gte':moment(_0x99ce2c[0x1])[_0xa5b6('0x9d')](_0xa5b6('0x9e'))};_0x4540f8[_0xa5b6('0x4d')]=_[_0xa5b6('0x50')](_0x4540f8[_0xa5b6('0x4d')],_0x420325);}_0x4540f8=_['merge']({},_0x4540f8,_0x209005[_0xa5b6('0x52')]);return db[_0xa5b6('0x9a')][_0xa5b6('0x2e')]({'where':_0x4540f8[_0xa5b6('0x4d')]})[_0xa5b6('0x36')](function(_0x5b9dc0){_0x4e3305[_0xa5b6('0x2e')]=_0x5b9dc0;if(_0x209005[_0xa5b6('0x44')]['includeAll']){_0x4540f8[_0xa5b6('0x54')]=[{'all':!![]}];}return db[_0xa5b6('0x9a')][_0xa5b6('0x55')](_0x4540f8);})['then'](function(_0x4cf26c){if(_0x209005['query'][_0xa5b6('0x9f')]==='true'){for(var _0x41af0e=0x0;_0x41af0e<_0x4cf26c[_0xa5b6('0x5b')];_0x41af0e++){_0x4cf26c[_0x41af0e][_0xa5b6('0x5d')]=juice(_0x4cf26c[_0x41af0e][_0xa5b6('0x5d')]);}}_0x4e3305[_0xa5b6('0x56')]=_0x4cf26c;return _0x4e3305;});}})[_0xa5b6('0x36')](respondWithFilteredResult(_0x27214f,_0x4540f8))[_0xa5b6('0x27')](handleError(_0x27214f,null));};exports['send']=function(_0x5bde0f,_0x24a64f,_0x3b3c27){var _0x13acfd,_0x3c307b={},_0x44b468;if(_0x5bde0f[_0xa5b6('0x5d')]['to']){_0x44b468=_0x5bde0f['body']['to']['split'](',')[0x0];}return db[_0xa5b6('0x3f')]['find']({'where':{'id':_0x5bde0f[_0xa5b6('0x58')]['id']},'include':[{'model':db[_0xa5b6('0xa0')],'as':'List','include':[{'model':db['CmContact'],'as':_0xa5b6('0xa1'),'where':{'email':_0x44b468},'limit':0x1,'order':[[_0xa5b6('0xa2'),_0xa5b6('0xa3')]]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0xa5b6('0x36')](handleEntityNotFound(_0x24a64f,null))['then'](function(_0x51093b){if(_0x51093b){_0x13acfd=_0x51093b;if(_0x51093b[_0xa5b6('0x3d')]){if(_[_0xa5b6('0x6f')](_0x5bde0f['body'][_0xa5b6('0xa4')])){_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa4')]=util[_0xa5b6('0x9d')](_0xa5b6('0xa5'),_0x51093b[_0xa5b6('0x38')],_0x51093b['email']||_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x74')]);}if(_0x5bde0f[_0xa5b6('0x5d')]['attachments']&&_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa6')][_0xa5b6('0x5b')]){for(var _0x2f62e9=0x0;_0x2f62e9<_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa6')][_0xa5b6('0x5b')];_0x2f62e9+=0x1){_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa6')][_0x2f62e9]={'filename':_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa6')][_0x2f62e9]['name'],'path':path[_0xa5b6('0xa7')](config[_0xa5b6('0xa8')],_0xa5b6('0xa9'),_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xa6')][_0x2f62e9]['basename'])};}}var _0x2a6433={'tls':{'rejectUnauthorized':![]}};if(_[_0xa5b6('0x6f')](_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x7c')])){if(_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x79')]){_0x2a6433[_0xa5b6('0xaa')]={'user':_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x74')],'pass':_0x51093b[_0xa5b6('0x3d')]['pass']};}_0x2a6433['host']=_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x7a')];_0x2a6433[_0xa5b6('0x7b')]=_0x51093b['Smtp'][_0xa5b6('0x7b')];_0x2a6433['secure']=_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0xab')];}else{_0x2a6433[_0xa5b6('0x7c')]=_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x7c')];_0x2a6433[_0xa5b6('0xaa')]={'user':_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x74')],'pass':_0x51093b[_0xa5b6('0x3d')][_0xa5b6('0x77')]};}return respondWithRpcPromise('SendMail',_0xa5b6('0xac'),{'account':_0x2a6433,'message':_0x5bde0f[_0xa5b6('0x5d')]});}else{throw new Error(_0xa5b6('0xad'));}}})[_0xa5b6('0x36')](function(_0x1d5c07){if(_0x1d5c07){_0x3c307b=_0x1d5c07;if(_0x13acfd[_0xa5b6('0xae')]){if(_0x13acfd['List'][_0xa5b6('0xa1')][_0xa5b6('0x5b')]){return _0x13acfd[_0xa5b6('0xae')][_0xa5b6('0xa1')][0x0];}else{return db['CmContact'][_0xa5b6('0x6d')](_['defaults'](_0x5bde0f[_0xa5b6('0x5d')],{'firstName':_0x5bde0f[_0xa5b6('0x5d')]['to'],'email':_0x5bde0f[_0xa5b6('0x5d')]['to'],'phone':_0x5bde0f['body']['to'],'ListId':_0x13acfd[_0xa5b6('0xaf')]}));}}else{throw new Error(_0xa5b6('0xad'));}}})[_0xa5b6('0x36')](function(_0x5f2a9d){if(_0x5f2a9d){var _0x55e93a={'UserId':_0x5bde0f[_0xa5b6('0x74')]['id'],'ContactId':_0x5f2a9d['id'],'MailAccountId':_0x13acfd['id'],'inReplyTo':_0x3c307b[_0xa5b6('0xb0')],'to':_0x5bde0f['body'][_0xa5b6('0xa4')],'cc':_0x5bde0f['body']['cc'],'subject':_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xb1')],'attach':_0x5bde0f[_0xa5b6('0x5d')]['attach'],'firstMsgDirection':_0xa5b6('0xb2'),'lastMsgAt':moment()[_0xa5b6('0x9d')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'out','Messages':[_[_0xa5b6('0x50')](_0x5bde0f[_0xa5b6('0x5d')],{'messageId':_0x3c307b[_0xa5b6('0xb0')],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'read':!![],'MailAccountId':_0x13acfd['id'],'UserId':_0x5bde0f[_0xa5b6('0x74')]['id'],'ContactId':_0x5f2a9d['id']})]};if(_0x5bde0f[_0xa5b6('0x5d')][_0xa5b6('0xb3')]){_0x55e93a=_['merge'](_0x55e93a,_0x5bde0f[_0xa5b6('0x5d')]['Interaction']);}return db['MailInteraction'][_0xa5b6('0x6d')](_0x55e93a,{'include':[{'model':db[_0xa5b6('0x9a')],'as':_0xa5b6('0xb4')}]});}})[_0xa5b6('0x36')](respondWithResult(_0x24a64f,null))['catch'](handleError(_0x24a64f,null));};exports[_0xa5b6('0xb5')]=function(_0xda3c5a,_0x2173f8,_0x534bae){return db[_0xa5b6('0x3f')][_0xa5b6('0x5c')]({'where':{'id':_0xda3c5a[_0xa5b6('0x58')]['id']},'include':[{'model':db['MailServerOut'],'as':_0xa5b6('0x3d'),'raw':!![]}]})[_0xa5b6('0x36')](handleEntityNotFound(_0x2173f8,null))[_0xa5b6('0x36')](function(_0x5486c2){if(_0x5486c2&&_0x5486c2[_0xa5b6('0x3d')]){var _0x29af47={'id':_0x5486c2['id'],'tls':{'rejectUnauthorized':![]}};if(_0x5486c2[_0xa5b6('0x3d')][_0xa5b6('0x7c')]){_0x29af47[_0xa5b6('0x7c')]=_0x5486c2[_0xa5b6('0x3d')][_0xa5b6('0x7c')];}else{_0x29af47['host']=_0x5486c2[_0xa5b6('0x3d')][_0xa5b6('0x7a')];_0x29af47[_0xa5b6('0x7b')]=_0x5486c2['Smtp'][_0xa5b6('0x7b')];_0x29af47[_0xa5b6('0xab')]=_0x5486c2[_0xa5b6('0x3d')][_0xa5b6('0xab')];}if(_0x5486c2[_0xa5b6('0x3d')][_0xa5b6('0x79')]){_0x29af47[_0xa5b6('0xaa')]={'user':_0x5486c2['Smtp']['user'],'pass':_0x5486c2['Smtp'][_0xa5b6('0x77')]};}return respondWithRpcPromise('VerifySmtp',_0xa5b6('0xb5'),{'account':_0x29af47});}})[_0xa5b6('0x36')](respondWithResult(_0x2173f8,null))[_0xa5b6('0x27')](handleError(_0x2173f8,null));};exports[_0xa5b6('0x33')]=function(_0x4e1431,_0x2ec970){return db[_0xa5b6('0x3f')][_0xa5b6('0x5c')]({'where':{'id':_0x4e1431['params']['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x2ec970,null))[_0xa5b6('0x36')](function(_0x53bde0){if(_0x53bde0&&_0x53bde0['service']){throw new db['Sequelize'][(_0xa5b6('0xb6'))](_0xa5b6('0xb7'));}return _0x53bde0;})[_0xa5b6('0x36')](removeEntity(_0x2ec970,null))[_0xa5b6('0x27')](handleError(_0x2ec970,null));};exports[_0xa5b6('0xb8')]=function(_0x5df415,_0x5daadf,_0x58caa3){return db['MailAccount']['find']({'where':{'id':_0x5df415['params']['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x5daadf,null))[_0xa5b6('0x36')](function(_0xa73cb4){if(_0xa73cb4){return _0xa73cb4[_0xa5b6('0xb8')](_0x5df415[_0xa5b6('0x5d')]['ids'],_[_0xa5b6('0x8a')](_0x5df415[_0xa5b6('0x5d')],[_0xa5b6('0x67'),'id'])||{})['spread'](function(_0x13a349){for(var _0x37c1f9=0x0;_0x37c1f9<_0x5df415[_0xa5b6('0x5d')][_0xa5b6('0x67')]['length'];_0x37c1f9+=0x1){socket[_0xa5b6('0xb9')](_0xa5b6('0xba'),{'UserId':Number(_0x5df415[_0xa5b6('0x5d')][_0xa5b6('0x67')][_0x37c1f9]),'MailAccountId':Number(_0x5df415[_0xa5b6('0x58')]['id'])});}return _0x13a349;});}})['then'](respondWithResult(_0x5daadf,null))['catch'](handleError(_0x5daadf,null));};exports['removeAgents']=function(_0x2fef6d,_0xae7c21,_0x292cbb){return db[_0xa5b6('0x3f')]['find']({'where':{'id':_0x2fef6d[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0xae7c21,null))[_0xa5b6('0x36')](function(_0x48ff4e){if(_0x48ff4e){return _0x48ff4e[_0xa5b6('0xbb')](_0x2fef6d['query']['ids'])[_0xa5b6('0x36')](function(){if(_['isArray'](_0x2fef6d['query'][_0xa5b6('0x67')])){for(var _0x5798cb=0x0;_0x5798cb<_0x2fef6d[_0xa5b6('0x44')][_0xa5b6('0x67')]['length'];_0x5798cb+=0x1){socket[_0xa5b6('0xb9')](_0xa5b6('0xbc'),{'UserId':Number(_0x2fef6d[_0xa5b6('0x44')][_0xa5b6('0x67')][_0x5798cb]),'MailAccountId':Number(_0x2fef6d[_0xa5b6('0x58')]['id'])});}}else{socket['emit'](_0xa5b6('0xbc'),{'UserId':Number(_0x2fef6d['query'][_0xa5b6('0x67')]),'MailAccountId':Number(_0x2fef6d[_0xa5b6('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0xae7c21,null))['catch'](handleError(_0xae7c21,null));};exports[_0xa5b6('0xbd')]=function(_0x1b0d88,_0x406d22,_0x389cc8){var _0x442f2d={};var _0x588179={};var _0x47ef48;var _0x24fda7;return db[_0xa5b6('0x3f')][_0xa5b6('0x6a')]({'where':{'id':_0x1b0d88[_0xa5b6('0x58')]['id']}})[_0xa5b6('0x36')](handleEntityNotFound(_0x406d22,null))['then'](function(_0x307030){if(_0x307030){_0x47ef48=_0x307030;_0x588179['model']=_[_0xa5b6('0x45')](db[_0xa5b6('0x8d')][_0xa5b6('0x5a')]);_0x588179[_0xa5b6('0x44')]=_[_0xa5b6('0x45')](_0x1b0d88[_0xa5b6('0x44')]);_0x588179['filters']=_[_0xa5b6('0x48')](_0x588179[_0xa5b6('0x43')],_0x588179[_0xa5b6('0x44')]);_0x442f2d[_0xa5b6('0x47')]=_[_0xa5b6('0x48')](_0x588179[_0xa5b6('0x43')],qs[_0xa5b6('0x49')](_0x1b0d88[_0xa5b6('0x44')][_0xa5b6('0x49')]));_0x442f2d[_0xa5b6('0x47')]=_0x442f2d['attributes']['length']?_0x442f2d['attributes']:_0x588179['model'];_0x442f2d[_0xa5b6('0x4b')]=qs[_0xa5b6('0x4c')](_0x1b0d88[_0xa5b6('0x44')]['sort']);_0x442f2d[_0xa5b6('0x4d')]=qs[_0xa5b6('0x46')](_['pick'](_0x1b0d88[_0xa5b6('0x44')],_0x588179[_0xa5b6('0x46')]));if(_0x1b0d88['query'][_0xa5b6('0x4f')]){_0x442f2d[_0xa5b6('0x4d')]=_[_0xa5b6('0x50')](_0x442f2d[_0xa5b6('0x4d')],{'$or':_[_0xa5b6('0x65')](_0x442f2d[_0xa5b6('0x47')],function(_0x4f381c){var _0x29fa06={};_0x29fa06[_0x4f381c]={'$like':'%'+_0x1b0d88[_0xa5b6('0x44')]['filter']+'%'};return _0x29fa06;})});}_0x442f2d=_[_0xa5b6('0x50')]({},_0x442f2d,_0x1b0d88[_0xa5b6('0x52')]);return _0x47ef48['getAgents'](_0x442f2d);}})[_0xa5b6('0x36')](function(_0x5c3b06){if(_0x5c3b06){_0x24fda7=_0x5c3b06[_0xa5b6('0x5b')];if(!_0x1b0d88[_0xa5b6('0x44')][_0xa5b6('0x4a')]('nolimit')){_0x442f2d[_0xa5b6('0x2d')]=qs['limit'](_0x1b0d88['query'][_0xa5b6('0x2d')]);_0x442f2d['offset']=qs['offset'](_0x1b0d88[_0xa5b6('0x44')][_0xa5b6('0x2b')]);}return _0x47ef48[_0xa5b6('0xbd')](_0x442f2d);}})[_0xa5b6('0x36')](function(_0x5bc341){if(_0x5bc341){return _0x5bc341?{'count':_0x24fda7,'rows':_0x5bc341}:null;}})[_0xa5b6('0x36')](respondWithResult(_0x406d22,null))['catch'](handleError(_0x406d22,null));};