1543aa8a996b29cee546a7be809e3fc50800f154
[motion2.git] / server / api / chatQueue / chatQueue.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 _0x8385=['role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','findOne','UserChatQueue','hasOwnProperty','order','ChatQueueId','User','findAndCountAll','UserId','agent','updatedAt','format','SIP','chatPause','getTeams','pick','addTeams','ids','Team','Agents','interface','flatMap','sequelize','findOrCreate','forEach','userChatQueue:save','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','union','compact','value','transaction','removeTeams','isEmpty','removeAgents','emit','userChatQueue:remove','addAgents','omit','spread','getAgents','eml-format','fast-json-patch','request-promise','bluebird','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','socket.io-emitter','./chatQueue.socket','register','http','request','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','status','end','json','offset','undefined','count','limit','set','Content-Range','save','update','then','get','ChatQueues','UserProfileResource','destroy','sendStatus','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','filter','merge','include','findAll','rows','show','params','includeAll','options','find','create','user'];(function(_0x4b4100,_0x27de48){var _0x230560=function(_0x419d90){while(--_0x419d90){_0x4b4100['push'](_0x4b4100['shift']());}};_0x230560(++_0x27de48);}(_0x8385,0xd0));var _0x5838=function(_0x19c8e1,_0x66e0eb){_0x19c8e1=_0x19c8e1-0x0;var _0x1554af=_0x8385[_0x19c8e1];return _0x1554af;};'use strict';var emlformat=require(_0x5838('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x5838('0x1'));var rp=require(_0x5838('0x2'));var moment=require('moment');var BPromise=require(_0x5838('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5838('0x4'));var sox=require('sox');var csv=require(_0x5838('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5838('0x6'));var _=require(_0x5838('0x7'));var squel=require(_0x5838('0x8'));var crypto=require(_0x5838('0x9'));var jsforce=require(_0x5838('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x5838('0x5'));var querystring=require(_0x5838('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x5838('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x5838('0xd'));var hardwareService=require(_0x5838('0xe'));var logger=require(_0x5838('0xf'))(_0x5838('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5838('0x11'));var db=require(_0x5838('0x12'))['db'];config['redis']=_[_0x5838('0x13')](config[_0x5838('0x14')],{'host':'localhost','port':0x18eb});var socket=require(_0x5838('0x15'))(new Redis(config[_0x5838('0x14')]));require(_0x5838('0x16'))[_0x5838('0x17')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0x5838('0x18')]({'port':0x232a});function respondWithRpcPromise(_0xce696c,_0x3a4599,_0x269e1,_0x216983){return new BPromise(function(_0x4a6f96,_0x337b81){var _0x36d264=_0x216983||client;return _0x36d264[_0x5838('0x19')](_0xce696c,_0x269e1)['then'](function(_0x463a06){logger['info'](_0x5838('0x1a'),_0x3a4599,_0x5838('0x1b'));logger[_0x5838('0x1c')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x3a4599,_0x5838('0x1b'),JSON[_0x5838('0x1d')](_0x463a06));if(_0x463a06[_0x5838('0x1e')]){if(_0x463a06['error'][_0x5838('0x1f')]===0x1f4){logger['error'](_0x5838('0x1a'),_0x3a4599,_0x463a06[_0x5838('0x1e')][_0x5838('0x20')]);return _0x337b81(_0x463a06[_0x5838('0x1e')][_0x5838('0x20')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x3a4599,_0x463a06['error'][_0x5838('0x20')]);return _0x4a6f96(_0x463a06[_0x5838('0x1e')]['message']);}else{logger[_0x5838('0x21')]('ChatQueue,\x20%s,\x20%s',_0x3a4599,_0x5838('0x1b'));_0x4a6f96(_0x463a06[_0x5838('0x22')][_0x5838('0x20')]);}})[_0x5838('0x23')](function(_0x186f03){logger[_0x5838('0x1e')](_0x5838('0x1a'),_0x3a4599,_0x186f03);_0x337b81(_0x186f03);});});}function respondWithStatusCode(_0x59c8db,_0xa23366){_0xa23366=_0xa23366||0xcc;return function(_0x2cf095){if(_0x2cf095){return _0x59c8db['sendStatus'](_0xa23366);}return _0x59c8db[_0x5838('0x24')](_0xa23366)[_0x5838('0x25')]();};}function respondWithResult(_0x57bcf4,_0x2c81c9){_0x2c81c9=_0x2c81c9||0xc8;return function(_0x1e3e89){if(_0x1e3e89){return _0x57bcf4[_0x5838('0x24')](_0x2c81c9)[_0x5838('0x26')](_0x1e3e89);}};}function respondWithFilteredResult(_0x1baf72,_0x13663f){return function(_0x51e6c0){if(_0x51e6c0){var _0x5b637=typeof _0x13663f[_0x5838('0x27')]===_0x5838('0x28')&&typeof _0x13663f['limit']===_0x5838('0x28');var _0x262e69=_0x51e6c0[_0x5838('0x29')];var _0x2a8f2a=_0x5b637?0x0:_0x13663f['offset'];var _0x3be6aa=_0x5b637?_0x51e6c0[_0x5838('0x29')]:_0x13663f[_0x5838('0x27')]+_0x13663f[_0x5838('0x2a')];var _0x5539e7;if(_0x3be6aa>=_0x262e69){_0x3be6aa=_0x262e69;_0x5539e7=0xc8;}else{_0x5539e7=0xce;}_0x1baf72[_0x5838('0x24')](_0x5539e7);return _0x1baf72[_0x5838('0x2b')](_0x5838('0x2c'),_0x2a8f2a+'-'+_0x3be6aa+'/'+_0x262e69)['json'](_0x51e6c0);}return null;};}function patchUpdates(_0x2d33b0){return function(_0x1d9f98){try{jsonpatch['apply'](_0x1d9f98,_0x2d33b0,!![]);}catch(_0x20cc69){return BPromise['reject'](_0x20cc69);}return _0x1d9f98[_0x5838('0x2d')]();};}function saveUpdates(_0x561251,_0x580a1c){return function(_0x4f1f3c){if(_0x4f1f3c){return _0x4f1f3c[_0x5838('0x2e')](_0x561251)['then'](function(_0x2f2380){return _0x2f2380;});}return null;};}function removeEntity(_0x4be9c1,_0x5abf5d){return function(_0x2a7752){if(_0x2a7752){return _0x2a7752['destroy']()[_0x5838('0x2f')](function(){var _0x55602b=_0x2a7752[_0x5838('0x30')]({'plain':!![]});var _0x599bb5=_0x5838('0x31');return db[_0x5838('0x32')][_0x5838('0x33')]({'where':{'type':_0x599bb5,'resourceId':_0x55602b['id']}})[_0x5838('0x2f')](function(){return _0x2a7752;});})[_0x5838('0x2f')](function(){_0x4be9c1[_0x5838('0x24')](0xcc)[_0x5838('0x25')]();});}};}function handleEntityNotFound(_0x555c6a,_0x5e8859){return function(_0x3646c8){if(!_0x3646c8){_0x555c6a[_0x5838('0x34')](0x194);}return _0x3646c8;};}function handleError(_0x558fdd,_0x1ecdfd){_0x1ecdfd=_0x1ecdfd||0x1f4;return function(_0x4d32a3){logger[_0x5838('0x1e')](_0x4d32a3['stack']);if(_0x4d32a3['name']){delete _0x4d32a3[_0x5838('0x35')];}_0x558fdd[_0x5838('0x24')](_0x1ecdfd)[_0x5838('0x36')](_0x4d32a3);};}exports[_0x5838('0x37')]=function(_0x4fe70f,_0x384a27){var _0x367273={},_0x4afb9f={},_0x3d79a4={'count':0x0,'rows':[]};var _0xc4ad8e=_[_0x5838('0x38')](db[_0x5838('0x39')][_0x5838('0x3a')],function(_0x36c4fa){return{'name':_0x36c4fa[_0x5838('0x3b')],'type':_0x36c4fa[_0x5838('0x3c')]['key']};});_0x4afb9f[_0x5838('0x3d')]=_['map'](_0xc4ad8e,_0x5838('0x35'));_0x4afb9f[_0x5838('0x3e')]=_[_0x5838('0x3f')](_0x4fe70f[_0x5838('0x3e')]);_0x4afb9f[_0x5838('0x40')]=_[_0x5838('0x41')](_0x4afb9f['model'],_0x4afb9f['query']);_0x367273[_0x5838('0x42')]=_[_0x5838('0x41')](_0x4afb9f[_0x5838('0x3d')],qs[_0x5838('0x43')](_0x4fe70f[_0x5838('0x3e')][_0x5838('0x43')]));_0x367273[_0x5838('0x42')]=_0x367273[_0x5838('0x42')][_0x5838('0x44')]?_0x367273[_0x5838('0x42')]:_0x4afb9f['model'];if(!_0x4fe70f[_0x5838('0x3e')]['hasOwnProperty'](_0x5838('0x45'))){_0x367273[_0x5838('0x2a')]=qs[_0x5838('0x2a')](_0x4fe70f[_0x5838('0x3e')][_0x5838('0x2a')]);_0x367273[_0x5838('0x27')]=qs[_0x5838('0x27')](_0x4fe70f[_0x5838('0x3e')]['offset']);}_0x367273['order']=qs[_0x5838('0x46')](_0x4fe70f[_0x5838('0x3e')][_0x5838('0x46')]);_0x367273[_0x5838('0x47')]=qs['filters'](_['pick'](_0x4fe70f[_0x5838('0x3e')],_0x4afb9f[_0x5838('0x40')]),_0xc4ad8e);if(_0x4fe70f[_0x5838('0x3e')][_0x5838('0x48')]){_0x367273[_0x5838('0x47')]=_[_0x5838('0x49')](_0x367273[_0x5838('0x47')],{'$or':_['map'](_0xc4ad8e,function(_0x26d374){if(_0x26d374[_0x5838('0x3c')]!=='VIRTUAL'){var _0x296ee4={};_0x296ee4[_0x26d374[_0x5838('0x35')]]={'$like':'%'+_0x4fe70f['query']['filter']+'%'};return _0x296ee4;}})});}_0x367273=_[_0x5838('0x49')]({},_0x367273,_0x4fe70f['options']);var _0x557714={'where':_0x367273[_0x5838('0x47')]};return db[_0x5838('0x39')][_0x5838('0x29')](_0x557714)[_0x5838('0x2f')](function(_0x122380){_0x3d79a4[_0x5838('0x29')]=_0x122380;if(_0x4fe70f[_0x5838('0x3e')]['includeAll']){_0x367273[_0x5838('0x4a')]=[{'all':!![]}];}return db['ChatQueue'][_0x5838('0x4b')](_0x367273);})[_0x5838('0x2f')](function(_0x5e9158){_0x3d79a4[_0x5838('0x4c')]=_0x5e9158;return _0x3d79a4;})['then'](respondWithFilteredResult(_0x384a27,_0x367273))[_0x5838('0x23')](handleError(_0x384a27,null));};exports[_0x5838('0x4d')]=function(_0x56c50c,_0x5ae353){var _0x1cc573={'raw':!![],'where':{'id':_0x56c50c[_0x5838('0x4e')]['id']}},_0x153b72={};_0x153b72[_0x5838('0x3d')]=_[_0x5838('0x3f')](db[_0x5838('0x39')]['rawAttributes']);_0x153b72[_0x5838('0x3e')]=_[_0x5838('0x3f')](_0x56c50c[_0x5838('0x3e')]);_0x153b72['filters']=_[_0x5838('0x41')](_0x153b72[_0x5838('0x3d')],_0x153b72['query']);_0x1cc573[_0x5838('0x42')]=_['intersection'](_0x153b72[_0x5838('0x3d')],qs['fields'](_0x56c50c[_0x5838('0x3e')][_0x5838('0x43')]));_0x1cc573[_0x5838('0x42')]=_0x1cc573[_0x5838('0x42')][_0x5838('0x44')]?_0x1cc573[_0x5838('0x42')]:_0x153b72[_0x5838('0x3d')];if(_0x56c50c[_0x5838('0x3e')][_0x5838('0x4f')]){_0x1cc573[_0x5838('0x4a')]=[{'all':!![]}];}_0x1cc573=_['merge']({},_0x1cc573,_0x56c50c[_0x5838('0x50')]);return db[_0x5838('0x39')][_0x5838('0x51')](_0x1cc573)[_0x5838('0x2f')](handleEntityNotFound(_0x5ae353,null))[_0x5838('0x2f')](respondWithResult(_0x5ae353,null))[_0x5838('0x23')](handleError(_0x5ae353,null));};exports[_0x5838('0x52')]=function(_0x384ed4,_0x499efe){return db['ChatQueue'][_0x5838('0x52')](_0x384ed4['body'],{})[_0x5838('0x2f')](function(_0x2c7c85){var _0x31672d=_0x384ed4[_0x5838('0x53')]['get']({'plain':!![]});if(!_0x31672d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x31672d[_0x5838('0x54')]===_0x5838('0x53')){var _0x3280b5=_0x2c7c85[_0x5838('0x30')]({'plain':!![]});var _0x2d5db3=_0x5838('0x31');return db[_0x5838('0x55')][_0x5838('0x51')]({'where':{'name':_0x2d5db3,'userProfileId':_0x31672d[_0x5838('0x56')]},'raw':!![]})[_0x5838('0x2f')](function(_0x23b303){if(_0x23b303&&_0x23b303[_0x5838('0x57')]===0x0){return db[_0x5838('0x32')][_0x5838('0x52')]({'name':_0x3280b5['name'],'resourceId':_0x3280b5['id'],'type':_0x23b303[_0x5838('0x35')],'sectionId':_0x23b303['id']},{})[_0x5838('0x2f')](function(){return _0x2c7c85;});}else{return _0x2c7c85;}})[_0x5838('0x23')](function(_0x3ef864){logger[_0x5838('0x1e')](_0x5838('0x58'),_0x3ef864);throw _0x3ef864;});}return _0x2c7c85;})[_0x5838('0x2f')](respondWithResult(_0x499efe,0xc9))[_0x5838('0x23')](handleError(_0x499efe,null));};exports[_0x5838('0x2e')]=function(_0x39a66a,_0x4ebaa7){if(_0x39a66a[_0x5838('0x59')]['id']){delete _0x39a66a[_0x5838('0x59')]['id'];}return db['ChatQueue'][_0x5838('0x51')]({'where':{'id':_0x39a66a[_0x5838('0x4e')]['id']}})[_0x5838('0x2f')](handleEntityNotFound(_0x4ebaa7,null))[_0x5838('0x2f')](saveUpdates(_0x39a66a[_0x5838('0x59')],null))[_0x5838('0x2f')](respondWithResult(_0x4ebaa7,null))[_0x5838('0x23')](handleError(_0x4ebaa7,null));};exports[_0x5838('0x33')]=function(_0x5845d6,_0x137536){return db[_0x5838('0x39')][_0x5838('0x51')]({'where':{'id':_0x5845d6['params']['id']}})['then'](handleEntityNotFound(_0x137536,null))[_0x5838('0x2f')](removeEntity(_0x137536,null))[_0x5838('0x23')](handleError(_0x137536,null));};exports[_0x5838('0x5a')]=function(_0x51f722,_0x389c3a){return db[_0x5838('0x39')][_0x5838('0x5a')]()['then'](respondWithResult(_0x389c3a,null))[_0x5838('0x23')](handleError(_0x389c3a,null));};exports['getMembers']=function(_0xc09417,_0x29e867,_0x183691){var _0x355a5f={'raw':!![],'where':{}},_0x2ee6db={},_0x2a6484;return db[_0x5838('0x39')][_0x5838('0x5b')]({'where':{'id':_0xc09417[_0x5838('0x4e')]['id']}})[_0x5838('0x2f')](handleEntityNotFound(_0x29e867,null))[_0x5838('0x2f')](function(_0x21a907){if(_0x21a907){_0x2a6484=_0x21a907[_0x5838('0x30')]({'plain':!![]});_0x2ee6db['model']=_['keys'](db[_0x5838('0x5c')]['rawAttributes']);_0x2ee6db['query']=_[_0x5838('0x3f')](_0xc09417[_0x5838('0x3e')]);_0x2ee6db[_0x5838('0x40')]=_['intersection'](_0x2ee6db[_0x5838('0x3d')],_0x2ee6db[_0x5838('0x3e')]);_0x355a5f['attributes']=_[_0x5838('0x41')](_0x2ee6db[_0x5838('0x3d')],qs[_0x5838('0x43')](_0xc09417[_0x5838('0x3e')][_0x5838('0x43')]));_0x355a5f[_0x5838('0x42')]=_0x355a5f['attributes'][_0x5838('0x44')]?_0x355a5f[_0x5838('0x42')]:_0x2ee6db['model'];if(!_0xc09417[_0x5838('0x3e')][_0x5838('0x5d')](_0x5838('0x45'))){_0x355a5f[_0x5838('0x2a')]=qs[_0x5838('0x2a')](_0xc09417[_0x5838('0x3e')]['limit']);_0x355a5f[_0x5838('0x27')]=qs[_0x5838('0x27')](_0xc09417[_0x5838('0x3e')][_0x5838('0x27')]);}_0x355a5f[_0x5838('0x5e')]=qs[_0x5838('0x46')](_0xc09417[_0x5838('0x3e')]['sort']);_0x355a5f[_0x5838('0x47')]=qs[_0x5838('0x40')](_['pick'](_0xc09417['query'],_0x2ee6db[_0x5838('0x40')]));_0x355a5f[_0x5838('0x47')][_0x5838('0x5f')]=_0x21a907['id'];if(_0xc09417[_0x5838('0x3e')][_0x5838('0x48')]){_0x355a5f['where']=_['merge'](_0x355a5f[_0x5838('0x47')],{'$or':_[_0x5838('0x38')](_0x355a5f[_0x5838('0x42')],function(_0xb68cab){var _0xe6d435={};_0xe6d435[_0xb68cab]={'$like':'%'+_0xc09417[_0x5838('0x3e')][_0x5838('0x48')]+'%'};return _0xe6d435;})});}_0x355a5f=_['merge']({},_0x355a5f,_0xc09417['options']);return db[_0x5838('0x5c')][_0x5838('0x4b')](_0x355a5f);}})[_0x5838('0x2f')](function(_0x3076c7){if(_0x3076c7){return db[_0x5838('0x60')][_0x5838('0x61')]({'where':{'id':_[_0x5838('0x38')](_0x3076c7,_0x5838('0x62')),'role':_0x5838('0x63')},'attributes':['id',_0x5838('0x35'),'chatPause',_0x5838('0x64'),'createdAt']});}})[_0x5838('0x2f')](function(_0x5945b4){if(_0x5945b4){return{'count':_0x5945b4[_0x5838('0x29')],'rows':_['map'](_0x5945b4['rows'],function(_0x1a1937){return{'membername':_0x1a1937[_0x5838('0x35')],'UserId':_0x1a1937['id'],'queue_name':_0x2a6484[_0x5838('0x35')],'ChatQueueId':_0x2a6484['id'],'interface':util[_0x5838('0x65')]('%s/%s',_0x5838('0x66'),_0x1a1937[_0x5838('0x35')]),'penalty':0x0,'paused':_0x1a1937[_0x5838('0x67')],'createdAt':_0x1a1937['createdAt'],'updatedAt':_0x1a1937['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x5838('0x2f')](respondWithFilteredResult(_0x29e867,_0x355a5f))[_0x5838('0x23')](handleError(_0x29e867,null));};exports[_0x5838('0x68')]=function(_0x4d7f96,_0x5a32f0,_0x415642){var _0x3ee18b={};var _0xea7cf3={};var _0x59b39a;var _0x5aede7;return db[_0x5838('0x39')][_0x5838('0x5b')]({'where':{'id':_0x4d7f96[_0x5838('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5a32f0,null))[_0x5838('0x2f')](function(_0xfffa1e){if(_0xfffa1e){_0x59b39a=_0xfffa1e;_0xea7cf3[_0x5838('0x3d')]=_[_0x5838('0x3f')](db['Team'][_0x5838('0x3a')]);_0xea7cf3[_0x5838('0x3e')]=_[_0x5838('0x3f')](_0x4d7f96[_0x5838('0x3e')]);_0xea7cf3[_0x5838('0x40')]=_['intersection'](_0xea7cf3['model'],_0xea7cf3[_0x5838('0x3e')]);_0x3ee18b[_0x5838('0x42')]=_[_0x5838('0x41')](_0xea7cf3[_0x5838('0x3d')],qs[_0x5838('0x43')](_0x4d7f96[_0x5838('0x3e')][_0x5838('0x43')]));_0x3ee18b[_0x5838('0x42')]=_0x3ee18b[_0x5838('0x42')][_0x5838('0x44')]?_0x3ee18b[_0x5838('0x42')]:_0xea7cf3[_0x5838('0x3d')];_0x3ee18b[_0x5838('0x5e')]=qs[_0x5838('0x46')](_0x4d7f96[_0x5838('0x3e')][_0x5838('0x46')]);_0x3ee18b[_0x5838('0x47')]=qs[_0x5838('0x40')](_[_0x5838('0x69')](_0x4d7f96[_0x5838('0x3e')],_0xea7cf3[_0x5838('0x40')]));if(_0x4d7f96[_0x5838('0x3e')][_0x5838('0x48')]){_0x3ee18b[_0x5838('0x47')]=_[_0x5838('0x49')](_0x3ee18b[_0x5838('0x47')],{'$or':_[_0x5838('0x38')](_0x3ee18b[_0x5838('0x42')],function(_0x20d4f9){var _0x259b75={};_0x259b75[_0x20d4f9]={'$like':'%'+_0x4d7f96[_0x5838('0x3e')]['filter']+'%'};return _0x259b75;})});}_0x3ee18b=_[_0x5838('0x49')]({},_0x3ee18b,_0x4d7f96[_0x5838('0x50')]);return _0x59b39a[_0x5838('0x68')](_0x3ee18b);}})[_0x5838('0x2f')](function(_0x265096){if(_0x265096){_0x5aede7=_0x265096[_0x5838('0x44')];if(!_0x4d7f96[_0x5838('0x3e')][_0x5838('0x5d')](_0x5838('0x45'))){_0x3ee18b['limit']=qs['limit'](_0x4d7f96[_0x5838('0x3e')]['limit']);_0x3ee18b[_0x5838('0x27')]=qs[_0x5838('0x27')](_0x4d7f96[_0x5838('0x3e')][_0x5838('0x27')]);}return _0x59b39a[_0x5838('0x68')](_0x3ee18b);}})['then'](function(_0x48c8a2){if(_0x48c8a2){return _0x48c8a2?{'count':_0x5aede7,'rows':_0x48c8a2}:null;}})['then'](respondWithResult(_0x5a32f0,null))[_0x5838('0x23')](handleError(_0x5a32f0,null));};exports[_0x5838('0x6a')]=function(_0x3494a8,_0x5ba39a,_0x16116c){var _0x35c81e=_0x3494a8[_0x5838('0x59')][_0x5838('0x6b')];return db[_0x5838('0x6c')][_0x5838('0x4b')]({'where':{'id':_0x35c81e},'attributes':['id'],'include':[{'model':db['User'],'as':_0x5838('0x6d'),'attributes':['id',_0x5838('0x35'),'online','voicePause',_0x5838('0x6e')],'raw':!![]}]})['then'](function(_0x242bef){if(_0x242bef){var _0x5d63cf=_[_0x5838('0x6f')](_0x242bef,function(_0x4e1ab4){var _0x5c9147=_0x4e1ab4['get']({'plain':!![]});return _0x5c9147[_0x5838('0x6d')];});return db[_0x5838('0x39')][_0x5838('0x51')]({'where':{'id':_0x3494a8[_0x5838('0x4e')]['id']}})[_0x5838('0x2f')](function(_0x554303){return db[_0x5838('0x70')]['transaction'](function(_0x5994c7){return _0x554303[_0x5838('0x6a')](_0x35c81e,{'transaction':_0x5994c7})['then'](function(){return BPromise['each'](_0x5d63cf,function(_0x257c1e){return db[_0x5838('0x5c')][_0x5838('0x71')]({'where':{'UserId':_0x257c1e['id'],'ChatQueueId':_0x3494a8[_0x5838('0x4e')]['id']},'transaction':_0x5994c7});});})[_0x5838('0x2f')](function(){_0x5d63cf[_0x5838('0x72')](function(_0x45fd02){socket['emit'](_0x5838('0x73'),{'UserId':_0x45fd02['id'],'ChatQueueId':_0x554303['id']});});});});});}})['then'](respondWithStatusCode(_0x5ba39a,null))[_0x5838('0x23')](handleError(_0x5ba39a,null));};exports['removeTeams']=function(_0x28d2de,_0x1d9845,_0x2ee2db){return db[_0x5838('0x6c')][_0x5838('0x4b')]({'where':{'id':_0x28d2de['query'][_0x5838('0x6b')]},'attributes':['id'],'include':[{'model':db[_0x5838('0x60')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x5838('0x2f')](handleEntityNotFound(_0x1d9845,null))['then'](function(_0x2d81e4){var _0x475957=_[_0x5838('0x38')](_0x2d81e4,'id');var _0x486b4d=[];var _0x37f0eb=[];var _0x2a1df9=squel[_0x5838('0x74')]();_0x2a1df9[_0x5838('0x75')](_0x5838('0x76'))[_0x5838('0x77')](_0x5838('0x78'),'tq')[_0x5838('0x79')](_0x5838('0x7a'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x5838('0x47')](_0x5838('0x7b'),_0x28d2de[_0x5838('0x4e')]['id']);for(var _0x113a74=0x0;_0x113a74<_0x2d81e4[_0x5838('0x44')];_0x113a74+=0x1){let _0x1c0608=_0x2d81e4[_0x113a74];for(var _0x361255=0x0;_0x361255<_0x1c0608[_0x5838('0x6d')][_0x5838('0x44')];_0x361255+=0x1){let _0x16d7c3=_0x1c0608[_0x5838('0x6d')][_0x361255];var _0x56ea54=_0x2a1df9[_0x5838('0x7c')]();_0x56ea54[_0x5838('0x47')](_0x5838('0x7d'),_0x16d7c3['id']);_0x37f0eb[_0x5838('0x7e')](db['sequelize'][_0x5838('0x3e')](_0x56ea54[_0x5838('0x7f')](),{'type':db[_0x5838('0x70')][_0x5838('0x80')][_0x5838('0x81')]})[_0x5838('0x2f')](function(_0x440419){if(_0x440419[_0x5838('0x44')]===0x1){return _0x16d7c3['id'];}else{var _0x566d36=_[_0x5838('0x82')](_[_0x5838('0x38')](_0x440419,_0x5838('0x83')),function(_0x39cc48){return _[_0x5838('0x84')](_0x475957,_0x39cc48);});if(_0x566d36){return _0x16d7c3['id'];}}}));}}return BPromise['all'](_0x37f0eb)[_0x5838('0x2f')](function(_0x136e5f){_0x486b4d=_(_0x486b4d)[_0x5838('0x85')](_0x136e5f)[_0x5838('0x86')]()[_0x5838('0x87')]();return db[_0x5838('0x39')][_0x5838('0x51')]({'where':{'id':_0x28d2de['params']['id']}})[_0x5838('0x2f')](function(_0x44caad){return db[_0x5838('0x70')][_0x5838('0x88')](function(_0x23f9c4){return _0x44caad[_0x5838('0x89')](_0x28d2de['query']['ids'],{'transaction':_0x23f9c4})[_0x5838('0x2f')](function(){if(!_[_0x5838('0x8a')](_0x486b4d)){return _0x44caad[_0x5838('0x8b')](_0x486b4d,{'transaction':_0x23f9c4});}})[_0x5838('0x2f')](function(){_0x486b4d['forEach'](function(_0x544a67){socket[_0x5838('0x8c')](_0x5838('0x8d'),{'UserId':_0x544a67,'ChatQueueId':_0x44caad['id']});});});});});});})[_0x5838('0x2f')](respondWithStatusCode(_0x1d9845,null))[_0x5838('0x23')](handleError(_0x1d9845,null));};exports[_0x5838('0x8e')]=function(_0x358373,_0x3334df,_0x4d59ec){return db['ChatQueue'][_0x5838('0x51')]({'where':{'id':_0x358373[_0x5838('0x4e')]['id']}})[_0x5838('0x2f')](handleEntityNotFound(_0x3334df,null))['then'](function(_0x5ac99b){if(_0x5ac99b){return _0x5ac99b[_0x5838('0x8e')](_0x358373[_0x5838('0x59')][_0x5838('0x6b')],_[_0x5838('0x8f')](_0x358373['body'],[_0x5838('0x6b'),'id'])||{})[_0x5838('0x90')](function(_0x38e0c1){for(var _0x4238dc=0x0;_0x4238dc<_0x358373[_0x5838('0x59')][_0x5838('0x6b')][_0x5838('0x44')];_0x4238dc+=0x1){socket[_0x5838('0x8c')]('userChatQueue:save',{'UserId':Number(_0x358373[_0x5838('0x59')][_0x5838('0x6b')][_0x4238dc]),'ChatQueueId':Number(_0x358373[_0x5838('0x4e')]['id'])});}return _0x38e0c1;});}})[_0x5838('0x2f')](respondWithResult(_0x3334df,null))[_0x5838('0x23')](handleError(_0x3334df,null));};exports['removeAgents']=function(_0x443222,_0x6fdf84,_0x1fc2dc){return db[_0x5838('0x39')][_0x5838('0x51')]({'where':{'id':_0x443222[_0x5838('0x4e')]['id']}})[_0x5838('0x2f')](handleEntityNotFound(_0x6fdf84,null))[_0x5838('0x2f')](function(_0x1897e2){if(_0x1897e2){return _0x1897e2['removeAgents'](_0x443222[_0x5838('0x3e')]['ids'])[_0x5838('0x2f')](function(){if(_['isArray'](_0x443222[_0x5838('0x3e')]['ids'])){for(var _0x4f9c50=0x0;_0x4f9c50<_0x443222[_0x5838('0x3e')][_0x5838('0x6b')][_0x5838('0x44')];_0x4f9c50+=0x1){socket['emit']('userChatQueue:remove',{'UserId':Number(_0x443222['query']['ids'][_0x4f9c50]),'ChatQueueId':Number(_0x443222[_0x5838('0x4e')]['id'])});}}else{socket[_0x5838('0x8c')](_0x5838('0x8d'),{'UserId':Number(_0x443222['query'][_0x5838('0x6b')]),'ChatQueueId':Number(_0x443222[_0x5838('0x4e')]['id'])});}});}})[_0x5838('0x2f')](respondWithStatusCode(_0x6fdf84,null))[_0x5838('0x23')](handleError(_0x6fdf84,null));};exports[_0x5838('0x91')]=function(_0x3ec1bf,_0x945388,_0x3bfe7c){var _0x2c0b4d={};var _0x37ad96={};var _0x461467;var _0x11415a;return db['ChatQueue'][_0x5838('0x5b')]({'where':{'id':_0x3ec1bf[_0x5838('0x4e')]['id']}})['then'](handleEntityNotFound(_0x945388,null))[_0x5838('0x2f')](function(_0x210b6f){if(_0x210b6f){_0x461467=_0x210b6f;_0x37ad96['model']=_[_0x5838('0x3f')](db[_0x5838('0x60')][_0x5838('0x3a')]);_0x37ad96[_0x5838('0x3e')]=_[_0x5838('0x3f')](_0x3ec1bf['query']);_0x37ad96[_0x5838('0x40')]=_[_0x5838('0x41')](_0x37ad96['model'],_0x37ad96['query']);_0x2c0b4d[_0x5838('0x42')]=_[_0x5838('0x41')](_0x37ad96['model'],qs['fields'](_0x3ec1bf[_0x5838('0x3e')]['fields']));_0x2c0b4d[_0x5838('0x42')]=_0x2c0b4d[_0x5838('0x42')]['length']?_0x2c0b4d[_0x5838('0x42')]:_0x37ad96[_0x5838('0x3d')];_0x2c0b4d['order']=qs[_0x5838('0x46')](_0x3ec1bf[_0x5838('0x3e')][_0x5838('0x46')]);_0x2c0b4d[_0x5838('0x47')]=qs[_0x5838('0x40')](_[_0x5838('0x69')](_0x3ec1bf[_0x5838('0x3e')],_0x37ad96[_0x5838('0x40')]));if(_0x3ec1bf[_0x5838('0x3e')][_0x5838('0x48')]){_0x2c0b4d[_0x5838('0x47')]=_['merge'](_0x2c0b4d[_0x5838('0x47')],{'$or':_[_0x5838('0x38')](_0x2c0b4d[_0x5838('0x42')],function(_0x138a99){var _0x2f9dab={};_0x2f9dab[_0x138a99]={'$like':'%'+_0x3ec1bf[_0x5838('0x3e')][_0x5838('0x48')]+'%'};return _0x2f9dab;})});}_0x2c0b4d=_['merge']({},_0x2c0b4d,_0x3ec1bf[_0x5838('0x50')]);return _0x461467[_0x5838('0x91')](_0x2c0b4d);}})[_0x5838('0x2f')](function(_0x2886e9){if(_0x2886e9){_0x11415a=_0x2886e9['length'];if(!_0x3ec1bf[_0x5838('0x3e')][_0x5838('0x5d')]('nolimit')){_0x2c0b4d[_0x5838('0x2a')]=qs[_0x5838('0x2a')](_0x3ec1bf[_0x5838('0x3e')][_0x5838('0x2a')]);_0x2c0b4d[_0x5838('0x27')]=qs[_0x5838('0x27')](_0x3ec1bf[_0x5838('0x3e')]['offset']);}return _0x461467['getAgents'](_0x2c0b4d);}})[_0x5838('0x2f')](function(_0x4c9bb3){if(_0x4c9bb3){return _0x4c9bb3?{'count':_0x11415a,'rows':_0x4c9bb3}:null;}})['then'](respondWithResult(_0x945388,null))[_0x5838('0x23')](handleError(_0x945388,null));};