e316b2c16d209b3e5440249e548214c66040f85e
[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 _0x655b=['Agents','online','voicePause','interface','flatMap','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','select','tq.TeamId','team_has_chat_queues','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','every','includes','all','union','compact','removeTeams','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','html-pdf','zip-dir','fast-json-patch','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','request','info','request\x20sent','debug','stringify','error','code','message','ChatQueue,\x20%s,\x20%s','result','catch','sendStatus','status','end','count','offset','set','json','apply','reject','update','get','ChatQueues','UserProfileResource','then','name','send','ChatQueue','rawAttributes','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','destroy','describe','getMembers','findOne','UserChatQueue','pick','ChatQueueId','User','findAndCountAll','agent','chatPause','createdAt','format','%s/%s','updatedAt','getTeams','addTeams','ids','Team'];(function(_0x52eb01,_0x5b68d8){var _0x2c157a=function(_0x1f7a7a){while(--_0x1f7a7a){_0x52eb01['push'](_0x52eb01['shift']());}};_0x2c157a(++_0x5b68d8);}(_0x655b,0x14e));var _0xb655=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x655b[_0x397e5f];return _0x5302b8;};'use strict';var pdf=require(_0xb655('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb655('0x1'));var jsonpatch=require(_0xb655('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb655('0x3'));var path=require(_0xb655('0x4'));var sox=require(_0xb655('0x5'));var csv=require(_0xb655('0x6'));var ejs=require(_0xb655('0x7'));var fs=require('fs');var _=require(_0xb655('0x8'));var squel=require(_0xb655('0x9'));var crypto=require('crypto');var jsforce=require(_0xb655('0xa'));var deskjs=require(_0xb655('0xb'));var toCsv=require('to-csv');var querystring=require(_0xb655('0xc'));var Papa=require(_0xb655('0xd'));var Redis=require(_0xb655('0xe'));var authService=require(_0xb655('0xf'));var qs=require(_0xb655('0x10'));var as=require(_0xb655('0x11'));var hardwareService=require(_0xb655('0x12'));var logger=require('../../config/logger')(_0xb655('0x13'));var utils=require('../../config/utils');var config=require(_0xb655('0x14'));var licenseUtil=require(_0xb655('0x15'));var db=require(_0xb655('0x16'))['db'];config[_0xb655('0x17')]=_[_0xb655('0x18')](config['redis'],{'host':_0xb655('0x19'),'port':0x18eb});var socket=require(_0xb655('0x1a'))(new Redis(config[_0xb655('0x17')]));require(_0xb655('0x1b'))[_0xb655('0x1c')](socket);var jayson=require(_0xb655('0x1d'));var client=jayson[_0xb655('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e2bfe,_0x3e9ffc,_0x19a5e7,_0x184e80){return new BPromise(function(_0xadb24e,_0x15da65){var _0x57b771=_0x184e80||client;return _0x57b771[_0xb655('0x1f')](_0x4e2bfe,_0x19a5e7)['then'](function(_0x3aff8d){logger[_0xb655('0x20')]('ChatQueue,\x20%s,\x20%s',_0x3e9ffc,_0xb655('0x21'));logger[_0xb655('0x22')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x3e9ffc,_0xb655('0x21'),JSON[_0xb655('0x23')](_0x3aff8d));if(_0x3aff8d[_0xb655('0x24')]){if(_0x3aff8d[_0xb655('0x24')][_0xb655('0x25')]===0x1f4){logger[_0xb655('0x24')]('ChatQueue,\x20%s,\x20%s',_0x3e9ffc,_0x3aff8d[_0xb655('0x24')][_0xb655('0x26')]);return _0x15da65(_0x3aff8d[_0xb655('0x24')][_0xb655('0x26')]);}logger['error'](_0xb655('0x27'),_0x3e9ffc,_0x3aff8d[_0xb655('0x24')][_0xb655('0x26')]);return _0xadb24e(_0x3aff8d['error'][_0xb655('0x26')]);}else{logger['info'](_0xb655('0x27'),_0x3e9ffc,_0xb655('0x21'));_0xadb24e(_0x3aff8d[_0xb655('0x28')][_0xb655('0x26')]);}})[_0xb655('0x29')](function(_0x365cee){logger[_0xb655('0x24')](_0xb655('0x27'),_0x3e9ffc,_0x365cee);_0x15da65(_0x365cee);});});}function respondWithStatusCode(_0x1a2ba0,_0x4d59b0){_0x4d59b0=_0x4d59b0||0xcc;return function(_0xe444b9){if(_0xe444b9){return _0x1a2ba0[_0xb655('0x2a')](_0x4d59b0);}return _0x1a2ba0[_0xb655('0x2b')](_0x4d59b0)[_0xb655('0x2c')]();};}function respondWithResult(_0x350f45,_0x2b2cef){_0x2b2cef=_0x2b2cef||0xc8;return function(_0x47ff90){if(_0x47ff90){return _0x350f45['status'](_0x2b2cef)['json'](_0x47ff90);}};}function respondWithFilteredResult(_0xa45347,_0x36c530){return function(_0x10df30){if(_0x10df30){var _0x84b70e=_0x10df30[_0xb655('0x2d')],_0x218e64=_0x36c530[_0xb655('0x2e')],_0x550208=_0x36c530[_0xb655('0x2e')]+_0x36c530['limit'],_0x3a01fd;if(_0x550208>=_0x84b70e){_0x550208=_0x84b70e;_0x3a01fd=0xc8;}else{_0x3a01fd=0xce;}_0xa45347['status'](_0x3a01fd);return _0xa45347[_0xb655('0x2f')]('Content-Range',_0x218e64+'-'+_0x550208+'/'+_0x84b70e)[_0xb655('0x30')](_0x10df30);}return null;};}function patchUpdates(_0x40ec9d){return function(_0x42fc7d){try{jsonpatch[_0xb655('0x31')](_0x42fc7d,_0x40ec9d,!![]);}catch(_0x1ec765){return BPromise[_0xb655('0x32')](_0x1ec765);}return _0x42fc7d['save']();};}function saveUpdates(_0x408409,_0x2a5ba3){return function(_0x16770b){if(_0x16770b){return _0x16770b[_0xb655('0x33')](_0x408409)['then'](function(_0x181724){return _0x181724;});}return null;};}function removeEntity(_0x4dadd2,_0x614d12){return function(_0x18df75){if(_0x18df75){return _0x18df75['destroy']()['then'](function(){var _0x25e0a0=_0x18df75[_0xb655('0x34')]({'plain':!![]});var _0x2cdae2=_0xb655('0x35');return db[_0xb655('0x36')]['destroy']({'where':{'type':_0x2cdae2,'resourceId':_0x25e0a0['id']}})[_0xb655('0x37')](function(){return _0x18df75;});})[_0xb655('0x37')](function(){_0x4dadd2['status'](0xcc)[_0xb655('0x2c')]();});}};}function handleEntityNotFound(_0x56b9fc,_0xbe3c62){return function(_0x232e4b){if(!_0x232e4b){_0x56b9fc[_0xb655('0x2a')](0x194);}return _0x232e4b;};}function handleError(_0x49626c,_0x2cdb29){_0x2cdb29=_0x2cdb29||0x1f4;return function(_0x2d8a2c){logger['error'](_0x2d8a2c['stack']);if(_0x2d8a2c[_0xb655('0x38')]){delete _0x2d8a2c[_0xb655('0x38')];}_0x49626c['status'](_0x2cdb29)[_0xb655('0x39')](_0x2d8a2c);};}exports['index']=function(_0x24d7c7,_0x2a99eb){var _0x28b537={},_0x3f2f05={},_0x235c0a={'count':0x0,'rows':[]};var _0xd24f3b=_['map'](db[_0xb655('0x3a')][_0xb655('0x3b')],function(_0x117f99){return{'name':_0x117f99['fieldName'],'type':_0x117f99['type'][_0xb655('0x3c')]};});_0x3f2f05[_0xb655('0x3d')]=_[_0xb655('0x3e')](_0xd24f3b,_0xb655('0x38'));_0x3f2f05[_0xb655('0x3f')]=_['keys'](_0x24d7c7[_0xb655('0x3f')]);_0x3f2f05[_0xb655('0x40')]=_[_0xb655('0x41')](_0x3f2f05[_0xb655('0x3d')],_0x3f2f05[_0xb655('0x3f')]);_0x28b537['attributes']=_[_0xb655('0x41')](_0x3f2f05[_0xb655('0x3d')],qs[_0xb655('0x42')](_0x24d7c7['query'][_0xb655('0x42')]));_0x28b537[_0xb655('0x43')]=_0x28b537['attributes'][_0xb655('0x44')]?_0x28b537[_0xb655('0x43')]:_0x3f2f05[_0xb655('0x3d')];if(!_0x24d7c7[_0xb655('0x3f')][_0xb655('0x45')](_0xb655('0x46'))){_0x28b537[_0xb655('0x47')]=qs['limit'](_0x24d7c7[_0xb655('0x3f')][_0xb655('0x47')]);_0x28b537[_0xb655('0x2e')]=qs[_0xb655('0x2e')](_0x24d7c7[_0xb655('0x3f')][_0xb655('0x2e')]);}_0x28b537[_0xb655('0x48')]=qs[_0xb655('0x49')](_0x24d7c7['query'][_0xb655('0x49')]);_0x28b537[_0xb655('0x4a')]=qs[_0xb655('0x40')](_['pick'](_0x24d7c7[_0xb655('0x3f')],_0x3f2f05[_0xb655('0x40')]),_0xd24f3b);if(_0x24d7c7['query'][_0xb655('0x4b')]){_0x28b537[_0xb655('0x4a')]=_[_0xb655('0x4c')](_0x28b537['where'],{'$or':_[_0xb655('0x3e')](_0xd24f3b,function(_0x2ba022){if(_0x2ba022['type']!==_0xb655('0x4d')){var _0x6d0912={};_0x6d0912[_0x2ba022[_0xb655('0x38')]]={'$like':'%'+_0x24d7c7[_0xb655('0x3f')]['filter']+'%'};return _0x6d0912;}})});}_0x28b537=_[_0xb655('0x4c')]({},_0x28b537,_0x24d7c7[_0xb655('0x4e')]);var _0x320f96={'where':_0x28b537['where']};return db['ChatQueue']['count'](_0x320f96)[_0xb655('0x37')](function(_0x307544){_0x235c0a['count']=_0x307544;if(_0x24d7c7[_0xb655('0x3f')][_0xb655('0x4f')]){_0x28b537[_0xb655('0x50')]=[{'all':!![]}];}return db['ChatQueue'][_0xb655('0x51')](_0x28b537);})['then'](function(_0x295531){_0x235c0a[_0xb655('0x52')]=_0x295531;return _0x235c0a;})[_0xb655('0x37')](respondWithFilteredResult(_0x2a99eb,_0x28b537))[_0xb655('0x29')](handleError(_0x2a99eb,null));};exports[_0xb655('0x53')]=function(_0xe70430,_0xe9e90b){var _0x446ab9={'raw':!![],'where':{'id':_0xe70430[_0xb655('0x54')]['id']}},_0x4cd66d={};_0x4cd66d[_0xb655('0x3d')]=_[_0xb655('0x55')](db[_0xb655('0x3a')][_0xb655('0x3b')]);_0x4cd66d['query']=_[_0xb655('0x55')](_0xe70430[_0xb655('0x3f')]);_0x4cd66d['filters']=_['intersection'](_0x4cd66d[_0xb655('0x3d')],_0x4cd66d[_0xb655('0x3f')]);_0x446ab9[_0xb655('0x43')]=_[_0xb655('0x41')](_0x4cd66d['model'],qs[_0xb655('0x42')](_0xe70430[_0xb655('0x3f')][_0xb655('0x42')]));_0x446ab9[_0xb655('0x43')]=_0x446ab9[_0xb655('0x43')][_0xb655('0x44')]?_0x446ab9['attributes']:_0x4cd66d[_0xb655('0x3d')];if(_0xe70430['query'][_0xb655('0x4f')]){_0x446ab9[_0xb655('0x50')]=[{'all':!![]}];}_0x446ab9=_[_0xb655('0x4c')]({},_0x446ab9,_0xe70430[_0xb655('0x4e')]);return db[_0xb655('0x3a')][_0xb655('0x56')](_0x446ab9)[_0xb655('0x37')](handleEntityNotFound(_0xe9e90b,null))[_0xb655('0x37')](respondWithResult(_0xe9e90b,null))[_0xb655('0x29')](handleError(_0xe9e90b,null));};exports['create']=function(_0x1cc0e2,_0xf20f60){return db[_0xb655('0x3a')][_0xb655('0x57')](_0x1cc0e2[_0xb655('0x58')],{})['then'](function(_0x35ef95){var _0x11b015=_0x1cc0e2[_0xb655('0x59')][_0xb655('0x34')]({'plain':!![]});if(!_0x11b015)throw new Error(_0xb655('0x5a'));if(_0x11b015[_0xb655('0x5b')]===_0xb655('0x59')){var _0x531076=_0x35ef95[_0xb655('0x34')]({'plain':!![]});var _0x4e101a=_0xb655('0x35');return db[_0xb655('0x5c')][_0xb655('0x56')]({'where':{'name':_0x4e101a,'userProfileId':_0x11b015['userProfileId']},'raw':!![]})[_0xb655('0x37')](function(_0x2b03f8){if(_0x2b03f8&&_0x2b03f8[_0xb655('0x5d')]===0x0){return db['UserProfileResource'][_0xb655('0x57')]({'name':_0x531076[_0xb655('0x38')],'resourceId':_0x531076['id'],'type':_0x2b03f8[_0xb655('0x38')],'sectionId':_0x2b03f8['id']},{})[_0xb655('0x37')](function(){return _0x35ef95;});}else{return _0x35ef95;}})[_0xb655('0x29')](function(_0x343ce2){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x343ce2);throw _0x343ce2;});}return _0x35ef95;})[_0xb655('0x37')](respondWithResult(_0xf20f60,0xc9))[_0xb655('0x29')](handleError(_0xf20f60,null));};exports['update']=function(_0x1066b,_0x2cefd7){if(_0x1066b[_0xb655('0x58')]['id']){delete _0x1066b['body']['id'];}return db['ChatQueue'][_0xb655('0x56')]({'where':{'id':_0x1066b[_0xb655('0x54')]['id']}})[_0xb655('0x37')](handleEntityNotFound(_0x2cefd7,null))['then'](saveUpdates(_0x1066b[_0xb655('0x58')],null))['then'](respondWithResult(_0x2cefd7,null))[_0xb655('0x29')](handleError(_0x2cefd7,null));};exports[_0xb655('0x5e')]=function(_0x472e72,_0x372c4a){return db[_0xb655('0x3a')]['find']({'where':{'id':_0x472e72[_0xb655('0x54')]['id']}})[_0xb655('0x37')](handleEntityNotFound(_0x372c4a,null))[_0xb655('0x37')](removeEntity(_0x372c4a,null))[_0xb655('0x29')](handleError(_0x372c4a,null));};exports[_0xb655('0x5f')]=function(_0x56f44e,_0xc0a385){return db[_0xb655('0x3a')][_0xb655('0x5f')]()[_0xb655('0x37')](respondWithResult(_0xc0a385,null))['catch'](handleError(_0xc0a385,null));};exports[_0xb655('0x60')]=function(_0x5a954f,_0x2e839a,_0x3f9cde){var _0x11ba33={'raw':!![],'where':{}},_0x118b88={},_0x13f676;return db[_0xb655('0x3a')][_0xb655('0x61')]({'where':{'id':_0x5a954f[_0xb655('0x54')]['id']}})['then'](handleEntityNotFound(_0x2e839a,null))[_0xb655('0x37')](function(_0x4e95d){if(_0x4e95d){_0x13f676=_0x4e95d[_0xb655('0x34')]({'plain':!![]});_0x118b88[_0xb655('0x3d')]=_[_0xb655('0x55')](db[_0xb655('0x62')][_0xb655('0x3b')]);_0x118b88[_0xb655('0x3f')]=_[_0xb655('0x55')](_0x5a954f[_0xb655('0x3f')]);_0x118b88[_0xb655('0x40')]=_[_0xb655('0x41')](_0x118b88[_0xb655('0x3d')],_0x118b88[_0xb655('0x3f')]);_0x11ba33['attributes']=_[_0xb655('0x41')](_0x118b88[_0xb655('0x3d')],qs[_0xb655('0x42')](_0x5a954f['query'][_0xb655('0x42')]));_0x11ba33[_0xb655('0x43')]=_0x11ba33['attributes'][_0xb655('0x44')]?_0x11ba33[_0xb655('0x43')]:_0x118b88[_0xb655('0x3d')];if(!_0x5a954f[_0xb655('0x3f')][_0xb655('0x45')]('nolimit')){_0x11ba33[_0xb655('0x47')]=qs[_0xb655('0x47')](_0x5a954f[_0xb655('0x3f')][_0xb655('0x47')]);_0x11ba33['offset']=qs[_0xb655('0x2e')](_0x5a954f['query'][_0xb655('0x2e')]);}_0x11ba33[_0xb655('0x48')]=qs[_0xb655('0x49')](_0x5a954f[_0xb655('0x3f')][_0xb655('0x49')]);_0x11ba33[_0xb655('0x4a')]=qs[_0xb655('0x40')](_[_0xb655('0x63')](_0x5a954f[_0xb655('0x3f')],_0x118b88[_0xb655('0x40')]));_0x11ba33[_0xb655('0x4a')][_0xb655('0x64')]=_0x4e95d['id'];if(_0x5a954f[_0xb655('0x3f')][_0xb655('0x4b')]){_0x11ba33['where']=_[_0xb655('0x4c')](_0x11ba33[_0xb655('0x4a')],{'$or':_[_0xb655('0x3e')](_0x11ba33[_0xb655('0x43')],function(_0x10db5a){var _0x5101fc={};_0x5101fc[_0x10db5a]={'$like':'%'+_0x5a954f['query']['filter']+'%'};return _0x5101fc;})});}_0x11ba33=_[_0xb655('0x4c')]({},_0x11ba33,_0x5a954f['options']);return db[_0xb655('0x62')][_0xb655('0x51')](_0x11ba33);}})[_0xb655('0x37')](function(_0x3bcdff){if(_0x3bcdff){return db[_0xb655('0x65')][_0xb655('0x66')]({'where':{'id':_[_0xb655('0x3e')](_0x3bcdff,'UserId'),'role':_0xb655('0x67')},'attributes':['id',_0xb655('0x38'),_0xb655('0x68'),'updatedAt',_0xb655('0x69')]});}})[_0xb655('0x37')](function(_0x8f684b){if(_0x8f684b){return{'count':_0x8f684b['count'],'rows':_[_0xb655('0x3e')](_0x8f684b['rows'],function(_0x53dc92){return{'membername':_0x53dc92[_0xb655('0x38')],'UserId':_0x53dc92['id'],'queue_name':_0x13f676[_0xb655('0x38')],'ChatQueueId':_0x13f676['id'],'interface':util[_0xb655('0x6a')](_0xb655('0x6b'),'SIP',_0x53dc92[_0xb655('0x38')]),'penalty':0x0,'paused':_0x53dc92[_0xb655('0x68')],'createdAt':_0x53dc92[_0xb655('0x69')],'updatedAt':_0x53dc92[_0xb655('0x6c')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x2e839a,_0x11ba33))[_0xb655('0x29')](handleError(_0x2e839a,null));};exports[_0xb655('0x6d')]=function(_0x476718,_0xf99f0b,_0xd71698){var _0x200ad8={};var _0x2b0bfb={};var _0x23fd96;var _0x3843b9;return db['ChatQueue'][_0xb655('0x61')]({'where':{'id':_0x476718[_0xb655('0x54')]['id']}})['then'](handleEntityNotFound(_0xf99f0b,null))[_0xb655('0x37')](function(_0xcc3979){if(_0xcc3979){_0x23fd96=_0xcc3979;_0x2b0bfb[_0xb655('0x3d')]=_['keys'](db['Team'][_0xb655('0x3b')]);_0x2b0bfb[_0xb655('0x3f')]=_['keys'](_0x476718['query']);_0x2b0bfb[_0xb655('0x40')]=_['intersection'](_0x2b0bfb['model'],_0x2b0bfb[_0xb655('0x3f')]);_0x200ad8['attributes']=_[_0xb655('0x41')](_0x2b0bfb['model'],qs['fields'](_0x476718[_0xb655('0x3f')][_0xb655('0x42')]));_0x200ad8['attributes']=_0x200ad8['attributes'][_0xb655('0x44')]?_0x200ad8[_0xb655('0x43')]:_0x2b0bfb[_0xb655('0x3d')];_0x200ad8[_0xb655('0x48')]=qs['sort'](_0x476718[_0xb655('0x3f')][_0xb655('0x49')]);_0x200ad8[_0xb655('0x4a')]=qs['filters'](_[_0xb655('0x63')](_0x476718[_0xb655('0x3f')],_0x2b0bfb['filters']));if(_0x476718[_0xb655('0x3f')][_0xb655('0x4b')]){_0x200ad8[_0xb655('0x4a')]=_['merge'](_0x200ad8[_0xb655('0x4a')],{'$or':_[_0xb655('0x3e')](_0x200ad8['attributes'],function(_0x22dcc8){var _0x6e74a1={};_0x6e74a1[_0x22dcc8]={'$like':'%'+_0x476718['query']['filter']+'%'};return _0x6e74a1;})});}_0x200ad8=_[_0xb655('0x4c')]({},_0x200ad8,_0x476718['options']);return _0x23fd96['getTeams'](_0x200ad8);}})[_0xb655('0x37')](function(_0x56eb96){if(_0x56eb96){_0x3843b9=_0x56eb96['length'];if(!_0x476718['query'][_0xb655('0x45')]('nolimit')){_0x200ad8[_0xb655('0x47')]=qs[_0xb655('0x47')](_0x476718['query'][_0xb655('0x47')]);_0x200ad8[_0xb655('0x2e')]=qs[_0xb655('0x2e')](_0x476718[_0xb655('0x3f')][_0xb655('0x2e')]);}return _0x23fd96[_0xb655('0x6d')](_0x200ad8);}})[_0xb655('0x37')](function(_0x5f3b4c){if(_0x5f3b4c){return _0x5f3b4c?{'count':_0x3843b9,'rows':_0x5f3b4c}:null;}})['then'](respondWithResult(_0xf99f0b,null))[_0xb655('0x29')](handleError(_0xf99f0b,null));};exports[_0xb655('0x6e')]=function(_0x4ba4ec,_0xd338d5,_0x4d030d){var _0x268bda=_0x4ba4ec['body'][_0xb655('0x6f')];return db[_0xb655('0x70')][_0xb655('0x51')]({'where':{'id':_0x268bda},'attributes':['id'],'include':[{'model':db['User'],'as':_0xb655('0x71'),'attributes':['id','name',_0xb655('0x72'),_0xb655('0x73'),_0xb655('0x74')],'raw':!![]}]})['then'](function(_0x3ee335){if(_0x3ee335){var _0x24de8a=_[_0xb655('0x75')](_0x3ee335,function(_0x33c808){var _0x166344=_0x33c808[_0xb655('0x34')]({'plain':!![]});return _0x166344[_0xb655('0x71')];});return db['ChatQueue'][_0xb655('0x56')]({'where':{'id':_0x4ba4ec[_0xb655('0x54')]['id']}})[_0xb655('0x37')](function(_0x3995b4){return db['sequelize'][_0xb655('0x76')](function(_0x21c12a){return _0x3995b4[_0xb655('0x6e')](_0x268bda,{'transaction':_0x21c12a})['then'](function(){return BPromise[_0xb655('0x77')](_0x24de8a,function(_0x56de30){return db[_0xb655('0x62')][_0xb655('0x78')]({'where':{'UserId':_0x56de30['id'],'ChatQueueId':_0x4ba4ec[_0xb655('0x54')]['id']},'transaction':_0x21c12a});});})[_0xb655('0x37')](function(){_0x24de8a[_0xb655('0x79')](function(_0x597dfb){socket[_0xb655('0x7a')](_0xb655('0x7b'),{'UserId':_0x597dfb['id'],'ChatQueueId':_0x3995b4['id']});});});});});}})[_0xb655('0x37')](respondWithStatusCode(_0xd338d5,null))[_0xb655('0x29')](handleError(_0xd338d5,null));};exports['removeTeams']=function(_0x4c2b2d,_0x28f04b,_0x35ae4b){return db[_0xb655('0x70')][_0xb655('0x51')]({'where':{'id':_0x4c2b2d['query'][_0xb655('0x6f')]},'attributes':['id'],'include':[{'model':db[_0xb655('0x65')],'as':_0xb655('0x71'),'attributes':['id'],'raw':!![]}]})[_0xb655('0x37')](handleEntityNotFound(_0x28f04b,null))['then'](function(_0x4c3e71){var _0x2990e4=_[_0xb655('0x3e')](_0x4c3e71,'id');var _0x2adfbe=[];var _0x29ce30=[];var _0xde2e2c=squel[_0xb655('0x7c')]();_0xde2e2c['field'](_0xb655('0x7d'))['from'](_0xb655('0x7e'),'tq')['join']('user_has_teams','ut',_0xb655('0x7f'))[_0xb655('0x4a')](_0xb655('0x80'),_0x4c2b2d['params']['id']);for(var _0x582586=0x0;_0x582586<_0x4c3e71[_0xb655('0x44')];_0x582586+=0x1){let _0xdf7874=_0x4c3e71[_0x582586];for(var _0x5be732=0x0;_0x5be732<_0xdf7874[_0xb655('0x71')][_0xb655('0x44')];_0x5be732+=0x1){let _0x27a5fb=_0xdf7874['Agents'][_0x5be732];var _0x5356d1=_0xde2e2c[_0xb655('0x81')]();_0x5356d1[_0xb655('0x4a')](_0xb655('0x82'),_0x27a5fb['id']);_0x29ce30[_0xb655('0x83')](db[_0xb655('0x84')]['query'](_0x5356d1[_0xb655('0x85')](),{'type':db[_0xb655('0x84')][_0xb655('0x86')]['SELECT']})['then'](function(_0x467496){if(_0x467496[_0xb655('0x44')]===0x1){return _0x27a5fb['id'];}else{var _0x2a9a87=_[_0xb655('0x87')](_[_0xb655('0x3e')](_0x467496,'TeamId'),function(_0x1ea39d){return _[_0xb655('0x88')](_0x2990e4,_0x1ea39d);});if(_0x2a9a87){return _0x27a5fb['id'];}}}));}}return BPromise[_0xb655('0x89')](_0x29ce30)[_0xb655('0x37')](function(_0x1d6ed1){_0x2adfbe=_(_0x2adfbe)[_0xb655('0x8a')](_0x1d6ed1)[_0xb655('0x8b')]()['value']();return db[_0xb655('0x3a')]['find']({'where':{'id':_0x4c2b2d[_0xb655('0x54')]['id']}})[_0xb655('0x37')](function(_0x51db58){return db[_0xb655('0x84')][_0xb655('0x76')](function(_0x5c4e1f){return _0x51db58[_0xb655('0x8c')](_0x4c2b2d[_0xb655('0x3f')][_0xb655('0x6f')],{'transaction':_0x5c4e1f})[_0xb655('0x37')](function(){if(!_[_0xb655('0x8d')](_0x2adfbe)){return _0x51db58[_0xb655('0x8e')](_0x2adfbe,{'transaction':_0x5c4e1f});}})[_0xb655('0x37')](function(){_0x2adfbe['forEach'](function(_0x224213){socket[_0xb655('0x7a')](_0xb655('0x8f'),{'UserId':_0x224213,'ChatQueueId':_0x51db58['id']});});});});});});})[_0xb655('0x37')](respondWithStatusCode(_0x28f04b,null))[_0xb655('0x29')](handleError(_0x28f04b,null));};exports[_0xb655('0x90')]=function(_0x1ece85,_0x16e72b,_0x16da68){return db[_0xb655('0x3a')][_0xb655('0x56')]({'where':{'id':_0x1ece85['params']['id']}})['then'](handleEntityNotFound(_0x16e72b,null))['then'](function(_0x37642a){if(_0x37642a){return _0x37642a[_0xb655('0x90')](_0x1ece85['body'][_0xb655('0x6f')],_[_0xb655('0x91')](_0x1ece85[_0xb655('0x58')],['ids','id'])||{})[_0xb655('0x92')](function(_0x140d1c){for(var _0x42d389=0x0;_0x42d389<_0x1ece85[_0xb655('0x58')]['ids'][_0xb655('0x44')];_0x42d389+=0x1){socket[_0xb655('0x7a')]('userChatQueue:save',{'UserId':_0x1ece85[_0xb655('0x58')][_0xb655('0x6f')][_0x42d389],'ChatQueueId':_0x1ece85[_0xb655('0x54')]['id']});}return _0x140d1c;});}})[_0xb655('0x37')](respondWithResult(_0x16e72b,null))[_0xb655('0x29')](handleError(_0x16e72b,null));};exports['removeAgents']=function(_0x4c0da5,_0x329bc0,_0x4eaf2b){return db[_0xb655('0x3a')][_0xb655('0x56')]({'where':{'id':_0x4c0da5[_0xb655('0x54')]['id']}})[_0xb655('0x37')](handleEntityNotFound(_0x329bc0,null))[_0xb655('0x37')](function(_0x4f35b7){if(_0x4f35b7){return _0x4f35b7[_0xb655('0x8e')](_0x4c0da5[_0xb655('0x3f')][_0xb655('0x6f')])[_0xb655('0x37')](function(){if(_[_0xb655('0x93')](_0x4c0da5[_0xb655('0x3f')][_0xb655('0x6f')])){for(var _0x37091a=0x0;_0x37091a<_0x4c0da5[_0xb655('0x3f')][_0xb655('0x6f')][_0xb655('0x44')];_0x37091a+=0x1){socket['emit']('userChatQueue:remove',{'UserId':Number(_0x4c0da5[_0xb655('0x3f')][_0xb655('0x6f')][_0x37091a]),'ChatQueueId':Number(_0x4c0da5[_0xb655('0x54')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x4c0da5[_0xb655('0x3f')][_0xb655('0x6f')]),'ChatQueueId':Number(_0x4c0da5[_0xb655('0x54')]['id'])});}});}})[_0xb655('0x37')](respondWithStatusCode(_0x329bc0,null))['catch'](handleError(_0x329bc0,null));};exports['getAgents']=function(_0xd62470,_0x17dd4c,_0x4e6a0e){var _0x2fb382={};var _0x47d1fe={};var _0x25436a;var _0x25ecd6;return db[_0xb655('0x3a')][_0xb655('0x61')]({'where':{'id':_0xd62470[_0xb655('0x54')]['id']}})[_0xb655('0x37')](handleEntityNotFound(_0x17dd4c,null))[_0xb655('0x37')](function(_0x37df47){if(_0x37df47){_0x25436a=_0x37df47;_0x47d1fe[_0xb655('0x3d')]=_['keys'](db['User'][_0xb655('0x3b')]);_0x47d1fe[_0xb655('0x3f')]=_[_0xb655('0x55')](_0xd62470[_0xb655('0x3f')]);_0x47d1fe[_0xb655('0x40')]=_[_0xb655('0x41')](_0x47d1fe['model'],_0x47d1fe[_0xb655('0x3f')]);_0x2fb382[_0xb655('0x43')]=_[_0xb655('0x41')](_0x47d1fe[_0xb655('0x3d')],qs[_0xb655('0x42')](_0xd62470[_0xb655('0x3f')][_0xb655('0x42')]));_0x2fb382[_0xb655('0x43')]=_0x2fb382[_0xb655('0x43')]['length']?_0x2fb382[_0xb655('0x43')]:_0x47d1fe[_0xb655('0x3d')];_0x2fb382[_0xb655('0x48')]=qs[_0xb655('0x49')](_0xd62470[_0xb655('0x3f')][_0xb655('0x49')]);_0x2fb382[_0xb655('0x4a')]=qs[_0xb655('0x40')](_['pick'](_0xd62470[_0xb655('0x3f')],_0x47d1fe[_0xb655('0x40')]));if(_0xd62470[_0xb655('0x3f')][_0xb655('0x4b')]){_0x2fb382['where']=_['merge'](_0x2fb382[_0xb655('0x4a')],{'$or':_[_0xb655('0x3e')](_0x2fb382['attributes'],function(_0x164d89){var _0x598203={};_0x598203[_0x164d89]={'$like':'%'+_0xd62470[_0xb655('0x3f')]['filter']+'%'};return _0x598203;})});}_0x2fb382=_[_0xb655('0x4c')]({},_0x2fb382,_0xd62470['options']);return _0x25436a[_0xb655('0x94')](_0x2fb382);}})[_0xb655('0x37')](function(_0x27c5c1){if(_0x27c5c1){_0x25ecd6=_0x27c5c1[_0xb655('0x44')];if(!_0xd62470[_0xb655('0x3f')][_0xb655('0x45')](_0xb655('0x46'))){_0x2fb382['limit']=qs['limit'](_0xd62470[_0xb655('0x3f')][_0xb655('0x47')]);_0x2fb382[_0xb655('0x2e')]=qs[_0xb655('0x2e')](_0xd62470[_0xb655('0x3f')][_0xb655('0x2e')]);}return _0x25436a[_0xb655('0x94')](_0x2fb382);}})[_0xb655('0x37')](function(_0x1d735c){if(_0x1d735c){return _0x1d735c?{'count':_0x25ecd6,'rows':_0x1d735c}:null;}})[_0xb655('0x37')](respondWithResult(_0x17dd4c,null))[_0xb655('0x29')](handleError(_0x17dd4c,null));};