Built motion from commit 47436d59.|2.6.7
[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 _0x8ce7=['squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatQueue.socket','register','jayson/promise','client','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','destroy','ChatQueues','UserProfileResource','sendStatus','stack','name','index','map','fieldName','type','key','keys','query','filters','intersection','attributes','fields','length','model','nolimit','order','sort','where','filter','merge','options','ChatQueue','includeAll','findAll','rows','show','params','rawAttributes','include','find','create','body','user','get','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','findOne','UserChatQueue','hasOwnProperty','pick','ChatQueueId','User','findAndCountAll','UserId','agent','updatedAt','format','chatPause','createdAt','Team','getTeams','addTeams','ids','Agents','online','voicePause','interface','sequelize','transaction','findOrCreate','emit','select','field','tq.TeamId','from','team_has_chat_queues','join','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','TeamId','includes','union','compact','removeTeams','isEmpty','forEach','userChatQueue:remove','addAgents','omit','spread','userChatQueue:save','removeAgents','isArray','getAgents','eml-format','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x1bad20,_0x3b3304){var _0x46c7ec=function(_0x14b354){while(--_0x14b354){_0x1bad20['push'](_0x1bad20['shift']());}};_0x46c7ec(++_0x3b3304);}(_0x8ce7,0x8b));var _0x78ce=function(_0x22ce4e,_0x2a525f){_0x22ce4e=_0x22ce4e-0x0;var _0x23c82d=_0x8ce7[_0x22ce4e];return _0x23c82d;};'use strict';var emlformat=require(_0x78ce('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x78ce('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x78ce('0x2'));var moment=require(_0x78ce('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x78ce('0x4'));var util=require('util');var path=require(_0x78ce('0x5'));var sox=require(_0x78ce('0x6'));var csv=require(_0x78ce('0x7'));var ejs=require(_0x78ce('0x8'));var fs=require('fs');var fs_extra=require(_0x78ce('0x9'));var _=require(_0x78ce('0xa'));var squel=require(_0x78ce('0xb'));var crypto=require(_0x78ce('0xc'));var jsforce=require(_0x78ce('0xd'));var deskjs=require(_0x78ce('0xe'));var toCsv=require(_0x78ce('0x7'));var querystring=require(_0x78ce('0xf'));var Papa=require(_0x78ce('0x10'));var Redis=require(_0x78ce('0x11'));var authService=require(_0x78ce('0x12'));var qs=require(_0x78ce('0x13'));var as=require(_0x78ce('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x78ce('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x78ce('0x16'));var db=require(_0x78ce('0x17'))['db'];config[_0x78ce('0x18')]=_[_0x78ce('0x19')](config['redis'],{'host':_0x78ce('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x78ce('0x18')]));require(_0x78ce('0x1b'))[_0x78ce('0x1c')](socket);var jayson=require(_0x78ce('0x1d'));var client=jayson[_0x78ce('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x398406,_0xe416a9,_0x58dc5d,_0x92d482){return new BPromise(function(_0x508ae6,_0x39d367){var _0x544880=_0x92d482||client;return _0x544880[_0x78ce('0x1f')](_0x398406,_0x58dc5d)[_0x78ce('0x20')](function(_0x2e57c8){logger[_0x78ce('0x21')](_0x78ce('0x22'),_0xe416a9,_0x78ce('0x23'));logger[_0x78ce('0x24')](_0x78ce('0x25'),_0xe416a9,_0x78ce('0x23'),JSON[_0x78ce('0x26')](_0x2e57c8));if(_0x2e57c8[_0x78ce('0x27')]){if(_0x2e57c8[_0x78ce('0x27')][_0x78ce('0x28')]===0x1f4){logger[_0x78ce('0x27')](_0x78ce('0x22'),_0xe416a9,_0x2e57c8['error'][_0x78ce('0x29')]);return _0x39d367(_0x2e57c8['error'][_0x78ce('0x29')]);}logger[_0x78ce('0x27')](_0x78ce('0x22'),_0xe416a9,_0x2e57c8['error']['message']);return _0x508ae6(_0x2e57c8[_0x78ce('0x27')][_0x78ce('0x29')]);}else{logger[_0x78ce('0x21')](_0x78ce('0x22'),_0xe416a9,_0x78ce('0x23'));_0x508ae6(_0x2e57c8[_0x78ce('0x2a')][_0x78ce('0x29')]);}})[_0x78ce('0x2b')](function(_0x309e47){logger['error'](_0x78ce('0x22'),_0xe416a9,_0x309e47);_0x39d367(_0x309e47);});});}function respondWithStatusCode(_0x2f772b,_0x49be43){_0x49be43=_0x49be43||0xcc;return function(_0x432171){if(_0x432171){return _0x2f772b['sendStatus'](_0x49be43);}return _0x2f772b[_0x78ce('0x2c')](_0x49be43)[_0x78ce('0x2d')]();};}function respondWithResult(_0x2971e8,_0x266d0d){_0x266d0d=_0x266d0d||0xc8;return function(_0x4dd6dc){if(_0x4dd6dc){return _0x2971e8['status'](_0x266d0d)[_0x78ce('0x2e')](_0x4dd6dc);}};}function respondWithFilteredResult(_0x15a9af,_0x502987){return function(_0x4c83a7){if(_0x4c83a7){var _0x97a459=typeof _0x502987[_0x78ce('0x2f')]===_0x78ce('0x30')&&typeof _0x502987[_0x78ce('0x31')]===_0x78ce('0x30');var _0x196cca=_0x4c83a7[_0x78ce('0x32')];var _0x298ada=_0x97a459?0x0:_0x502987[_0x78ce('0x2f')];var _0x34489b=_0x97a459?_0x4c83a7[_0x78ce('0x32')]:_0x502987[_0x78ce('0x2f')]+_0x502987[_0x78ce('0x31')];var _0x523856;if(_0x34489b>=_0x196cca){_0x34489b=_0x196cca;_0x523856=0xc8;}else{_0x523856=0xce;}_0x15a9af[_0x78ce('0x2c')](_0x523856);return _0x15a9af[_0x78ce('0x33')](_0x78ce('0x34'),_0x298ada+'-'+_0x34489b+'/'+_0x196cca)[_0x78ce('0x2e')](_0x4c83a7);}return null;};}function patchUpdates(_0x493e2c){return function(_0x3c2860){try{jsonpatch['apply'](_0x3c2860,_0x493e2c,!![]);}catch(_0x5175d3){return BPromise[_0x78ce('0x35')](_0x5175d3);}return _0x3c2860['save']();};}function saveUpdates(_0x9312e2,_0x20ceb9){return function(_0x5a0081){if(_0x5a0081){return _0x5a0081[_0x78ce('0x36')](_0x9312e2)[_0x78ce('0x20')](function(_0x3d1f31){return _0x3d1f31;});}return null;};}function removeEntity(_0x40f06f,_0xc539ff){return function(_0x53dd97){if(_0x53dd97){return _0x53dd97[_0x78ce('0x37')]()[_0x78ce('0x20')](function(){var _0x14ae74=_0x53dd97['get']({'plain':!![]});var _0x29c6a8=_0x78ce('0x38');return db[_0x78ce('0x39')][_0x78ce('0x37')]({'where':{'type':_0x29c6a8,'resourceId':_0x14ae74['id']}})[_0x78ce('0x20')](function(){return _0x53dd97;});})[_0x78ce('0x20')](function(){_0x40f06f[_0x78ce('0x2c')](0xcc)[_0x78ce('0x2d')]();});}};}function handleEntityNotFound(_0xe8947c,_0x139348){return function(_0x31d4f8){if(!_0x31d4f8){_0xe8947c[_0x78ce('0x3a')](0x194);}return _0x31d4f8;};}function handleError(_0xa2c4a2,_0x54a106){_0x54a106=_0x54a106||0x1f4;return function(_0x52bce8){logger[_0x78ce('0x27')](_0x52bce8[_0x78ce('0x3b')]);if(_0x52bce8[_0x78ce('0x3c')]){delete _0x52bce8[_0x78ce('0x3c')];}_0xa2c4a2[_0x78ce('0x2c')](_0x54a106)['send'](_0x52bce8);};}exports[_0x78ce('0x3d')]=function(_0x3312b,_0x24b332){var _0x48aa7c={},_0x46257c={},_0x1c551c={'count':0x0,'rows':[]};var _0xe7e7b3=_[_0x78ce('0x3e')](db['ChatQueue']['rawAttributes'],function(_0x31a3e4){return{'name':_0x31a3e4[_0x78ce('0x3f')],'type':_0x31a3e4[_0x78ce('0x40')][_0x78ce('0x41')]};});_0x46257c['model']=_['map'](_0xe7e7b3,_0x78ce('0x3c'));_0x46257c['query']=_[_0x78ce('0x42')](_0x3312b[_0x78ce('0x43')]);_0x46257c[_0x78ce('0x44')]=_[_0x78ce('0x45')](_0x46257c['model'],_0x46257c[_0x78ce('0x43')]);_0x48aa7c[_0x78ce('0x46')]=_['intersection'](_0x46257c['model'],qs[_0x78ce('0x47')](_0x3312b[_0x78ce('0x43')]['fields']));_0x48aa7c['attributes']=_0x48aa7c['attributes'][_0x78ce('0x48')]?_0x48aa7c[_0x78ce('0x46')]:_0x46257c[_0x78ce('0x49')];if(!_0x3312b[_0x78ce('0x43')]['hasOwnProperty'](_0x78ce('0x4a'))){_0x48aa7c[_0x78ce('0x31')]=qs[_0x78ce('0x31')](_0x3312b[_0x78ce('0x43')][_0x78ce('0x31')]);_0x48aa7c[_0x78ce('0x2f')]=qs[_0x78ce('0x2f')](_0x3312b[_0x78ce('0x43')][_0x78ce('0x2f')]);}_0x48aa7c[_0x78ce('0x4b')]=qs[_0x78ce('0x4c')](_0x3312b[_0x78ce('0x43')][_0x78ce('0x4c')]);_0x48aa7c[_0x78ce('0x4d')]=qs[_0x78ce('0x44')](_['pick'](_0x3312b[_0x78ce('0x43')],_0x46257c[_0x78ce('0x44')]),_0xe7e7b3);if(_0x3312b[_0x78ce('0x43')]['filter']){_0x48aa7c['where']=_['merge'](_0x48aa7c['where'],{'$or':_['map'](_0xe7e7b3,function(_0x39067b){if(_0x39067b[_0x78ce('0x40')]!=='VIRTUAL'){var _0x41ba0e={};_0x41ba0e[_0x39067b[_0x78ce('0x3c')]]={'$like':'%'+_0x3312b[_0x78ce('0x43')][_0x78ce('0x4e')]+'%'};return _0x41ba0e;}})});}_0x48aa7c=_[_0x78ce('0x4f')]({},_0x48aa7c,_0x3312b[_0x78ce('0x50')]);var _0x36cda4={'where':_0x48aa7c['where']};return db[_0x78ce('0x51')][_0x78ce('0x32')](_0x36cda4)['then'](function(_0x16d53c){_0x1c551c[_0x78ce('0x32')]=_0x16d53c;if(_0x3312b['query'][_0x78ce('0x52')]){_0x48aa7c['include']=[{'all':!![]}];}return db['ChatQueue'][_0x78ce('0x53')](_0x48aa7c);})[_0x78ce('0x20')](function(_0x3cc402){_0x1c551c[_0x78ce('0x54')]=_0x3cc402;return _0x1c551c;})[_0x78ce('0x20')](respondWithFilteredResult(_0x24b332,_0x48aa7c))[_0x78ce('0x2b')](handleError(_0x24b332,null));};exports[_0x78ce('0x55')]=function(_0x517673,_0x51635a){var _0x2eaa0c={'raw':!![],'where':{'id':_0x517673[_0x78ce('0x56')]['id']}},_0x2da7b2={};_0x2da7b2[_0x78ce('0x49')]=_[_0x78ce('0x42')](db[_0x78ce('0x51')][_0x78ce('0x57')]);_0x2da7b2[_0x78ce('0x43')]=_[_0x78ce('0x42')](_0x517673[_0x78ce('0x43')]);_0x2da7b2[_0x78ce('0x44')]=_[_0x78ce('0x45')](_0x2da7b2[_0x78ce('0x49')],_0x2da7b2[_0x78ce('0x43')]);_0x2eaa0c[_0x78ce('0x46')]=_['intersection'](_0x2da7b2[_0x78ce('0x49')],qs[_0x78ce('0x47')](_0x517673[_0x78ce('0x43')][_0x78ce('0x47')]));_0x2eaa0c[_0x78ce('0x46')]=_0x2eaa0c[_0x78ce('0x46')]['length']?_0x2eaa0c[_0x78ce('0x46')]:_0x2da7b2['model'];if(_0x517673[_0x78ce('0x43')][_0x78ce('0x52')]){_0x2eaa0c[_0x78ce('0x58')]=[{'all':!![]}];}_0x2eaa0c=_[_0x78ce('0x4f')]({},_0x2eaa0c,_0x517673[_0x78ce('0x50')]);return db[_0x78ce('0x51')][_0x78ce('0x59')](_0x2eaa0c)[_0x78ce('0x20')](handleEntityNotFound(_0x51635a,null))[_0x78ce('0x20')](respondWithResult(_0x51635a,null))[_0x78ce('0x2b')](handleError(_0x51635a,null));};exports[_0x78ce('0x5a')]=function(_0x427199,_0x235d89){return db[_0x78ce('0x51')][_0x78ce('0x5a')](_0x427199[_0x78ce('0x5b')],{})[_0x78ce('0x20')](function(_0x186043){var _0x2a2992=_0x427199[_0x78ce('0x5c')][_0x78ce('0x5d')]({'plain':!![]});if(!_0x2a2992)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2a2992[_0x78ce('0x5e')]===_0x78ce('0x5c')){var _0x389b1d=_0x186043[_0x78ce('0x5d')]({'plain':!![]});var _0x58ebd2='ChatQueues';return db['UserProfileSection']['find']({'where':{'name':_0x58ebd2,'userProfileId':_0x2a2992[_0x78ce('0x5f')]},'raw':!![]})[_0x78ce('0x20')](function(_0x49f41a){if(_0x49f41a&&_0x49f41a[_0x78ce('0x60')]===0x0){return db[_0x78ce('0x39')]['create']({'name':_0x389b1d[_0x78ce('0x3c')],'resourceId':_0x389b1d['id'],'type':_0x49f41a[_0x78ce('0x3c')],'sectionId':_0x49f41a['id']},{})[_0x78ce('0x20')](function(){return _0x186043;});}else{return _0x186043;}})[_0x78ce('0x2b')](function(_0x4a5628){logger[_0x78ce('0x27')](_0x78ce('0x61'),_0x4a5628);throw _0x4a5628;});}return _0x186043;})[_0x78ce('0x20')](respondWithResult(_0x235d89,0xc9))[_0x78ce('0x2b')](handleError(_0x235d89,null));};exports[_0x78ce('0x36')]=function(_0x387735,_0x2bc1b3){if(_0x387735[_0x78ce('0x5b')]['id']){delete _0x387735['body']['id'];}return db['ChatQueue'][_0x78ce('0x59')]({'where':{'id':_0x387735['params']['id']}})['then'](handleEntityNotFound(_0x2bc1b3,null))['then'](saveUpdates(_0x387735[_0x78ce('0x5b')],null))[_0x78ce('0x20')](respondWithResult(_0x2bc1b3,null))[_0x78ce('0x2b')](handleError(_0x2bc1b3,null));};exports[_0x78ce('0x37')]=function(_0x49d6ab,_0x11c7ea){return db[_0x78ce('0x51')][_0x78ce('0x59')]({'where':{'id':_0x49d6ab[_0x78ce('0x56')]['id']}})[_0x78ce('0x20')](handleEntityNotFound(_0x11c7ea,null))[_0x78ce('0x20')](removeEntity(_0x11c7ea,null))['catch'](handleError(_0x11c7ea,null));};exports[_0x78ce('0x62')]=function(_0x3d66cd,_0x22559a){return db[_0x78ce('0x51')][_0x78ce('0x62')]()['then'](respondWithResult(_0x22559a,null))[_0x78ce('0x2b')](handleError(_0x22559a,null));};exports['getMembers']=function(_0x2b5f05,_0x11aec1,_0x171947){var _0x174db1={'raw':!![],'where':{}},_0x6709df={},_0x1ec292;return db['ChatQueue'][_0x78ce('0x63')]({'where':{'id':_0x2b5f05['params']['id']}})[_0x78ce('0x20')](handleEntityNotFound(_0x11aec1,null))[_0x78ce('0x20')](function(_0x6121c7){if(_0x6121c7){_0x1ec292=_0x6121c7[_0x78ce('0x5d')]({'plain':!![]});_0x6709df[_0x78ce('0x49')]=_[_0x78ce('0x42')](db[_0x78ce('0x64')]['rawAttributes']);_0x6709df['query']=_[_0x78ce('0x42')](_0x2b5f05['query']);_0x6709df[_0x78ce('0x44')]=_[_0x78ce('0x45')](_0x6709df[_0x78ce('0x49')],_0x6709df[_0x78ce('0x43')]);_0x174db1[_0x78ce('0x46')]=_['intersection'](_0x6709df[_0x78ce('0x49')],qs[_0x78ce('0x47')](_0x2b5f05[_0x78ce('0x43')][_0x78ce('0x47')]));_0x174db1[_0x78ce('0x46')]=_0x174db1[_0x78ce('0x46')][_0x78ce('0x48')]?_0x174db1[_0x78ce('0x46')]:_0x6709df[_0x78ce('0x49')];if(!_0x2b5f05[_0x78ce('0x43')][_0x78ce('0x65')](_0x78ce('0x4a'))){_0x174db1[_0x78ce('0x31')]=qs[_0x78ce('0x31')](_0x2b5f05[_0x78ce('0x43')][_0x78ce('0x31')]);_0x174db1[_0x78ce('0x2f')]=qs[_0x78ce('0x2f')](_0x2b5f05[_0x78ce('0x43')][_0x78ce('0x2f')]);}_0x174db1[_0x78ce('0x4b')]=qs[_0x78ce('0x4c')](_0x2b5f05[_0x78ce('0x43')]['sort']);_0x174db1[_0x78ce('0x4d')]=qs['filters'](_[_0x78ce('0x66')](_0x2b5f05['query'],_0x6709df[_0x78ce('0x44')]));_0x174db1['where'][_0x78ce('0x67')]=_0x6121c7['id'];if(_0x2b5f05[_0x78ce('0x43')][_0x78ce('0x4e')]){_0x174db1[_0x78ce('0x4d')]=_['merge'](_0x174db1[_0x78ce('0x4d')],{'$or':_[_0x78ce('0x3e')](_0x174db1['attributes'],function(_0x205f94){var _0x131335={};_0x131335[_0x205f94]={'$like':'%'+_0x2b5f05[_0x78ce('0x43')]['filter']+'%'};return _0x131335;})});}_0x174db1=_['merge']({},_0x174db1,_0x2b5f05[_0x78ce('0x50')]);return db[_0x78ce('0x64')][_0x78ce('0x53')](_0x174db1);}})[_0x78ce('0x20')](function(_0x1d8f73){if(_0x1d8f73){return db[_0x78ce('0x68')][_0x78ce('0x69')]({'where':{'id':_[_0x78ce('0x3e')](_0x1d8f73,_0x78ce('0x6a')),'role':_0x78ce('0x6b')},'attributes':['id',_0x78ce('0x3c'),'chatPause',_0x78ce('0x6c'),'createdAt']});}})['then'](function(_0x56d193){if(_0x56d193){return{'count':_0x56d193[_0x78ce('0x32')],'rows':_['map'](_0x56d193[_0x78ce('0x54')],function(_0x4c7a60){return{'membername':_0x4c7a60[_0x78ce('0x3c')],'UserId':_0x4c7a60['id'],'queue_name':_0x1ec292['name'],'ChatQueueId':_0x1ec292['id'],'interface':util[_0x78ce('0x6d')]('%s/%s','SIP',_0x4c7a60[_0x78ce('0x3c')]),'penalty':0x0,'paused':_0x4c7a60[_0x78ce('0x6e')],'createdAt':_0x4c7a60[_0x78ce('0x6f')],'updatedAt':_0x4c7a60[_0x78ce('0x6c')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x78ce('0x20')](respondWithFilteredResult(_0x11aec1,_0x174db1))[_0x78ce('0x2b')](handleError(_0x11aec1,null));};exports['getTeams']=function(_0x8d5e06,_0x2d2f7d,_0x580e94){var _0x4b24a3={};var _0xffd10={};var _0x6891da;var _0x1b92f8;return db['ChatQueue']['findOne']({'where':{'id':_0x8d5e06['params']['id']}})[_0x78ce('0x20')](handleEntityNotFound(_0x2d2f7d,null))[_0x78ce('0x20')](function(_0x427606){if(_0x427606){_0x6891da=_0x427606;_0xffd10[_0x78ce('0x49')]=_['keys'](db[_0x78ce('0x70')]['rawAttributes']);_0xffd10[_0x78ce('0x43')]=_[_0x78ce('0x42')](_0x8d5e06[_0x78ce('0x43')]);_0xffd10['filters']=_['intersection'](_0xffd10['model'],_0xffd10[_0x78ce('0x43')]);_0x4b24a3['attributes']=_[_0x78ce('0x45')](_0xffd10[_0x78ce('0x49')],qs['fields'](_0x8d5e06[_0x78ce('0x43')]['fields']));_0x4b24a3['attributes']=_0x4b24a3[_0x78ce('0x46')][_0x78ce('0x48')]?_0x4b24a3[_0x78ce('0x46')]:_0xffd10[_0x78ce('0x49')];_0x4b24a3[_0x78ce('0x4b')]=qs['sort'](_0x8d5e06['query'][_0x78ce('0x4c')]);_0x4b24a3[_0x78ce('0x4d')]=qs[_0x78ce('0x44')](_[_0x78ce('0x66')](_0x8d5e06['query'],_0xffd10['filters']));if(_0x8d5e06[_0x78ce('0x43')][_0x78ce('0x4e')]){_0x4b24a3['where']=_['merge'](_0x4b24a3[_0x78ce('0x4d')],{'$or':_[_0x78ce('0x3e')](_0x4b24a3[_0x78ce('0x46')],function(_0x5be196){var _0x4e6b8f={};_0x4e6b8f[_0x5be196]={'$like':'%'+_0x8d5e06['query'][_0x78ce('0x4e')]+'%'};return _0x4e6b8f;})});}_0x4b24a3=_['merge']({},_0x4b24a3,_0x8d5e06[_0x78ce('0x50')]);return _0x6891da[_0x78ce('0x71')](_0x4b24a3);}})[_0x78ce('0x20')](function(_0x32ecdc){if(_0x32ecdc){_0x1b92f8=_0x32ecdc[_0x78ce('0x48')];if(!_0x8d5e06[_0x78ce('0x43')][_0x78ce('0x65')](_0x78ce('0x4a'))){_0x4b24a3[_0x78ce('0x31')]=qs['limit'](_0x8d5e06[_0x78ce('0x43')][_0x78ce('0x31')]);_0x4b24a3[_0x78ce('0x2f')]=qs['offset'](_0x8d5e06[_0x78ce('0x43')]['offset']);}return _0x6891da['getTeams'](_0x4b24a3);}})['then'](function(_0x41da7b){if(_0x41da7b){return _0x41da7b?{'count':_0x1b92f8,'rows':_0x41da7b}:null;}})['then'](respondWithResult(_0x2d2f7d,null))[_0x78ce('0x2b')](handleError(_0x2d2f7d,null));};exports[_0x78ce('0x72')]=function(_0xb5b99d,_0x47a93e,_0x47bc49){var _0x2dcfaf=_0xb5b99d[_0x78ce('0x5b')][_0x78ce('0x73')];return db[_0x78ce('0x70')]['findAll']({'where':{'id':_0x2dcfaf},'attributes':['id'],'include':[{'model':db[_0x78ce('0x68')],'as':_0x78ce('0x74'),'attributes':['id',_0x78ce('0x3c'),_0x78ce('0x75'),_0x78ce('0x76'),_0x78ce('0x77')],'raw':!![]}]})[_0x78ce('0x20')](function(_0x21ee1a){if(_0x21ee1a){var _0x4ba789=_['flatMap'](_0x21ee1a,function(_0x30b11f){var _0x514193=_0x30b11f[_0x78ce('0x5d')]({'plain':!![]});return _0x514193[_0x78ce('0x74')];});return db[_0x78ce('0x51')][_0x78ce('0x59')]({'where':{'id':_0xb5b99d[_0x78ce('0x56')]['id']}})['then'](function(_0x20b48c){return db[_0x78ce('0x78')][_0x78ce('0x79')](function(_0x3ae442){return _0x20b48c['addTeams'](_0x2dcfaf,{'transaction':_0x3ae442})[_0x78ce('0x20')](function(){return BPromise['each'](_0x4ba789,function(_0x4139c6){return db[_0x78ce('0x64')][_0x78ce('0x7a')]({'where':{'UserId':_0x4139c6['id'],'ChatQueueId':_0xb5b99d[_0x78ce('0x56')]['id']},'transaction':_0x3ae442});});})[_0x78ce('0x20')](function(){_0x4ba789['forEach'](function(_0x3ff9c7){socket[_0x78ce('0x7b')]('userChatQueue:save',{'UserId':_0x3ff9c7['id'],'ChatQueueId':_0x20b48c['id']});});});});});}})['then'](respondWithStatusCode(_0x47a93e,null))[_0x78ce('0x2b')](handleError(_0x47a93e,null));};exports['removeTeams']=function(_0x286b5d,_0x245789,_0x3b2304){return db[_0x78ce('0x70')][_0x78ce('0x53')]({'where':{'id':_0x286b5d[_0x78ce('0x43')][_0x78ce('0x73')]},'attributes':['id'],'include':[{'model':db[_0x78ce('0x68')],'as':_0x78ce('0x74'),'attributes':['id'],'raw':!![]}]})[_0x78ce('0x20')](handleEntityNotFound(_0x245789,null))['then'](function(_0x2bb83c){var _0x3e4432=_[_0x78ce('0x3e')](_0x2bb83c,'id');var _0x494781=[];var _0x26a07d=[];var _0x27e170=squel[_0x78ce('0x7c')]();_0x27e170[_0x78ce('0x7d')](_0x78ce('0x7e'))[_0x78ce('0x7f')](_0x78ce('0x80'),'tq')[_0x78ce('0x81')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x78ce('0x4d')](_0x78ce('0x82'),_0x286b5d[_0x78ce('0x56')]['id']);for(var _0x21db05=0x0;_0x21db05<_0x2bb83c['length'];_0x21db05+=0x1){let _0x42a018=_0x2bb83c[_0x21db05];for(var _0x4ebb96=0x0;_0x4ebb96<_0x42a018[_0x78ce('0x74')][_0x78ce('0x48')];_0x4ebb96+=0x1){let _0x136d98=_0x42a018[_0x78ce('0x74')][_0x4ebb96];var _0x3c3036=_0x27e170[_0x78ce('0x83')]();_0x3c3036['where'](_0x78ce('0x84'),_0x136d98['id']);_0x26a07d['push'](db['sequelize'][_0x78ce('0x43')](_0x3c3036[_0x78ce('0x85')](),{'type':db[_0x78ce('0x78')][_0x78ce('0x86')]['SELECT']})[_0x78ce('0x20')](function(_0x8b6d1){if(_0x8b6d1[_0x78ce('0x48')]===0x1){return _0x136d98['id'];}else{var _0x3f3244=_['every'](_[_0x78ce('0x3e')](_0x8b6d1,_0x78ce('0x87')),function(_0x7ee8fd){return _[_0x78ce('0x88')](_0x3e4432,_0x7ee8fd);});if(_0x3f3244){return _0x136d98['id'];}}}));}}return BPromise['all'](_0x26a07d)[_0x78ce('0x20')](function(_0x63d914){_0x494781=_(_0x494781)[_0x78ce('0x89')](_0x63d914)[_0x78ce('0x8a')]()['value']();return db[_0x78ce('0x51')][_0x78ce('0x59')]({'where':{'id':_0x286b5d[_0x78ce('0x56')]['id']}})[_0x78ce('0x20')](function(_0x3a0922){return db[_0x78ce('0x78')][_0x78ce('0x79')](function(_0x11c3f4){return _0x3a0922[_0x78ce('0x8b')](_0x286b5d[_0x78ce('0x43')][_0x78ce('0x73')],{'transaction':_0x11c3f4})[_0x78ce('0x20')](function(){if(!_[_0x78ce('0x8c')](_0x494781)){return _0x3a0922['removeAgents'](_0x494781,{'transaction':_0x11c3f4});}})[_0x78ce('0x20')](function(){_0x494781[_0x78ce('0x8d')](function(_0x2c7051){socket[_0x78ce('0x7b')](_0x78ce('0x8e'),{'UserId':_0x2c7051,'ChatQueueId':_0x3a0922['id']});});});});});});})[_0x78ce('0x20')](respondWithStatusCode(_0x245789,null))[_0x78ce('0x2b')](handleError(_0x245789,null));};exports[_0x78ce('0x8f')]=function(_0x4f48da,_0x2243d0,_0x4454ad){return db[_0x78ce('0x51')][_0x78ce('0x59')]({'where':{'id':_0x4f48da['params']['id']}})[_0x78ce('0x20')](handleEntityNotFound(_0x2243d0,null))['then'](function(_0x3a5b93){if(_0x3a5b93){return _0x3a5b93['addAgents'](_0x4f48da[_0x78ce('0x5b')][_0x78ce('0x73')],_[_0x78ce('0x90')](_0x4f48da[_0x78ce('0x5b')],[_0x78ce('0x73'),'id'])||{})[_0x78ce('0x91')](function(_0x418fed){for(var _0x57ba5f=0x0;_0x57ba5f<_0x4f48da[_0x78ce('0x5b')]['ids'][_0x78ce('0x48')];_0x57ba5f+=0x1){socket['emit'](_0x78ce('0x92'),{'UserId':Number(_0x4f48da['body'][_0x78ce('0x73')][_0x57ba5f]),'ChatQueueId':Number(_0x4f48da['params']['id'])});}return _0x418fed;});}})[_0x78ce('0x20')](respondWithResult(_0x2243d0,null))[_0x78ce('0x2b')](handleError(_0x2243d0,null));};exports[_0x78ce('0x93')]=function(_0x2d3644,_0x9313ad,_0x4cebc6){return db['ChatQueue'][_0x78ce('0x59')]({'where':{'id':_0x2d3644[_0x78ce('0x56')]['id']}})['then'](handleEntityNotFound(_0x9313ad,null))[_0x78ce('0x20')](function(_0x39f9e3){if(_0x39f9e3){return _0x39f9e3[_0x78ce('0x93')](_0x2d3644['query'][_0x78ce('0x73')])[_0x78ce('0x20')](function(){if(_[_0x78ce('0x94')](_0x2d3644[_0x78ce('0x43')][_0x78ce('0x73')])){for(var _0x1d472e=0x0;_0x1d472e<_0x2d3644[_0x78ce('0x43')]['ids'][_0x78ce('0x48')];_0x1d472e+=0x1){socket[_0x78ce('0x7b')](_0x78ce('0x8e'),{'UserId':Number(_0x2d3644[_0x78ce('0x43')][_0x78ce('0x73')][_0x1d472e]),'ChatQueueId':Number(_0x2d3644['params']['id'])});}}else{socket[_0x78ce('0x7b')](_0x78ce('0x8e'),{'UserId':Number(_0x2d3644[_0x78ce('0x43')][_0x78ce('0x73')]),'ChatQueueId':Number(_0x2d3644[_0x78ce('0x56')]['id'])});}});}})[_0x78ce('0x20')](respondWithStatusCode(_0x9313ad,null))[_0x78ce('0x2b')](handleError(_0x9313ad,null));};exports[_0x78ce('0x95')]=function(_0x22f143,_0x494866,_0x2f682d){var _0x1e552d={};var _0x4cc4a4={};var _0x17f320;var _0x31f214;return db[_0x78ce('0x51')][_0x78ce('0x63')]({'where':{'id':_0x22f143['params']['id']}})[_0x78ce('0x20')](handleEntityNotFound(_0x494866,null))['then'](function(_0x1a3ffc){if(_0x1a3ffc){_0x17f320=_0x1a3ffc;_0x4cc4a4[_0x78ce('0x49')]=_[_0x78ce('0x42')](db[_0x78ce('0x68')][_0x78ce('0x57')]);_0x4cc4a4[_0x78ce('0x43')]=_['keys'](_0x22f143[_0x78ce('0x43')]);_0x4cc4a4[_0x78ce('0x44')]=_[_0x78ce('0x45')](_0x4cc4a4[_0x78ce('0x49')],_0x4cc4a4['query']);_0x1e552d[_0x78ce('0x46')]=_[_0x78ce('0x45')](_0x4cc4a4['model'],qs[_0x78ce('0x47')](_0x22f143[_0x78ce('0x43')][_0x78ce('0x47')]));_0x1e552d[_0x78ce('0x46')]=_0x1e552d['attributes'][_0x78ce('0x48')]?_0x1e552d[_0x78ce('0x46')]:_0x4cc4a4['model'];_0x1e552d[_0x78ce('0x4b')]=qs[_0x78ce('0x4c')](_0x22f143[_0x78ce('0x43')][_0x78ce('0x4c')]);_0x1e552d[_0x78ce('0x4d')]=qs['filters'](_[_0x78ce('0x66')](_0x22f143['query'],_0x4cc4a4[_0x78ce('0x44')]));if(_0x22f143[_0x78ce('0x43')][_0x78ce('0x4e')]){_0x1e552d[_0x78ce('0x4d')]=_[_0x78ce('0x4f')](_0x1e552d[_0x78ce('0x4d')],{'$or':_['map'](_0x1e552d['attributes'],function(_0x44e219){var _0x2b34fd={};_0x2b34fd[_0x44e219]={'$like':'%'+_0x22f143[_0x78ce('0x43')][_0x78ce('0x4e')]+'%'};return _0x2b34fd;})});}_0x1e552d=_[_0x78ce('0x4f')]({},_0x1e552d,_0x22f143[_0x78ce('0x50')]);return _0x17f320['getAgents'](_0x1e552d);}})[_0x78ce('0x20')](function(_0x1d5f7f){if(_0x1d5f7f){_0x31f214=_0x1d5f7f[_0x78ce('0x48')];if(!_0x22f143['query'][_0x78ce('0x65')](_0x78ce('0x4a'))){_0x1e552d[_0x78ce('0x31')]=qs[_0x78ce('0x31')](_0x22f143['query']['limit']);_0x1e552d['offset']=qs[_0x78ce('0x2f')](_0x22f143[_0x78ce('0x43')][_0x78ce('0x2f')]);}return _0x17f320[_0x78ce('0x95')](_0x1e552d);}})[_0x78ce('0x20')](function(_0x3c96f6){if(_0x3c96f6){return _0x3c96f6?{'count':_0x31f214,'rows':_0x3c96f6}:null;}})[_0x78ce('0x20')](respondWithResult(_0x494866,null))[_0x78ce('0x2b')](handleError(_0x494866,null));};