185168da28989391e341dc7e2c1ca8934475ca2c
[motion2.git] / server / api / openchannelQueue / openchannelQueue.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 _0xd32f=['register','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','get','OpenchannelQueues','UserProfileResource','sendStatus','error','send','index','map','OpenchannelQueue','rawAttributes','fieldName','type','key','name','query','keys','filters','intersection','model','fields','attributes','length','sort','where','pick','filter','VIRTUAL','merge','includeAll','findAll','rows','catch','show','params','options','find','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserOpenchannelQueue','nolimit','order','OpenchannelQueueId','User','findAndCountAll','agent','openchannelPause','updatedAt','createdAt','format','SIP','getTeams','hasOwnProperty','addTeams','ids','Team','interface','flatMap','Agents','sequelize','transaction','each','findOrCreate','forEach','select','field','tq.TeamId','from','team_has_openchannel_queues','join','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','TeamId','union','value','removeTeams','isEmpty','removeAgents','emit','userOpenchannelQueue:remove','omit','userOpenchannelQueue:save','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelQueue.socket'];(function(_0x503ffd,_0x8ecde){var _0x160437=function(_0x2d45dd){while(--_0x2d45dd){_0x503ffd['push'](_0x503ffd['shift']());}};_0x160437(++_0x8ecde);}(_0xd32f,0xf6));var _0xfd32=function(_0x171181,_0x286977){_0x171181=_0x171181-0x0;var _0x248d87=_0xd32f[_0x171181];return _0x248d87;};'use strict';var emlformat=require(_0xfd32('0x0'));var rimraf=require(_0xfd32('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfd32('0x2'));var rp=require(_0xfd32('0x3'));var moment=require(_0xfd32('0x4'));var BPromise=require(_0xfd32('0x5'));var Mustache=require('mustache');var util=require(_0xfd32('0x6'));var path=require(_0xfd32('0x7'));var sox=require(_0xfd32('0x8'));var csv=require(_0xfd32('0x9'));var ejs=require(_0xfd32('0xa'));var fs=require('fs');var fs_extra=require(_0xfd32('0xb'));var _=require('lodash');var squel=require(_0xfd32('0xc'));var crypto=require(_0xfd32('0xd'));var jsforce=require(_0xfd32('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xfd32('0x9'));var querystring=require('querystring');var Papa=require(_0xfd32('0xf'));var Redis=require(_0xfd32('0x10'));var authService=require(_0xfd32('0x11'));var qs=require(_0xfd32('0x12'));var as=require(_0xfd32('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfd32('0x14'))(_0xfd32('0x15'));var utils=require(_0xfd32('0x16'));var config=require(_0xfd32('0x17'));var licenseUtil=require(_0xfd32('0x18'));var db=require(_0xfd32('0x19'))['db'];config['redis']=_['defaults'](config[_0xfd32('0x1a')],{'host':_0xfd32('0x1b'),'port':0x18eb});var socket=require(_0xfd32('0x1c'))(new Redis(config['redis']));require(_0xfd32('0x1d'))[_0xfd32('0x1e')](socket);function respondWithStatusCode(_0x149b81,_0xf0aa54){_0xf0aa54=_0xf0aa54||0xcc;return function(_0x45a2ab){if(_0x45a2ab){return _0x149b81['sendStatus'](_0xf0aa54);}return _0x149b81[_0xfd32('0x1f')](_0xf0aa54)[_0xfd32('0x20')]();};}function respondWithResult(_0x484be7,_0x4cc9fb){_0x4cc9fb=_0x4cc9fb||0xc8;return function(_0x2afd30){if(_0x2afd30){return _0x484be7[_0xfd32('0x1f')](_0x4cc9fb)[_0xfd32('0x21')](_0x2afd30);}};}function respondWithFilteredResult(_0x1d3bae,_0x48da45){return function(_0x4b41e4){if(_0x4b41e4){var _0xcd3aa5=typeof _0x48da45[_0xfd32('0x22')]===_0xfd32('0x23')&&typeof _0x48da45[_0xfd32('0x24')]===_0xfd32('0x23');var _0x1b1015=_0x4b41e4[_0xfd32('0x25')];var _0x16dfd1=_0xcd3aa5?0x0:_0x48da45[_0xfd32('0x22')];var _0x23eeeb=_0xcd3aa5?_0x4b41e4[_0xfd32('0x25')]:_0x48da45[_0xfd32('0x22')]+_0x48da45[_0xfd32('0x24')];var _0x4412d4;if(_0x23eeeb>=_0x1b1015){_0x23eeeb=_0x1b1015;_0x4412d4=0xc8;}else{_0x4412d4=0xce;}_0x1d3bae['status'](_0x4412d4);return _0x1d3bae[_0xfd32('0x26')]('Content-Range',_0x16dfd1+'-'+_0x23eeeb+'/'+_0x1b1015)[_0xfd32('0x21')](_0x4b41e4);}return null;};}function patchUpdates(_0x439c44){return function(_0x5dac19){try{jsonpatch['apply'](_0x5dac19,_0x439c44,!![]);}catch(_0x3e5ab2){return BPromise[_0xfd32('0x27')](_0x3e5ab2);}return _0x5dac19[_0xfd32('0x28')]();};}function saveUpdates(_0x51ff0f,_0x2733e9){return function(_0x54b307){if(_0x54b307){return _0x54b307[_0xfd32('0x29')](_0x51ff0f)[_0xfd32('0x2a')](function(_0x3a20e7){return _0x3a20e7;});}return null;};}function removeEntity(_0x3b6790,_0x16d361){return function(_0x5be73b){if(_0x5be73b){return _0x5be73b[_0xfd32('0x2b')]()['then'](function(){var _0x1ef7b4=_0x5be73b[_0xfd32('0x2c')]({'plain':!![]});var _0x415cdb=_0xfd32('0x2d');return db[_0xfd32('0x2e')]['destroy']({'where':{'type':_0x415cdb,'resourceId':_0x1ef7b4['id']}})[_0xfd32('0x2a')](function(){return _0x5be73b;});})[_0xfd32('0x2a')](function(){_0x3b6790['status'](0xcc)[_0xfd32('0x20')]();});}};}function handleEntityNotFound(_0xfedc8,_0xef6da5){return function(_0x38125e){if(!_0x38125e){_0xfedc8[_0xfd32('0x2f')](0x194);}return _0x38125e;};}function handleError(_0x2790ef,_0x253d4b){_0x253d4b=_0x253d4b||0x1f4;return function(_0x4c285e){logger[_0xfd32('0x30')](_0x4c285e['stack']);if(_0x4c285e['name']){delete _0x4c285e['name'];}_0x2790ef[_0xfd32('0x1f')](_0x253d4b)[_0xfd32('0x31')](_0x4c285e);};}exports[_0xfd32('0x32')]=function(_0x2e0fcf,_0x51138e){var _0x15327b={},_0x231344={},_0x14bbd9={'count':0x0,'rows':[]};var _0x4abde4=_[_0xfd32('0x33')](db[_0xfd32('0x34')][_0xfd32('0x35')],function(_0x16ca90){return{'name':_0x16ca90[_0xfd32('0x36')],'type':_0x16ca90[_0xfd32('0x37')][_0xfd32('0x38')]};});_0x231344['model']=_[_0xfd32('0x33')](_0x4abde4,_0xfd32('0x39'));_0x231344[_0xfd32('0x3a')]=_[_0xfd32('0x3b')](_0x2e0fcf[_0xfd32('0x3a')]);_0x231344[_0xfd32('0x3c')]=_[_0xfd32('0x3d')](_0x231344[_0xfd32('0x3e')],_0x231344[_0xfd32('0x3a')]);_0x15327b['attributes']=_['intersection'](_0x231344[_0xfd32('0x3e')],qs[_0xfd32('0x3f')](_0x2e0fcf[_0xfd32('0x3a')][_0xfd32('0x3f')]));_0x15327b['attributes']=_0x15327b[_0xfd32('0x40')][_0xfd32('0x41')]?_0x15327b[_0xfd32('0x40')]:_0x231344[_0xfd32('0x3e')];if(!_0x2e0fcf['query']['hasOwnProperty']('nolimit')){_0x15327b[_0xfd32('0x24')]=qs[_0xfd32('0x24')](_0x2e0fcf[_0xfd32('0x3a')]['limit']);_0x15327b[_0xfd32('0x22')]=qs[_0xfd32('0x22')](_0x2e0fcf[_0xfd32('0x3a')]['offset']);}_0x15327b['order']=qs[_0xfd32('0x42')](_0x2e0fcf[_0xfd32('0x3a')][_0xfd32('0x42')]);_0x15327b[_0xfd32('0x43')]=qs[_0xfd32('0x3c')](_[_0xfd32('0x44')](_0x2e0fcf[_0xfd32('0x3a')],_0x231344['filters']),_0x4abde4);if(_0x2e0fcf[_0xfd32('0x3a')][_0xfd32('0x45')]){_0x15327b['where']=_['merge'](_0x15327b['where'],{'$or':_[_0xfd32('0x33')](_0x4abde4,function(_0x547fe6){if(_0x547fe6[_0xfd32('0x37')]!==_0xfd32('0x46')){var _0x53cc3e={};_0x53cc3e[_0x547fe6[_0xfd32('0x39')]]={'$like':'%'+_0x2e0fcf[_0xfd32('0x3a')][_0xfd32('0x45')]+'%'};return _0x53cc3e;}})});}_0x15327b=_[_0xfd32('0x47')]({},_0x15327b,_0x2e0fcf['options']);var _0x21ccaa={'where':_0x15327b['where']};return db[_0xfd32('0x34')][_0xfd32('0x25')](_0x21ccaa)[_0xfd32('0x2a')](function(_0x4ace76){_0x14bbd9[_0xfd32('0x25')]=_0x4ace76;if(_0x2e0fcf[_0xfd32('0x3a')][_0xfd32('0x48')]){_0x15327b['include']=[{'all':!![]}];}return db['OpenchannelQueue'][_0xfd32('0x49')](_0x15327b);})[_0xfd32('0x2a')](function(_0x4978e0){_0x14bbd9[_0xfd32('0x4a')]=_0x4978e0;return _0x14bbd9;})['then'](respondWithFilteredResult(_0x51138e,_0x15327b))[_0xfd32('0x4b')](handleError(_0x51138e,null));};exports[_0xfd32('0x4c')]=function(_0x3e1703,_0x2412e7){var _0x5e0e14={'raw':!![],'where':{'id':_0x3e1703[_0xfd32('0x4d')]['id']}},_0x51b81d={};_0x51b81d[_0xfd32('0x3e')]=_['keys'](db[_0xfd32('0x34')][_0xfd32('0x35')]);_0x51b81d['query']=_[_0xfd32('0x3b')](_0x3e1703[_0xfd32('0x3a')]);_0x51b81d[_0xfd32('0x3c')]=_[_0xfd32('0x3d')](_0x51b81d[_0xfd32('0x3e')],_0x51b81d[_0xfd32('0x3a')]);_0x5e0e14['attributes']=_[_0xfd32('0x3d')](_0x51b81d[_0xfd32('0x3e')],qs[_0xfd32('0x3f')](_0x3e1703['query'][_0xfd32('0x3f')]));_0x5e0e14['attributes']=_0x5e0e14[_0xfd32('0x40')][_0xfd32('0x41')]?_0x5e0e14[_0xfd32('0x40')]:_0x51b81d[_0xfd32('0x3e')];if(_0x3e1703[_0xfd32('0x3a')]['includeAll']){_0x5e0e14['include']=[{'all':!![]}];}_0x5e0e14=_[_0xfd32('0x47')]({},_0x5e0e14,_0x3e1703[_0xfd32('0x4e')]);return db[_0xfd32('0x34')][_0xfd32('0x4f')](_0x5e0e14)[_0xfd32('0x2a')](handleEntityNotFound(_0x2412e7,null))[_0xfd32('0x2a')](respondWithResult(_0x2412e7,null))[_0xfd32('0x4b')](handleError(_0x2412e7,null));};exports[_0xfd32('0x50')]=function(_0x3cf18e,_0x439552){return db['OpenchannelQueue'][_0xfd32('0x50')](_0x3cf18e[_0xfd32('0x51')],{})['then'](function(_0x33d1da){var _0x1ee76a=_0x3cf18e['user'][_0xfd32('0x2c')]({'plain':!![]});if(!_0x1ee76a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1ee76a[_0xfd32('0x52')]===_0xfd32('0x53')){var _0x100c5f=_0x33d1da[_0xfd32('0x2c')]({'plain':!![]});var _0x4c24ba=_0xfd32('0x2d');return db[_0xfd32('0x54')][_0xfd32('0x4f')]({'where':{'name':_0x4c24ba,'userProfileId':_0x1ee76a[_0xfd32('0x55')]},'raw':!![]})[_0xfd32('0x2a')](function(_0x1edcdc){if(_0x1edcdc&&_0x1edcdc[_0xfd32('0x56')]===0x0){return db['UserProfileResource']['create']({'name':_0x100c5f[_0xfd32('0x39')],'resourceId':_0x100c5f['id'],'type':_0x1edcdc[_0xfd32('0x39')],'sectionId':_0x1edcdc['id']},{})[_0xfd32('0x2a')](function(){return _0x33d1da;});}else{return _0x33d1da;}})['catch'](function(_0x47ef31){logger[_0xfd32('0x30')](_0xfd32('0x57'),_0x47ef31);throw _0x47ef31;});}return _0x33d1da;})['then'](respondWithResult(_0x439552,0xc9))[_0xfd32('0x4b')](handleError(_0x439552,null));};exports[_0xfd32('0x29')]=function(_0x265812,_0x1327db){if(_0x265812[_0xfd32('0x51')]['id']){delete _0x265812['body']['id'];}return db['OpenchannelQueue'][_0xfd32('0x4f')]({'where':{'id':_0x265812[_0xfd32('0x4d')]['id']}})['then'](handleEntityNotFound(_0x1327db,null))['then'](saveUpdates(_0x265812[_0xfd32('0x51')],null))[_0xfd32('0x2a')](respondWithResult(_0x1327db,null))[_0xfd32('0x4b')](handleError(_0x1327db,null));};exports[_0xfd32('0x2b')]=function(_0x94e682,_0x2bddad){return db['OpenchannelQueue'][_0xfd32('0x4f')]({'where':{'id':_0x94e682['params']['id']}})[_0xfd32('0x2a')](handleEntityNotFound(_0x2bddad,null))[_0xfd32('0x2a')](removeEntity(_0x2bddad,null))[_0xfd32('0x4b')](handleError(_0x2bddad,null));};exports[_0xfd32('0x58')]=function(_0x563154,_0x47b7bc){return db['OpenchannelQueue'][_0xfd32('0x58')]()['then'](respondWithResult(_0x47b7bc,null))[_0xfd32('0x4b')](handleError(_0x47b7bc,null));};exports[_0xfd32('0x59')]=function(_0x26e160,_0x47e029,_0x54cae8){var _0x5be1dd={'raw':!![],'where':{}},_0xa90ff4={},_0x2ad7fc;return db['OpenchannelQueue'][_0xfd32('0x5a')]({'where':{'id':_0x26e160[_0xfd32('0x4d')]['id']}})[_0xfd32('0x2a')](handleEntityNotFound(_0x47e029,null))[_0xfd32('0x2a')](function(_0x38a46c){if(_0x38a46c){_0x2ad7fc=_0x38a46c[_0xfd32('0x2c')]({'plain':!![]});_0xa90ff4[_0xfd32('0x3e')]=_['keys'](db[_0xfd32('0x5b')][_0xfd32('0x35')]);_0xa90ff4[_0xfd32('0x3a')]=_[_0xfd32('0x3b')](_0x26e160[_0xfd32('0x3a')]);_0xa90ff4['filters']=_[_0xfd32('0x3d')](_0xa90ff4[_0xfd32('0x3e')],_0xa90ff4['query']);_0x5be1dd['attributes']=_['intersection'](_0xa90ff4[_0xfd32('0x3e')],qs['fields'](_0x26e160['query'][_0xfd32('0x3f')]));_0x5be1dd[_0xfd32('0x40')]=_0x5be1dd[_0xfd32('0x40')][_0xfd32('0x41')]?_0x5be1dd[_0xfd32('0x40')]:_0xa90ff4['model'];if(!_0x26e160[_0xfd32('0x3a')]['hasOwnProperty'](_0xfd32('0x5c'))){_0x5be1dd[_0xfd32('0x24')]=qs[_0xfd32('0x24')](_0x26e160[_0xfd32('0x3a')][_0xfd32('0x24')]);_0x5be1dd[_0xfd32('0x22')]=qs[_0xfd32('0x22')](_0x26e160[_0xfd32('0x3a')][_0xfd32('0x22')]);}_0x5be1dd[_0xfd32('0x5d')]=qs[_0xfd32('0x42')](_0x26e160[_0xfd32('0x3a')][_0xfd32('0x42')]);_0x5be1dd[_0xfd32('0x43')]=qs[_0xfd32('0x3c')](_[_0xfd32('0x44')](_0x26e160[_0xfd32('0x3a')],_0xa90ff4['filters']));_0x5be1dd[_0xfd32('0x43')][_0xfd32('0x5e')]=_0x38a46c['id'];if(_0x26e160[_0xfd32('0x3a')][_0xfd32('0x45')]){_0x5be1dd['where']=_[_0xfd32('0x47')](_0x5be1dd['where'],{'$or':_[_0xfd32('0x33')](_0x5be1dd['attributes'],function(_0x1eefa2){var _0x57f45e={};_0x57f45e[_0x1eefa2]={'$like':'%'+_0x26e160[_0xfd32('0x3a')][_0xfd32('0x45')]+'%'};return _0x57f45e;})});}_0x5be1dd=_[_0xfd32('0x47')]({},_0x5be1dd,_0x26e160['options']);return db[_0xfd32('0x5b')][_0xfd32('0x49')](_0x5be1dd);}})[_0xfd32('0x2a')](function(_0x26ceeb){if(_0x26ceeb){return db[_0xfd32('0x5f')][_0xfd32('0x60')]({'where':{'id':_['map'](_0x26ceeb,'UserId'),'role':_0xfd32('0x61')},'attributes':['id','name',_0xfd32('0x62'),_0xfd32('0x63'),_0xfd32('0x64')]});}})['then'](function(_0xe51542){if(_0xe51542){return{'count':_0xe51542['count'],'rows':_[_0xfd32('0x33')](_0xe51542[_0xfd32('0x4a')],function(_0x5008e7){return{'membername':_0x5008e7[_0xfd32('0x39')],'UserId':_0x5008e7['id'],'queue_name':_0x2ad7fc[_0xfd32('0x39')],'OpenchannelQueueId':_0x2ad7fc['id'],'interface':util[_0xfd32('0x65')]('%s/%s',_0xfd32('0x66'),_0x5008e7[_0xfd32('0x39')]),'penalty':0x0,'paused':_0x5008e7[_0xfd32('0x62')],'createdAt':_0x5008e7[_0xfd32('0x64')],'updatedAt':_0x5008e7[_0xfd32('0x63')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xfd32('0x2a')](respondWithFilteredResult(_0x47e029,_0x5be1dd))['catch'](handleError(_0x47e029,null));};exports[_0xfd32('0x67')]=function(_0x396a3a,_0x485e57,_0x3ce3a9){var _0x2a60be={};var _0x1c7e77={};var _0x3b1717;var _0x3ba068;return db['OpenchannelQueue'][_0xfd32('0x5a')]({'where':{'id':_0x396a3a['params']['id']}})[_0xfd32('0x2a')](handleEntityNotFound(_0x485e57,null))[_0xfd32('0x2a')](function(_0x4ab27c){if(_0x4ab27c){_0x3b1717=_0x4ab27c;_0x1c7e77[_0xfd32('0x3e')]=_[_0xfd32('0x3b')](db['Team'][_0xfd32('0x35')]);_0x1c7e77[_0xfd32('0x3a')]=_[_0xfd32('0x3b')](_0x396a3a[_0xfd32('0x3a')]);_0x1c7e77['filters']=_['intersection'](_0x1c7e77[_0xfd32('0x3e')],_0x1c7e77['query']);_0x2a60be['attributes']=_['intersection'](_0x1c7e77[_0xfd32('0x3e')],qs[_0xfd32('0x3f')](_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x3f')]));_0x2a60be['attributes']=_0x2a60be[_0xfd32('0x40')][_0xfd32('0x41')]?_0x2a60be[_0xfd32('0x40')]:_0x1c7e77[_0xfd32('0x3e')];_0x2a60be['order']=qs['sort'](_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x42')]);_0x2a60be[_0xfd32('0x43')]=qs[_0xfd32('0x3c')](_[_0xfd32('0x44')](_0x396a3a['query'],_0x1c7e77[_0xfd32('0x3c')]));if(_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x45')]){_0x2a60be[_0xfd32('0x43')]=_[_0xfd32('0x47')](_0x2a60be[_0xfd32('0x43')],{'$or':_['map'](_0x2a60be['attributes'],function(_0x47e019){var _0x55185c={};_0x55185c[_0x47e019]={'$like':'%'+_0x396a3a['query'][_0xfd32('0x45')]+'%'};return _0x55185c;})});}_0x2a60be=_[_0xfd32('0x47')]({},_0x2a60be,_0x396a3a[_0xfd32('0x4e')]);return _0x3b1717['getTeams'](_0x2a60be);}})[_0xfd32('0x2a')](function(_0x2f3121){if(_0x2f3121){_0x3ba068=_0x2f3121['length'];if(!_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x68')](_0xfd32('0x5c'))){_0x2a60be[_0xfd32('0x24')]=qs[_0xfd32('0x24')](_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x24')]);_0x2a60be['offset']=qs[_0xfd32('0x22')](_0x396a3a[_0xfd32('0x3a')][_0xfd32('0x22')]);}return _0x3b1717[_0xfd32('0x67')](_0x2a60be);}})[_0xfd32('0x2a')](function(_0x5b9d46){if(_0x5b9d46){return _0x5b9d46?{'count':_0x3ba068,'rows':_0x5b9d46}:null;}})[_0xfd32('0x2a')](respondWithResult(_0x485e57,null))[_0xfd32('0x4b')](handleError(_0x485e57,null));};exports[_0xfd32('0x69')]=function(_0x54e5d0,_0x3766b3,_0x257d93){var _0x5b842f=_0x54e5d0[_0xfd32('0x51')][_0xfd32('0x6a')];return db[_0xfd32('0x6b')][_0xfd32('0x49')]({'where':{'id':_0x5b842f},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id','name','online','voicePause',_0xfd32('0x6c')],'raw':!![]}]})[_0xfd32('0x2a')](function(_0x1ae122){if(_0x1ae122){var _0x5ac017=_[_0xfd32('0x6d')](_0x1ae122,function(_0x732b80){var _0x5a423f=_0x732b80[_0xfd32('0x2c')]({'plain':!![]});return _0x5a423f[_0xfd32('0x6e')];});return db[_0xfd32('0x34')][_0xfd32('0x4f')]({'where':{'id':_0x54e5d0[_0xfd32('0x4d')]['id']}})[_0xfd32('0x2a')](function(_0x201ac4){return db[_0xfd32('0x6f')][_0xfd32('0x70')](function(_0x28b78d){return _0x201ac4[_0xfd32('0x69')](_0x5b842f,{'transaction':_0x28b78d})[_0xfd32('0x2a')](function(){return BPromise[_0xfd32('0x71')](_0x5ac017,function(_0x1a4cf1){return db[_0xfd32('0x5b')][_0xfd32('0x72')]({'where':{'UserId':_0x1a4cf1['id'],'OpenchannelQueueId':_0x54e5d0[_0xfd32('0x4d')]['id']},'transaction':_0x28b78d});});})[_0xfd32('0x2a')](function(){_0x5ac017[_0xfd32('0x73')](function(_0x4e0752){socket['emit']('userOpenchannelQueue:save',{'UserId':_0x4e0752['id'],'OpenchannelQueueId':_0x201ac4['id']});});});});});}})[_0xfd32('0x2a')](respondWithStatusCode(_0x3766b3,null))[_0xfd32('0x4b')](handleError(_0x3766b3,null));};exports['removeTeams']=function(_0x573eb5,_0x2c2414,_0x368360){return db[_0xfd32('0x6b')][_0xfd32('0x49')]({'where':{'id':_0x573eb5[_0xfd32('0x3a')][_0xfd32('0x6a')]},'attributes':['id'],'include':[{'model':db[_0xfd32('0x5f')],'as':_0xfd32('0x6e'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x2c2414,null))[_0xfd32('0x2a')](function(_0x379a5e){var _0x42fc2c=_['map'](_0x379a5e,'id');var _0x1d0e23=[];var _0x139e5f=[];var _0x1ecece=squel[_0xfd32('0x74')]();_0x1ecece[_0xfd32('0x75')](_0xfd32('0x76'))[_0xfd32('0x77')](_0xfd32('0x78'),'tq')[_0xfd32('0x79')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xfd32('0x43')]('OpenchannelQueueId\x20=\x20?',_0x573eb5[_0xfd32('0x4d')]['id']);for(var _0xff4d66=0x0;_0xff4d66<_0x379a5e['length'];_0xff4d66+=0x1){let _0x56c126=_0x379a5e[_0xff4d66];for(var _0xf32e72=0x0;_0xf32e72<_0x56c126['Agents']['length'];_0xf32e72+=0x1){let _0x84b002=_0x56c126['Agents'][_0xf32e72];var _0x24ee48=_0x1ecece['clone']();_0x24ee48[_0xfd32('0x43')](_0xfd32('0x7a'),_0x84b002['id']);_0x139e5f['push'](db[_0xfd32('0x6f')]['query'](_0x24ee48[_0xfd32('0x7b')](),{'type':db[_0xfd32('0x6f')][_0xfd32('0x7c')][_0xfd32('0x7d')]})[_0xfd32('0x2a')](function(_0x5e48a0){if(_0x5e48a0[_0xfd32('0x41')]===0x1){return _0x84b002['id'];}else{var _0x2e2c90=_[_0xfd32('0x7e')](_[_0xfd32('0x33')](_0x5e48a0,_0xfd32('0x7f')),function(_0x18d1d4){return _['includes'](_0x42fc2c,_0x18d1d4);});if(_0x2e2c90){return _0x84b002['id'];}}}));}}return BPromise['all'](_0x139e5f)[_0xfd32('0x2a')](function(_0x3733e1){_0x1d0e23=_(_0x1d0e23)[_0xfd32('0x80')](_0x3733e1)['compact']()[_0xfd32('0x81')]();return db[_0xfd32('0x34')]['find']({'where':{'id':_0x573eb5[_0xfd32('0x4d')]['id']}})[_0xfd32('0x2a')](function(_0x4e9810){return db[_0xfd32('0x6f')][_0xfd32('0x70')](function(_0x3e415d){return _0x4e9810[_0xfd32('0x82')](_0x573eb5[_0xfd32('0x3a')]['ids'],{'transaction':_0x3e415d})[_0xfd32('0x2a')](function(){if(!_[_0xfd32('0x83')](_0x1d0e23)){return _0x4e9810[_0xfd32('0x84')](_0x1d0e23,{'transaction':_0x3e415d});}})[_0xfd32('0x2a')](function(){_0x1d0e23[_0xfd32('0x73')](function(_0x24bf00){socket[_0xfd32('0x85')](_0xfd32('0x86'),{'UserId':_0x24bf00,'OpenchannelQueueId':_0x4e9810['id']});});});});});});})[_0xfd32('0x2a')](respondWithStatusCode(_0x2c2414,null))[_0xfd32('0x4b')](handleError(_0x2c2414,null));};exports['addAgents']=function(_0x42a3f4,_0x5b8315,_0x3e5834){return db[_0xfd32('0x34')][_0xfd32('0x4f')]({'where':{'id':_0x42a3f4[_0xfd32('0x4d')]['id']}})[_0xfd32('0x2a')](handleEntityNotFound(_0x5b8315,null))[_0xfd32('0x2a')](function(_0x544442){if(_0x544442){return _0x544442['addAgents'](_0x42a3f4['body'][_0xfd32('0x6a')],_[_0xfd32('0x87')](_0x42a3f4['body'],['ids','id'])||{})['spread'](function(_0x35f7ec){for(var _0x22a47b=0x0;_0x22a47b<_0x42a3f4[_0xfd32('0x51')][_0xfd32('0x6a')]['length'];_0x22a47b+=0x1){socket[_0xfd32('0x85')](_0xfd32('0x88'),{'UserId':Number(_0x42a3f4['body'][_0xfd32('0x6a')][_0x22a47b]),'OpenchannelQueueId':Number(_0x42a3f4[_0xfd32('0x4d')]['id'])});}return _0x35f7ec;});}})[_0xfd32('0x2a')](respondWithResult(_0x5b8315,null))[_0xfd32('0x4b')](handleError(_0x5b8315,null));};exports[_0xfd32('0x84')]=function(_0x10b289,_0x29e34e,_0x29e45d){return db['OpenchannelQueue'][_0xfd32('0x4f')]({'where':{'id':_0x10b289[_0xfd32('0x4d')]['id']}})['then'](handleEntityNotFound(_0x29e34e,null))['then'](function(_0x3a4f40){if(_0x3a4f40){return _0x3a4f40[_0xfd32('0x84')](_0x10b289[_0xfd32('0x3a')]['ids'])[_0xfd32('0x2a')](function(){if(_['isArray'](_0x10b289['query'][_0xfd32('0x6a')])){for(var _0x297421=0x0;_0x297421<_0x10b289[_0xfd32('0x3a')][_0xfd32('0x6a')]['length'];_0x297421+=0x1){socket[_0xfd32('0x85')]('userOpenchannelQueue:remove',{'UserId':Number(_0x10b289['query'][_0xfd32('0x6a')][_0x297421]),'OpenchannelQueueId':Number(_0x10b289[_0xfd32('0x4d')]['id'])});}}else{socket[_0xfd32('0x85')](_0xfd32('0x86'),{'UserId':Number(_0x10b289[_0xfd32('0x3a')]['ids']),'OpenchannelQueueId':Number(_0x10b289[_0xfd32('0x4d')]['id'])});}});}})[_0xfd32('0x2a')](respondWithStatusCode(_0x29e34e,null))[_0xfd32('0x4b')](handleError(_0x29e34e,null));};exports[_0xfd32('0x89')]=function(_0x2705a1,_0x461428,_0x20304c){var _0x1ca871={};var _0x43b055={};var _0x1d3994;var _0x195db9;return db['OpenchannelQueue'][_0xfd32('0x5a')]({'where':{'id':_0x2705a1['params']['id']}})['then'](handleEntityNotFound(_0x461428,null))[_0xfd32('0x2a')](function(_0x2fcf53){if(_0x2fcf53){_0x1d3994=_0x2fcf53;_0x43b055[_0xfd32('0x3e')]=_[_0xfd32('0x3b')](db['User'][_0xfd32('0x35')]);_0x43b055[_0xfd32('0x3a')]=_[_0xfd32('0x3b')](_0x2705a1[_0xfd32('0x3a')]);_0x43b055['filters']=_['intersection'](_0x43b055['model'],_0x43b055[_0xfd32('0x3a')]);_0x1ca871['attributes']=_[_0xfd32('0x3d')](_0x43b055[_0xfd32('0x3e')],qs[_0xfd32('0x3f')](_0x2705a1['query']['fields']));_0x1ca871[_0xfd32('0x40')]=_0x1ca871[_0xfd32('0x40')][_0xfd32('0x41')]?_0x1ca871[_0xfd32('0x40')]:_0x43b055[_0xfd32('0x3e')];_0x1ca871['order']=qs[_0xfd32('0x42')](_0x2705a1[_0xfd32('0x3a')][_0xfd32('0x42')]);_0x1ca871[_0xfd32('0x43')]=qs[_0xfd32('0x3c')](_[_0xfd32('0x44')](_0x2705a1[_0xfd32('0x3a')],_0x43b055[_0xfd32('0x3c')]));if(_0x2705a1[_0xfd32('0x3a')]['filter']){_0x1ca871[_0xfd32('0x43')]=_['merge'](_0x1ca871[_0xfd32('0x43')],{'$or':_[_0xfd32('0x33')](_0x1ca871[_0xfd32('0x40')],function(_0x1efcf4){var _0x2fb4ac={};_0x2fb4ac[_0x1efcf4]={'$like':'%'+_0x2705a1[_0xfd32('0x3a')]['filter']+'%'};return _0x2fb4ac;})});}_0x1ca871=_['merge']({},_0x1ca871,_0x2705a1['options']);return _0x1d3994[_0xfd32('0x89')](_0x1ca871);}})[_0xfd32('0x2a')](function(_0x49b593){if(_0x49b593){_0x195db9=_0x49b593['length'];if(!_0x2705a1[_0xfd32('0x3a')][_0xfd32('0x68')]('nolimit')){_0x1ca871['limit']=qs[_0xfd32('0x24')](_0x2705a1[_0xfd32('0x3a')]['limit']);_0x1ca871[_0xfd32('0x22')]=qs['offset'](_0x2705a1[_0xfd32('0x3a')][_0xfd32('0x22')]);}return _0x1d3994[_0xfd32('0x89')](_0x1ca871);}})[_0xfd32('0x2a')](function(_0x815f7e){if(_0x815f7e){return _0x815f7e?{'count':_0x195db9,'rows':_0x815f7e}:null;}})['then'](respondWithResult(_0x461428,null))[_0xfd32('0x4b')](handleError(_0x461428,null));};