13eca70f5e6f353706d44c12789e714ec9181609
[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 _0xac24=['moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','redis','defaults','localhost','register','client','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','status','count','offset','limit','set','Content-Range','json','update','ChatQueues','UserProfileResource','destroy','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','ChatQueue','findAll','rows','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','describe','getMembers','findOne','get','UserChatQueue','hasOwnProperty','ChatQueueId','findAndCountAll','UserId','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','User','Agents','online','voicePause','interface','flatMap','addTeams','each','findOrCreate','emit','removeTeams','ids','select','field','tq.TeamId','from','team_has_chat_queues','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','every','TeamId','includes','all','value','transaction','isEmpty','removeAgents','forEach','userChatQueue:remove','addAgents','omit','userChatQueue:save','isArray','getAgents','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise'];(function(_0x3aef32,_0x5cfa85){var _0x124f63=function(_0x3116b2){while(--_0x3116b2){_0x3aef32['push'](_0x3aef32['shift']());}};_0x124f63(++_0x5cfa85);}(_0xac24,0x1ba));var _0x4ac2=function(_0x465621,_0x34ac5e){_0x465621=_0x465621-0x0;var _0x381358=_0xac24[_0x465621];return _0x381358;};'use strict';var pdf=require(_0x4ac2('0x0'));var emlformat=require(_0x4ac2('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x4ac2('0x2'));var jsonpatch=require(_0x4ac2('0x3'));var rp=require(_0x4ac2('0x4'));var moment=require(_0x4ac2('0x5'));var BPromise=require(_0x4ac2('0x6'));var Mustache=require(_0x4ac2('0x7'));var util=require(_0x4ac2('0x8'));var path=require('path');var sox=require(_0x4ac2('0x9'));var csv=require(_0x4ac2('0xa'));var ejs=require(_0x4ac2('0xb'));var fs=require('fs');var _=require(_0x4ac2('0xc'));var squel=require('squel');var crypto=require(_0x4ac2('0xd'));var jsforce=require(_0x4ac2('0xe'));var deskjs=require(_0x4ac2('0xf'));var toCsv=require(_0x4ac2('0xa'));var querystring=require(_0x4ac2('0x10'));var Papa=require(_0x4ac2('0x11'));var Redis=require('ioredis');var authService=require(_0x4ac2('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x4ac2('0x13'));var hardwareService=require(_0x4ac2('0x14'));var logger=require(_0x4ac2('0x15'))(_0x4ac2('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4ac2('0x17'))['db'];config[_0x4ac2('0x18')]=_[_0x4ac2('0x19')](config[_0x4ac2('0x18')],{'host':_0x4ac2('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./chatQueue.socket')[_0x4ac2('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x4ac2('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1563de,_0x5f1608,_0x228698,_0x184459){return new BPromise(function(_0x50117c,_0x39c4dc){var _0xe9ef4e=_0x184459||client;return _0xe9ef4e[_0x4ac2('0x1d')](_0x1563de,_0x228698)[_0x4ac2('0x1e')](function(_0x4fa46e){logger[_0x4ac2('0x1f')](_0x4ac2('0x20'),_0x5f1608,'request\x20sent');logger['debug']('ChatQueue,\x20%s,\x20%s,\x20%s',_0x5f1608,_0x4ac2('0x21'),JSON[_0x4ac2('0x22')](_0x4fa46e));if(_0x4fa46e[_0x4ac2('0x23')]){if(_0x4fa46e['error'][_0x4ac2('0x24')]===0x1f4){logger[_0x4ac2('0x23')](_0x4ac2('0x20'),_0x5f1608,_0x4fa46e[_0x4ac2('0x23')][_0x4ac2('0x25')]);return _0x39c4dc(_0x4fa46e[_0x4ac2('0x23')][_0x4ac2('0x25')]);}logger[_0x4ac2('0x23')](_0x4ac2('0x20'),_0x5f1608,_0x4fa46e[_0x4ac2('0x23')][_0x4ac2('0x25')]);return _0x50117c(_0x4fa46e[_0x4ac2('0x23')][_0x4ac2('0x25')]);}else{logger[_0x4ac2('0x1f')]('ChatQueue,\x20%s,\x20%s',_0x5f1608,_0x4ac2('0x21'));_0x50117c(_0x4fa46e['result']['message']);}})[_0x4ac2('0x26')](function(_0x5f3be6){logger[_0x4ac2('0x23')](_0x4ac2('0x20'),_0x5f1608,_0x5f3be6);_0x39c4dc(_0x5f3be6);});});}function respondWithStatusCode(_0x3e7a8a,_0x1867b7){_0x1867b7=_0x1867b7||0xcc;return function(_0x97d87e){if(_0x97d87e){return _0x3e7a8a[_0x4ac2('0x27')](_0x1867b7);}return _0x3e7a8a['status'](_0x1867b7)['end']();};}function respondWithResult(_0x5e7e13,_0x41bc6d){_0x41bc6d=_0x41bc6d||0xc8;return function(_0x533269){if(_0x533269){return _0x5e7e13[_0x4ac2('0x28')](_0x41bc6d)['json'](_0x533269);}};}function respondWithFilteredResult(_0x2b76f5,_0x267a49){return function(_0x585d0d){if(_0x585d0d){var _0x5cb799=_0x585d0d[_0x4ac2('0x29')],_0x4218fe=_0x267a49[_0x4ac2('0x2a')],_0x1b7b9a=_0x267a49[_0x4ac2('0x2a')]+_0x267a49[_0x4ac2('0x2b')],_0x4337ba;if(_0x1b7b9a>=_0x5cb799){_0x1b7b9a=_0x5cb799;_0x4337ba=0xc8;}else{_0x4337ba=0xce;}_0x2b76f5[_0x4ac2('0x28')](_0x4337ba);return _0x2b76f5[_0x4ac2('0x2c')](_0x4ac2('0x2d'),_0x4218fe+'-'+_0x1b7b9a+'/'+_0x5cb799)[_0x4ac2('0x2e')](_0x585d0d);}return null;};}function patchUpdates(_0x2d6cb4){return function(_0x404632){try{jsonpatch['apply'](_0x404632,_0x2d6cb4,!![]);}catch(_0x12dbe3){return BPromise['reject'](_0x12dbe3);}return _0x404632['save']();};}function saveUpdates(_0x108271,_0x400386){return function(_0x485498){if(_0x485498){return _0x485498[_0x4ac2('0x2f')](_0x108271)[_0x4ac2('0x1e')](function(_0x3bba55){return _0x3bba55;});}return null;};}function removeEntity(_0x1f21fe,_0x3897d8){return function(_0x33cea0){if(_0x33cea0){return _0x33cea0['destroy']()[_0x4ac2('0x1e')](function(){var _0x4cda5b=_0x33cea0['get']({'plain':!![]});var _0x186073=_0x4ac2('0x30');return db[_0x4ac2('0x31')][_0x4ac2('0x32')]({'where':{'type':_0x186073,'resourceId':_0x4cda5b['id']}})[_0x4ac2('0x1e')](function(){return _0x33cea0;});})[_0x4ac2('0x1e')](function(){_0x1f21fe[_0x4ac2('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5731a8,_0x9e019d){return function(_0x427f86){if(!_0x427f86){_0x5731a8['sendStatus'](0x194);}return _0x427f86;};}function handleError(_0x20911d,_0x421ebb){_0x421ebb=_0x421ebb||0x1f4;return function(_0x3a6f0f){logger[_0x4ac2('0x23')](_0x3a6f0f[_0x4ac2('0x33')]);if(_0x3a6f0f[_0x4ac2('0x34')]){delete _0x3a6f0f['name'];}_0x20911d[_0x4ac2('0x28')](_0x421ebb)[_0x4ac2('0x35')](_0x3a6f0f);};}exports[_0x4ac2('0x36')]=function(_0x281143,_0x1e002e){var _0x21e827={},_0x298a38={},_0x30fc3f={'count':0x0,'rows':[]};var _0x52e491=_[_0x4ac2('0x37')](db['ChatQueue'][_0x4ac2('0x38')],function(_0x48aecf){return{'name':_0x48aecf[_0x4ac2('0x39')],'type':_0x48aecf[_0x4ac2('0x3a')][_0x4ac2('0x3b')]};});_0x298a38[_0x4ac2('0x3c')]=_[_0x4ac2('0x37')](_0x52e491,_0x4ac2('0x34'));_0x298a38[_0x4ac2('0x3d')]=_[_0x4ac2('0x3e')](_0x281143[_0x4ac2('0x3d')]);_0x298a38['filters']=_[_0x4ac2('0x3f')](_0x298a38[_0x4ac2('0x3c')],_0x298a38[_0x4ac2('0x3d')]);_0x21e827[_0x4ac2('0x40')]=_['intersection'](_0x298a38[_0x4ac2('0x3c')],qs[_0x4ac2('0x41')](_0x281143['query']['fields']));_0x21e827[_0x4ac2('0x40')]=_0x21e827[_0x4ac2('0x40')][_0x4ac2('0x42')]?_0x21e827[_0x4ac2('0x40')]:_0x298a38[_0x4ac2('0x3c')];if(!_0x281143[_0x4ac2('0x3d')]['hasOwnProperty'](_0x4ac2('0x43'))){_0x21e827[_0x4ac2('0x2b')]=qs[_0x4ac2('0x2b')](_0x281143['query'][_0x4ac2('0x2b')]);_0x21e827[_0x4ac2('0x2a')]=qs[_0x4ac2('0x2a')](_0x281143[_0x4ac2('0x3d')]['offset']);}_0x21e827[_0x4ac2('0x44')]=qs['sort'](_0x281143[_0x4ac2('0x3d')][_0x4ac2('0x45')]);_0x21e827['where']=qs[_0x4ac2('0x46')](_[_0x4ac2('0x47')](_0x281143[_0x4ac2('0x3d')],_0x298a38['filters']),_0x52e491);if(_0x281143[_0x4ac2('0x3d')][_0x4ac2('0x48')]){_0x21e827[_0x4ac2('0x49')]=_[_0x4ac2('0x4a')](_0x21e827[_0x4ac2('0x49')],{'$or':_['map'](_0x52e491,function(_0x209f9f){if(_0x209f9f[_0x4ac2('0x3a')]!==_0x4ac2('0x4b')){var _0x1828f1={};_0x1828f1[_0x209f9f[_0x4ac2('0x34')]]={'$like':'%'+_0x281143['query'][_0x4ac2('0x48')]+'%'};return _0x1828f1;}})});}_0x21e827=_['merge']({},_0x21e827,_0x281143[_0x4ac2('0x4c')]);var _0xf2d3ba={'where':_0x21e827[_0x4ac2('0x49')]};return db['ChatQueue']['count'](_0xf2d3ba)[_0x4ac2('0x1e')](function(_0x53ffd1){_0x30fc3f[_0x4ac2('0x29')]=_0x53ffd1;if(_0x281143[_0x4ac2('0x3d')][_0x4ac2('0x4d')]){_0x21e827['include']=[{'all':!![]}];}return db[_0x4ac2('0x4e')][_0x4ac2('0x4f')](_0x21e827);})[_0x4ac2('0x1e')](function(_0x2ae674){_0x30fc3f[_0x4ac2('0x50')]=_0x2ae674;return _0x30fc3f;})['then'](respondWithFilteredResult(_0x1e002e,_0x21e827))[_0x4ac2('0x26')](handleError(_0x1e002e,null));};exports[_0x4ac2('0x51')]=function(_0xf699b6,_0x55d3a7){var _0x3ac276={'raw':!![],'where':{'id':_0xf699b6[_0x4ac2('0x52')]['id']}},_0x3bb9b7={};_0x3bb9b7['model']=_['keys'](db[_0x4ac2('0x4e')][_0x4ac2('0x38')]);_0x3bb9b7[_0x4ac2('0x3d')]=_['keys'](_0xf699b6['query']);_0x3bb9b7['filters']=_[_0x4ac2('0x3f')](_0x3bb9b7[_0x4ac2('0x3c')],_0x3bb9b7[_0x4ac2('0x3d')]);_0x3ac276[_0x4ac2('0x40')]=_[_0x4ac2('0x3f')](_0x3bb9b7[_0x4ac2('0x3c')],qs['fields'](_0xf699b6[_0x4ac2('0x3d')][_0x4ac2('0x41')]));_0x3ac276[_0x4ac2('0x40')]=_0x3ac276[_0x4ac2('0x40')][_0x4ac2('0x42')]?_0x3ac276[_0x4ac2('0x40')]:_0x3bb9b7['model'];if(_0xf699b6[_0x4ac2('0x3d')][_0x4ac2('0x4d')]){_0x3ac276['include']=[{'all':!![]}];}_0x3ac276=_[_0x4ac2('0x4a')]({},_0x3ac276,_0xf699b6[_0x4ac2('0x4c')]);return db['ChatQueue'][_0x4ac2('0x53')](_0x3ac276)[_0x4ac2('0x1e')](handleEntityNotFound(_0x55d3a7,null))[_0x4ac2('0x1e')](respondWithResult(_0x55d3a7,null))['catch'](handleError(_0x55d3a7,null));};exports[_0x4ac2('0x54')]=function(_0x98c34e,_0x19b062){return db['ChatQueue'][_0x4ac2('0x54')](_0x98c34e[_0x4ac2('0x55')],{})[_0x4ac2('0x1e')](function(_0x5ae620){var _0x559518=_0x98c34e[_0x4ac2('0x56')]['get']({'plain':!![]});if(!_0x559518)throw new Error(_0x4ac2('0x57'));if(_0x559518['role']===_0x4ac2('0x56')){var _0x130c67=_0x5ae620['get']({'plain':!![]});var _0x409515=_0x4ac2('0x30');return db[_0x4ac2('0x58')][_0x4ac2('0x53')]({'where':{'name':_0x409515,'userProfileId':_0x559518[_0x4ac2('0x59')]},'raw':!![]})['then'](function(_0x4b02e2){if(_0x4b02e2&&_0x4b02e2[_0x4ac2('0x5a')]===0x0){return db[_0x4ac2('0x31')][_0x4ac2('0x54')]({'name':_0x130c67['name'],'resourceId':_0x130c67['id'],'type':_0x4b02e2[_0x4ac2('0x34')],'sectionId':_0x4b02e2['id']},{})[_0x4ac2('0x1e')](function(){return _0x5ae620;});}else{return _0x5ae620;}})['catch'](function(_0x22d7e6){logger[_0x4ac2('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x22d7e6);throw _0x22d7e6;});}return _0x5ae620;})[_0x4ac2('0x1e')](respondWithResult(_0x19b062,0xc9))[_0x4ac2('0x26')](handleError(_0x19b062,null));};exports['update']=function(_0x30be0e,_0x2203a3){if(_0x30be0e[_0x4ac2('0x55')]['id']){delete _0x30be0e[_0x4ac2('0x55')]['id'];}return db[_0x4ac2('0x4e')][_0x4ac2('0x53')]({'where':{'id':_0x30be0e[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x2203a3,null))[_0x4ac2('0x1e')](saveUpdates(_0x30be0e[_0x4ac2('0x55')],null))[_0x4ac2('0x1e')](respondWithResult(_0x2203a3,null))[_0x4ac2('0x26')](handleError(_0x2203a3,null));};exports[_0x4ac2('0x32')]=function(_0x33967e,_0xcdfceb){return db[_0x4ac2('0x4e')]['find']({'where':{'id':_0x33967e[_0x4ac2('0x52')]['id']}})['then'](handleEntityNotFound(_0xcdfceb,null))['then'](removeEntity(_0xcdfceb,null))['catch'](handleError(_0xcdfceb,null));};exports[_0x4ac2('0x5b')]=function(_0x467cda,_0x26673b){return db['ChatQueue'][_0x4ac2('0x5b')]()[_0x4ac2('0x1e')](respondWithResult(_0x26673b,null))[_0x4ac2('0x26')](handleError(_0x26673b,null));};exports[_0x4ac2('0x5c')]=function(_0x2bd274,_0x160a4e,_0x51a625){var _0x489772={'raw':!![],'where':{}},_0x2bf30a={},_0xc1f777;return db[_0x4ac2('0x4e')][_0x4ac2('0x5d')]({'where':{'id':_0x2bd274[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x160a4e,null))[_0x4ac2('0x1e')](function(_0x45960e){if(_0x45960e){_0xc1f777=_0x45960e[_0x4ac2('0x5e')]({'plain':!![]});_0x2bf30a[_0x4ac2('0x3c')]=_[_0x4ac2('0x3e')](db[_0x4ac2('0x5f')][_0x4ac2('0x38')]);_0x2bf30a[_0x4ac2('0x3d')]=_[_0x4ac2('0x3e')](_0x2bd274[_0x4ac2('0x3d')]);_0x2bf30a[_0x4ac2('0x46')]=_[_0x4ac2('0x3f')](_0x2bf30a[_0x4ac2('0x3c')],_0x2bf30a[_0x4ac2('0x3d')]);_0x489772[_0x4ac2('0x40')]=_[_0x4ac2('0x3f')](_0x2bf30a['model'],qs[_0x4ac2('0x41')](_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x41')]));_0x489772['attributes']=_0x489772[_0x4ac2('0x40')][_0x4ac2('0x42')]?_0x489772[_0x4ac2('0x40')]:_0x2bf30a[_0x4ac2('0x3c')];if(!_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x60')]('nolimit')){_0x489772[_0x4ac2('0x2b')]=qs[_0x4ac2('0x2b')](_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x2b')]);_0x489772['offset']=qs[_0x4ac2('0x2a')](_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x2a')]);}_0x489772[_0x4ac2('0x44')]=qs[_0x4ac2('0x45')](_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x45')]);_0x489772[_0x4ac2('0x49')]=qs[_0x4ac2('0x46')](_[_0x4ac2('0x47')](_0x2bd274[_0x4ac2('0x3d')],_0x2bf30a[_0x4ac2('0x46')]));_0x489772['where'][_0x4ac2('0x61')]=_0x45960e['id'];if(_0x2bd274['query']['filter']){_0x489772[_0x4ac2('0x49')]=_[_0x4ac2('0x4a')](_0x489772[_0x4ac2('0x49')],{'$or':_[_0x4ac2('0x37')](_0x489772[_0x4ac2('0x40')],function(_0x43f3f6){var _0x28cd1d={};_0x28cd1d[_0x43f3f6]={'$like':'%'+_0x2bd274[_0x4ac2('0x3d')][_0x4ac2('0x48')]+'%'};return _0x28cd1d;})});}_0x489772=_[_0x4ac2('0x4a')]({},_0x489772,_0x2bd274[_0x4ac2('0x4c')]);return db['UserChatQueue'][_0x4ac2('0x4f')](_0x489772);}})[_0x4ac2('0x1e')](function(_0x1f5dc2){if(_0x1f5dc2){return db['User'][_0x4ac2('0x62')]({'where':{'id':_[_0x4ac2('0x37')](_0x1f5dc2,_0x4ac2('0x63')),'role':'agent'},'attributes':['id',_0x4ac2('0x34'),_0x4ac2('0x64'),_0x4ac2('0x65'),_0x4ac2('0x66')]});}})[_0x4ac2('0x1e')](function(_0x41d02a){if(_0x41d02a){return{'count':_0x41d02a[_0x4ac2('0x29')],'rows':_[_0x4ac2('0x37')](_0x41d02a[_0x4ac2('0x50')],function(_0x89205d){return{'membername':_0x89205d[_0x4ac2('0x34')],'UserId':_0x89205d['id'],'queue_name':_0xc1f777[_0x4ac2('0x34')],'ChatQueueId':_0xc1f777['id'],'interface':util[_0x4ac2('0x67')](_0x4ac2('0x68'),_0x4ac2('0x69'),_0x89205d['name']),'penalty':0x0,'paused':_0x89205d[_0x4ac2('0x64')],'createdAt':_0x89205d[_0x4ac2('0x66')],'updatedAt':_0x89205d['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x160a4e,_0x489772))[_0x4ac2('0x26')](handleError(_0x160a4e,null));};exports[_0x4ac2('0x6a')]=function(_0x242205,_0x522e49,_0x3a21cd){var _0x88142b={};var _0x2ae42c={};var _0x3d1bf4;var _0x3cdb3f;return db[_0x4ac2('0x4e')][_0x4ac2('0x5d')]({'where':{'id':_0x242205[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x522e49,null))[_0x4ac2('0x1e')](function(_0x541f25){if(_0x541f25){_0x3d1bf4=_0x541f25;_0x2ae42c['model']=_[_0x4ac2('0x3e')](db[_0x4ac2('0x6b')][_0x4ac2('0x38')]);_0x2ae42c[_0x4ac2('0x3d')]=_[_0x4ac2('0x3e')](_0x242205[_0x4ac2('0x3d')]);_0x2ae42c[_0x4ac2('0x46')]=_[_0x4ac2('0x3f')](_0x2ae42c['model'],_0x2ae42c[_0x4ac2('0x3d')]);_0x88142b[_0x4ac2('0x40')]=_[_0x4ac2('0x3f')](_0x2ae42c[_0x4ac2('0x3c')],qs[_0x4ac2('0x41')](_0x242205['query'][_0x4ac2('0x41')]));_0x88142b[_0x4ac2('0x40')]=_0x88142b['attributes']['length']?_0x88142b['attributes']:_0x2ae42c[_0x4ac2('0x3c')];_0x88142b[_0x4ac2('0x44')]=qs[_0x4ac2('0x45')](_0x242205['query'][_0x4ac2('0x45')]);_0x88142b[_0x4ac2('0x49')]=qs['filters'](_['pick'](_0x242205[_0x4ac2('0x3d')],_0x2ae42c['filters']));if(_0x242205[_0x4ac2('0x3d')][_0x4ac2('0x48')]){_0x88142b[_0x4ac2('0x49')]=_[_0x4ac2('0x4a')](_0x88142b[_0x4ac2('0x49')],{'$or':_[_0x4ac2('0x37')](_0x88142b[_0x4ac2('0x40')],function(_0x100d57){var _0x55f8a3={};_0x55f8a3[_0x100d57]={'$like':'%'+_0x242205[_0x4ac2('0x3d')]['filter']+'%'};return _0x55f8a3;})});}_0x88142b=_[_0x4ac2('0x4a')]({},_0x88142b,_0x242205[_0x4ac2('0x4c')]);return _0x3d1bf4[_0x4ac2('0x6a')](_0x88142b);}})[_0x4ac2('0x1e')](function(_0x3595c3){if(_0x3595c3){_0x3cdb3f=_0x3595c3[_0x4ac2('0x42')];if(!_0x242205[_0x4ac2('0x3d')][_0x4ac2('0x60')](_0x4ac2('0x43'))){_0x88142b[_0x4ac2('0x2b')]=qs[_0x4ac2('0x2b')](_0x242205[_0x4ac2('0x3d')]['limit']);_0x88142b[_0x4ac2('0x2a')]=qs[_0x4ac2('0x2a')](_0x242205[_0x4ac2('0x3d')][_0x4ac2('0x2a')]);}return _0x3d1bf4['getTeams'](_0x88142b);}})[_0x4ac2('0x1e')](function(_0x34bafd){if(_0x34bafd){return _0x34bafd?{'count':_0x3cdb3f,'rows':_0x34bafd}:null;}})[_0x4ac2('0x1e')](respondWithResult(_0x522e49,null))[_0x4ac2('0x26')](handleError(_0x522e49,null));};exports['addTeams']=function(_0x3395a9,_0x515f8a,_0x1e9032){var _0x22c503=_0x3395a9[_0x4ac2('0x55')]['ids'];return db[_0x4ac2('0x6b')][_0x4ac2('0x4f')]({'where':{'id':_0x22c503},'attributes':['id'],'include':[{'model':db[_0x4ac2('0x6c')],'as':_0x4ac2('0x6d'),'attributes':['id',_0x4ac2('0x34'),_0x4ac2('0x6e'),_0x4ac2('0x6f'),_0x4ac2('0x70')],'raw':!![]}]})[_0x4ac2('0x1e')](function(_0x508402){if(_0x508402){var _0x1379b1=_[_0x4ac2('0x71')](_0x508402,function(_0x359b21){var _0x5e03af=_0x359b21['get']({'plain':!![]});return _0x5e03af[_0x4ac2('0x6d')];});return db[_0x4ac2('0x4e')][_0x4ac2('0x53')]({'where':{'id':_0x3395a9['params']['id']}})[_0x4ac2('0x1e')](function(_0x11f21b){return db['sequelize']['transaction'](function(_0x326ec5){return _0x11f21b[_0x4ac2('0x72')](_0x22c503,{'transaction':_0x326ec5})[_0x4ac2('0x1e')](function(){return BPromise[_0x4ac2('0x73')](_0x1379b1,function(_0x256c43){return db['UserChatQueue'][_0x4ac2('0x74')]({'where':{'UserId':_0x256c43['id'],'ChatQueueId':_0x3395a9[_0x4ac2('0x52')]['id']},'transaction':_0x326ec5});});})[_0x4ac2('0x1e')](function(){_0x1379b1['forEach'](function(_0x6141bc){socket[_0x4ac2('0x75')]('userChatQueue:save',{'UserId':_0x6141bc['id'],'ChatQueueId':_0x11f21b['id']});});});});});}})[_0x4ac2('0x1e')](respondWithStatusCode(_0x515f8a,null))['catch'](handleError(_0x515f8a,null));};exports[_0x4ac2('0x76')]=function(_0x450f67,_0x455185,_0x3786a6){return db[_0x4ac2('0x6b')][_0x4ac2('0x4f')]({'where':{'id':_0x450f67[_0x4ac2('0x3d')][_0x4ac2('0x77')]},'attributes':['id'],'include':[{'model':db[_0x4ac2('0x6c')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x4ac2('0x1e')](handleEntityNotFound(_0x455185,null))['then'](function(_0x66ee3f){var _0x3cb2ad=_[_0x4ac2('0x37')](_0x66ee3f,'id');var _0x262219=[];var _0x500e50=[];var _0x3eab9f=squel[_0x4ac2('0x78')]();_0x3eab9f[_0x4ac2('0x79')](_0x4ac2('0x7a'))[_0x4ac2('0x7b')](_0x4ac2('0x7c'),'tq')[_0x4ac2('0x7d')]('user_has_teams','ut',_0x4ac2('0x7e'))[_0x4ac2('0x49')](_0x4ac2('0x7f'),_0x450f67[_0x4ac2('0x52')]['id']);for(var _0x45ae01=0x0;_0x45ae01<_0x66ee3f[_0x4ac2('0x42')];_0x45ae01+=0x1){let _0x439c66=_0x66ee3f[_0x45ae01];for(var _0x4be2db=0x0;_0x4be2db<_0x439c66['Agents']['length'];_0x4be2db+=0x1){let _0x86f29e=_0x439c66[_0x4ac2('0x6d')][_0x4be2db];var _0x5d378e=_0x3eab9f[_0x4ac2('0x80')]();_0x5d378e[_0x4ac2('0x49')](_0x4ac2('0x81'),_0x86f29e['id']);_0x500e50[_0x4ac2('0x82')](db[_0x4ac2('0x83')]['query'](_0x5d378e[_0x4ac2('0x84')](),{'type':db['sequelize'][_0x4ac2('0x85')]['SELECT']})[_0x4ac2('0x1e')](function(_0x5d9831){if(_0x5d9831['length']===0x1){return _0x86f29e['id'];}else{var _0x57fcda=_[_0x4ac2('0x86')](_[_0x4ac2('0x37')](_0x5d9831,_0x4ac2('0x87')),function(_0x34a441){return _[_0x4ac2('0x88')](_0x3cb2ad,_0x34a441);});if(_0x57fcda){return _0x86f29e['id'];}}}));}}return BPromise[_0x4ac2('0x89')](_0x500e50)[_0x4ac2('0x1e')](function(_0x241cb4){_0x262219=_(_0x262219)['union'](_0x241cb4)['compact']()[_0x4ac2('0x8a')]();return db[_0x4ac2('0x4e')][_0x4ac2('0x53')]({'where':{'id':_0x450f67[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](function(_0xfb4c7a){return db['sequelize'][_0x4ac2('0x8b')](function(_0x32877a){return _0xfb4c7a[_0x4ac2('0x76')](_0x450f67['query'][_0x4ac2('0x77')],{'transaction':_0x32877a})[_0x4ac2('0x1e')](function(){if(!_[_0x4ac2('0x8c')](_0x262219)){return _0xfb4c7a[_0x4ac2('0x8d')](_0x262219,{'transaction':_0x32877a});}})[_0x4ac2('0x1e')](function(){_0x262219[_0x4ac2('0x8e')](function(_0x167b44){socket[_0x4ac2('0x75')](_0x4ac2('0x8f'),{'UserId':_0x167b44,'ChatQueueId':_0xfb4c7a['id']});});});});});});})[_0x4ac2('0x1e')](respondWithStatusCode(_0x455185,null))[_0x4ac2('0x26')](handleError(_0x455185,null));};exports[_0x4ac2('0x90')]=function(_0x345be4,_0x44678c,_0x131705){return db[_0x4ac2('0x4e')]['find']({'where':{'id':_0x345be4[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x44678c,null))[_0x4ac2('0x1e')](function(_0xaafecf){if(_0xaafecf){return _0xaafecf['addAgents'](_0x345be4[_0x4ac2('0x55')][_0x4ac2('0x77')],_[_0x4ac2('0x91')](_0x345be4['body'],[_0x4ac2('0x77'),'id'])||{})['spread'](function(_0x478cbe){for(var _0x432a6d=0x0;_0x432a6d<_0x345be4['body'][_0x4ac2('0x77')]['length'];_0x432a6d+=0x1){socket[_0x4ac2('0x75')](_0x4ac2('0x92'),{'UserId':_0x345be4[_0x4ac2('0x55')][_0x4ac2('0x77')][_0x432a6d],'ChatQueueId':_0x345be4[_0x4ac2('0x52')]['id']});}return _0x478cbe;});}})['then'](respondWithResult(_0x44678c,null))['catch'](handleError(_0x44678c,null));};exports['removeAgents']=function(_0x37787a,_0x111743,_0xc7cae){return db[_0x4ac2('0x4e')][_0x4ac2('0x53')]({'where':{'id':_0x37787a[_0x4ac2('0x52')]['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x111743,null))[_0x4ac2('0x1e')](function(_0x34e572){if(_0x34e572){return _0x34e572[_0x4ac2('0x8d')](_0x37787a['query'][_0x4ac2('0x77')])[_0x4ac2('0x1e')](function(){if(_[_0x4ac2('0x93')](_0x37787a[_0x4ac2('0x3d')]['ids'])){for(var _0x2eee2c=0x0;_0x2eee2c<_0x37787a['query'][_0x4ac2('0x77')][_0x4ac2('0x42')];_0x2eee2c+=0x1){socket[_0x4ac2('0x75')]('userChatQueue:remove',{'UserId':Number(_0x37787a[_0x4ac2('0x3d')][_0x4ac2('0x77')][_0x2eee2c]),'ChatQueueId':Number(_0x37787a[_0x4ac2('0x52')]['id'])});}}else{socket[_0x4ac2('0x75')]('userChatQueue:remove',{'UserId':Number(_0x37787a[_0x4ac2('0x3d')]['ids']),'ChatQueueId':Number(_0x37787a[_0x4ac2('0x52')]['id'])});}});}})[_0x4ac2('0x1e')](respondWithStatusCode(_0x111743,null))[_0x4ac2('0x26')](handleError(_0x111743,null));};exports['getAgents']=function(_0x3bf267,_0x320aea,_0x47098b){var _0x5c9067={};var _0xcf754e={};var _0x2dd28a;var _0x51b61f;return db[_0x4ac2('0x4e')][_0x4ac2('0x5d')]({'where':{'id':_0x3bf267['params']['id']}})[_0x4ac2('0x1e')](handleEntityNotFound(_0x320aea,null))[_0x4ac2('0x1e')](function(_0x3f5425){if(_0x3f5425){_0x2dd28a=_0x3f5425;_0xcf754e[_0x4ac2('0x3c')]=_[_0x4ac2('0x3e')](db[_0x4ac2('0x6c')]['rawAttributes']);_0xcf754e[_0x4ac2('0x3d')]=_[_0x4ac2('0x3e')](_0x3bf267['query']);_0xcf754e['filters']=_[_0x4ac2('0x3f')](_0xcf754e['model'],_0xcf754e['query']);_0x5c9067['attributes']=_[_0x4ac2('0x3f')](_0xcf754e[_0x4ac2('0x3c')],qs[_0x4ac2('0x41')](_0x3bf267[_0x4ac2('0x3d')][_0x4ac2('0x41')]));_0x5c9067[_0x4ac2('0x40')]=_0x5c9067[_0x4ac2('0x40')][_0x4ac2('0x42')]?_0x5c9067['attributes']:_0xcf754e[_0x4ac2('0x3c')];_0x5c9067[_0x4ac2('0x44')]=qs['sort'](_0x3bf267[_0x4ac2('0x3d')][_0x4ac2('0x45')]);_0x5c9067[_0x4ac2('0x49')]=qs[_0x4ac2('0x46')](_[_0x4ac2('0x47')](_0x3bf267[_0x4ac2('0x3d')],_0xcf754e[_0x4ac2('0x46')]));if(_0x3bf267[_0x4ac2('0x3d')][_0x4ac2('0x48')]){_0x5c9067[_0x4ac2('0x49')]=_[_0x4ac2('0x4a')](_0x5c9067['where'],{'$or':_[_0x4ac2('0x37')](_0x5c9067[_0x4ac2('0x40')],function(_0x15616f){var _0x2c3ab3={};_0x2c3ab3[_0x15616f]={'$like':'%'+_0x3bf267[_0x4ac2('0x3d')][_0x4ac2('0x48')]+'%'};return _0x2c3ab3;})});}_0x5c9067=_[_0x4ac2('0x4a')]({},_0x5c9067,_0x3bf267[_0x4ac2('0x4c')]);return _0x2dd28a[_0x4ac2('0x94')](_0x5c9067);}})[_0x4ac2('0x1e')](function(_0x1ba1c3){if(_0x1ba1c3){_0x51b61f=_0x1ba1c3['length'];if(!_0x3bf267['query'][_0x4ac2('0x60')](_0x4ac2('0x43'))){_0x5c9067['limit']=qs['limit'](_0x3bf267['query']['limit']);_0x5c9067[_0x4ac2('0x2a')]=qs[_0x4ac2('0x2a')](_0x3bf267[_0x4ac2('0x3d')][_0x4ac2('0x2a')]);}return _0x2dd28a[_0x4ac2('0x94')](_0x5c9067);}})[_0x4ac2('0x1e')](function(_0x3bb42c){if(_0x3bb42c){return _0x3bb42c?{'count':_0x51b61f,'rows':_0x3bb42c}:null;}})[_0x4ac2('0x1e')](respondWithResult(_0x320aea,null))['catch'](handleError(_0x320aea,null));};