e9633442f8e63412a3d0ff6129d1ef918670d152
[motion2.git] / server / api / mailQueue / mailQueue.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 _0x54af=['userMailQueue:save','ids','select','field','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','TeamId','includes','all','union','compact','value','transaction','removeTeams','isEmpty','userMailQueue:remove','addAgents','omit','removeAgents','isArray','getAgents','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./mailQueue.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','get','MailQueues','UserProfileResource','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','MailQueue','include','findAll','rows','catch','show','params','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserMailQueue','pick','MailQueueId','User','findAndCountAll','UserId','agent','mailPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','addTeams','Agents','online','voicePause','interface','flatMap','each','findOrCreate','forEach','emit'];(function(_0x224ee6,_0x564642){var _0x33662d=function(_0x24b877){while(--_0x24b877){_0x224ee6['push'](_0x224ee6['shift']());}};_0x33662d(++_0x564642);}(_0x54af,0xb9));var _0xf54a=function(_0x1a7b27,_0x1b2d30){_0x1a7b27=_0x1a7b27-0x0;var _0x24442e=_0x54af[_0x1a7b27];return _0x24442e;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xf54a('0x0'));var jsonpatch=require(_0xf54a('0x1'));var rp=require(_0xf54a('0x2'));var moment=require(_0xf54a('0x3'));var BPromise=require(_0xf54a('0x4'));var Mustache=require(_0xf54a('0x5'));var util=require(_0xf54a('0x6'));var path=require(_0xf54a('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf54a('0x8'));var fs=require('fs');var fs_extra=require(_0xf54a('0x9'));var _=require(_0xf54a('0xa'));var squel=require(_0xf54a('0xb'));var crypto=require(_0xf54a('0xc'));var jsforce=require(_0xf54a('0xd'));var deskjs=require(_0xf54a('0xe'));var toCsv=require('to-csv');var querystring=require(_0xf54a('0xf'));var Papa=require(_0xf54a('0x10'));var Redis=require(_0xf54a('0x11'));var authService=require(_0xf54a('0x12'));var qs=require(_0xf54a('0x13'));var as=require(_0xf54a('0x14'));var hardwareService=require(_0xf54a('0x15'));var logger=require(_0xf54a('0x16'))(_0xf54a('0x17'));var utils=require(_0xf54a('0x18'));var config=require(_0xf54a('0x19'));var licenseUtil=require(_0xf54a('0x1a'));var db=require(_0xf54a('0x1b'))['db'];config[_0xf54a('0x1c')]=_[_0xf54a('0x1d')](config['redis'],{'host':_0xf54a('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf54a('0x1c')]));require(_0xf54a('0x1f'))[_0xf54a('0x20')](socket);function respondWithStatusCode(_0x2d676d,_0x1b7402){_0x1b7402=_0x1b7402||0xcc;return function(_0x1eecde){if(_0x1eecde){return _0x2d676d[_0xf54a('0x21')](_0x1b7402);}return _0x2d676d[_0xf54a('0x22')](_0x1b7402)[_0xf54a('0x23')]();};}function respondWithResult(_0x40d8dc,_0xf8f27c){_0xf8f27c=_0xf8f27c||0xc8;return function(_0x539e8c){if(_0x539e8c){return _0x40d8dc[_0xf54a('0x22')](_0xf8f27c)[_0xf54a('0x24')](_0x539e8c);}};}function respondWithFilteredResult(_0x187165,_0x58e97a){return function(_0x5e544b){if(_0x5e544b){var _0x383bf8=typeof _0x58e97a[_0xf54a('0x25')]==='undefined'&&typeof _0x58e97a[_0xf54a('0x26')]===_0xf54a('0x27');var _0x51f4ba=_0x5e544b[_0xf54a('0x28')];var _0x1aae2b=_0x383bf8?0x0:_0x58e97a[_0xf54a('0x25')];var _0x1c20f0=_0x383bf8?_0x5e544b[_0xf54a('0x28')]:_0x58e97a[_0xf54a('0x25')]+_0x58e97a[_0xf54a('0x26')];var _0x5c29fb;if(_0x1c20f0>=_0x51f4ba){_0x1c20f0=_0x51f4ba;_0x5c29fb=0xc8;}else{_0x5c29fb=0xce;}_0x187165['status'](_0x5c29fb);return _0x187165[_0xf54a('0x29')](_0xf54a('0x2a'),_0x1aae2b+'-'+_0x1c20f0+'/'+_0x51f4ba)[_0xf54a('0x24')](_0x5e544b);}return null;};}function patchUpdates(_0x2811c0){return function(_0x3b23e4){try{jsonpatch['apply'](_0x3b23e4,_0x2811c0,!![]);}catch(_0x39fa9f){return BPromise[_0xf54a('0x2b')](_0x39fa9f);}return _0x3b23e4[_0xf54a('0x2c')]();};}function saveUpdates(_0xa1b8a2,_0x383216){return function(_0x68c55e){if(_0x68c55e){return _0x68c55e[_0xf54a('0x2d')](_0xa1b8a2)[_0xf54a('0x2e')](function(_0x8725d5){return _0x8725d5;});}return null;};}function removeEntity(_0x142950,_0x399dbe){return function(_0x464510){if(_0x464510){return _0x464510[_0xf54a('0x2f')]()['then'](function(){var _0x59c3fb=_0x464510[_0xf54a('0x30')]({'plain':!![]});var _0x40a71e=_0xf54a('0x31');return db[_0xf54a('0x32')][_0xf54a('0x2f')]({'where':{'type':_0x40a71e,'resourceId':_0x59c3fb['id']}})[_0xf54a('0x2e')](function(){return _0x464510;});})[_0xf54a('0x2e')](function(){_0x142950[_0xf54a('0x22')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5bb00f,_0x1b8192){return function(_0x469378){if(!_0x469378){_0x5bb00f['sendStatus'](0x194);}return _0x469378;};}function handleError(_0x24c24f,_0x537414){_0x537414=_0x537414||0x1f4;return function(_0x2019f9){logger['error'](_0x2019f9[_0xf54a('0x33')]);if(_0x2019f9[_0xf54a('0x34')]){delete _0x2019f9[_0xf54a('0x34')];}_0x24c24f[_0xf54a('0x22')](_0x537414)[_0xf54a('0x35')](_0x2019f9);};}exports[_0xf54a('0x36')]=function(_0x109b74,_0x5a678d){var _0x44639e={},_0x11a7c3={},_0xcb0073={'count':0x0,'rows':[]};var _0x3e1372=_[_0xf54a('0x37')](db['MailQueue'][_0xf54a('0x38')],function(_0x433d93){return{'name':_0x433d93[_0xf54a('0x39')],'type':_0x433d93[_0xf54a('0x3a')][_0xf54a('0x3b')]};});_0x11a7c3[_0xf54a('0x3c')]=_[_0xf54a('0x37')](_0x3e1372,_0xf54a('0x34'));_0x11a7c3['query']=_[_0xf54a('0x3d')](_0x109b74[_0xf54a('0x3e')]);_0x11a7c3['filters']=_[_0xf54a('0x3f')](_0x11a7c3[_0xf54a('0x3c')],_0x11a7c3[_0xf54a('0x3e')]);_0x44639e[_0xf54a('0x40')]=_[_0xf54a('0x3f')](_0x11a7c3['model'],qs[_0xf54a('0x41')](_0x109b74[_0xf54a('0x3e')][_0xf54a('0x41')]));_0x44639e[_0xf54a('0x40')]=_0x44639e[_0xf54a('0x40')][_0xf54a('0x42')]?_0x44639e[_0xf54a('0x40')]:_0x11a7c3[_0xf54a('0x3c')];if(!_0x109b74[_0xf54a('0x3e')][_0xf54a('0x43')](_0xf54a('0x44'))){_0x44639e[_0xf54a('0x26')]=qs[_0xf54a('0x26')](_0x109b74[_0xf54a('0x3e')][_0xf54a('0x26')]);_0x44639e['offset']=qs['offset'](_0x109b74[_0xf54a('0x3e')][_0xf54a('0x25')]);}_0x44639e[_0xf54a('0x45')]=qs[_0xf54a('0x46')](_0x109b74['query'][_0xf54a('0x46')]);_0x44639e[_0xf54a('0x47')]=qs[_0xf54a('0x48')](_['pick'](_0x109b74[_0xf54a('0x3e')],_0x11a7c3['filters']),_0x3e1372);if(_0x109b74[_0xf54a('0x3e')][_0xf54a('0x49')]){_0x44639e['where']=_['merge'](_0x44639e[_0xf54a('0x47')],{'$or':_[_0xf54a('0x37')](_0x3e1372,function(_0x1e266d){if(_0x1e266d[_0xf54a('0x3a')]!==_0xf54a('0x4a')){var _0x30c423={};_0x30c423[_0x1e266d[_0xf54a('0x34')]]={'$like':'%'+_0x109b74[_0xf54a('0x3e')][_0xf54a('0x49')]+'%'};return _0x30c423;}})});}_0x44639e=_[_0xf54a('0x4b')]({},_0x44639e,_0x109b74[_0xf54a('0x4c')]);var _0x30727f={'where':_0x44639e['where']};return db[_0xf54a('0x4d')]['count'](_0x30727f)['then'](function(_0xbe1445){_0xcb0073['count']=_0xbe1445;if(_0x109b74[_0xf54a('0x3e')]['includeAll']){_0x44639e[_0xf54a('0x4e')]=[{'all':!![]}];}return db[_0xf54a('0x4d')][_0xf54a('0x4f')](_0x44639e);})[_0xf54a('0x2e')](function(_0x270bcd){_0xcb0073[_0xf54a('0x50')]=_0x270bcd;return _0xcb0073;})['then'](respondWithFilteredResult(_0x5a678d,_0x44639e))[_0xf54a('0x51')](handleError(_0x5a678d,null));};exports[_0xf54a('0x52')]=function(_0x2c03a1,_0xbeb045){var _0x171947={'raw':!![],'where':{'id':_0x2c03a1[_0xf54a('0x53')]['id']}},_0x7a1fc2={};_0x7a1fc2[_0xf54a('0x3c')]=_[_0xf54a('0x3d')](db[_0xf54a('0x4d')][_0xf54a('0x38')]);_0x7a1fc2[_0xf54a('0x3e')]=_[_0xf54a('0x3d')](_0x2c03a1[_0xf54a('0x3e')]);_0x7a1fc2[_0xf54a('0x48')]=_[_0xf54a('0x3f')](_0x7a1fc2['model'],_0x7a1fc2[_0xf54a('0x3e')]);_0x171947[_0xf54a('0x40')]=_[_0xf54a('0x3f')](_0x7a1fc2[_0xf54a('0x3c')],qs['fields'](_0x2c03a1['query'][_0xf54a('0x41')]));_0x171947['attributes']=_0x171947[_0xf54a('0x40')][_0xf54a('0x42')]?_0x171947[_0xf54a('0x40')]:_0x7a1fc2[_0xf54a('0x3c')];if(_0x2c03a1[_0xf54a('0x3e')][_0xf54a('0x54')]){_0x171947[_0xf54a('0x4e')]=[{'all':!![]}];}_0x171947=_[_0xf54a('0x4b')]({},_0x171947,_0x2c03a1[_0xf54a('0x4c')]);return db['MailQueue']['find'](_0x171947)[_0xf54a('0x2e')](handleEntityNotFound(_0xbeb045,null))[_0xf54a('0x2e')](respondWithResult(_0xbeb045,null))[_0xf54a('0x51')](handleError(_0xbeb045,null));};exports[_0xf54a('0x55')]=function(_0x52096e,_0x15081f){return db[_0xf54a('0x4d')][_0xf54a('0x55')](_0x52096e[_0xf54a('0x56')],{})[_0xf54a('0x2e')](function(_0x12d3f5){var _0x171012=_0x52096e[_0xf54a('0x57')][_0xf54a('0x30')]({'plain':!![]});if(!_0x171012)throw new Error(_0xf54a('0x58'));if(_0x171012['role']===_0xf54a('0x57')){var _0x5885eb=_0x12d3f5[_0xf54a('0x30')]({'plain':!![]});var _0x560f8f=_0xf54a('0x31');return db[_0xf54a('0x59')][_0xf54a('0x5a')]({'where':{'name':_0x560f8f,'userProfileId':_0x171012[_0xf54a('0x5b')]},'raw':!![]})[_0xf54a('0x2e')](function(_0x4f52a3){if(_0x4f52a3&&_0x4f52a3[_0xf54a('0x5c')]===0x0){return db['UserProfileResource'][_0xf54a('0x55')]({'name':_0x5885eb[_0xf54a('0x34')],'resourceId':_0x5885eb['id'],'type':_0x4f52a3[_0xf54a('0x34')],'sectionId':_0x4f52a3['id']},{})['then'](function(){return _0x12d3f5;});}else{return _0x12d3f5;}})[_0xf54a('0x51')](function(_0x3e45a8){logger[_0xf54a('0x5d')](_0xf54a('0x5e'),_0x3e45a8);throw _0x3e45a8;});}return _0x12d3f5;})[_0xf54a('0x2e')](respondWithResult(_0x15081f,0xc9))['catch'](handleError(_0x15081f,null));};exports[_0xf54a('0x2d')]=function(_0xd20f5b,_0x11b3a7){if(_0xd20f5b[_0xf54a('0x56')]['id']){delete _0xd20f5b[_0xf54a('0x56')]['id'];}return db[_0xf54a('0x4d')]['find']({'where':{'id':_0xd20f5b[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x11b3a7,null))[_0xf54a('0x2e')](saveUpdates(_0xd20f5b[_0xf54a('0x56')],null))[_0xf54a('0x2e')](respondWithResult(_0x11b3a7,null))[_0xf54a('0x51')](handleError(_0x11b3a7,null));};exports[_0xf54a('0x2f')]=function(_0x4bade3,_0x1dd131){return db[_0xf54a('0x4d')]['find']({'where':{'id':_0x4bade3[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x1dd131,null))[_0xf54a('0x2e')](removeEntity(_0x1dd131,null))[_0xf54a('0x51')](handleError(_0x1dd131,null));};exports[_0xf54a('0x5f')]=function(_0x215601,_0x48c450){return db[_0xf54a('0x4d')]['describe']()[_0xf54a('0x2e')](respondWithResult(_0x48c450,null))[_0xf54a('0x51')](handleError(_0x48c450,null));};exports[_0xf54a('0x60')]=function(_0x491f97,_0x378cad,_0x36d43e){var _0x337ba6={'raw':!![],'where':{}},_0x299186={},_0x4229cc;return db[_0xf54a('0x4d')][_0xf54a('0x61')]({'where':{'id':_0x491f97[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x378cad,null))[_0xf54a('0x2e')](function(_0x287d02){if(_0x287d02){_0x4229cc=_0x287d02['get']({'plain':!![]});_0x299186['model']=_[_0xf54a('0x3d')](db[_0xf54a('0x62')]['rawAttributes']);_0x299186[_0xf54a('0x3e')]=_[_0xf54a('0x3d')](_0x491f97[_0xf54a('0x3e')]);_0x299186['filters']=_[_0xf54a('0x3f')](_0x299186[_0xf54a('0x3c')],_0x299186[_0xf54a('0x3e')]);_0x337ba6['attributes']=_[_0xf54a('0x3f')](_0x299186[_0xf54a('0x3c')],qs[_0xf54a('0x41')](_0x491f97['query']['fields']));_0x337ba6[_0xf54a('0x40')]=_0x337ba6[_0xf54a('0x40')][_0xf54a('0x42')]?_0x337ba6['attributes']:_0x299186[_0xf54a('0x3c')];if(!_0x491f97[_0xf54a('0x3e')][_0xf54a('0x43')](_0xf54a('0x44'))){_0x337ba6[_0xf54a('0x26')]=qs[_0xf54a('0x26')](_0x491f97[_0xf54a('0x3e')][_0xf54a('0x26')]);_0x337ba6[_0xf54a('0x25')]=qs[_0xf54a('0x25')](_0x491f97[_0xf54a('0x3e')][_0xf54a('0x25')]);}_0x337ba6[_0xf54a('0x45')]=qs['sort'](_0x491f97[_0xf54a('0x3e')]['sort']);_0x337ba6['where']=qs[_0xf54a('0x48')](_[_0xf54a('0x63')](_0x491f97[_0xf54a('0x3e')],_0x299186[_0xf54a('0x48')]));_0x337ba6['where'][_0xf54a('0x64')]=_0x287d02['id'];if(_0x491f97[_0xf54a('0x3e')]['filter']){_0x337ba6[_0xf54a('0x47')]=_[_0xf54a('0x4b')](_0x337ba6['where'],{'$or':_['map'](_0x337ba6[_0xf54a('0x40')],function(_0x441c11){var _0x41dab8={};_0x41dab8[_0x441c11]={'$like':'%'+_0x491f97[_0xf54a('0x3e')]['filter']+'%'};return _0x41dab8;})});}_0x337ba6=_[_0xf54a('0x4b')]({},_0x337ba6,_0x491f97['options']);return db[_0xf54a('0x62')][_0xf54a('0x4f')](_0x337ba6);}})['then'](function(_0x53c50f){if(_0x53c50f){return db[_0xf54a('0x65')][_0xf54a('0x66')]({'where':{'id':_['map'](_0x53c50f,_0xf54a('0x67')),'role':_0xf54a('0x68')},'attributes':['id',_0xf54a('0x34'),_0xf54a('0x69'),_0xf54a('0x6a'),_0xf54a('0x6b')]});}})[_0xf54a('0x2e')](function(_0x3ff71b){if(_0x3ff71b){return{'count':_0x3ff71b[_0xf54a('0x28')],'rows':_[_0xf54a('0x37')](_0x3ff71b['rows'],function(_0x506c99){return{'membername':_0x506c99[_0xf54a('0x34')],'UserId':_0x506c99['id'],'queue_name':_0x4229cc[_0xf54a('0x34')],'MailQueueId':_0x4229cc['id'],'interface':util[_0xf54a('0x6c')](_0xf54a('0x6d'),_0xf54a('0x6e'),_0x506c99[_0xf54a('0x34')]),'penalty':0x0,'paused':_0x506c99[_0xf54a('0x69')],'createdAt':_0x506c99[_0xf54a('0x6b')],'updatedAt':_0x506c99[_0xf54a('0x6a')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf54a('0x2e')](respondWithFilteredResult(_0x378cad,_0x337ba6))[_0xf54a('0x51')](handleError(_0x378cad,null));};exports[_0xf54a('0x6f')]=function(_0x5e97a9,_0x41a4ab,_0x596f82){var _0x8adc14={};var _0x35823d={};var _0x44c038;var _0x30a7ec;return db[_0xf54a('0x4d')]['findOne']({'where':{'id':_0x5e97a9[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x41a4ab,null))['then'](function(_0x5b30ea){if(_0x5b30ea){_0x44c038=_0x5b30ea;_0x35823d[_0xf54a('0x3c')]=_[_0xf54a('0x3d')](db[_0xf54a('0x70')][_0xf54a('0x38')]);_0x35823d[_0xf54a('0x3e')]=_[_0xf54a('0x3d')](_0x5e97a9['query']);_0x35823d[_0xf54a('0x48')]=_[_0xf54a('0x3f')](_0x35823d[_0xf54a('0x3c')],_0x35823d[_0xf54a('0x3e')]);_0x8adc14['attributes']=_[_0xf54a('0x3f')](_0x35823d['model'],qs[_0xf54a('0x41')](_0x5e97a9[_0xf54a('0x3e')][_0xf54a('0x41')]));_0x8adc14[_0xf54a('0x40')]=_0x8adc14[_0xf54a('0x40')][_0xf54a('0x42')]?_0x8adc14[_0xf54a('0x40')]:_0x35823d[_0xf54a('0x3c')];_0x8adc14[_0xf54a('0x45')]=qs[_0xf54a('0x46')](_0x5e97a9['query'][_0xf54a('0x46')]);_0x8adc14[_0xf54a('0x47')]=qs[_0xf54a('0x48')](_[_0xf54a('0x63')](_0x5e97a9[_0xf54a('0x3e')],_0x35823d['filters']));if(_0x5e97a9[_0xf54a('0x3e')]['filter']){_0x8adc14[_0xf54a('0x47')]=_['merge'](_0x8adc14[_0xf54a('0x47')],{'$or':_[_0xf54a('0x37')](_0x8adc14[_0xf54a('0x40')],function(_0x13702d){var _0x3a976c={};_0x3a976c[_0x13702d]={'$like':'%'+_0x5e97a9[_0xf54a('0x3e')][_0xf54a('0x49')]+'%'};return _0x3a976c;})});}_0x8adc14=_[_0xf54a('0x4b')]({},_0x8adc14,_0x5e97a9['options']);return _0x44c038[_0xf54a('0x6f')](_0x8adc14);}})[_0xf54a('0x2e')](function(_0x5f1409){if(_0x5f1409){_0x30a7ec=_0x5f1409[_0xf54a('0x42')];if(!_0x5e97a9[_0xf54a('0x3e')][_0xf54a('0x43')](_0xf54a('0x44'))){_0x8adc14[_0xf54a('0x26')]=qs[_0xf54a('0x26')](_0x5e97a9[_0xf54a('0x3e')]['limit']);_0x8adc14[_0xf54a('0x25')]=qs['offset'](_0x5e97a9['query'][_0xf54a('0x25')]);}return _0x44c038['getTeams'](_0x8adc14);}})[_0xf54a('0x2e')](function(_0x27fca4){if(_0x27fca4){return _0x27fca4?{'count':_0x30a7ec,'rows':_0x27fca4}:null;}})['then'](respondWithResult(_0x41a4ab,null))[_0xf54a('0x51')](handleError(_0x41a4ab,null));};exports[_0xf54a('0x71')]=function(_0xd8d9c8,_0x106b85,_0x2779df){var _0x3743ab=_0xd8d9c8['body']['ids'];return db[_0xf54a('0x70')][_0xf54a('0x4f')]({'where':{'id':_0x3743ab},'attributes':['id'],'include':[{'model':db[_0xf54a('0x65')],'as':_0xf54a('0x72'),'attributes':['id','name',_0xf54a('0x73'),_0xf54a('0x74'),_0xf54a('0x75')],'raw':!![]}]})[_0xf54a('0x2e')](function(_0x3a448c){if(_0x3a448c){var _0x3c4916=_[_0xf54a('0x76')](_0x3a448c,function(_0x6f31f7){var _0x31c7d1=_0x6f31f7['get']({'plain':!![]});return _0x31c7d1['Agents'];});return db[_0xf54a('0x4d')][_0xf54a('0x5a')]({'where':{'id':_0xd8d9c8[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](function(_0x24c4e2){return db['sequelize']['transaction'](function(_0x1a692e){return _0x24c4e2[_0xf54a('0x71')](_0x3743ab,{'transaction':_0x1a692e})['then'](function(){return BPromise[_0xf54a('0x77')](_0x3c4916,function(_0x40154d){return db[_0xf54a('0x62')][_0xf54a('0x78')]({'where':{'UserId':_0x40154d['id'],'MailQueueId':_0xd8d9c8['params']['id']},'transaction':_0x1a692e});});})[_0xf54a('0x2e')](function(){_0x3c4916[_0xf54a('0x79')](function(_0x287067){socket[_0xf54a('0x7a')](_0xf54a('0x7b'),{'UserId':_0x287067['id'],'MailQueueId':_0x24c4e2['id']});});});});});}})[_0xf54a('0x2e')](respondWithStatusCode(_0x106b85,null))[_0xf54a('0x51')](handleError(_0x106b85,null));};exports['removeTeams']=function(_0x4f65d1,_0x466dea,_0x26002a){return db[_0xf54a('0x70')][_0xf54a('0x4f')]({'where':{'id':_0x4f65d1['query'][_0xf54a('0x7c')]},'attributes':['id'],'include':[{'model':db[_0xf54a('0x65')],'as':_0xf54a('0x72'),'attributes':['id'],'raw':!![]}]})[_0xf54a('0x2e')](handleEntityNotFound(_0x466dea,null))['then'](function(_0x4f2b8a){var _0x43432f=_[_0xf54a('0x37')](_0x4f2b8a,'id');var _0x398200=[];var _0x29d3c9=[];var _0x506035=squel[_0xf54a('0x7d')]();_0x506035[_0xf54a('0x7e')](_0xf54a('0x7f'))[_0xf54a('0x80')]('team_has_mail_queues','tq')[_0xf54a('0x81')]('user_has_teams','ut',_0xf54a('0x82'))['where'](_0xf54a('0x83'),_0x4f65d1[_0xf54a('0x53')]['id']);for(var _0x5efab6=0x0;_0x5efab6<_0x4f2b8a[_0xf54a('0x42')];_0x5efab6+=0x1){let _0x499a00=_0x4f2b8a[_0x5efab6];for(var _0x15e9c5=0x0;_0x15e9c5<_0x499a00[_0xf54a('0x72')]['length'];_0x15e9c5+=0x1){let _0x40682c=_0x499a00['Agents'][_0x15e9c5];var _0x2cfc5d=_0x506035[_0xf54a('0x84')]();_0x2cfc5d['where'](_0xf54a('0x85'),_0x40682c['id']);_0x29d3c9[_0xf54a('0x86')](db[_0xf54a('0x87')][_0xf54a('0x3e')](_0x2cfc5d[_0xf54a('0x88')](),{'type':db[_0xf54a('0x87')][_0xf54a('0x89')][_0xf54a('0x8a')]})['then'](function(_0x57fbfa){if(_0x57fbfa[_0xf54a('0x42')]===0x1){return _0x40682c['id'];}else{var _0x525426=_['every'](_[_0xf54a('0x37')](_0x57fbfa,_0xf54a('0x8b')),function(_0x2f38b2){return _[_0xf54a('0x8c')](_0x43432f,_0x2f38b2);});if(_0x525426){return _0x40682c['id'];}}}));}}return BPromise[_0xf54a('0x8d')](_0x29d3c9)[_0xf54a('0x2e')](function(_0x16a53f){_0x398200=_(_0x398200)[_0xf54a('0x8e')](_0x16a53f)[_0xf54a('0x8f')]()[_0xf54a('0x90')]();return db[_0xf54a('0x4d')]['find']({'where':{'id':_0x4f65d1[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](function(_0x15d3fd){return db[_0xf54a('0x87')][_0xf54a('0x91')](function(_0x3506c0){return _0x15d3fd[_0xf54a('0x92')](_0x4f65d1[_0xf54a('0x3e')]['ids'],{'transaction':_0x3506c0})[_0xf54a('0x2e')](function(){if(!_[_0xf54a('0x93')](_0x398200)){return _0x15d3fd['removeAgents'](_0x398200,{'transaction':_0x3506c0});}})[_0xf54a('0x2e')](function(){_0x398200[_0xf54a('0x79')](function(_0x3b7523){socket[_0xf54a('0x7a')](_0xf54a('0x94'),{'UserId':_0x3b7523,'MailQueueId':_0x15d3fd['id']});});});});});});})[_0xf54a('0x2e')](respondWithStatusCode(_0x466dea,null))['catch'](handleError(_0x466dea,null));};exports[_0xf54a('0x95')]=function(_0x1508a6,_0x185158,_0x4e9aa5){return db[_0xf54a('0x4d')][_0xf54a('0x5a')]({'where':{'id':_0x1508a6[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x185158,null))[_0xf54a('0x2e')](function(_0x3b915e){if(_0x3b915e){return _0x3b915e[_0xf54a('0x95')](_0x1508a6['body'][_0xf54a('0x7c')],_[_0xf54a('0x96')](_0x1508a6['body'],['ids','id'])||{})['spread'](function(_0x3b26f7){for(var _0x7985db=0x0;_0x7985db<_0x1508a6[_0xf54a('0x56')][_0xf54a('0x7c')][_0xf54a('0x42')];_0x7985db+=0x1){socket[_0xf54a('0x7a')](_0xf54a('0x7b'),{'UserId':Number(_0x1508a6[_0xf54a('0x56')][_0xf54a('0x7c')][_0x7985db]),'MailQueueId':Number(_0x1508a6[_0xf54a('0x53')]['id'])});}return _0x3b26f7;});}})[_0xf54a('0x2e')](respondWithResult(_0x185158,null))[_0xf54a('0x51')](handleError(_0x185158,null));};exports[_0xf54a('0x97')]=function(_0x465238,_0x1bec11,_0x24cc9a){return db[_0xf54a('0x4d')][_0xf54a('0x5a')]({'where':{'id':_0x465238[_0xf54a('0x53')]['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x1bec11,null))[_0xf54a('0x2e')](function(_0x417699){if(_0x417699){return _0x417699[_0xf54a('0x97')](_0x465238['query'][_0xf54a('0x7c')])[_0xf54a('0x2e')](function(){if(_[_0xf54a('0x98')](_0x465238[_0xf54a('0x3e')][_0xf54a('0x7c')])){for(var _0x17a8d8=0x0;_0x17a8d8<_0x465238[_0xf54a('0x3e')][_0xf54a('0x7c')][_0xf54a('0x42')];_0x17a8d8+=0x1){socket[_0xf54a('0x7a')]('userMailQueue:remove',{'UserId':Number(_0x465238[_0xf54a('0x3e')][_0xf54a('0x7c')][_0x17a8d8]),'MailQueueId':Number(_0x465238[_0xf54a('0x53')]['id'])});}}else{socket[_0xf54a('0x7a')]('userMailQueue:remove',{'UserId':Number(_0x465238[_0xf54a('0x3e')]['ids']),'MailQueueId':Number(_0x465238['params']['id'])});}});}})[_0xf54a('0x2e')](respondWithStatusCode(_0x1bec11,null))['catch'](handleError(_0x1bec11,null));};exports[_0xf54a('0x99')]=function(_0x81205b,_0x4719a3,_0x285e34){var _0x39629b={};var _0x52ad4b={};var _0x56d44c;var _0x4f4459;return db[_0xf54a('0x4d')][_0xf54a('0x61')]({'where':{'id':_0x81205b['params']['id']}})[_0xf54a('0x2e')](handleEntityNotFound(_0x4719a3,null))['then'](function(_0x24ad57){if(_0x24ad57){_0x56d44c=_0x24ad57;_0x52ad4b[_0xf54a('0x3c')]=_[_0xf54a('0x3d')](db[_0xf54a('0x65')]['rawAttributes']);_0x52ad4b['query']=_[_0xf54a('0x3d')](_0x81205b[_0xf54a('0x3e')]);_0x52ad4b[_0xf54a('0x48')]=_[_0xf54a('0x3f')](_0x52ad4b[_0xf54a('0x3c')],_0x52ad4b['query']);_0x39629b[_0xf54a('0x40')]=_['intersection'](_0x52ad4b[_0xf54a('0x3c')],qs[_0xf54a('0x41')](_0x81205b['query']['fields']));_0x39629b['attributes']=_0x39629b[_0xf54a('0x40')][_0xf54a('0x42')]?_0x39629b['attributes']:_0x52ad4b[_0xf54a('0x3c')];_0x39629b[_0xf54a('0x45')]=qs['sort'](_0x81205b[_0xf54a('0x3e')][_0xf54a('0x46')]);_0x39629b[_0xf54a('0x47')]=qs[_0xf54a('0x48')](_[_0xf54a('0x63')](_0x81205b[_0xf54a('0x3e')],_0x52ad4b[_0xf54a('0x48')]));if(_0x81205b[_0xf54a('0x3e')][_0xf54a('0x49')]){_0x39629b['where']=_[_0xf54a('0x4b')](_0x39629b['where'],{'$or':_[_0xf54a('0x37')](_0x39629b[_0xf54a('0x40')],function(_0x5907a8){var _0x524df2={};_0x524df2[_0x5907a8]={'$like':'%'+_0x81205b[_0xf54a('0x3e')][_0xf54a('0x49')]+'%'};return _0x524df2;})});}_0x39629b=_[_0xf54a('0x4b')]({},_0x39629b,_0x81205b[_0xf54a('0x4c')]);return _0x56d44c[_0xf54a('0x99')](_0x39629b);}})['then'](function(_0x277b86){if(_0x277b86){_0x4f4459=_0x277b86[_0xf54a('0x42')];if(!_0x81205b[_0xf54a('0x3e')][_0xf54a('0x43')](_0xf54a('0x44'))){_0x39629b[_0xf54a('0x26')]=qs['limit'](_0x81205b[_0xf54a('0x3e')][_0xf54a('0x26')]);_0x39629b['offset']=qs[_0xf54a('0x25')](_0x81205b['query']['offset']);}return _0x56d44c[_0xf54a('0x99')](_0x39629b);}})[_0xf54a('0x2e')](function(_0x1d4f88){if(_0x1d4f88){return _0x1d4f88?{'count':_0x4f4459,'rows':_0x1d4f88}:null;}})[_0xf54a('0x2e')](respondWithResult(_0x4719a3,null))[_0xf54a('0x51')](handleError(_0x4719a3,null));};