4d77b436e34d2b5f90d8991e985b8a7a76608c6e
[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 _0xad00=['./chatQueue.socket','register','client','http','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','update','then','destroy','get','UserProfileResource','stack','name','send','ChatQueue','rawAttributes','type','key','map','query','keys','model','attributes','intersection','fields','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','rows','show','length','include','find','create','user','role','ChatQueues','UserProfileSection','userProfileId','autoAssociation','body','params','describe','getMembers','findOne','UserChatQueue','order','ChatQueueId','findAll','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','ids','Agents','online','voicePause','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','push','QueryTypes','every','includes','all','compact','value','removeTeams','removeAgents','userChatQueue:remove','addAgents','omit','userChatQueue:save','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter'];(function(_0x5bc5fe,_0x2afaef){var _0x298ea7=function(_0x1c6bd5){while(--_0x1c6bd5){_0x5bc5fe['push'](_0x5bc5fe['shift']());}};_0x298ea7(++_0x2afaef);}(_0xad00,0x7b));var _0x0ad0=function(_0x218994,_0x2cf487){_0x218994=_0x218994-0x0;var _0x3f350b=_0xad00[_0x218994];return _0x3f350b;};'use strict';var emlformat=require(_0x0ad0('0x0'));var rimraf=require(_0x0ad0('0x1'));var zipdir=require(_0x0ad0('0x2'));var jsonpatch=require(_0x0ad0('0x3'));var rp=require(_0x0ad0('0x4'));var moment=require('moment');var BPromise=require(_0x0ad0('0x5'));var Mustache=require(_0x0ad0('0x6'));var util=require('util');var path=require(_0x0ad0('0x7'));var sox=require(_0x0ad0('0x8'));var csv=require(_0x0ad0('0x9'));var ejs=require(_0x0ad0('0xa'));var fs=require('fs');var fs_extra=require(_0x0ad0('0xb'));var _=require(_0x0ad0('0xc'));var squel=require('squel');var crypto=require(_0x0ad0('0xd'));var jsforce=require(_0x0ad0('0xe'));var deskjs=require(_0x0ad0('0xf'));var toCsv=require(_0x0ad0('0x9'));var querystring=require(_0x0ad0('0x10'));var Papa=require(_0x0ad0('0x11'));var Redis=require('ioredis');var authService=require(_0x0ad0('0x12'));var qs=require(_0x0ad0('0x13'));var as=require(_0x0ad0('0x14'));var hardwareService=require(_0x0ad0('0x15'));var logger=require('../../config/logger')(_0x0ad0('0x16'));var utils=require(_0x0ad0('0x17'));var config=require(_0x0ad0('0x18'));var licenseUtil=require(_0x0ad0('0x19'));var db=require('../../mysqldb')['db'];config[_0x0ad0('0x1a')]=_[_0x0ad0('0x1b')](config[_0x0ad0('0x1a')],{'host':_0x0ad0('0x1c'),'port':0x18eb});var socket=require(_0x0ad0('0x1d'))(new Redis(config[_0x0ad0('0x1a')]));require(_0x0ad0('0x1e'))[_0x0ad0('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0x0ad0('0x20')][_0x0ad0('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x16eba6,_0xd1f951,_0x211c09,_0xc42305){return new BPromise(function(_0x4e69ad,_0x13bb17){var _0x2b1160=_0xc42305||client;return _0x2b1160['request'](_0x16eba6,_0x211c09)['then'](function(_0x3ae9bc){logger[_0x0ad0('0x22')](_0x0ad0('0x23'),_0xd1f951,_0x0ad0('0x24'));logger[_0x0ad0('0x25')](_0x0ad0('0x26'),_0xd1f951,_0x0ad0('0x24'),JSON[_0x0ad0('0x27')](_0x3ae9bc));if(_0x3ae9bc['error']){if(_0x3ae9bc[_0x0ad0('0x28')]['code']===0x1f4){logger['error'](_0x0ad0('0x23'),_0xd1f951,_0x3ae9bc['error'][_0x0ad0('0x29')]);return _0x13bb17(_0x3ae9bc[_0x0ad0('0x28')][_0x0ad0('0x29')]);}logger[_0x0ad0('0x28')](_0x0ad0('0x23'),_0xd1f951,_0x3ae9bc['error'][_0x0ad0('0x29')]);return _0x4e69ad(_0x3ae9bc[_0x0ad0('0x28')][_0x0ad0('0x29')]);}else{logger['info'](_0x0ad0('0x23'),_0xd1f951,_0x0ad0('0x24'));_0x4e69ad(_0x3ae9bc[_0x0ad0('0x2a')][_0x0ad0('0x29')]);}})[_0x0ad0('0x2b')](function(_0x468341){logger['error'](_0x0ad0('0x23'),_0xd1f951,_0x468341);_0x13bb17(_0x468341);});});}function respondWithStatusCode(_0x3abecd,_0x1b69af){_0x1b69af=_0x1b69af||0xcc;return function(_0x47a3eb){if(_0x47a3eb){return _0x3abecd[_0x0ad0('0x2c')](_0x1b69af);}return _0x3abecd[_0x0ad0('0x2d')](_0x1b69af)[_0x0ad0('0x2e')]();};}function respondWithResult(_0x208a8d,_0x5d8410){_0x5d8410=_0x5d8410||0xc8;return function(_0x340de9){if(_0x340de9){return _0x208a8d[_0x0ad0('0x2d')](_0x5d8410)['json'](_0x340de9);}};}function respondWithFilteredResult(_0x45bbc6,_0x5a6c07){return function(_0x3b4dd7){if(_0x3b4dd7){var _0x581478=_0x3b4dd7[_0x0ad0('0x2f')],_0x4587c3=_0x5a6c07[_0x0ad0('0x30')],_0x402747=_0x5a6c07[_0x0ad0('0x30')]+_0x5a6c07[_0x0ad0('0x31')],_0x2ed63a;if(_0x402747>=_0x581478){_0x402747=_0x581478;_0x2ed63a=0xc8;}else{_0x2ed63a=0xce;}_0x45bbc6[_0x0ad0('0x2d')](_0x2ed63a);return _0x45bbc6[_0x0ad0('0x32')](_0x0ad0('0x33'),_0x4587c3+'-'+_0x402747+'/'+_0x581478)[_0x0ad0('0x34')](_0x3b4dd7);}return null;};}function patchUpdates(_0x2d65be){return function(_0x35819e){try{jsonpatch[_0x0ad0('0x35')](_0x35819e,_0x2d65be,!![]);}catch(_0x1fe336){return BPromise[_0x0ad0('0x36')](_0x1fe336);}return _0x35819e['save']();};}function saveUpdates(_0x240dc2,_0x24b70d){return function(_0x5fdab){if(_0x5fdab){return _0x5fdab[_0x0ad0('0x37')](_0x240dc2)[_0x0ad0('0x38')](function(_0x2a73b4){return _0x2a73b4;});}return null;};}function removeEntity(_0x27fedd,_0xe5c1f0){return function(_0x402740){if(_0x402740){return _0x402740[_0x0ad0('0x39')]()[_0x0ad0('0x38')](function(){var _0x4bca8e=_0x402740[_0x0ad0('0x3a')]({'plain':!![]});var _0x47e781='ChatQueues';return db[_0x0ad0('0x3b')][_0x0ad0('0x39')]({'where':{'type':_0x47e781,'resourceId':_0x4bca8e['id']}})[_0x0ad0('0x38')](function(){return _0x402740;});})[_0x0ad0('0x38')](function(){_0x27fedd['status'](0xcc)[_0x0ad0('0x2e')]();});}};}function handleEntityNotFound(_0x44ab6f,_0x1f596c){return function(_0x446ffd){if(!_0x446ffd){_0x44ab6f[_0x0ad0('0x2c')](0x194);}return _0x446ffd;};}function handleError(_0x4d6661,_0x4d605c){_0x4d605c=_0x4d605c||0x1f4;return function(_0x34bda3){logger['error'](_0x34bda3[_0x0ad0('0x3c')]);if(_0x34bda3[_0x0ad0('0x3d')]){delete _0x34bda3[_0x0ad0('0x3d')];}_0x4d6661[_0x0ad0('0x2d')](_0x4d605c)[_0x0ad0('0x3e')](_0x34bda3);};}exports['index']=function(_0x3c4316,_0x3816c6){var _0x165262={},_0x1b9104={},_0x5617c5={'count':0x0,'rows':[]};var _0x1d8033=_['map'](db[_0x0ad0('0x3f')][_0x0ad0('0x40')],function(_0x318c26){return{'name':_0x318c26['fieldName'],'type':_0x318c26[_0x0ad0('0x41')][_0x0ad0('0x42')]};});_0x1b9104['model']=_[_0x0ad0('0x43')](_0x1d8033,_0x0ad0('0x3d'));_0x1b9104[_0x0ad0('0x44')]=_[_0x0ad0('0x45')](_0x3c4316['query']);_0x1b9104['filters']=_['intersection'](_0x1b9104[_0x0ad0('0x46')],_0x1b9104[_0x0ad0('0x44')]);_0x165262[_0x0ad0('0x47')]=_[_0x0ad0('0x48')](_0x1b9104[_0x0ad0('0x46')],qs['fields'](_0x3c4316[_0x0ad0('0x44')][_0x0ad0('0x49')]));_0x165262['attributes']=_0x165262[_0x0ad0('0x47')]['length']?_0x165262[_0x0ad0('0x47')]:_0x1b9104[_0x0ad0('0x46')];if(!_0x3c4316[_0x0ad0('0x44')][_0x0ad0('0x4a')](_0x0ad0('0x4b'))){_0x165262[_0x0ad0('0x31')]=qs[_0x0ad0('0x31')](_0x3c4316[_0x0ad0('0x44')][_0x0ad0('0x31')]);_0x165262[_0x0ad0('0x30')]=qs[_0x0ad0('0x30')](_0x3c4316['query'][_0x0ad0('0x30')]);}_0x165262['order']=qs[_0x0ad0('0x4c')](_0x3c4316['query'][_0x0ad0('0x4c')]);_0x165262['where']=qs[_0x0ad0('0x4d')](_[_0x0ad0('0x4e')](_0x3c4316[_0x0ad0('0x44')],_0x1b9104['filters']),_0x1d8033);if(_0x3c4316[_0x0ad0('0x44')][_0x0ad0('0x4f')]){_0x165262[_0x0ad0('0x50')]=_[_0x0ad0('0x51')](_0x165262[_0x0ad0('0x50')],{'$or':_[_0x0ad0('0x43')](_0x1d8033,function(_0x434256){if(_0x434256['type']!==_0x0ad0('0x52')){var _0x44b1f5={};_0x44b1f5[_0x434256['name']]={'$like':'%'+_0x3c4316[_0x0ad0('0x44')][_0x0ad0('0x4f')]+'%'};return _0x44b1f5;}})});}_0x165262=_[_0x0ad0('0x51')]({},_0x165262,_0x3c4316[_0x0ad0('0x53')]);var _0xe9c3e4={'where':_0x165262['where']};return db[_0x0ad0('0x3f')]['count'](_0xe9c3e4)[_0x0ad0('0x38')](function(_0x211371){_0x5617c5[_0x0ad0('0x2f')]=_0x211371;if(_0x3c4316['query'][_0x0ad0('0x54')]){_0x165262['include']=[{'all':!![]}];}return db[_0x0ad0('0x3f')]['findAll'](_0x165262);})[_0x0ad0('0x38')](function(_0x48daad){_0x5617c5[_0x0ad0('0x55')]=_0x48daad;return _0x5617c5;})['then'](respondWithFilteredResult(_0x3816c6,_0x165262))['catch'](handleError(_0x3816c6,null));};exports[_0x0ad0('0x56')]=function(_0x23f402,_0x17e14f){var _0x111b2b={'raw':!![],'where':{'id':_0x23f402['params']['id']}},_0x3fd317={};_0x3fd317[_0x0ad0('0x46')]=_[_0x0ad0('0x45')](db['ChatQueue'][_0x0ad0('0x40')]);_0x3fd317[_0x0ad0('0x44')]=_[_0x0ad0('0x45')](_0x23f402[_0x0ad0('0x44')]);_0x3fd317[_0x0ad0('0x4d')]=_[_0x0ad0('0x48')](_0x3fd317[_0x0ad0('0x46')],_0x3fd317['query']);_0x111b2b[_0x0ad0('0x47')]=_[_0x0ad0('0x48')](_0x3fd317[_0x0ad0('0x46')],qs[_0x0ad0('0x49')](_0x23f402[_0x0ad0('0x44')][_0x0ad0('0x49')]));_0x111b2b[_0x0ad0('0x47')]=_0x111b2b['attributes'][_0x0ad0('0x57')]?_0x111b2b[_0x0ad0('0x47')]:_0x3fd317['model'];if(_0x23f402[_0x0ad0('0x44')]['includeAll']){_0x111b2b[_0x0ad0('0x58')]=[{'all':!![]}];}_0x111b2b=_[_0x0ad0('0x51')]({},_0x111b2b,_0x23f402['options']);return db['ChatQueue'][_0x0ad0('0x59')](_0x111b2b)[_0x0ad0('0x38')](handleEntityNotFound(_0x17e14f,null))[_0x0ad0('0x38')](respondWithResult(_0x17e14f,null))[_0x0ad0('0x2b')](handleError(_0x17e14f,null));};exports[_0x0ad0('0x5a')]=function(_0x1663e8,_0x9cb364){return db['ChatQueue'][_0x0ad0('0x5a')](_0x1663e8['body'],{})[_0x0ad0('0x38')](function(_0x20e768){var _0x1f079b=_0x1663e8[_0x0ad0('0x5b')][_0x0ad0('0x3a')]({'plain':!![]});if(!_0x1f079b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1f079b[_0x0ad0('0x5c')]===_0x0ad0('0x5b')){var _0x418744=_0x20e768[_0x0ad0('0x3a')]({'plain':!![]});var _0x47f5d8=_0x0ad0('0x5d');return db[_0x0ad0('0x5e')][_0x0ad0('0x59')]({'where':{'name':_0x47f5d8,'userProfileId':_0x1f079b[_0x0ad0('0x5f')]},'raw':!![]})['then'](function(_0x3a9a8c){if(_0x3a9a8c&&_0x3a9a8c[_0x0ad0('0x60')]===0x0){return db[_0x0ad0('0x3b')]['create']({'name':_0x418744[_0x0ad0('0x3d')],'resourceId':_0x418744['id'],'type':_0x3a9a8c['name'],'sectionId':_0x3a9a8c['id']},{})['then'](function(){return _0x20e768;});}else{return _0x20e768;}})[_0x0ad0('0x2b')](function(_0x1624d4){logger[_0x0ad0('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1624d4);throw _0x1624d4;});}return _0x20e768;})[_0x0ad0('0x38')](respondWithResult(_0x9cb364,0xc9))[_0x0ad0('0x2b')](handleError(_0x9cb364,null));};exports[_0x0ad0('0x37')]=function(_0x5df57c,_0x305944){if(_0x5df57c[_0x0ad0('0x61')]['id']){delete _0x5df57c[_0x0ad0('0x61')]['id'];}return db[_0x0ad0('0x3f')][_0x0ad0('0x59')]({'where':{'id':_0x5df57c[_0x0ad0('0x62')]['id']}})['then'](handleEntityNotFound(_0x305944,null))[_0x0ad0('0x38')](saveUpdates(_0x5df57c['body'],null))[_0x0ad0('0x38')](respondWithResult(_0x305944,null))[_0x0ad0('0x2b')](handleError(_0x305944,null));};exports[_0x0ad0('0x39')]=function(_0x1f95cf,_0x241bb2){return db[_0x0ad0('0x3f')][_0x0ad0('0x59')]({'where':{'id':_0x1f95cf['params']['id']}})[_0x0ad0('0x38')](handleEntityNotFound(_0x241bb2,null))[_0x0ad0('0x38')](removeEntity(_0x241bb2,null))[_0x0ad0('0x2b')](handleError(_0x241bb2,null));};exports['describe']=function(_0x537ca7,_0x155782){return db[_0x0ad0('0x3f')][_0x0ad0('0x63')]()[_0x0ad0('0x38')](respondWithResult(_0x155782,null))['catch'](handleError(_0x155782,null));};exports[_0x0ad0('0x64')]=function(_0x3c985a,_0x42b80e,_0x298c9c){var _0x3387a9={'raw':!![],'where':{}},_0x408bbe={},_0x30a9eb;return db['ChatQueue'][_0x0ad0('0x65')]({'where':{'id':_0x3c985a[_0x0ad0('0x62')]['id']}})[_0x0ad0('0x38')](handleEntityNotFound(_0x42b80e,null))[_0x0ad0('0x38')](function(_0x12620a){if(_0x12620a){_0x30a9eb=_0x12620a[_0x0ad0('0x3a')]({'plain':!![]});_0x408bbe[_0x0ad0('0x46')]=_['keys'](db[_0x0ad0('0x66')][_0x0ad0('0x40')]);_0x408bbe['query']=_[_0x0ad0('0x45')](_0x3c985a[_0x0ad0('0x44')]);_0x408bbe[_0x0ad0('0x4d')]=_['intersection'](_0x408bbe[_0x0ad0('0x46')],_0x408bbe[_0x0ad0('0x44')]);_0x3387a9[_0x0ad0('0x47')]=_[_0x0ad0('0x48')](_0x408bbe[_0x0ad0('0x46')],qs[_0x0ad0('0x49')](_0x3c985a[_0x0ad0('0x44')][_0x0ad0('0x49')]));_0x3387a9['attributes']=_0x3387a9[_0x0ad0('0x47')][_0x0ad0('0x57')]?_0x3387a9[_0x0ad0('0x47')]:_0x408bbe[_0x0ad0('0x46')];if(!_0x3c985a['query'][_0x0ad0('0x4a')]('nolimit')){_0x3387a9[_0x0ad0('0x31')]=qs[_0x0ad0('0x31')](_0x3c985a['query']['limit']);_0x3387a9['offset']=qs[_0x0ad0('0x30')](_0x3c985a[_0x0ad0('0x44')][_0x0ad0('0x30')]);}_0x3387a9[_0x0ad0('0x67')]=qs[_0x0ad0('0x4c')](_0x3c985a[_0x0ad0('0x44')][_0x0ad0('0x4c')]);_0x3387a9[_0x0ad0('0x50')]=qs['filters'](_[_0x0ad0('0x4e')](_0x3c985a[_0x0ad0('0x44')],_0x408bbe[_0x0ad0('0x4d')]));_0x3387a9[_0x0ad0('0x50')][_0x0ad0('0x68')]=_0x12620a['id'];if(_0x3c985a[_0x0ad0('0x44')][_0x0ad0('0x4f')]){_0x3387a9[_0x0ad0('0x50')]=_[_0x0ad0('0x51')](_0x3387a9[_0x0ad0('0x50')],{'$or':_['map'](_0x3387a9[_0x0ad0('0x47')],function(_0x32e93e){var _0xd0b3ee={};_0xd0b3ee[_0x32e93e]={'$like':'%'+_0x3c985a[_0x0ad0('0x44')][_0x0ad0('0x4f')]+'%'};return _0xd0b3ee;})});}_0x3387a9=_[_0x0ad0('0x51')]({},_0x3387a9,_0x3c985a['options']);return db['UserChatQueue'][_0x0ad0('0x69')](_0x3387a9);}})[_0x0ad0('0x38')](function(_0x54d8c0){if(_0x54d8c0){return db[_0x0ad0('0x6a')][_0x0ad0('0x6b')]({'where':{'id':_[_0x0ad0('0x43')](_0x54d8c0,_0x0ad0('0x6c')),'role':_0x0ad0('0x6d')},'attributes':['id',_0x0ad0('0x3d'),_0x0ad0('0x6e'),_0x0ad0('0x6f'),_0x0ad0('0x70')]});}})[_0x0ad0('0x38')](function(_0x2a41ee){if(_0x2a41ee){return{'count':_0x2a41ee['count'],'rows':_[_0x0ad0('0x43')](_0x2a41ee[_0x0ad0('0x55')],function(_0xb55648){return{'membername':_0xb55648['name'],'UserId':_0xb55648['id'],'queue_name':_0x30a9eb[_0x0ad0('0x3d')],'ChatQueueId':_0x30a9eb['id'],'interface':util[_0x0ad0('0x71')](_0x0ad0('0x72'),_0x0ad0('0x73'),_0xb55648[_0x0ad0('0x3d')]),'penalty':0x0,'paused':_0xb55648[_0x0ad0('0x6e')],'createdAt':_0xb55648['createdAt'],'updatedAt':_0xb55648['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x0ad0('0x38')](respondWithFilteredResult(_0x42b80e,_0x3387a9))['catch'](handleError(_0x42b80e,null));};exports[_0x0ad0('0x74')]=function(_0x1babfd,_0x257334,_0x429bc2){var _0x548b0c={};var _0x29e910={};var _0xbe8175;var _0x3db97f;return db[_0x0ad0('0x3f')][_0x0ad0('0x65')]({'where':{'id':_0x1babfd[_0x0ad0('0x62')]['id']}})[_0x0ad0('0x38')](handleEntityNotFound(_0x257334,null))[_0x0ad0('0x38')](function(_0x4e0a74){if(_0x4e0a74){_0xbe8175=_0x4e0a74;_0x29e910[_0x0ad0('0x46')]=_[_0x0ad0('0x45')](db[_0x0ad0('0x75')]['rawAttributes']);_0x29e910[_0x0ad0('0x44')]=_[_0x0ad0('0x45')](_0x1babfd[_0x0ad0('0x44')]);_0x29e910[_0x0ad0('0x4d')]=_[_0x0ad0('0x48')](_0x29e910['model'],_0x29e910[_0x0ad0('0x44')]);_0x548b0c['attributes']=_[_0x0ad0('0x48')](_0x29e910['model'],qs[_0x0ad0('0x49')](_0x1babfd['query'][_0x0ad0('0x49')]));_0x548b0c[_0x0ad0('0x47')]=_0x548b0c['attributes'][_0x0ad0('0x57')]?_0x548b0c[_0x0ad0('0x47')]:_0x29e910['model'];_0x548b0c[_0x0ad0('0x67')]=qs[_0x0ad0('0x4c')](_0x1babfd['query']['sort']);_0x548b0c['where']=qs[_0x0ad0('0x4d')](_[_0x0ad0('0x4e')](_0x1babfd[_0x0ad0('0x44')],_0x29e910['filters']));if(_0x1babfd[_0x0ad0('0x44')][_0x0ad0('0x4f')]){_0x548b0c[_0x0ad0('0x50')]=_[_0x0ad0('0x51')](_0x548b0c[_0x0ad0('0x50')],{'$or':_[_0x0ad0('0x43')](_0x548b0c['attributes'],function(_0x3d5387){var _0x2d5fbd={};_0x2d5fbd[_0x3d5387]={'$like':'%'+_0x1babfd['query'][_0x0ad0('0x4f')]+'%'};return _0x2d5fbd;})});}_0x548b0c=_['merge']({},_0x548b0c,_0x1babfd['options']);return _0xbe8175['getTeams'](_0x548b0c);}})[_0x0ad0('0x38')](function(_0x2154d3){if(_0x2154d3){_0x3db97f=_0x2154d3[_0x0ad0('0x57')];if(!_0x1babfd['query'][_0x0ad0('0x4a')](_0x0ad0('0x4b'))){_0x548b0c[_0x0ad0('0x31')]=qs[_0x0ad0('0x31')](_0x1babfd['query'][_0x0ad0('0x31')]);_0x548b0c[_0x0ad0('0x30')]=qs['offset'](_0x1babfd['query'][_0x0ad0('0x30')]);}return _0xbe8175['getTeams'](_0x548b0c);}})[_0x0ad0('0x38')](function(_0x16002f){if(_0x16002f){return _0x16002f?{'count':_0x3db97f,'rows':_0x16002f}:null;}})[_0x0ad0('0x38')](respondWithResult(_0x257334,null))[_0x0ad0('0x2b')](handleError(_0x257334,null));};exports['addTeams']=function(_0x5ec771,_0x10d950,_0x5795e0){var _0xf5dd0a=_0x5ec771['body'][_0x0ad0('0x76')];return db[_0x0ad0('0x75')]['findAll']({'where':{'id':_0xf5dd0a},'attributes':['id'],'include':[{'model':db['User'],'as':_0x0ad0('0x77'),'attributes':['id',_0x0ad0('0x3d'),_0x0ad0('0x78'),_0x0ad0('0x79'),_0x0ad0('0x7a')],'raw':!![]}]})[_0x0ad0('0x38')](function(_0x4cf7bd){if(_0x4cf7bd){var _0x3cb373=_[_0x0ad0('0x7b')](_0x4cf7bd,function(_0x3de0a5){var _0x223694=_0x3de0a5[_0x0ad0('0x3a')]({'plain':!![]});return _0x223694[_0x0ad0('0x77')];});return db[_0x0ad0('0x3f')][_0x0ad0('0x59')]({'where':{'id':_0x5ec771[_0x0ad0('0x62')]['id']}})[_0x0ad0('0x38')](function(_0x2ac1f5){return db[_0x0ad0('0x7c')][_0x0ad0('0x7d')](function(_0x43b898){return _0x2ac1f5['addTeams'](_0xf5dd0a,{'transaction':_0x43b898})[_0x0ad0('0x38')](function(){return BPromise['each'](_0x3cb373,function(_0x5a4bef){return db['UserChatQueue'][_0x0ad0('0x7e')]({'where':{'UserId':_0x5a4bef['id'],'ChatQueueId':_0x5ec771[_0x0ad0('0x62')]['id']},'transaction':_0x43b898});});})[_0x0ad0('0x38')](function(){_0x3cb373[_0x0ad0('0x7f')](function(_0x35ba57){socket[_0x0ad0('0x80')]('userChatQueue:save',{'UserId':_0x35ba57['id'],'ChatQueueId':_0x2ac1f5['id']});});});});});}})[_0x0ad0('0x38')](respondWithStatusCode(_0x10d950,null))[_0x0ad0('0x2b')](handleError(_0x10d950,null));};exports['removeTeams']=function(_0x46e84a,_0x2d5dfa,_0xe154e7){return db[_0x0ad0('0x75')][_0x0ad0('0x69')]({'where':{'id':_0x46e84a['query'][_0x0ad0('0x76')]},'attributes':['id'],'include':[{'model':db[_0x0ad0('0x6a')],'as':_0x0ad0('0x77'),'attributes':['id'],'raw':!![]}]})[_0x0ad0('0x38')](handleEntityNotFound(_0x2d5dfa,null))[_0x0ad0('0x38')](function(_0x56c597){var _0xeeb594=_[_0x0ad0('0x43')](_0x56c597,'id');var _0x46fc19=[];var _0x5a40d7=[];var _0x3a9d08=squel['select']();_0x3a9d08[_0x0ad0('0x81')](_0x0ad0('0x82'))[_0x0ad0('0x83')](_0x0ad0('0x84'),'tq')[_0x0ad0('0x85')](_0x0ad0('0x86'),'ut',_0x0ad0('0x87'))[_0x0ad0('0x50')](_0x0ad0('0x88'),_0x46e84a[_0x0ad0('0x62')]['id']);for(var _0x238485=0x0;_0x238485<_0x56c597[_0x0ad0('0x57')];_0x238485+=0x1){let _0x2ea47b=_0x56c597[_0x238485];for(var _0x36deb9=0x0;_0x36deb9<_0x2ea47b[_0x0ad0('0x77')][_0x0ad0('0x57')];_0x36deb9+=0x1){let _0x500f71=_0x2ea47b[_0x0ad0('0x77')][_0x36deb9];var _0x3a8996=_0x3a9d08[_0x0ad0('0x89')]();_0x3a8996[_0x0ad0('0x50')]('ut.UserId\x20=\x20?',_0x500f71['id']);_0x5a40d7[_0x0ad0('0x8a')](db['sequelize']['query'](_0x3a8996['toString'](),{'type':db['sequelize'][_0x0ad0('0x8b')]['SELECT']})[_0x0ad0('0x38')](function(_0x588948){if(_0x588948[_0x0ad0('0x57')]===0x1){return _0x500f71['id'];}else{var _0x549c6e=_[_0x0ad0('0x8c')](_['map'](_0x588948,'TeamId'),function(_0x8b7157){return _[_0x0ad0('0x8d')](_0xeeb594,_0x8b7157);});if(_0x549c6e){return _0x500f71['id'];}}}));}}return BPromise[_0x0ad0('0x8e')](_0x5a40d7)[_0x0ad0('0x38')](function(_0x29136f){_0x46fc19=_(_0x46fc19)['union'](_0x29136f)[_0x0ad0('0x8f')]()[_0x0ad0('0x90')]();return db[_0x0ad0('0x3f')]['find']({'where':{'id':_0x46e84a[_0x0ad0('0x62')]['id']}})['then'](function(_0x4d1f9f){return db[_0x0ad0('0x7c')][_0x0ad0('0x7d')](function(_0x13bf3d){return _0x4d1f9f[_0x0ad0('0x91')](_0x46e84a[_0x0ad0('0x44')]['ids'],{'transaction':_0x13bf3d})[_0x0ad0('0x38')](function(){if(!_['isEmpty'](_0x46fc19)){return _0x4d1f9f[_0x0ad0('0x92')](_0x46fc19,{'transaction':_0x13bf3d});}})[_0x0ad0('0x38')](function(){_0x46fc19[_0x0ad0('0x7f')](function(_0x1da785){socket[_0x0ad0('0x80')](_0x0ad0('0x93'),{'UserId':_0x1da785,'ChatQueueId':_0x4d1f9f['id']});});});});});});})[_0x0ad0('0x38')](respondWithStatusCode(_0x2d5dfa,null))[_0x0ad0('0x2b')](handleError(_0x2d5dfa,null));};exports[_0x0ad0('0x94')]=function(_0x511540,_0x2a314a,_0x207cfb){return db[_0x0ad0('0x3f')][_0x0ad0('0x59')]({'where':{'id':_0x511540[_0x0ad0('0x62')]['id']}})['then'](handleEntityNotFound(_0x2a314a,null))['then'](function(_0x46ca84){if(_0x46ca84){return _0x46ca84[_0x0ad0('0x94')](_0x511540[_0x0ad0('0x61')]['ids'],_[_0x0ad0('0x95')](_0x511540['body'],['ids','id'])||{})['spread'](function(_0x59fa41){for(var _0x5a49df=0x0;_0x5a49df<_0x511540[_0x0ad0('0x61')]['ids']['length'];_0x5a49df+=0x1){socket[_0x0ad0('0x80')](_0x0ad0('0x96'),{'UserId':_0x511540['body']['ids'][_0x5a49df],'ChatQueueId':_0x511540[_0x0ad0('0x62')]['id']});}return _0x59fa41;});}})[_0x0ad0('0x38')](respondWithResult(_0x2a314a,null))[_0x0ad0('0x2b')](handleError(_0x2a314a,null));};exports[_0x0ad0('0x92')]=function(_0x28bde6,_0x4c1400,_0x42745b){return db[_0x0ad0('0x3f')]['find']({'where':{'id':_0x28bde6['params']['id']}})[_0x0ad0('0x38')](handleEntityNotFound(_0x4c1400,null))[_0x0ad0('0x38')](function(_0x401e70){if(_0x401e70){return _0x401e70[_0x0ad0('0x92')](_0x28bde6[_0x0ad0('0x44')][_0x0ad0('0x76')])['then'](function(){if(_[_0x0ad0('0x97')](_0x28bde6[_0x0ad0('0x44')]['ids'])){for(var _0x38a7df=0x0;_0x38a7df<_0x28bde6[_0x0ad0('0x44')][_0x0ad0('0x76')]['length'];_0x38a7df+=0x1){socket[_0x0ad0('0x80')](_0x0ad0('0x93'),{'UserId':Number(_0x28bde6[_0x0ad0('0x44')][_0x0ad0('0x76')][_0x38a7df]),'ChatQueueId':Number(_0x28bde6['params']['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x28bde6['query'][_0x0ad0('0x76')]),'ChatQueueId':Number(_0x28bde6['params']['id'])});}});}})['then'](respondWithStatusCode(_0x4c1400,null))[_0x0ad0('0x2b')](handleError(_0x4c1400,null));};exports['getAgents']=function(_0x364c1b,_0x32341b,_0x16d09e){var _0x59ef61={};var _0x18260c={};var _0x6c2e03;var _0x5e89a8;return db['ChatQueue'][_0x0ad0('0x65')]({'where':{'id':_0x364c1b[_0x0ad0('0x62')]['id']}})[_0x0ad0('0x38')](handleEntityNotFound(_0x32341b,null))['then'](function(_0x1a9e7b){if(_0x1a9e7b){_0x6c2e03=_0x1a9e7b;_0x18260c[_0x0ad0('0x46')]=_[_0x0ad0('0x45')](db[_0x0ad0('0x6a')][_0x0ad0('0x40')]);_0x18260c[_0x0ad0('0x44')]=_[_0x0ad0('0x45')](_0x364c1b['query']);_0x18260c[_0x0ad0('0x4d')]=_['intersection'](_0x18260c[_0x0ad0('0x46')],_0x18260c[_0x0ad0('0x44')]);_0x59ef61[_0x0ad0('0x47')]=_[_0x0ad0('0x48')](_0x18260c[_0x0ad0('0x46')],qs[_0x0ad0('0x49')](_0x364c1b[_0x0ad0('0x44')][_0x0ad0('0x49')]));_0x59ef61['attributes']=_0x59ef61[_0x0ad0('0x47')][_0x0ad0('0x57')]?_0x59ef61[_0x0ad0('0x47')]:_0x18260c[_0x0ad0('0x46')];_0x59ef61[_0x0ad0('0x67')]=qs[_0x0ad0('0x4c')](_0x364c1b[_0x0ad0('0x44')][_0x0ad0('0x4c')]);_0x59ef61[_0x0ad0('0x50')]=qs['filters'](_[_0x0ad0('0x4e')](_0x364c1b[_0x0ad0('0x44')],_0x18260c[_0x0ad0('0x4d')]));if(_0x364c1b[_0x0ad0('0x44')][_0x0ad0('0x4f')]){_0x59ef61[_0x0ad0('0x50')]=_['merge'](_0x59ef61[_0x0ad0('0x50')],{'$or':_[_0x0ad0('0x43')](_0x59ef61[_0x0ad0('0x47')],function(_0x2f5781){var _0x1e5ff0={};_0x1e5ff0[_0x2f5781]={'$like':'%'+_0x364c1b[_0x0ad0('0x44')][_0x0ad0('0x4f')]+'%'};return _0x1e5ff0;})});}_0x59ef61=_[_0x0ad0('0x51')]({},_0x59ef61,_0x364c1b[_0x0ad0('0x53')]);return _0x6c2e03[_0x0ad0('0x98')](_0x59ef61);}})[_0x0ad0('0x38')](function(_0x410f06){if(_0x410f06){_0x5e89a8=_0x410f06[_0x0ad0('0x57')];if(!_0x364c1b[_0x0ad0('0x44')][_0x0ad0('0x4a')](_0x0ad0('0x4b'))){_0x59ef61[_0x0ad0('0x31')]=qs['limit'](_0x364c1b[_0x0ad0('0x44')]['limit']);_0x59ef61[_0x0ad0('0x30')]=qs[_0x0ad0('0x30')](_0x364c1b[_0x0ad0('0x44')]['offset']);}return _0x6c2e03['getAgents'](_0x59ef61);}})['then'](function(_0x5d895c){if(_0x5d895c){return _0x5d895c?{'count':_0x5e89a8,'rows':_0x5d895c}:null;}})[_0x0ad0('0x38')](respondWithResult(_0x32341b,null))[_0x0ad0('0x2b')](handleError(_0x32341b,null));};