14e1037565649646a30a29810e82b6b3f779431a
[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 _0xf024=['Agents','sequelize','transaction','forEach','emit','userMailQueue:save','removeTeams','select','field','from','team_has_mail_queues','join','ut.TeamId\x20=\x20tq.TeamId','push','toString','QueryTypes','SELECT','all','union','compact','value','isEmpty','removeAgents','userMailQueue:remove','addAgents','isArray','getAgents','order','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','socket.io-emitter','./mailQueue.socket','register','sendStatus','status','json','offset','limit','set','reject','save','then','destroy','get','MailQueues','UserProfileResource','name','send','index','map','MailQueue','rawAttributes','type','filters','intersection','model','query','attributes','fields','length','nolimit','sort','pick','filter','where','VIRTUAL','merge','options','count','includeAll','findAll','rows','catch','show','keys','include','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','error','params','describe','getMembers','findOne','UserMailQueue','hasOwnProperty','MailQueueId','findAndCountAll','UserId','agent','updatedAt','createdAt','format','SIP','mailPause','getTeams','Team','ids','User','online','voicePause','interface','flatMap'];(function(_0x8d2cab,_0x5d7c90){var _0x31aaf8=function(_0x3b3f8c){while(--_0x3b3f8c){_0x8d2cab['push'](_0x8d2cab['shift']());}};_0x31aaf8(++_0x5d7c90);}(_0xf024,0x19f));var _0x4f02=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0xf024[_0x341e0f];return _0x59555a;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4f02('0x0'));var rimraf=require(_0x4f02('0x1'));var zipdir=require(_0x4f02('0x2'));var jsonpatch=require(_0x4f02('0x3'));var rp=require(_0x4f02('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4f02('0x5'));var path=require('path');var sox=require(_0x4f02('0x6'));var csv=require(_0x4f02('0x7'));var ejs=require(_0x4f02('0x8'));var fs=require('fs');var _=require(_0x4f02('0x9'));var squel=require('squel');var crypto=require(_0x4f02('0xa'));var jsforce=require(_0x4f02('0xb'));var deskjs=require(_0x4f02('0xc'));var toCsv=require(_0x4f02('0x7'));var querystring=require(_0x4f02('0xd'));var Papa=require(_0x4f02('0xe'));var Redis=require('ioredis');var authService=require(_0x4f02('0xf'));var qs=require(_0x4f02('0x10'));var as=require(_0x4f02('0x11'));var hardwareService=require(_0x4f02('0x12'));var logger=require('../../config/logger')(_0x4f02('0x13'));var utils=require(_0x4f02('0x14'));var config=require(_0x4f02('0x15'));var db=require('../../mysqldb')['db'];config[_0x4f02('0x16')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4f02('0x17'))(new Redis(config['redis']));require(_0x4f02('0x18'))[_0x4f02('0x19')](socket);function respondWithStatusCode(_0x2e4faa,_0x338caa){_0x338caa=_0x338caa||0xcc;return function(_0x4a2abc){if(_0x4a2abc){return _0x2e4faa[_0x4f02('0x1a')](_0x338caa);}return _0x2e4faa[_0x4f02('0x1b')](_0x338caa)['end']();};}function respondWithResult(_0x122512,_0x22724b){_0x22724b=_0x22724b||0xc8;return function(_0x40de3f){if(_0x40de3f){return _0x122512[_0x4f02('0x1b')](_0x22724b)[_0x4f02('0x1c')](_0x40de3f);}};}function respondWithFilteredResult(_0x46e4fb,_0x4c6e58){return function(_0x20715c){if(_0x20715c){var _0x355759=_0x20715c['count'],_0x1f562f=_0x4c6e58[_0x4f02('0x1d')],_0x552ca2=_0x4c6e58[_0x4f02('0x1d')]+_0x4c6e58[_0x4f02('0x1e')],_0x382b01;if(_0x552ca2>=_0x355759){_0x552ca2=_0x355759;_0x382b01=0xc8;}else{_0x382b01=0xce;}_0x46e4fb[_0x4f02('0x1b')](_0x382b01);return _0x46e4fb[_0x4f02('0x1f')]('Content-Range',_0x1f562f+'-'+_0x552ca2+'/'+_0x355759)[_0x4f02('0x1c')](_0x20715c);}return null;};}function patchUpdates(_0xb7820f){return function(_0x5e6180){try{jsonpatch['apply'](_0x5e6180,_0xb7820f,!![]);}catch(_0x15d59e){return BPromise[_0x4f02('0x20')](_0x15d59e);}return _0x5e6180[_0x4f02('0x21')]();};}function saveUpdates(_0x413722,_0x194df7){return function(_0x88570d){if(_0x88570d){return _0x88570d['update'](_0x413722)[_0x4f02('0x22')](function(_0x5f4f15){return _0x5f4f15;});}return null;};}function removeEntity(_0x46320f,_0x524625){return function(_0x5e0a1d){if(_0x5e0a1d){return _0x5e0a1d[_0x4f02('0x23')]()[_0x4f02('0x22')](function(){var _0x28fbfa=_0x5e0a1d[_0x4f02('0x24')]({'plain':!![]});var _0x270976=_0x4f02('0x25');return db[_0x4f02('0x26')][_0x4f02('0x23')]({'where':{'type':_0x270976,'resourceId':_0x28fbfa['id']}})[_0x4f02('0x22')](function(){return _0x5e0a1d;});})[_0x4f02('0x22')](function(){_0x46320f[_0x4f02('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b7fc5,_0x1189c3){return function(_0x13c144){if(!_0x13c144){_0x1b7fc5[_0x4f02('0x1a')](0x194);}return _0x13c144;};}function handleError(_0x4245f3,_0x6d1f3f){_0x6d1f3f=_0x6d1f3f||0x1f4;return function(_0x1d69dc){logger['error'](_0x1d69dc['stack']);if(_0x1d69dc[_0x4f02('0x27')]){delete _0x1d69dc[_0x4f02('0x27')];}_0x4245f3[_0x4f02('0x1b')](_0x6d1f3f)[_0x4f02('0x28')](_0x1d69dc);};}exports[_0x4f02('0x29')]=function(_0x1d4eda,_0x2d8aec){var _0x36828a={},_0x55382f={},_0x1dc51d={'count':0x0,'rows':[]};var _0x44886e=_[_0x4f02('0x2a')](db[_0x4f02('0x2b')][_0x4f02('0x2c')],function(_0x69f154){return{'name':_0x69f154['fieldName'],'type':_0x69f154[_0x4f02('0x2d')]['key']};});_0x55382f['model']=_[_0x4f02('0x2a')](_0x44886e,_0x4f02('0x27'));_0x55382f['query']=_['keys'](_0x1d4eda['query']);_0x55382f[_0x4f02('0x2e')]=_[_0x4f02('0x2f')](_0x55382f[_0x4f02('0x30')],_0x55382f[_0x4f02('0x31')]);_0x36828a[_0x4f02('0x32')]=_[_0x4f02('0x2f')](_0x55382f['model'],qs[_0x4f02('0x33')](_0x1d4eda[_0x4f02('0x31')][_0x4f02('0x33')]));_0x36828a['attributes']=_0x36828a[_0x4f02('0x32')][_0x4f02('0x34')]?_0x36828a[_0x4f02('0x32')]:_0x55382f[_0x4f02('0x30')];if(!_0x1d4eda[_0x4f02('0x31')]['hasOwnProperty'](_0x4f02('0x35'))){_0x36828a[_0x4f02('0x1e')]=qs[_0x4f02('0x1e')](_0x1d4eda['query'][_0x4f02('0x1e')]);_0x36828a[_0x4f02('0x1d')]=qs[_0x4f02('0x1d')](_0x1d4eda[_0x4f02('0x31')][_0x4f02('0x1d')]);}_0x36828a['order']=qs[_0x4f02('0x36')](_0x1d4eda['query']['sort']);_0x36828a['where']=qs[_0x4f02('0x2e')](_[_0x4f02('0x37')](_0x1d4eda[_0x4f02('0x31')],_0x55382f[_0x4f02('0x2e')]),_0x44886e);if(_0x1d4eda[_0x4f02('0x31')][_0x4f02('0x38')]){_0x36828a[_0x4f02('0x39')]=_['merge'](_0x36828a[_0x4f02('0x39')],{'$or':_[_0x4f02('0x2a')](_0x44886e,function(_0x1135d4){if(_0x1135d4[_0x4f02('0x2d')]!==_0x4f02('0x3a')){var _0x4edc5e={};_0x4edc5e[_0x1135d4['name']]={'$like':'%'+_0x1d4eda[_0x4f02('0x31')][_0x4f02('0x38')]+'%'};return _0x4edc5e;}})});}_0x36828a=_[_0x4f02('0x3b')]({},_0x36828a,_0x1d4eda[_0x4f02('0x3c')]);var _0x7d633a={'where':_0x36828a[_0x4f02('0x39')]};return db[_0x4f02('0x2b')][_0x4f02('0x3d')](_0x7d633a)[_0x4f02('0x22')](function(_0x5a2ca7){_0x1dc51d['count']=_0x5a2ca7;if(_0x1d4eda[_0x4f02('0x31')][_0x4f02('0x3e')]){_0x36828a['include']=[{'all':!![]}];}return db[_0x4f02('0x2b')][_0x4f02('0x3f')](_0x36828a);})[_0x4f02('0x22')](function(_0x13d865){_0x1dc51d[_0x4f02('0x40')]=_0x13d865;return _0x1dc51d;})[_0x4f02('0x22')](respondWithFilteredResult(_0x2d8aec,_0x36828a))[_0x4f02('0x41')](handleError(_0x2d8aec,null));};exports[_0x4f02('0x42')]=function(_0x47804e,_0x5b25bf){var _0x3b735a={'raw':!![],'where':{'id':_0x47804e['params']['id']}},_0x5505dc={};_0x5505dc[_0x4f02('0x30')]=_[_0x4f02('0x43')](db[_0x4f02('0x2b')][_0x4f02('0x2c')]);_0x5505dc['query']=_[_0x4f02('0x43')](_0x47804e['query']);_0x5505dc[_0x4f02('0x2e')]=_[_0x4f02('0x2f')](_0x5505dc[_0x4f02('0x30')],_0x5505dc['query']);_0x3b735a[_0x4f02('0x32')]=_[_0x4f02('0x2f')](_0x5505dc[_0x4f02('0x30')],qs[_0x4f02('0x33')](_0x47804e['query']['fields']));_0x3b735a['attributes']=_0x3b735a['attributes'][_0x4f02('0x34')]?_0x3b735a[_0x4f02('0x32')]:_0x5505dc['model'];if(_0x47804e[_0x4f02('0x31')][_0x4f02('0x3e')]){_0x3b735a[_0x4f02('0x44')]=[{'all':!![]}];}_0x3b735a=_['merge']({},_0x3b735a,_0x47804e['options']);return db[_0x4f02('0x2b')][_0x4f02('0x45')](_0x3b735a)[_0x4f02('0x22')](handleEntityNotFound(_0x5b25bf,null))['then'](respondWithResult(_0x5b25bf,null))[_0x4f02('0x41')](handleError(_0x5b25bf,null));};exports[_0x4f02('0x46')]=function(_0x26b95c,_0x805bfd){return db[_0x4f02('0x2b')][_0x4f02('0x46')](_0x26b95c[_0x4f02('0x47')],{})['then'](function(_0x252dd2){var _0x8e6724=_0x26b95c[_0x4f02('0x48')][_0x4f02('0x24')]({'plain':!![]});if(!_0x8e6724)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x8e6724[_0x4f02('0x49')]===_0x4f02('0x48')){var _0xe6bbbf=_0x252dd2['get']({'plain':!![]});var _0x3a7f5b='MailQueues';return db[_0x4f02('0x4a')][_0x4f02('0x45')]({'where':{'name':_0x3a7f5b,'userProfileId':_0x8e6724[_0x4f02('0x4b')]},'raw':!![]})[_0x4f02('0x22')](function(_0x5ac6c4){if(_0x5ac6c4&&_0x5ac6c4[_0x4f02('0x4c')]===0x0){return db[_0x4f02('0x26')]['create']({'name':_0xe6bbbf[_0x4f02('0x27')],'resourceId':_0xe6bbbf['id'],'type':_0x5ac6c4[_0x4f02('0x27')],'sectionId':_0x5ac6c4['id']},{})[_0x4f02('0x22')](function(){return _0x252dd2;});}else{return _0x252dd2;}})[_0x4f02('0x41')](function(_0x230ad4){logger[_0x4f02('0x4d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x230ad4);throw _0x230ad4;});}return _0x252dd2;})[_0x4f02('0x22')](respondWithResult(_0x805bfd,0xc9))[_0x4f02('0x41')](handleError(_0x805bfd,null));};exports['update']=function(_0x1bedd2,_0x4d8b5e){if(_0x1bedd2[_0x4f02('0x47')]['id']){delete _0x1bedd2[_0x4f02('0x47')]['id'];}return db[_0x4f02('0x2b')][_0x4f02('0x45')]({'where':{'id':_0x1bedd2['params']['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x4d8b5e,null))[_0x4f02('0x22')](saveUpdates(_0x1bedd2[_0x4f02('0x47')],null))[_0x4f02('0x22')](respondWithResult(_0x4d8b5e,null))[_0x4f02('0x41')](handleError(_0x4d8b5e,null));};exports['destroy']=function(_0x35d9b3,_0x2460f2){return db['MailQueue'][_0x4f02('0x45')]({'where':{'id':_0x35d9b3[_0x4f02('0x4e')]['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x2460f2,null))[_0x4f02('0x22')](removeEntity(_0x2460f2,null))[_0x4f02('0x41')](handleError(_0x2460f2,null));};exports[_0x4f02('0x4f')]=function(_0x5bbe2a,_0x292e2b){return db[_0x4f02('0x2b')]['describe']()[_0x4f02('0x22')](respondWithResult(_0x292e2b,null))[_0x4f02('0x41')](handleError(_0x292e2b,null));};exports[_0x4f02('0x50')]=function(_0x176783,_0x484570,_0xc99caf){var _0x545ec1={'raw':!![],'where':{}},_0xf9e559={},_0x1a06cc;return db[_0x4f02('0x2b')][_0x4f02('0x51')]({'where':{'id':_0x176783[_0x4f02('0x4e')]['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x484570,null))[_0x4f02('0x22')](function(_0x5a0254){if(_0x5a0254){_0x1a06cc=_0x5a0254['get']({'plain':!![]});_0xf9e559[_0x4f02('0x30')]=_[_0x4f02('0x43')](db[_0x4f02('0x52')][_0x4f02('0x2c')]);_0xf9e559[_0x4f02('0x31')]=_['keys'](_0x176783[_0x4f02('0x31')]);_0xf9e559['filters']=_['intersection'](_0xf9e559[_0x4f02('0x30')],_0xf9e559[_0x4f02('0x31')]);_0x545ec1[_0x4f02('0x32')]=_[_0x4f02('0x2f')](_0xf9e559[_0x4f02('0x30')],qs['fields'](_0x176783['query'][_0x4f02('0x33')]));_0x545ec1[_0x4f02('0x32')]=_0x545ec1[_0x4f02('0x32')][_0x4f02('0x34')]?_0x545ec1[_0x4f02('0x32')]:_0xf9e559['model'];if(!_0x176783[_0x4f02('0x31')][_0x4f02('0x53')]('nolimit')){_0x545ec1[_0x4f02('0x1e')]=qs[_0x4f02('0x1e')](_0x176783['query'][_0x4f02('0x1e')]);_0x545ec1[_0x4f02('0x1d')]=qs[_0x4f02('0x1d')](_0x176783[_0x4f02('0x31')]['offset']);}_0x545ec1['order']=qs[_0x4f02('0x36')](_0x176783[_0x4f02('0x31')][_0x4f02('0x36')]);_0x545ec1[_0x4f02('0x39')]=qs[_0x4f02('0x2e')](_[_0x4f02('0x37')](_0x176783[_0x4f02('0x31')],_0xf9e559[_0x4f02('0x2e')]));_0x545ec1[_0x4f02('0x39')][_0x4f02('0x54')]=_0x5a0254['id'];if(_0x176783[_0x4f02('0x31')][_0x4f02('0x38')]){_0x545ec1[_0x4f02('0x39')]=_[_0x4f02('0x3b')](_0x545ec1[_0x4f02('0x39')],{'$or':_[_0x4f02('0x2a')](_0x545ec1['attributes'],function(_0x177152){var _0x4a051a={};_0x4a051a[_0x177152]={'$like':'%'+_0x176783[_0x4f02('0x31')][_0x4f02('0x38')]+'%'};return _0x4a051a;})});}_0x545ec1=_['merge']({},_0x545ec1,_0x176783[_0x4f02('0x3c')]);return db[_0x4f02('0x52')][_0x4f02('0x3f')](_0x545ec1);}})['then'](function(_0x24df5d){if(_0x24df5d){return db['User'][_0x4f02('0x55')]({'where':{'id':_[_0x4f02('0x2a')](_0x24df5d,_0x4f02('0x56')),'role':_0x4f02('0x57')},'attributes':['id',_0x4f02('0x27'),'mailPause',_0x4f02('0x58'),_0x4f02('0x59')]});}})[_0x4f02('0x22')](function(_0x2a076c){if(_0x2a076c){return{'count':_0x2a076c[_0x4f02('0x3d')],'rows':_[_0x4f02('0x2a')](_0x2a076c[_0x4f02('0x40')],function(_0x2b5270){return{'membername':_0x2b5270['name'],'UserId':_0x2b5270['id'],'queue_name':_0x1a06cc[_0x4f02('0x27')],'MailQueueId':_0x1a06cc['id'],'interface':util[_0x4f02('0x5a')]('%s/%s',_0x4f02('0x5b'),_0x2b5270[_0x4f02('0x27')]),'penalty':0x0,'paused':_0x2b5270[_0x4f02('0x5c')],'createdAt':_0x2b5270[_0x4f02('0x59')],'updatedAt':_0x2b5270['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x484570,_0x545ec1))['catch'](handleError(_0x484570,null));};exports[_0x4f02('0x5d')]=function(_0x1c41e5,_0xbfb98,_0x28ea69){var _0x3f1417={};var _0x19fd8e={};var _0xff6aef;var _0x2ce58a;return db[_0x4f02('0x2b')][_0x4f02('0x51')]({'where':{'id':_0x1c41e5[_0x4f02('0x4e')]['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0xbfb98,null))[_0x4f02('0x22')](function(_0x2d6f14){if(_0x2d6f14){_0xff6aef=_0x2d6f14;_0x19fd8e[_0x4f02('0x30')]=_[_0x4f02('0x43')](db[_0x4f02('0x5e')][_0x4f02('0x2c')]);_0x19fd8e[_0x4f02('0x31')]=_[_0x4f02('0x43')](_0x1c41e5[_0x4f02('0x31')]);_0x19fd8e[_0x4f02('0x2e')]=_[_0x4f02('0x2f')](_0x19fd8e[_0x4f02('0x30')],_0x19fd8e[_0x4f02('0x31')]);_0x3f1417[_0x4f02('0x32')]=_[_0x4f02('0x2f')](_0x19fd8e[_0x4f02('0x30')],qs['fields'](_0x1c41e5[_0x4f02('0x31')]['fields']));_0x3f1417['attributes']=_0x3f1417[_0x4f02('0x32')][_0x4f02('0x34')]?_0x3f1417[_0x4f02('0x32')]:_0x19fd8e[_0x4f02('0x30')];_0x3f1417['order']=qs[_0x4f02('0x36')](_0x1c41e5[_0x4f02('0x31')][_0x4f02('0x36')]);_0x3f1417[_0x4f02('0x39')]=qs[_0x4f02('0x2e')](_['pick'](_0x1c41e5[_0x4f02('0x31')],_0x19fd8e[_0x4f02('0x2e')]));if(_0x1c41e5[_0x4f02('0x31')][_0x4f02('0x38')]){_0x3f1417[_0x4f02('0x39')]=_[_0x4f02('0x3b')](_0x3f1417[_0x4f02('0x39')],{'$or':_['map'](_0x3f1417[_0x4f02('0x32')],function(_0x47ed5a){var _0xe7bb3a={};_0xe7bb3a[_0x47ed5a]={'$like':'%'+_0x1c41e5[_0x4f02('0x31')][_0x4f02('0x38')]+'%'};return _0xe7bb3a;})});}_0x3f1417=_['merge']({},_0x3f1417,_0x1c41e5['options']);return _0xff6aef[_0x4f02('0x5d')](_0x3f1417);}})['then'](function(_0x3ddaf1){if(_0x3ddaf1){_0x2ce58a=_0x3ddaf1['length'];if(!_0x1c41e5[_0x4f02('0x31')]['hasOwnProperty'](_0x4f02('0x35'))){_0x3f1417[_0x4f02('0x1e')]=qs[_0x4f02('0x1e')](_0x1c41e5['query']['limit']);_0x3f1417['offset']=qs[_0x4f02('0x1d')](_0x1c41e5[_0x4f02('0x31')][_0x4f02('0x1d')]);}return _0xff6aef['getTeams'](_0x3f1417);}})[_0x4f02('0x22')](function(_0x85a71a){if(_0x85a71a){return _0x85a71a?{'count':_0x2ce58a,'rows':_0x85a71a}:null;}})[_0x4f02('0x22')](respondWithResult(_0xbfb98,null))['catch'](handleError(_0xbfb98,null));};exports['addTeams']=function(_0x124e56,_0x492d7c,_0x191a5b){var _0x303ab2=_0x124e56['body'][_0x4f02('0x5f')];return db['Team']['findAll']({'where':{'id':_0x303ab2},'attributes':['id'],'include':[{'model':db[_0x4f02('0x60')],'as':'Agents','attributes':['id',_0x4f02('0x27'),_0x4f02('0x61'),_0x4f02('0x62'),_0x4f02('0x63')],'raw':!![]}]})[_0x4f02('0x22')](function(_0xcbe08){if(_0xcbe08){var _0x1f59ec=_[_0x4f02('0x64')](_0xcbe08,function(_0x47275a){var _0x2f64b5=_0x47275a[_0x4f02('0x24')]({'plain':!![]});return _0x2f64b5[_0x4f02('0x65')];});return db['MailQueue'][_0x4f02('0x45')]({'where':{'id':_0x124e56['params']['id']}})[_0x4f02('0x22')](function(_0x17a54e){return db[_0x4f02('0x66')][_0x4f02('0x67')](function(_0x3dd576){return _0x17a54e['addTeams'](_0x303ab2,{'transaction':_0x3dd576})[_0x4f02('0x22')](function(){return BPromise['each'](_0x1f59ec,function(_0x5f04b4){return db[_0x4f02('0x52')]['findOrCreate']({'where':{'UserId':_0x5f04b4['id'],'MailQueueId':_0x124e56[_0x4f02('0x4e')]['id']},'transaction':_0x3dd576});});})[_0x4f02('0x22')](function(){_0x1f59ec[_0x4f02('0x68')](function(_0x8cad38){socket[_0x4f02('0x69')](_0x4f02('0x6a'),{'UserId':_0x8cad38['id'],'MailQueueId':_0x17a54e['id']});});});});});}})[_0x4f02('0x22')](respondWithStatusCode(_0x492d7c,null))[_0x4f02('0x41')](handleError(_0x492d7c,null));};exports[_0x4f02('0x6b')]=function(_0x48a75e,_0x12c189,_0x2064c3){return db[_0x4f02('0x5e')][_0x4f02('0x3f')]({'where':{'id':_0x48a75e[_0x4f02('0x31')][_0x4f02('0x5f')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x4f02('0x65'),'attributes':['id'],'raw':!![]}]})[_0x4f02('0x22')](handleEntityNotFound(_0x12c189,null))[_0x4f02('0x22')](function(_0x5a0dd9){var _0x3b0935=_[_0x4f02('0x2a')](_0x5a0dd9,'id');var _0x2087a0=[];var _0x55cdb3=[];var _0x56acdd=squel[_0x4f02('0x6c')]();_0x56acdd[_0x4f02('0x6d')]('tq.TeamId')[_0x4f02('0x6e')](_0x4f02('0x6f'),'tq')[_0x4f02('0x70')]('user_has_teams','ut',_0x4f02('0x71'))['where']('MailQueueId\x20=\x20?',_0x48a75e[_0x4f02('0x4e')]['id']);for(var _0x3c88eb=0x0;_0x3c88eb<_0x5a0dd9[_0x4f02('0x34')];_0x3c88eb+=0x1){let _0x5400dc=_0x5a0dd9[_0x3c88eb];for(var _0x180c2f=0x0;_0x180c2f<_0x5400dc[_0x4f02('0x65')][_0x4f02('0x34')];_0x180c2f+=0x1){let _0x2bcfe3=_0x5400dc['Agents'][_0x180c2f];var _0xa24b26=_0x56acdd['clone']();_0xa24b26[_0x4f02('0x39')]('ut.UserId\x20=\x20?',_0x2bcfe3['id']);_0x55cdb3[_0x4f02('0x72')](db[_0x4f02('0x66')][_0x4f02('0x31')](_0xa24b26[_0x4f02('0x73')](),{'type':db[_0x4f02('0x66')][_0x4f02('0x74')][_0x4f02('0x75')]})[_0x4f02('0x22')](function(_0x4c415d){if(_0x4c415d[_0x4f02('0x34')]===0x1){return _0x2bcfe3['id'];}else{var _0x146b02=_['every'](_[_0x4f02('0x2a')](_0x4c415d,'TeamId'),function(_0x524a31){return _['includes'](_0x3b0935,_0x524a31);});if(_0x146b02){return _0x2bcfe3['id'];}}}));}}return BPromise[_0x4f02('0x76')](_0x55cdb3)[_0x4f02('0x22')](function(_0x1fe2c9){_0x2087a0=_(_0x2087a0)[_0x4f02('0x77')](_0x1fe2c9)[_0x4f02('0x78')]()[_0x4f02('0x79')]();return db[_0x4f02('0x2b')][_0x4f02('0x45')]({'where':{'id':_0x48a75e['params']['id']}})[_0x4f02('0x22')](function(_0x172293){return db[_0x4f02('0x66')][_0x4f02('0x67')](function(_0x726dee){return _0x172293[_0x4f02('0x6b')](_0x48a75e['query']['ids'],{'transaction':_0x726dee})[_0x4f02('0x22')](function(){if(!_[_0x4f02('0x7a')](_0x2087a0)){return _0x172293[_0x4f02('0x7b')](_0x2087a0,{'transaction':_0x726dee});}})[_0x4f02('0x22')](function(){_0x2087a0[_0x4f02('0x68')](function(_0x2b514e){socket[_0x4f02('0x69')](_0x4f02('0x7c'),{'UserId':_0x2b514e,'MailQueueId':_0x172293['id']});});});});});});})[_0x4f02('0x22')](respondWithStatusCode(_0x12c189,null))[_0x4f02('0x41')](handleError(_0x12c189,null));};exports[_0x4f02('0x7d')]=function(_0x22dfea,_0x53b700,_0x2262aa){return db[_0x4f02('0x2b')][_0x4f02('0x45')]({'where':{'id':_0x22dfea[_0x4f02('0x4e')]['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x53b700,null))[_0x4f02('0x22')](function(_0x48c7eb){if(_0x48c7eb){return _0x48c7eb[_0x4f02('0x7d')](_0x22dfea[_0x4f02('0x47')][_0x4f02('0x5f')],_['omit'](_0x22dfea['body'],[_0x4f02('0x5f'),'id'])||{})['spread'](function(_0x301e13){for(var _0x1805d6=0x0;_0x1805d6<_0x22dfea['body'][_0x4f02('0x5f')]['length'];_0x1805d6+=0x1){socket[_0x4f02('0x69')](_0x4f02('0x6a'),{'UserId':_0x22dfea['body'][_0x4f02('0x5f')][_0x1805d6],'MailQueueId':_0x22dfea[_0x4f02('0x4e')]['id']});}return _0x301e13;});}})['then'](respondWithResult(_0x53b700,null))[_0x4f02('0x41')](handleError(_0x53b700,null));};exports['removeAgents']=function(_0x30be1d,_0x565373,_0x4095cb){return db[_0x4f02('0x2b')][_0x4f02('0x45')]({'where':{'id':_0x30be1d[_0x4f02('0x4e')]['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x565373,null))[_0x4f02('0x22')](function(_0x3733c6){if(_0x3733c6){return _0x3733c6[_0x4f02('0x7b')](_0x30be1d['query']['ids'])['then'](function(){if(_[_0x4f02('0x7e')](_0x30be1d[_0x4f02('0x31')][_0x4f02('0x5f')])){for(var _0x48792f=0x0;_0x48792f<_0x30be1d['query'][_0x4f02('0x5f')]['length'];_0x48792f+=0x1){socket['emit'](_0x4f02('0x7c'),{'UserId':Number(_0x30be1d[_0x4f02('0x31')]['ids'][_0x48792f]),'MailQueueId':Number(_0x30be1d[_0x4f02('0x4e')]['id'])});}}else{socket[_0x4f02('0x69')]('userMailQueue:remove',{'UserId':Number(_0x30be1d[_0x4f02('0x31')][_0x4f02('0x5f')]),'MailQueueId':Number(_0x30be1d[_0x4f02('0x4e')]['id'])});}});}})['then'](respondWithStatusCode(_0x565373,null))['catch'](handleError(_0x565373,null));};exports[_0x4f02('0x7f')]=function(_0x4171d1,_0x19076c,_0x53f193){var _0x1132bb={};var _0x2f5713={};var _0x5a945d;var _0x2baf77;return db[_0x4f02('0x2b')][_0x4f02('0x51')]({'where':{'id':_0x4171d1['params']['id']}})[_0x4f02('0x22')](handleEntityNotFound(_0x19076c,null))['then'](function(_0x1afe1c){if(_0x1afe1c){_0x5a945d=_0x1afe1c;_0x2f5713[_0x4f02('0x30')]=_[_0x4f02('0x43')](db['User'][_0x4f02('0x2c')]);_0x2f5713[_0x4f02('0x31')]=_[_0x4f02('0x43')](_0x4171d1[_0x4f02('0x31')]);_0x2f5713[_0x4f02('0x2e')]=_[_0x4f02('0x2f')](_0x2f5713[_0x4f02('0x30')],_0x2f5713[_0x4f02('0x31')]);_0x1132bb['attributes']=_[_0x4f02('0x2f')](_0x2f5713[_0x4f02('0x30')],qs[_0x4f02('0x33')](_0x4171d1[_0x4f02('0x31')][_0x4f02('0x33')]));_0x1132bb[_0x4f02('0x32')]=_0x1132bb[_0x4f02('0x32')][_0x4f02('0x34')]?_0x1132bb['attributes']:_0x2f5713[_0x4f02('0x30')];_0x1132bb[_0x4f02('0x80')]=qs['sort'](_0x4171d1[_0x4f02('0x31')][_0x4f02('0x36')]);_0x1132bb[_0x4f02('0x39')]=qs[_0x4f02('0x2e')](_[_0x4f02('0x37')](_0x4171d1[_0x4f02('0x31')],_0x2f5713[_0x4f02('0x2e')]));if(_0x4171d1[_0x4f02('0x31')][_0x4f02('0x38')]){_0x1132bb[_0x4f02('0x39')]=_[_0x4f02('0x3b')](_0x1132bb[_0x4f02('0x39')],{'$or':_['map'](_0x1132bb[_0x4f02('0x32')],function(_0x5c8334){var _0xb7da07={};_0xb7da07[_0x5c8334]={'$like':'%'+_0x4171d1[_0x4f02('0x31')][_0x4f02('0x38')]+'%'};return _0xb7da07;})});}_0x1132bb=_[_0x4f02('0x3b')]({},_0x1132bb,_0x4171d1['options']);return _0x5a945d[_0x4f02('0x7f')](_0x1132bb);}})[_0x4f02('0x22')](function(_0x46cae6){if(_0x46cae6){_0x2baf77=_0x46cae6[_0x4f02('0x34')];if(!_0x4171d1['query'][_0x4f02('0x53')](_0x4f02('0x35'))){_0x1132bb['limit']=qs[_0x4f02('0x1e')](_0x4171d1[_0x4f02('0x31')][_0x4f02('0x1e')]);_0x1132bb['offset']=qs[_0x4f02('0x1d')](_0x4171d1['query'][_0x4f02('0x1d')]);}return _0x5a945d[_0x4f02('0x7f')](_0x1132bb);}})['then'](function(_0x916543){if(_0x916543){return _0x916543?{'count':_0x2baf77,'rows':_0x916543}:null;}})[_0x4f02('0x22')](respondWithResult(_0x19076c,null))['catch'](handleError(_0x19076c,null));};