Built motion from commit a61a4a20.|2.5.46
[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 _0x5309=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','request','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','json','offset','limit','undefined','count','Content-Range','apply','save','update','then','get','ChatQueues','destroy','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','UserChatQueue','hasOwnProperty','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','findOne','Team','ids','Agents','voicePause','interface','flatMap','sequelize','transaction','addTeams','each','emit','userChatQueue:save','select','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','value','isEmpty','removeAgents','forEach','userChatQueue:remove','addAgents','spread','getAgents','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse'];(function(_0x57966a,_0x477964){var _0x191765=function(_0x106a01){while(--_0x106a01){_0x57966a['push'](_0x57966a['shift']());}};_0x191765(++_0x477964);}(_0x5309,0x1be));var _0x9530=function(_0xa6cc5c,_0x239c99){_0xa6cc5c=_0xa6cc5c-0x0;var _0x44803d=_0x5309[_0xa6cc5c];return _0x44803d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9530('0x0'));var zipdir=require(_0x9530('0x1'));var jsonpatch=require(_0x9530('0x2'));var rp=require('request-promise');var moment=require(_0x9530('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x9530('0x4'));var util=require(_0x9530('0x5'));var path=require('path');var sox=require(_0x9530('0x6'));var csv=require('to-csv');var ejs=require(_0x9530('0x7'));var fs=require('fs');var fs_extra=require(_0x9530('0x8'));var _=require(_0x9530('0x9'));var squel=require('squel');var crypto=require(_0x9530('0xa'));var jsforce=require(_0x9530('0xb'));var deskjs=require(_0x9530('0xc'));var toCsv=require(_0x9530('0xd'));var querystring=require(_0x9530('0xe'));var Papa=require(_0x9530('0xf'));var Redis=require(_0x9530('0x10'));var authService=require(_0x9530('0x11'));var qs=require(_0x9530('0x12'));var as=require(_0x9530('0x13'));var hardwareService=require(_0x9530('0x14'));var logger=require(_0x9530('0x15'))(_0x9530('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9530('0x17'));var db=require(_0x9530('0x18'))['db'];config[_0x9530('0x19')]=_[_0x9530('0x1a')](config[_0x9530('0x19')],{'host':_0x9530('0x1b'),'port':0x18eb});var socket=require(_0x9530('0x1c'))(new Redis(config[_0x9530('0x19')]));require(_0x9530('0x1d'))[_0x9530('0x1e')](socket);var jayson=require(_0x9530('0x1f'));var client=jayson['client'][_0x9530('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x228d22,_0x4b2fbd,_0x3f5c81,_0x1e7e8a){return new BPromise(function(_0x40b955,_0x288349){var _0x522dbd=_0x1e7e8a||client;return _0x522dbd[_0x9530('0x21')](_0x228d22,_0x3f5c81)['then'](function(_0x35b51f){logger[_0x9530('0x22')](_0x9530('0x23'),_0x4b2fbd,_0x9530('0x24'));logger[_0x9530('0x25')](_0x9530('0x26'),_0x4b2fbd,_0x9530('0x24'),JSON[_0x9530('0x27')](_0x35b51f));if(_0x35b51f['error']){if(_0x35b51f[_0x9530('0x28')][_0x9530('0x29')]===0x1f4){logger['error'](_0x9530('0x23'),_0x4b2fbd,_0x35b51f[_0x9530('0x28')][_0x9530('0x2a')]);return _0x288349(_0x35b51f[_0x9530('0x28')][_0x9530('0x2a')]);}logger[_0x9530('0x28')](_0x9530('0x23'),_0x4b2fbd,_0x35b51f[_0x9530('0x28')]['message']);return _0x40b955(_0x35b51f[_0x9530('0x28')][_0x9530('0x2a')]);}else{logger[_0x9530('0x22')](_0x9530('0x23'),_0x4b2fbd,'request\x20sent');_0x40b955(_0x35b51f['result'][_0x9530('0x2a')]);}})[_0x9530('0x2b')](function(_0x144e80){logger[_0x9530('0x28')]('ChatQueue,\x20%s,\x20%s',_0x4b2fbd,_0x144e80);_0x288349(_0x144e80);});});}function respondWithStatusCode(_0x2f82b4,_0x4f26fe){_0x4f26fe=_0x4f26fe||0xcc;return function(_0x15a53b){if(_0x15a53b){return _0x2f82b4[_0x9530('0x2c')](_0x4f26fe);}return _0x2f82b4[_0x9530('0x2d')](_0x4f26fe)['end']();};}function respondWithResult(_0x3d7a58,_0x29ccdf){_0x29ccdf=_0x29ccdf||0xc8;return function(_0x42d6f8){if(_0x42d6f8){return _0x3d7a58[_0x9530('0x2d')](_0x29ccdf)[_0x9530('0x2e')](_0x42d6f8);}};}function respondWithFilteredResult(_0x5d79fc,_0x4cc12f){return function(_0x212b59){if(_0x212b59){var _0x3e45b9=typeof _0x4cc12f[_0x9530('0x2f')]==='undefined'&&typeof _0x4cc12f[_0x9530('0x30')]===_0x9530('0x31');var _0x592455=_0x212b59[_0x9530('0x32')];var _0x55a24d=_0x3e45b9?0x0:_0x4cc12f[_0x9530('0x2f')];var _0x31b93a=_0x3e45b9?_0x212b59[_0x9530('0x32')]:_0x4cc12f[_0x9530('0x2f')]+_0x4cc12f[_0x9530('0x30')];var _0x42c038;if(_0x31b93a>=_0x592455){_0x31b93a=_0x592455;_0x42c038=0xc8;}else{_0x42c038=0xce;}_0x5d79fc[_0x9530('0x2d')](_0x42c038);return _0x5d79fc['set'](_0x9530('0x33'),_0x55a24d+'-'+_0x31b93a+'/'+_0x592455)['json'](_0x212b59);}return null;};}function patchUpdates(_0x31544a){return function(_0x5076a2){try{jsonpatch[_0x9530('0x34')](_0x5076a2,_0x31544a,!![]);}catch(_0x9d521e){return BPromise['reject'](_0x9d521e);}return _0x5076a2[_0x9530('0x35')]();};}function saveUpdates(_0x176c1f,_0x5e73ea){return function(_0x5070a0){if(_0x5070a0){return _0x5070a0[_0x9530('0x36')](_0x176c1f)['then'](function(_0x3e68cd){return _0x3e68cd;});}return null;};}function removeEntity(_0x189904,_0x325578){return function(_0x4ce3d3){if(_0x4ce3d3){return _0x4ce3d3['destroy']()[_0x9530('0x37')](function(){var _0x1f9cc0=_0x4ce3d3[_0x9530('0x38')]({'plain':!![]});var _0x593e2a=_0x9530('0x39');return db['UserProfileResource'][_0x9530('0x3a')]({'where':{'type':_0x593e2a,'resourceId':_0x1f9cc0['id']}})[_0x9530('0x37')](function(){return _0x4ce3d3;});})[_0x9530('0x37')](function(){_0x189904[_0x9530('0x2d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4fd533,_0x160a7a){return function(_0x152b34){if(!_0x152b34){_0x4fd533['sendStatus'](0x194);}return _0x152b34;};}function handleError(_0xe6ce1a,_0x45a9d7){_0x45a9d7=_0x45a9d7||0x1f4;return function(_0x3c2932){logger['error'](_0x3c2932[_0x9530('0x3b')]);if(_0x3c2932[_0x9530('0x3c')]){delete _0x3c2932[_0x9530('0x3c')];}_0xe6ce1a['status'](_0x45a9d7)[_0x9530('0x3d')](_0x3c2932);};}exports[_0x9530('0x3e')]=function(_0x5f3fd8,_0x3a6128){var _0x4bc68f={},_0x13342c={},_0x300891={'count':0x0,'rows':[]};var _0x42d2fd=_[_0x9530('0x3f')](db[_0x9530('0x40')][_0x9530('0x41')],function(_0x2b5ae6){return{'name':_0x2b5ae6[_0x9530('0x42')],'type':_0x2b5ae6[_0x9530('0x43')][_0x9530('0x44')]};});_0x13342c[_0x9530('0x45')]=_['map'](_0x42d2fd,_0x9530('0x3c'));_0x13342c[_0x9530('0x46')]=_['keys'](_0x5f3fd8[_0x9530('0x46')]);_0x13342c[_0x9530('0x47')]=_[_0x9530('0x48')](_0x13342c[_0x9530('0x45')],_0x13342c['query']);_0x4bc68f['attributes']=_[_0x9530('0x48')](_0x13342c[_0x9530('0x45')],qs[_0x9530('0x49')](_0x5f3fd8['query'][_0x9530('0x49')]));_0x4bc68f[_0x9530('0x4a')]=_0x4bc68f[_0x9530('0x4a')][_0x9530('0x4b')]?_0x4bc68f['attributes']:_0x13342c[_0x9530('0x45')];if(!_0x5f3fd8['query']['hasOwnProperty'](_0x9530('0x4c'))){_0x4bc68f[_0x9530('0x30')]=qs[_0x9530('0x30')](_0x5f3fd8['query'][_0x9530('0x30')]);_0x4bc68f[_0x9530('0x2f')]=qs['offset'](_0x5f3fd8['query'][_0x9530('0x2f')]);}_0x4bc68f[_0x9530('0x4d')]=qs[_0x9530('0x4e')](_0x5f3fd8['query'][_0x9530('0x4e')]);_0x4bc68f[_0x9530('0x4f')]=qs['filters'](_[_0x9530('0x50')](_0x5f3fd8[_0x9530('0x46')],_0x13342c['filters']),_0x42d2fd);if(_0x5f3fd8['query'][_0x9530('0x51')]){_0x4bc68f[_0x9530('0x4f')]=_[_0x9530('0x52')](_0x4bc68f['where'],{'$or':_[_0x9530('0x3f')](_0x42d2fd,function(_0x49c89e){if(_0x49c89e[_0x9530('0x43')]!==_0x9530('0x53')){var _0x9d3fb4={};_0x9d3fb4[_0x49c89e[_0x9530('0x3c')]]={'$like':'%'+_0x5f3fd8[_0x9530('0x46')][_0x9530('0x51')]+'%'};return _0x9d3fb4;}})});}_0x4bc68f=_[_0x9530('0x52')]({},_0x4bc68f,_0x5f3fd8[_0x9530('0x54')]);var _0x13c742={'where':_0x4bc68f[_0x9530('0x4f')]};return db[_0x9530('0x40')][_0x9530('0x32')](_0x13c742)[_0x9530('0x37')](function(_0xcce7c6){_0x300891[_0x9530('0x32')]=_0xcce7c6;if(_0x5f3fd8[_0x9530('0x46')][_0x9530('0x55')]){_0x4bc68f[_0x9530('0x56')]=[{'all':!![]}];}return db[_0x9530('0x40')][_0x9530('0x57')](_0x4bc68f);})[_0x9530('0x37')](function(_0x3eaff8){_0x300891[_0x9530('0x58')]=_0x3eaff8;return _0x300891;})[_0x9530('0x37')](respondWithFilteredResult(_0x3a6128,_0x4bc68f))[_0x9530('0x2b')](handleError(_0x3a6128,null));};exports['show']=function(_0x25b521,_0x1f49a1){var _0x36185a={'raw':!![],'where':{'id':_0x25b521['params']['id']}},_0x314fb6={};_0x314fb6[_0x9530('0x45')]=_[_0x9530('0x59')](db[_0x9530('0x40')][_0x9530('0x41')]);_0x314fb6[_0x9530('0x46')]=_[_0x9530('0x59')](_0x25b521[_0x9530('0x46')]);_0x314fb6[_0x9530('0x47')]=_[_0x9530('0x48')](_0x314fb6['model'],_0x314fb6[_0x9530('0x46')]);_0x36185a[_0x9530('0x4a')]=_['intersection'](_0x314fb6[_0x9530('0x45')],qs[_0x9530('0x49')](_0x25b521[_0x9530('0x46')]['fields']));_0x36185a[_0x9530('0x4a')]=_0x36185a[_0x9530('0x4a')][_0x9530('0x4b')]?_0x36185a[_0x9530('0x4a')]:_0x314fb6['model'];if(_0x25b521[_0x9530('0x46')][_0x9530('0x55')]){_0x36185a[_0x9530('0x56')]=[{'all':!![]}];}_0x36185a=_['merge']({},_0x36185a,_0x25b521[_0x9530('0x54')]);return db[_0x9530('0x40')][_0x9530('0x5a')](_0x36185a)[_0x9530('0x37')](handleEntityNotFound(_0x1f49a1,null))[_0x9530('0x37')](respondWithResult(_0x1f49a1,null))['catch'](handleError(_0x1f49a1,null));};exports[_0x9530('0x5b')]=function(_0x9685fd,_0x309dd2){return db[_0x9530('0x40')]['create'](_0x9685fd[_0x9530('0x5c')],{})[_0x9530('0x37')](function(_0x4987f7){var _0x1124df=_0x9685fd[_0x9530('0x5d')]['get']({'plain':!![]});if(!_0x1124df)throw new Error(_0x9530('0x5e'));if(_0x1124df[_0x9530('0x5f')]==='user'){var _0x21d043=_0x4987f7[_0x9530('0x38')]({'plain':!![]});var _0x5e55f9='ChatQueues';return db[_0x9530('0x60')]['find']({'where':{'name':_0x5e55f9,'userProfileId':_0x1124df[_0x9530('0x61')]},'raw':!![]})[_0x9530('0x37')](function(_0x58803f){if(_0x58803f&&_0x58803f[_0x9530('0x62')]===0x0){return db['UserProfileResource'][_0x9530('0x5b')]({'name':_0x21d043[_0x9530('0x3c')],'resourceId':_0x21d043['id'],'type':_0x58803f[_0x9530('0x3c')],'sectionId':_0x58803f['id']},{})[_0x9530('0x37')](function(){return _0x4987f7;});}else{return _0x4987f7;}})[_0x9530('0x2b')](function(_0x16c5fd){logger['error'](_0x9530('0x63'),_0x16c5fd);throw _0x16c5fd;});}return _0x4987f7;})[_0x9530('0x37')](respondWithResult(_0x309dd2,0xc9))[_0x9530('0x2b')](handleError(_0x309dd2,null));};exports[_0x9530('0x36')]=function(_0x409c29,_0x384aad){if(_0x409c29[_0x9530('0x5c')]['id']){delete _0x409c29[_0x9530('0x5c')]['id'];}return db[_0x9530('0x40')]['find']({'where':{'id':_0x409c29[_0x9530('0x64')]['id']}})['then'](handleEntityNotFound(_0x384aad,null))[_0x9530('0x37')](saveUpdates(_0x409c29[_0x9530('0x5c')],null))[_0x9530('0x37')](respondWithResult(_0x384aad,null))[_0x9530('0x2b')](handleError(_0x384aad,null));};exports[_0x9530('0x3a')]=function(_0x572601,_0x248153){return db[_0x9530('0x40')][_0x9530('0x5a')]({'where':{'id':_0x572601[_0x9530('0x64')]['id']}})['then'](handleEntityNotFound(_0x248153,null))[_0x9530('0x37')](removeEntity(_0x248153,null))[_0x9530('0x2b')](handleError(_0x248153,null));};exports[_0x9530('0x65')]=function(_0x539220,_0x4b4bda){return db[_0x9530('0x40')][_0x9530('0x65')]()[_0x9530('0x37')](respondWithResult(_0x4b4bda,null))[_0x9530('0x2b')](handleError(_0x4b4bda,null));};exports[_0x9530('0x66')]=function(_0x4830e6,_0x19ee01,_0x40a2e0){var _0x3a0c71={'raw':!![],'where':{}},_0x22fd5d={},_0x3337eb;return db[_0x9530('0x40')]['findOne']({'where':{'id':_0x4830e6['params']['id']}})[_0x9530('0x37')](handleEntityNotFound(_0x19ee01,null))['then'](function(_0x258672){if(_0x258672){_0x3337eb=_0x258672[_0x9530('0x38')]({'plain':!![]});_0x22fd5d[_0x9530('0x45')]=_[_0x9530('0x59')](db[_0x9530('0x67')][_0x9530('0x41')]);_0x22fd5d['query']=_[_0x9530('0x59')](_0x4830e6[_0x9530('0x46')]);_0x22fd5d['filters']=_[_0x9530('0x48')](_0x22fd5d[_0x9530('0x45')],_0x22fd5d[_0x9530('0x46')]);_0x3a0c71[_0x9530('0x4a')]=_[_0x9530('0x48')](_0x22fd5d[_0x9530('0x45')],qs[_0x9530('0x49')](_0x4830e6['query'][_0x9530('0x49')]));_0x3a0c71[_0x9530('0x4a')]=_0x3a0c71[_0x9530('0x4a')]['length']?_0x3a0c71['attributes']:_0x22fd5d['model'];if(!_0x4830e6[_0x9530('0x46')][_0x9530('0x68')](_0x9530('0x4c'))){_0x3a0c71[_0x9530('0x30')]=qs[_0x9530('0x30')](_0x4830e6['query'][_0x9530('0x30')]);_0x3a0c71[_0x9530('0x2f')]=qs[_0x9530('0x2f')](_0x4830e6[_0x9530('0x46')]['offset']);}_0x3a0c71[_0x9530('0x4d')]=qs['sort'](_0x4830e6[_0x9530('0x46')][_0x9530('0x4e')]);_0x3a0c71['where']=qs['filters'](_['pick'](_0x4830e6[_0x9530('0x46')],_0x22fd5d[_0x9530('0x47')]));_0x3a0c71[_0x9530('0x4f')][_0x9530('0x69')]=_0x258672['id'];if(_0x4830e6['query'][_0x9530('0x51')]){_0x3a0c71['where']=_[_0x9530('0x52')](_0x3a0c71[_0x9530('0x4f')],{'$or':_[_0x9530('0x3f')](_0x3a0c71[_0x9530('0x4a')],function(_0x4d34f0){var _0xee87c4={};_0xee87c4[_0x4d34f0]={'$like':'%'+_0x4830e6[_0x9530('0x46')][_0x9530('0x51')]+'%'};return _0xee87c4;})});}_0x3a0c71=_[_0x9530('0x52')]({},_0x3a0c71,_0x4830e6[_0x9530('0x54')]);return db[_0x9530('0x67')]['findAll'](_0x3a0c71);}})[_0x9530('0x37')](function(_0x4d317d){if(_0x4d317d){return db[_0x9530('0x6a')][_0x9530('0x6b')]({'where':{'id':_['map'](_0x4d317d,_0x9530('0x6c')),'role':_0x9530('0x6d')},'attributes':['id',_0x9530('0x3c'),_0x9530('0x6e'),'updatedAt',_0x9530('0x6f')]});}})[_0x9530('0x37')](function(_0x2ef2fe){if(_0x2ef2fe){return{'count':_0x2ef2fe[_0x9530('0x32')],'rows':_[_0x9530('0x3f')](_0x2ef2fe[_0x9530('0x58')],function(_0x9b5cd5){return{'membername':_0x9b5cd5[_0x9530('0x3c')],'UserId':_0x9b5cd5['id'],'queue_name':_0x3337eb[_0x9530('0x3c')],'ChatQueueId':_0x3337eb['id'],'interface':util[_0x9530('0x70')](_0x9530('0x71'),_0x9530('0x72'),_0x9b5cd5[_0x9530('0x3c')]),'penalty':0x0,'paused':_0x9b5cd5[_0x9530('0x6e')],'createdAt':_0x9b5cd5[_0x9530('0x6f')],'updatedAt':_0x9b5cd5[_0x9530('0x73')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9530('0x37')](respondWithFilteredResult(_0x19ee01,_0x3a0c71))[_0x9530('0x2b')](handleError(_0x19ee01,null));};exports[_0x9530('0x74')]=function(_0x34a272,_0x3a4b91,_0x20656e){var _0x4ca030={};var _0x2c2377={};var _0x3bb4c9;var _0x4ed9d9;return db['ChatQueue'][_0x9530('0x75')]({'where':{'id':_0x34a272['params']['id']}})[_0x9530('0x37')](handleEntityNotFound(_0x3a4b91,null))['then'](function(_0x56d12c){if(_0x56d12c){_0x3bb4c9=_0x56d12c;_0x2c2377[_0x9530('0x45')]=_['keys'](db[_0x9530('0x76')][_0x9530('0x41')]);_0x2c2377[_0x9530('0x46')]=_['keys'](_0x34a272[_0x9530('0x46')]);_0x2c2377['filters']=_[_0x9530('0x48')](_0x2c2377[_0x9530('0x45')],_0x2c2377[_0x9530('0x46')]);_0x4ca030[_0x9530('0x4a')]=_[_0x9530('0x48')](_0x2c2377[_0x9530('0x45')],qs[_0x9530('0x49')](_0x34a272['query'][_0x9530('0x49')]));_0x4ca030[_0x9530('0x4a')]=_0x4ca030[_0x9530('0x4a')][_0x9530('0x4b')]?_0x4ca030[_0x9530('0x4a')]:_0x2c2377[_0x9530('0x45')];_0x4ca030['order']=qs[_0x9530('0x4e')](_0x34a272[_0x9530('0x46')][_0x9530('0x4e')]);_0x4ca030['where']=qs[_0x9530('0x47')](_[_0x9530('0x50')](_0x34a272[_0x9530('0x46')],_0x2c2377[_0x9530('0x47')]));if(_0x34a272[_0x9530('0x46')][_0x9530('0x51')]){_0x4ca030[_0x9530('0x4f')]=_[_0x9530('0x52')](_0x4ca030[_0x9530('0x4f')],{'$or':_[_0x9530('0x3f')](_0x4ca030[_0x9530('0x4a')],function(_0x1dd528){var _0x20a6d7={};_0x20a6d7[_0x1dd528]={'$like':'%'+_0x34a272[_0x9530('0x46')]['filter']+'%'};return _0x20a6d7;})});}_0x4ca030=_[_0x9530('0x52')]({},_0x4ca030,_0x34a272[_0x9530('0x54')]);return _0x3bb4c9['getTeams'](_0x4ca030);}})[_0x9530('0x37')](function(_0x3cd9bc){if(_0x3cd9bc){_0x4ed9d9=_0x3cd9bc[_0x9530('0x4b')];if(!_0x34a272[_0x9530('0x46')][_0x9530('0x68')](_0x9530('0x4c'))){_0x4ca030[_0x9530('0x30')]=qs[_0x9530('0x30')](_0x34a272[_0x9530('0x46')][_0x9530('0x30')]);_0x4ca030[_0x9530('0x2f')]=qs['offset'](_0x34a272[_0x9530('0x46')][_0x9530('0x2f')]);}return _0x3bb4c9[_0x9530('0x74')](_0x4ca030);}})[_0x9530('0x37')](function(_0x93ae68){if(_0x93ae68){return _0x93ae68?{'count':_0x4ed9d9,'rows':_0x93ae68}:null;}})['then'](respondWithResult(_0x3a4b91,null))[_0x9530('0x2b')](handleError(_0x3a4b91,null));};exports['addTeams']=function(_0x564b76,_0x5dc84d,_0x518f66){var _0x273c50=_0x564b76['body'][_0x9530('0x77')];return db[_0x9530('0x76')][_0x9530('0x57')]({'where':{'id':_0x273c50},'attributes':['id'],'include':[{'model':db['User'],'as':_0x9530('0x78'),'attributes':['id',_0x9530('0x3c'),'online',_0x9530('0x79'),_0x9530('0x7a')],'raw':!![]}]})[_0x9530('0x37')](function(_0x49abee){if(_0x49abee){var _0x11804d=_[_0x9530('0x7b')](_0x49abee,function(_0x56c015){var _0x47aee8=_0x56c015['get']({'plain':!![]});return _0x47aee8[_0x9530('0x78')];});return db[_0x9530('0x40')][_0x9530('0x5a')]({'where':{'id':_0x564b76[_0x9530('0x64')]['id']}})[_0x9530('0x37')](function(_0x299a7f){return db[_0x9530('0x7c')][_0x9530('0x7d')](function(_0x52d34b){return _0x299a7f[_0x9530('0x7e')](_0x273c50,{'transaction':_0x52d34b})['then'](function(){return BPromise[_0x9530('0x7f')](_0x11804d,function(_0xbde60){return db[_0x9530('0x67')]['findOrCreate']({'where':{'UserId':_0xbde60['id'],'ChatQueueId':_0x564b76[_0x9530('0x64')]['id']},'transaction':_0x52d34b});});})[_0x9530('0x37')](function(){_0x11804d['forEach'](function(_0x268568){socket[_0x9530('0x80')](_0x9530('0x81'),{'UserId':_0x268568['id'],'ChatQueueId':_0x299a7f['id']});});});});});}})[_0x9530('0x37')](respondWithStatusCode(_0x5dc84d,null))[_0x9530('0x2b')](handleError(_0x5dc84d,null));};exports['removeTeams']=function(_0x338502,_0x1ebe1e,_0x279deb){return db[_0x9530('0x76')][_0x9530('0x57')]({'where':{'id':_0x338502[_0x9530('0x46')][_0x9530('0x77')]},'attributes':['id'],'include':[{'model':db[_0x9530('0x6a')],'as':_0x9530('0x78'),'attributes':['id'],'raw':!![]}]})[_0x9530('0x37')](handleEntityNotFound(_0x1ebe1e,null))[_0x9530('0x37')](function(_0x37df86){var _0xb0364f=_[_0x9530('0x3f')](_0x37df86,'id');var _0x3fbebb=[];var _0x34cb50=[];var _0x175874=squel[_0x9530('0x82')]();_0x175874['field']('tq.TeamId')['from'](_0x9530('0x83'),'tq')[_0x9530('0x84')](_0x9530('0x85'),'ut',_0x9530('0x86'))[_0x9530('0x4f')](_0x9530('0x87'),_0x338502[_0x9530('0x64')]['id']);for(var _0x3315f0=0x0;_0x3315f0<_0x37df86[_0x9530('0x4b')];_0x3315f0+=0x1){let _0x23c20d=_0x37df86[_0x3315f0];for(var _0x1f63b2=0x0;_0x1f63b2<_0x23c20d[_0x9530('0x78')][_0x9530('0x4b')];_0x1f63b2+=0x1){let _0x280feb=_0x23c20d['Agents'][_0x1f63b2];var _0x53a273=_0x175874[_0x9530('0x88')]();_0x53a273[_0x9530('0x4f')](_0x9530('0x89'),_0x280feb['id']);_0x34cb50[_0x9530('0x8a')](db[_0x9530('0x7c')][_0x9530('0x46')](_0x53a273[_0x9530('0x8b')](),{'type':db[_0x9530('0x7c')][_0x9530('0x8c')][_0x9530('0x8d')]})[_0x9530('0x37')](function(_0x31e4e8){if(_0x31e4e8[_0x9530('0x4b')]===0x1){return _0x280feb['id'];}else{var _0x545cd6=_[_0x9530('0x8e')](_[_0x9530('0x3f')](_0x31e4e8,_0x9530('0x8f')),function(_0x266ec3){return _[_0x9530('0x90')](_0xb0364f,_0x266ec3);});if(_0x545cd6){return _0x280feb['id'];}}}));}}return BPromise[_0x9530('0x91')](_0x34cb50)['then'](function(_0x3a3066){_0x3fbebb=_(_0x3fbebb)['union'](_0x3a3066)['compact']()[_0x9530('0x92')]();return db[_0x9530('0x40')][_0x9530('0x5a')]({'where':{'id':_0x338502[_0x9530('0x64')]['id']}})['then'](function(_0x276852){return db[_0x9530('0x7c')][_0x9530('0x7d')](function(_0x200564){return _0x276852['removeTeams'](_0x338502[_0x9530('0x46')][_0x9530('0x77')],{'transaction':_0x200564})[_0x9530('0x37')](function(){if(!_[_0x9530('0x93')](_0x3fbebb)){return _0x276852[_0x9530('0x94')](_0x3fbebb,{'transaction':_0x200564});}})[_0x9530('0x37')](function(){_0x3fbebb[_0x9530('0x95')](function(_0x39ccde){socket[_0x9530('0x80')](_0x9530('0x96'),{'UserId':_0x39ccde,'ChatQueueId':_0x276852['id']});});});});});});})['then'](respondWithStatusCode(_0x1ebe1e,null))[_0x9530('0x2b')](handleError(_0x1ebe1e,null));};exports[_0x9530('0x97')]=function(_0x469b5b,_0x1c8005,_0x125ac2){return db[_0x9530('0x40')][_0x9530('0x5a')]({'where':{'id':_0x469b5b[_0x9530('0x64')]['id']}})[_0x9530('0x37')](handleEntityNotFound(_0x1c8005,null))['then'](function(_0x383701){if(_0x383701){return _0x383701[_0x9530('0x97')](_0x469b5b[_0x9530('0x5c')][_0x9530('0x77')],_['omit'](_0x469b5b[_0x9530('0x5c')],[_0x9530('0x77'),'id'])||{})[_0x9530('0x98')](function(_0x1f95ba){for(var _0x45aab5=0x0;_0x45aab5<_0x469b5b[_0x9530('0x5c')]['ids'][_0x9530('0x4b')];_0x45aab5+=0x1){socket[_0x9530('0x80')](_0x9530('0x81'),{'UserId':Number(_0x469b5b[_0x9530('0x5c')]['ids'][_0x45aab5]),'ChatQueueId':Number(_0x469b5b[_0x9530('0x64')]['id'])});}return _0x1f95ba;});}})[_0x9530('0x37')](respondWithResult(_0x1c8005,null))['catch'](handleError(_0x1c8005,null));};exports[_0x9530('0x94')]=function(_0x15e4db,_0x20fdca,_0xd25bc3){return db[_0x9530('0x40')][_0x9530('0x5a')]({'where':{'id':_0x15e4db[_0x9530('0x64')]['id']}})['then'](handleEntityNotFound(_0x20fdca,null))[_0x9530('0x37')](function(_0x5785ea){if(_0x5785ea){return _0x5785ea[_0x9530('0x94')](_0x15e4db[_0x9530('0x46')][_0x9530('0x77')])['then'](function(){if(_['isArray'](_0x15e4db[_0x9530('0x46')][_0x9530('0x77')])){for(var _0x41a4e4=0x0;_0x41a4e4<_0x15e4db['query'][_0x9530('0x77')][_0x9530('0x4b')];_0x41a4e4+=0x1){socket[_0x9530('0x80')](_0x9530('0x96'),{'UserId':Number(_0x15e4db['query'][_0x9530('0x77')][_0x41a4e4]),'ChatQueueId':Number(_0x15e4db[_0x9530('0x64')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x15e4db[_0x9530('0x46')][_0x9530('0x77')]),'ChatQueueId':Number(_0x15e4db[_0x9530('0x64')]['id'])});}});}})['then'](respondWithStatusCode(_0x20fdca,null))[_0x9530('0x2b')](handleError(_0x20fdca,null));};exports[_0x9530('0x99')]=function(_0x3dc44c,_0x257527,_0x1f7f23){var _0x5ec505={};var _0x472a3b={};var _0x10581c;var _0xf3a63e;return db[_0x9530('0x40')][_0x9530('0x75')]({'where':{'id':_0x3dc44c[_0x9530('0x64')]['id']}})['then'](handleEntityNotFound(_0x257527,null))[_0x9530('0x37')](function(_0x51b9f9){if(_0x51b9f9){_0x10581c=_0x51b9f9;_0x472a3b[_0x9530('0x45')]=_[_0x9530('0x59')](db[_0x9530('0x6a')][_0x9530('0x41')]);_0x472a3b[_0x9530('0x46')]=_[_0x9530('0x59')](_0x3dc44c[_0x9530('0x46')]);_0x472a3b[_0x9530('0x47')]=_[_0x9530('0x48')](_0x472a3b[_0x9530('0x45')],_0x472a3b[_0x9530('0x46')]);_0x5ec505[_0x9530('0x4a')]=_['intersection'](_0x472a3b['model'],qs['fields'](_0x3dc44c[_0x9530('0x46')][_0x9530('0x49')]));_0x5ec505['attributes']=_0x5ec505[_0x9530('0x4a')][_0x9530('0x4b')]?_0x5ec505[_0x9530('0x4a')]:_0x472a3b[_0x9530('0x45')];_0x5ec505[_0x9530('0x4d')]=qs[_0x9530('0x4e')](_0x3dc44c['query'][_0x9530('0x4e')]);_0x5ec505[_0x9530('0x4f')]=qs[_0x9530('0x47')](_[_0x9530('0x50')](_0x3dc44c[_0x9530('0x46')],_0x472a3b['filters']));if(_0x3dc44c[_0x9530('0x46')][_0x9530('0x51')]){_0x5ec505[_0x9530('0x4f')]=_['merge'](_0x5ec505[_0x9530('0x4f')],{'$or':_[_0x9530('0x3f')](_0x5ec505['attributes'],function(_0x3f9988){var _0x3ae4e9={};_0x3ae4e9[_0x3f9988]={'$like':'%'+_0x3dc44c[_0x9530('0x46')][_0x9530('0x51')]+'%'};return _0x3ae4e9;})});}_0x5ec505=_[_0x9530('0x52')]({},_0x5ec505,_0x3dc44c[_0x9530('0x54')]);return _0x10581c[_0x9530('0x99')](_0x5ec505);}})['then'](function(_0x21309d){if(_0x21309d){_0xf3a63e=_0x21309d[_0x9530('0x4b')];if(!_0x3dc44c[_0x9530('0x46')][_0x9530('0x68')](_0x9530('0x4c'))){_0x5ec505['limit']=qs[_0x9530('0x30')](_0x3dc44c[_0x9530('0x46')][_0x9530('0x30')]);_0x5ec505[_0x9530('0x2f')]=qs['offset'](_0x3dc44c['query']['offset']);}return _0x10581c['getAgents'](_0x5ec505);}})[_0x9530('0x37')](function(_0x5c2e9d){if(_0x5c2e9d){return _0x5c2e9d?{'count':_0xf3a63e,'rows':_0x5c2e9d}:null;}})[_0x9530('0x37')](respondWithResult(_0x257527,null))['catch'](handleError(_0x257527,null));};