6f1456e351b8d76a2616b33070ed398b22f1822a
[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 _0x038e=['lodash','squel','ioredis','api','../../config/environment','../../mysqldb','redis','localhost','./mailQueue.socket','register','sendStatus','status','end','json','undefined','count','offset','limit','set','then','get','MailQueues','UserProfileResource','destroy','error','stack','name','send','index','MailQueue','fieldName','type','key','getOptions','where','include','findAll','rows','catch','show','params','model','keys','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','options','find','create','body','user','autoAssociation','update','describe','findOne','UserMailQueue','hasOwnProperty','nolimit','sort','merge','map','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','SIP','mailPause','getTeams','filter','ids','Team','online','voicePause','interface','Agents','transaction','addTeams','findOrCreate','forEach','userMailQueue:save','select','field','tq.TeamId','team_has_mail_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','SELECT','every','TeamId','all','union','compact','isEmpty','removeAgents','addAgents','omit','spread','emit','isArray','userMailQueue:remove','getAgents','order','pick','util'];(function(_0x18673c,_0x5ca9b4){var _0xb29462=function(_0x235148){while(--_0x235148){_0x18673c['push'](_0x18673c['shift']());}};_0xb29462(++_0x5ca9b4);}(_0x038e,0x76));var _0xe038=function(_0x4719c9,_0x3cbb54){_0x4719c9=_0x4719c9-0x0;var _0x4b96bc=_0x038e[_0x4719c9];return _0x4b96bc;};'use strict';var BPromise=require('bluebird');var util=require(_0xe038('0x0'));var _=require(_0xe038('0x1'));var squel=require(_0xe038('0x2'));var Redis=require(_0xe038('0x3'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xe038('0x4'));var config=require(_0xe038('0x5'));var db=require(_0xe038('0x6'))['db'];config[_0xe038('0x7')]=_['defaults'](config['redis'],{'host':_0xe038('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe038('0x7')]));require(_0xe038('0x9'))[_0xe038('0xa')](socket);function respondWithStatusCode(_0x38b968,_0x438af7){_0x438af7=_0x438af7||0xcc;return function(_0x400b4f){if(_0x400b4f){return _0x38b968[_0xe038('0xb')](_0x438af7);}return _0x38b968[_0xe038('0xc')](_0x438af7)[_0xe038('0xd')]();};}function respondWithResult(_0x5bfee2,_0x446dbc){_0x446dbc=_0x446dbc||0xc8;return function(_0x3ecfc5){if(_0x3ecfc5){return _0x5bfee2[_0xe038('0xc')](_0x446dbc)[_0xe038('0xe')](_0x3ecfc5);}};}function respondWithFilteredResult(_0x212f8e,_0x2c006a){return function(_0x3e0c90){if(_0x3e0c90){var _0xd0018d=typeof _0x2c006a['offset']===_0xe038('0xf')&&typeof _0x2c006a['limit']===_0xe038('0xf');var _0x17e621=_0x3e0c90[_0xe038('0x10')];var _0x4646fc=_0xd0018d?0x0:_0x2c006a[_0xe038('0x11')];var _0x546e4b=_0xd0018d?_0x3e0c90[_0xe038('0x10')]:_0x2c006a[_0xe038('0x11')]+_0x2c006a[_0xe038('0x12')];var _0x5b44dc;if(_0x546e4b>=_0x17e621){_0x546e4b=_0x17e621;_0x5b44dc=0xc8;}else{_0x5b44dc=0xce;}_0x212f8e[_0xe038('0xc')](_0x5b44dc);return _0x212f8e[_0xe038('0x13')]('Content-Range',_0x4646fc+'-'+_0x546e4b+'/'+_0x17e621)[_0xe038('0xe')](_0x3e0c90);}return null;};}function saveUpdates(_0x247e42){return function(_0x4ebac1){if(_0x4ebac1){return _0x4ebac1['update'](_0x247e42)[_0xe038('0x14')](function(_0x41e512){return _0x41e512;});}return null;};}function removeEntity(_0x336330){return function(_0x5c1cde){if(_0x5c1cde){return _0x5c1cde['destroy']()[_0xe038('0x14')](function(){var _0x4b9019=_0x5c1cde[_0xe038('0x15')]({'plain':!![]});var _0x3c0baf=_0xe038('0x16');return db[_0xe038('0x17')][_0xe038('0x18')]({'where':{'type':_0x3c0baf,'resourceId':_0x4b9019['id']}})[_0xe038('0x14')](function(){return _0x5c1cde;});})['then'](function(){_0x336330[_0xe038('0xc')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51381a){return function(_0x3751cc){if(!_0x3751cc){_0x51381a['sendStatus'](0x194);}return _0x3751cc;};}function handleError(_0x476cbd,_0x288261){_0x288261=_0x288261||0x1f4;return function(_0x44cd29){logger[_0xe038('0x19')](_0x44cd29[_0xe038('0x1a')]);if(_0x44cd29[_0xe038('0x1b')]){delete _0x44cd29[_0xe038('0x1b')];}_0x476cbd[_0xe038('0xc')](_0x288261)[_0xe038('0x1c')](_0x44cd29);};}exports[_0xe038('0x1d')]=function(_0x18191f,_0x4e1998){var _0x4637ca={};var _0x2cda9d={'count':0x0,'rows':[]};var _0x51cde0=_['map'](db[_0xe038('0x1e')]['rawAttributes'],function(_0x51f9b0){return{'name':_0x51f9b0[_0xe038('0x1f')],'type':_0x51f9b0[_0xe038('0x20')][_0xe038('0x21')]};});_0x4637ca=qs[_0xe038('0x22')](_0x51cde0,_0x18191f);var _0x4e9523={'where':_0x4637ca[_0xe038('0x23')]};return db[_0xe038('0x1e')]['count'](_0x4e9523)[_0xe038('0x14')](function(_0x3c7aee){_0x2cda9d[_0xe038('0x10')]=_0x3c7aee;_0x4637ca[_0xe038('0x24')]=qs[_0xe038('0x24')](_0x18191f['query']);return db['MailQueue'][_0xe038('0x25')](_0x4637ca);})['then'](function(_0x17deff){_0x2cda9d[_0xe038('0x26')]=_0x17deff;return _0x2cda9d;})[_0xe038('0x14')](respondWithFilteredResult(_0x4e1998,_0x4637ca))[_0xe038('0x27')](handleError(_0x4e1998,null));};exports[_0xe038('0x28')]=function(_0xfa39f0,_0x1ea212){var _0xaa7f6f={'raw':!![],'where':{'id':_0xfa39f0[_0xe038('0x29')]['id']}},_0x5722ec={};_0x5722ec[_0xe038('0x2a')]=_[_0xe038('0x2b')](db[_0xe038('0x1e')][_0xe038('0x2c')]);_0x5722ec[_0xe038('0x2d')]=_[_0xe038('0x2b')](_0xfa39f0[_0xe038('0x2d')]);_0x5722ec[_0xe038('0x2e')]=_[_0xe038('0x2f')](_0x5722ec[_0xe038('0x2a')],_0x5722ec[_0xe038('0x2d')]);_0xaa7f6f[_0xe038('0x30')]=_[_0xe038('0x2f')](_0x5722ec[_0xe038('0x2a')],qs[_0xe038('0x31')](_0xfa39f0[_0xe038('0x2d')]['fields']));_0xaa7f6f[_0xe038('0x30')]=_0xaa7f6f[_0xe038('0x30')][_0xe038('0x32')]?_0xaa7f6f[_0xe038('0x30')]:_0x5722ec[_0xe038('0x2a')];if(_0xfa39f0[_0xe038('0x2d')][_0xe038('0x33')]){_0xaa7f6f[_0xe038('0x24')]=[{'all':!![]}];}_0xaa7f6f=_['merge']({},_0xaa7f6f,_0xfa39f0[_0xe038('0x34')]);return db[_0xe038('0x1e')][_0xe038('0x35')](_0xaa7f6f)['then'](handleEntityNotFound(_0x1ea212,null))['then'](respondWithResult(_0x1ea212,null))[_0xe038('0x27')](handleError(_0x1ea212,null));};exports[_0xe038('0x36')]=function(_0x4047b4,_0x34c4e5){return db[_0xe038('0x1e')][_0xe038('0x36')](_0x4047b4[_0xe038('0x37')],{})[_0xe038('0x14')](function(_0x4f7459){var _0x19d282=_0x4047b4['user'][_0xe038('0x15')]({'plain':!![]});if(!_0x19d282)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x19d282['role']===_0xe038('0x38')){var _0x42fbd6=_0x4f7459[_0xe038('0x15')]({'plain':!![]});var _0x3ead1d='MailQueues';return db['UserProfileSection'][_0xe038('0x35')]({'where':{'name':_0x3ead1d,'userProfileId':_0x19d282['userProfileId']},'raw':!![]})[_0xe038('0x14')](function(_0x37c90e){if(_0x37c90e&&_0x37c90e[_0xe038('0x39')]===0x0){return db[_0xe038('0x17')][_0xe038('0x36')]({'name':_0x42fbd6[_0xe038('0x1b')],'resourceId':_0x42fbd6['id'],'type':_0x37c90e[_0xe038('0x1b')],'sectionId':_0x37c90e['id']},{})[_0xe038('0x14')](function(){return _0x4f7459;});}else{return _0x4f7459;}})[_0xe038('0x27')](function(_0x4f80a0){logger[_0xe038('0x19')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4f80a0);throw _0x4f80a0;});}return _0x4f7459;})[_0xe038('0x14')](respondWithResult(_0x34c4e5,0xc9))[_0xe038('0x27')](handleError(_0x34c4e5,null));};exports[_0xe038('0x3a')]=function(_0x3717cc,_0x54736c){if(_0x3717cc[_0xe038('0x37')]['id']){delete _0x3717cc[_0xe038('0x37')]['id'];}return db[_0xe038('0x1e')]['find']({'where':{'id':_0x3717cc[_0xe038('0x29')]['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x54736c,null))['then'](saveUpdates(_0x3717cc[_0xe038('0x37')],null))['then'](respondWithResult(_0x54736c,null))[_0xe038('0x27')](handleError(_0x54736c,null));};exports[_0xe038('0x18')]=function(_0x482250,_0x34c8eb){return db['MailQueue']['find']({'where':{'id':_0x482250[_0xe038('0x29')]['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x34c8eb,null))[_0xe038('0x14')](removeEntity(_0x34c8eb,null))[_0xe038('0x27')](handleError(_0x34c8eb,null));};exports[_0xe038('0x3b')]=function(_0x4fd514,_0x98f59c){return db['MailQueue'][_0xe038('0x3b')]()[_0xe038('0x14')](respondWithResult(_0x98f59c,null))[_0xe038('0x27')](handleError(_0x98f59c,null));};exports['getMembers']=function(_0x5e4e56,_0x75ee84){var _0x16890d={'raw':!![],'where':{}},_0x58e955={},_0x2d8f0b;return db[_0xe038('0x1e')][_0xe038('0x3c')]({'where':{'id':_0x5e4e56[_0xe038('0x29')]['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x75ee84,null))[_0xe038('0x14')](function(_0x2c23fc){if(_0x2c23fc){_0x2d8f0b=_0x2c23fc['get']({'plain':!![]});_0x58e955[_0xe038('0x2a')]=_[_0xe038('0x2b')](db[_0xe038('0x3d')]['rawAttributes']);_0x58e955['query']=_[_0xe038('0x2b')](_0x5e4e56['query']);_0x58e955[_0xe038('0x2e')]=_[_0xe038('0x2f')](_0x58e955[_0xe038('0x2a')],_0x58e955[_0xe038('0x2d')]);_0x16890d[_0xe038('0x30')]=_[_0xe038('0x2f')](_0x58e955[_0xe038('0x2a')],qs[_0xe038('0x31')](_0x5e4e56[_0xe038('0x2d')]['fields']));_0x16890d[_0xe038('0x30')]=_0x16890d[_0xe038('0x30')]['length']?_0x16890d['attributes']:_0x58e955[_0xe038('0x2a')];if(!_0x5e4e56[_0xe038('0x2d')][_0xe038('0x3e')](_0xe038('0x3f'))){_0x16890d[_0xe038('0x12')]=qs[_0xe038('0x12')](_0x5e4e56[_0xe038('0x2d')][_0xe038('0x12')]);_0x16890d[_0xe038('0x11')]=qs[_0xe038('0x11')](_0x5e4e56[_0xe038('0x2d')][_0xe038('0x11')]);}_0x16890d['order']=qs[_0xe038('0x40')](_0x5e4e56[_0xe038('0x2d')]['sort']);_0x16890d['where']=qs['filters'](_['pick'](_0x5e4e56['query'],_0x58e955[_0xe038('0x2e')]));_0x16890d['where']['MailQueueId']=_0x2c23fc['id'];if(_0x5e4e56[_0xe038('0x2d')]['filter']){_0x16890d['where']=_[_0xe038('0x41')](_0x16890d[_0xe038('0x23')],{'$or':_[_0xe038('0x42')](_0x16890d[_0xe038('0x30')],function(_0x538931){var _0x15349d={};_0x15349d[_0x538931]={'$like':'%'+_0x5e4e56[_0xe038('0x2d')]['filter']+'%'};return _0x15349d;})});}_0x16890d=_['merge']({},_0x16890d,_0x5e4e56[_0xe038('0x34')]);return db['UserMailQueue'][_0xe038('0x25')](_0x16890d);}})[_0xe038('0x14')](function(_0x55b9f2){if(_0x55b9f2){return db[_0xe038('0x43')][_0xe038('0x44')]({'where':{'id':_[_0xe038('0x42')](_0x55b9f2,_0xe038('0x45')),'role':_0xe038('0x46')},'attributes':['id','name','mailPause',_0xe038('0x47'),_0xe038('0x48')]});}})[_0xe038('0x14')](function(_0x28fd56){if(_0x28fd56){return{'count':_0x28fd56[_0xe038('0x10')],'rows':_[_0xe038('0x42')](_0x28fd56[_0xe038('0x26')],function(_0xa94462){return{'membername':_0xa94462[_0xe038('0x1b')],'UserId':_0xa94462['id'],'queue_name':_0x2d8f0b[_0xe038('0x1b')],'MailQueueId':_0x2d8f0b['id'],'interface':util[_0xe038('0x49')](_0xe038('0x4a'),_0xe038('0x4b'),_0xa94462[_0xe038('0x1b')]),'penalty':0x0,'paused':_0xa94462[_0xe038('0x4c')],'createdAt':_0xa94462[_0xe038('0x48')],'updatedAt':_0xa94462[_0xe038('0x47')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xe038('0x14')](respondWithFilteredResult(_0x75ee84,_0x16890d))['catch'](handleError(_0x75ee84,null));};exports[_0xe038('0x4d')]=function(_0x15d88c,_0x3b919e){var _0x3aee88={};var _0x1a372d={};var _0x2bf49d;var _0x5caebd;return db['MailQueue'][_0xe038('0x3c')]({'where':{'id':_0x15d88c[_0xe038('0x29')]['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x3b919e,null))['then'](function(_0x24c313){if(_0x24c313){_0x2bf49d=_0x24c313;_0x1a372d[_0xe038('0x2a')]=_[_0xe038('0x2b')](db['Team'][_0xe038('0x2c')]);_0x1a372d[_0xe038('0x2d')]=_[_0xe038('0x2b')](_0x15d88c['query']);_0x1a372d[_0xe038('0x2e')]=_['intersection'](_0x1a372d[_0xe038('0x2a')],_0x1a372d[_0xe038('0x2d')]);_0x3aee88[_0xe038('0x30')]=_[_0xe038('0x2f')](_0x1a372d[_0xe038('0x2a')],qs[_0xe038('0x31')](_0x15d88c[_0xe038('0x2d')][_0xe038('0x31')]));_0x3aee88['attributes']=_0x3aee88[_0xe038('0x30')]['length']?_0x3aee88[_0xe038('0x30')]:_0x1a372d['model'];_0x3aee88['order']=qs[_0xe038('0x40')](_0x15d88c['query'][_0xe038('0x40')]);_0x3aee88[_0xe038('0x23')]=qs[_0xe038('0x2e')](_['pick'](_0x15d88c['query'],_0x1a372d[_0xe038('0x2e')]));if(_0x15d88c[_0xe038('0x2d')][_0xe038('0x4e')]){_0x3aee88['where']=_[_0xe038('0x41')](_0x3aee88[_0xe038('0x23')],{'$or':_[_0xe038('0x42')](_0x3aee88[_0xe038('0x30')],function(_0x38fedd){var _0x1a5d45={};_0x1a5d45[_0x38fedd]={'$like':'%'+_0x15d88c[_0xe038('0x2d')][_0xe038('0x4e')]+'%'};return _0x1a5d45;})});}_0x3aee88=_[_0xe038('0x41')]({},_0x3aee88,_0x15d88c['options']);return _0x2bf49d[_0xe038('0x4d')](_0x3aee88);}})['then'](function(_0x4b08cb){if(_0x4b08cb){_0x5caebd=_0x4b08cb['length'];if(!_0x15d88c['query']['hasOwnProperty']('nolimit')){_0x3aee88[_0xe038('0x12')]=qs[_0xe038('0x12')](_0x15d88c[_0xe038('0x2d')][_0xe038('0x12')]);_0x3aee88[_0xe038('0x11')]=qs[_0xe038('0x11')](_0x15d88c[_0xe038('0x2d')][_0xe038('0x11')]);}return _0x2bf49d[_0xe038('0x4d')](_0x3aee88);}})[_0xe038('0x14')](function(_0x25269e){if(_0x25269e){return _0x25269e?{'count':_0x5caebd,'rows':_0x25269e}:null;}})['then'](respondWithResult(_0x3b919e,null))[_0xe038('0x27')](handleError(_0x3b919e,null));};exports['addTeams']=function(_0x3ce822,_0x404c27){var _0x43143e=_0x3ce822[_0xe038('0x37')][_0xe038('0x4f')];return db[_0xe038('0x50')]['findAll']({'where':{'id':_0x43143e},'attributes':['id'],'include':[{'model':db[_0xe038('0x43')],'as':'Agents','attributes':['id',_0xe038('0x1b'),_0xe038('0x51'),_0xe038('0x52'),_0xe038('0x53')],'raw':!![]}]})[_0xe038('0x14')](function(_0x5dc5d8){if(_0x5dc5d8){var _0x63ff56=_['flatMap'](_0x5dc5d8,function(_0x2d8f3c){var _0x15ca7f=_0x2d8f3c['get']({'plain':!![]});return _0x15ca7f[_0xe038('0x54')];});return db[_0xe038('0x1e')][_0xe038('0x35')]({'where':{'id':_0x3ce822['params']['id']}})[_0xe038('0x14')](function(_0x5d8c77){return db['sequelize'][_0xe038('0x55')](function(_0x53789f){return _0x5d8c77[_0xe038('0x56')](_0x43143e,{'transaction':_0x53789f})['then'](function(){return BPromise['each'](_0x63ff56,function(_0x5b8d78){return db[_0xe038('0x3d')][_0xe038('0x57')]({'where':{'UserId':_0x5b8d78['id'],'MailQueueId':_0x3ce822['params']['id']},'transaction':_0x53789f});});})[_0xe038('0x14')](function(){_0x63ff56[_0xe038('0x58')](function(_0x14a721){socket['emit'](_0xe038('0x59'),{'UserId':_0x14a721['id'],'MailQueueId':_0x5d8c77['id']});});});});});}})[_0xe038('0x14')](respondWithStatusCode(_0x404c27,null))[_0xe038('0x27')](handleError(_0x404c27,null));};exports['removeTeams']=function(_0x24d34a,_0x1c3ddb){return db['Team']['findAll']({'where':{'id':_0x24d34a['query']['ids']},'attributes':['id'],'include':[{'model':db[_0xe038('0x43')],'as':_0xe038('0x54'),'attributes':['id'],'raw':!![]}]})[_0xe038('0x14')](handleEntityNotFound(_0x1c3ddb,null))['then'](function(_0x11d854){var _0x2f4a5a=_[_0xe038('0x42')](_0x11d854,'id');var _0xa64365=[];var _0x24f88a=[];var _0x8c7836=squel[_0xe038('0x5a')]();_0x8c7836[_0xe038('0x5b')](_0xe038('0x5c'))['from'](_0xe038('0x5d'),'tq')['join'](_0xe038('0x5e'),'ut',_0xe038('0x5f'))[_0xe038('0x23')](_0xe038('0x60'),_0x24d34a['params']['id']);for(var _0x16f935=0x0;_0x16f935<_0x11d854['length'];_0x16f935+=0x1){let _0x1ae426=_0x11d854[_0x16f935];for(var _0x2c9b00=0x0;_0x2c9b00<_0x1ae426[_0xe038('0x54')]['length'];_0x2c9b00+=0x1){let _0x6d6312=_0x1ae426[_0xe038('0x54')][_0x2c9b00];var _0x4b8471=_0x8c7836[_0xe038('0x61')]();_0x4b8471['where'](_0xe038('0x62'),_0x6d6312['id']);_0x24f88a[_0xe038('0x63')](db[_0xe038('0x64')][_0xe038('0x2d')](_0x4b8471[_0xe038('0x65')](),{'type':db[_0xe038('0x64')]['QueryTypes'][_0xe038('0x66')]})[_0xe038('0x14')](function(_0x446d25){if(_0x446d25[_0xe038('0x32')]===0x1){return _0x6d6312['id'];}else{var _0x28c628=_[_0xe038('0x67')](_[_0xe038('0x42')](_0x446d25,_0xe038('0x68')),function(_0x29dd8d){return _['includes'](_0x2f4a5a,_0x29dd8d);});if(_0x28c628){return _0x6d6312['id'];}}}));}}return BPromise[_0xe038('0x69')](_0x24f88a)['then'](function(_0x3b0af4){_0xa64365=_(_0xa64365)[_0xe038('0x6a')](_0x3b0af4)[_0xe038('0x6b')]()['value']();return db['MailQueue'][_0xe038('0x35')]({'where':{'id':_0x24d34a[_0xe038('0x29')]['id']}})[_0xe038('0x14')](function(_0x27189d){return db['sequelize']['transaction'](function(_0x3b89a9){return _0x27189d['removeTeams'](_0x24d34a['query'][_0xe038('0x4f')],{'transaction':_0x3b89a9})['then'](function(){if(!_[_0xe038('0x6c')](_0xa64365)){return _0x27189d[_0xe038('0x6d')](_0xa64365,{'transaction':_0x3b89a9});}})['then'](function(){_0xa64365['forEach'](function(_0x4db360){socket['emit']('userMailQueue:remove',{'UserId':_0x4db360,'MailQueueId':_0x27189d['id']});});});});});});})['then'](respondWithStatusCode(_0x1c3ddb,null))['catch'](handleError(_0x1c3ddb,null));};exports[_0xe038('0x6e')]=function(_0x56ac81,_0x364feb){return db['MailQueue'][_0xe038('0x35')]({'where':{'id':_0x56ac81['params']['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x364feb,null))[_0xe038('0x14')](function(_0x43ccd9){if(_0x43ccd9){return _0x43ccd9['addAgents'](_0x56ac81[_0xe038('0x37')][_0xe038('0x4f')],_[_0xe038('0x6f')](_0x56ac81[_0xe038('0x37')],['ids','id'])||{})[_0xe038('0x70')](function(_0x2be444){for(var _0x19091a=0x0;_0x19091a<_0x56ac81['body'][_0xe038('0x4f')]['length'];_0x19091a+=0x1){socket[_0xe038('0x71')](_0xe038('0x59'),{'UserId':Number(_0x56ac81[_0xe038('0x37')][_0xe038('0x4f')][_0x19091a]),'MailQueueId':Number(_0x56ac81[_0xe038('0x29')]['id'])});}return _0x2be444;});}})['then'](respondWithResult(_0x364feb,null))[_0xe038('0x27')](handleError(_0x364feb,null));};exports[_0xe038('0x6d')]=function(_0xb9b173,_0x1c1416){return db[_0xe038('0x1e')][_0xe038('0x35')]({'where':{'id':_0xb9b173[_0xe038('0x29')]['id']}})['then'](handleEntityNotFound(_0x1c1416,null))[_0xe038('0x14')](function(_0x14964d){if(_0x14964d){return _0x14964d[_0xe038('0x6d')](_0xb9b173['query'][_0xe038('0x4f')])[_0xe038('0x14')](function(){if(_[_0xe038('0x72')](_0xb9b173['query'][_0xe038('0x4f')])){for(var _0x4e7bb6=0x0;_0x4e7bb6<_0xb9b173[_0xe038('0x2d')]['ids']['length'];_0x4e7bb6+=0x1){socket[_0xe038('0x71')](_0xe038('0x73'),{'UserId':Number(_0xb9b173[_0xe038('0x2d')]['ids'][_0x4e7bb6]),'MailQueueId':Number(_0xb9b173[_0xe038('0x29')]['id'])});}}else{socket[_0xe038('0x71')]('userMailQueue:remove',{'UserId':Number(_0xb9b173['query']['ids']),'MailQueueId':Number(_0xb9b173['params']['id'])});}});}})['then'](respondWithStatusCode(_0x1c1416,null))[_0xe038('0x27')](handleError(_0x1c1416,null));};exports[_0xe038('0x74')]=function(_0xc27de3,_0x38d859){var _0x4e99ea={};var _0x2af392={};var _0x10dfc3;var _0x46debd;return db[_0xe038('0x1e')]['findOne']({'where':{'id':_0xc27de3[_0xe038('0x29')]['id']}})[_0xe038('0x14')](handleEntityNotFound(_0x38d859,null))[_0xe038('0x14')](function(_0xc33a0b){if(_0xc33a0b){_0x10dfc3=_0xc33a0b;_0x2af392[_0xe038('0x2a')]=_[_0xe038('0x2b')](db[_0xe038('0x43')]['rawAttributes']);_0x2af392[_0xe038('0x2d')]=_['keys'](_0xc27de3[_0xe038('0x2d')]);_0x2af392['filters']=_['intersection'](_0x2af392[_0xe038('0x2a')],_0x2af392[_0xe038('0x2d')]);_0x4e99ea[_0xe038('0x30')]=_[_0xe038('0x2f')](_0x2af392['model'],qs[_0xe038('0x31')](_0xc27de3['query'][_0xe038('0x31')]));_0x4e99ea[_0xe038('0x30')]=_0x4e99ea[_0xe038('0x30')][_0xe038('0x32')]?_0x4e99ea[_0xe038('0x30')]:_0x2af392[_0xe038('0x2a')];_0x4e99ea[_0xe038('0x75')]=qs[_0xe038('0x40')](_0xc27de3['query']['sort']);_0x4e99ea[_0xe038('0x23')]=qs[_0xe038('0x2e')](_[_0xe038('0x76')](_0xc27de3[_0xe038('0x2d')],_0x2af392[_0xe038('0x2e')]));if(_0xc27de3['query'][_0xe038('0x4e')]){_0x4e99ea[_0xe038('0x23')]=_['merge'](_0x4e99ea['where'],{'$or':_['map'](_0x4e99ea['attributes'],function(_0x147bc){var _0x4f8a8e={};_0x4f8a8e[_0x147bc]={'$like':'%'+_0xc27de3['query'][_0xe038('0x4e')]+'%'};return _0x4f8a8e;})});}_0x4e99ea=_[_0xe038('0x41')]({},_0x4e99ea,_0xc27de3[_0xe038('0x34')]);return _0x10dfc3[_0xe038('0x74')](_0x4e99ea);}})[_0xe038('0x14')](function(_0x1fa71c){if(_0x1fa71c){_0x46debd=_0x1fa71c[_0xe038('0x32')];if(!_0xc27de3[_0xe038('0x2d')][_0xe038('0x3e')](_0xe038('0x3f'))){_0x4e99ea['limit']=qs[_0xe038('0x12')](_0xc27de3[_0xe038('0x2d')][_0xe038('0x12')]);_0x4e99ea[_0xe038('0x11')]=qs[_0xe038('0x11')](_0xc27de3[_0xe038('0x2d')][_0xe038('0x11')]);}return _0x10dfc3['getAgents'](_0x4e99ea);}})[_0xe038('0x14')](function(_0x518b79){if(_0x518b79){return _0x518b79?{'count':_0x46debd,'rows':_0x518b79}:null;}})[_0xe038('0x14')](respondWithResult(_0x38d859,null))['catch'](handleError(_0x38d859,null));};