5ac7667b339d1d2ad091281804101780dd157cb3
[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 _0xbd4a=['find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChatQueues','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','hasOwnProperty','nolimit','ChatQueueId','findAndCountAll','agent','chatPause','updatedAt','createdAt','format','SIP','getTeams','findOne','Team','addTeams','User','Agents','voicePause','interface','flatMap','sequelize','transaction','UserChatQueue','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','user_has_teams','clone','ut.UserId\x20=\x20?','toString','QueryTypes','TeamId','includes','all','union','compact','value','ids','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatQueue,\x20%s,\x20%s','message','result','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','UserProfileResource','destroy','name','send','ChatQueue','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','params'];(function(_0x15e341,_0x192f44){var _0x291d32=function(_0x2e50b7){while(--_0x2e50b7){_0x15e341['push'](_0x15e341['shift']());}};_0x291d32(++_0x192f44);}(_0xbd4a,0x16d));var _0xabd4=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xbd4a[_0x122ef9];return _0x42fba0;};'use strict';var emlformat=require(_0xabd4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xabd4('0x1'));var jsonpatch=require(_0xabd4('0x2'));var rp=require('request-promise');var moment=require(_0xabd4('0x3'));var BPromise=require(_0xabd4('0x4'));var Mustache=require(_0xabd4('0x5'));var util=require(_0xabd4('0x6'));var path=require(_0xabd4('0x7'));var sox=require('sox');var csv=require(_0xabd4('0x8'));var ejs=require(_0xabd4('0x9'));var fs=require('fs');var fs_extra=require(_0xabd4('0xa'));var _=require(_0xabd4('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xabd4('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xabd4('0x8'));var querystring=require(_0xabd4('0xd'));var Papa=require(_0xabd4('0xe'));var Redis=require(_0xabd4('0xf'));var authService=require(_0xabd4('0x10'));var qs=require(_0xabd4('0x11'));var as=require(_0xabd4('0x12'));var hardwareService=require(_0xabd4('0x13'));var logger=require(_0xabd4('0x14'))('api');var utils=require(_0xabd4('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xabd4('0x16'));var db=require(_0xabd4('0x17'))['db'];config[_0xabd4('0x18')]=_[_0xabd4('0x19')](config[_0xabd4('0x18')],{'host':_0xabd4('0x1a'),'port':0x18eb});var socket=require(_0xabd4('0x1b'))(new Redis(config[_0xabd4('0x18')]));require(_0xabd4('0x1c'))['register'](socket);var jayson=require(_0xabd4('0x1d'));var client=jayson[_0xabd4('0x1e')][_0xabd4('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x9e9e90,_0x43468f,_0x1c78db,_0x343451){return new BPromise(function(_0x53534f,_0x519c9f){var _0x1e916a=_0x343451||client;return _0x1e916a[_0xabd4('0x20')](_0x9e9e90,_0x1c78db)[_0xabd4('0x21')](function(_0x5d2821){logger[_0xabd4('0x22')]('ChatQueue,\x20%s,\x20%s',_0x43468f,_0xabd4('0x23'));logger[_0xabd4('0x24')](_0xabd4('0x25'),_0x43468f,_0xabd4('0x23'),JSON[_0xabd4('0x26')](_0x5d2821));if(_0x5d2821[_0xabd4('0x27')]){if(_0x5d2821[_0xabd4('0x27')][_0xabd4('0x28')]===0x1f4){logger[_0xabd4('0x27')](_0xabd4('0x29'),_0x43468f,_0x5d2821[_0xabd4('0x27')][_0xabd4('0x2a')]);return _0x519c9f(_0x5d2821['error'][_0xabd4('0x2a')]);}logger[_0xabd4('0x27')]('ChatQueue,\x20%s,\x20%s',_0x43468f,_0x5d2821[_0xabd4('0x27')]['message']);return _0x53534f(_0x5d2821[_0xabd4('0x27')]['message']);}else{logger['info'](_0xabd4('0x29'),_0x43468f,'request\x20sent');_0x53534f(_0x5d2821[_0xabd4('0x2b')][_0xabd4('0x2a')]);}})['catch'](function(_0x4c8694){logger[_0xabd4('0x27')]('ChatQueue,\x20%s,\x20%s',_0x43468f,_0x4c8694);_0x519c9f(_0x4c8694);});});}function respondWithStatusCode(_0x36e797,_0x2ae7c7){_0x2ae7c7=_0x2ae7c7||0xcc;return function(_0x302ab4){if(_0x302ab4){return _0x36e797[_0xabd4('0x2c')](_0x2ae7c7);}return _0x36e797[_0xabd4('0x2d')](_0x2ae7c7)[_0xabd4('0x2e')]();};}function respondWithResult(_0x3465a1,_0x44f3fe){_0x44f3fe=_0x44f3fe||0xc8;return function(_0x1e44ef){if(_0x1e44ef){return _0x3465a1[_0xabd4('0x2d')](_0x44f3fe)[_0xabd4('0x2f')](_0x1e44ef);}};}function respondWithFilteredResult(_0x2df87d,_0x3e8d83){return function(_0x205e1d){if(_0x205e1d){var _0x599b35=typeof _0x3e8d83[_0xabd4('0x30')]===_0xabd4('0x31')&&typeof _0x3e8d83['limit']===_0xabd4('0x31');var _0x11e771=_0x205e1d['count'];var _0x6b273b=_0x599b35?0x0:_0x3e8d83[_0xabd4('0x30')];var _0x41f29d=_0x599b35?_0x205e1d[_0xabd4('0x32')]:_0x3e8d83[_0xabd4('0x30')]+_0x3e8d83['limit'];var _0x201537;if(_0x41f29d>=_0x11e771){_0x41f29d=_0x11e771;_0x201537=0xc8;}else{_0x201537=0xce;}_0x2df87d[_0xabd4('0x2d')](_0x201537);return _0x2df87d[_0xabd4('0x33')](_0xabd4('0x34'),_0x6b273b+'-'+_0x41f29d+'/'+_0x11e771)[_0xabd4('0x2f')](_0x205e1d);}return null;};}function patchUpdates(_0x3baf6e){return function(_0xda0ff3){try{jsonpatch[_0xabd4('0x35')](_0xda0ff3,_0x3baf6e,!![]);}catch(_0x5d7ef5){return BPromise[_0xabd4('0x36')](_0x5d7ef5);}return _0xda0ff3[_0xabd4('0x37')]();};}function saveUpdates(_0x43a479,_0x2f887c){return function(_0x12be02){if(_0x12be02){return _0x12be02[_0xabd4('0x38')](_0x43a479)[_0xabd4('0x21')](function(_0x32aeea){return _0x32aeea;});}return null;};}function removeEntity(_0x4aa4d0,_0x4d0150){return function(_0x204218){if(_0x204218){return _0x204218['destroy']()[_0xabd4('0x21')](function(){var _0x1a0f84=_0x204218['get']({'plain':!![]});var _0xf794a9='ChatQueues';return db[_0xabd4('0x39')][_0xabd4('0x3a')]({'where':{'type':_0xf794a9,'resourceId':_0x1a0f84['id']}})[_0xabd4('0x21')](function(){return _0x204218;});})[_0xabd4('0x21')](function(){_0x4aa4d0['status'](0xcc)[_0xabd4('0x2e')]();});}};}function handleEntityNotFound(_0x277473,_0x210088){return function(_0x39f473){if(!_0x39f473){_0x277473[_0xabd4('0x2c')](0x194);}return _0x39f473;};}function handleError(_0x4be5d7,_0x59e570){_0x59e570=_0x59e570||0x1f4;return function(_0x1310d4){logger[_0xabd4('0x27')](_0x1310d4['stack']);if(_0x1310d4[_0xabd4('0x3b')]){delete _0x1310d4[_0xabd4('0x3b')];}_0x4be5d7[_0xabd4('0x2d')](_0x59e570)[_0xabd4('0x3c')](_0x1310d4);};}exports['index']=function(_0x2b12aa,_0x329f40){var _0x20046d={},_0x55b7c0={},_0x21e5b0={'count':0x0,'rows':[]};var _0x4a2b91=_['map'](db[_0xabd4('0x3d')][_0xabd4('0x3e')],function(_0x21c121){return{'name':_0x21c121['fieldName'],'type':_0x21c121[_0xabd4('0x3f')][_0xabd4('0x40')]};});_0x55b7c0[_0xabd4('0x41')]=_[_0xabd4('0x42')](_0x4a2b91,_0xabd4('0x3b'));_0x55b7c0[_0xabd4('0x43')]=_[_0xabd4('0x44')](_0x2b12aa[_0xabd4('0x43')]);_0x55b7c0[_0xabd4('0x45')]=_[_0xabd4('0x46')](_0x55b7c0['model'],_0x55b7c0['query']);_0x20046d[_0xabd4('0x47')]=_[_0xabd4('0x46')](_0x55b7c0[_0xabd4('0x41')],qs[_0xabd4('0x48')](_0x2b12aa['query'][_0xabd4('0x48')]));_0x20046d['attributes']=_0x20046d[_0xabd4('0x47')][_0xabd4('0x49')]?_0x20046d[_0xabd4('0x47')]:_0x55b7c0[_0xabd4('0x41')];if(!_0x2b12aa['query']['hasOwnProperty']('nolimit')){_0x20046d[_0xabd4('0x4a')]=qs['limit'](_0x2b12aa[_0xabd4('0x43')][_0xabd4('0x4a')]);_0x20046d['offset']=qs['offset'](_0x2b12aa[_0xabd4('0x43')][_0xabd4('0x30')]);}_0x20046d[_0xabd4('0x4b')]=qs[_0xabd4('0x4c')](_0x2b12aa[_0xabd4('0x43')]['sort']);_0x20046d[_0xabd4('0x4d')]=qs[_0xabd4('0x45')](_[_0xabd4('0x4e')](_0x2b12aa[_0xabd4('0x43')],_0x55b7c0[_0xabd4('0x45')]),_0x4a2b91);if(_0x2b12aa[_0xabd4('0x43')][_0xabd4('0x4f')]){_0x20046d[_0xabd4('0x4d')]=_['merge'](_0x20046d['where'],{'$or':_[_0xabd4('0x42')](_0x4a2b91,function(_0x145cd0){if(_0x145cd0[_0xabd4('0x3f')]!=='VIRTUAL'){var _0x1f49ac={};_0x1f49ac[_0x145cd0['name']]={'$like':'%'+_0x2b12aa[_0xabd4('0x43')][_0xabd4('0x4f')]+'%'};return _0x1f49ac;}})});}_0x20046d=_[_0xabd4('0x50')]({},_0x20046d,_0x2b12aa[_0xabd4('0x51')]);var _0x58018a={'where':_0x20046d[_0xabd4('0x4d')]};return db[_0xabd4('0x3d')][_0xabd4('0x32')](_0x58018a)['then'](function(_0x5aac7e){_0x21e5b0[_0xabd4('0x32')]=_0x5aac7e;if(_0x2b12aa[_0xabd4('0x43')][_0xabd4('0x52')]){_0x20046d[_0xabd4('0x53')]=[{'all':!![]}];}return db[_0xabd4('0x3d')][_0xabd4('0x54')](_0x20046d);})['then'](function(_0x573c0e){_0x21e5b0[_0xabd4('0x55')]=_0x573c0e;return _0x21e5b0;})[_0xabd4('0x21')](respondWithFilteredResult(_0x329f40,_0x20046d))[_0xabd4('0x56')](handleError(_0x329f40,null));};exports['show']=function(_0x2cbe5f,_0x400403){var _0x111126={'raw':!![],'where':{'id':_0x2cbe5f[_0xabd4('0x57')]['id']}},_0x4ffdfe={};_0x4ffdfe[_0xabd4('0x41')]=_[_0xabd4('0x44')](db['ChatQueue'][_0xabd4('0x3e')]);_0x4ffdfe[_0xabd4('0x43')]=_[_0xabd4('0x44')](_0x2cbe5f['query']);_0x4ffdfe[_0xabd4('0x45')]=_[_0xabd4('0x46')](_0x4ffdfe[_0xabd4('0x41')],_0x4ffdfe[_0xabd4('0x43')]);_0x111126[_0xabd4('0x47')]=_[_0xabd4('0x46')](_0x4ffdfe[_0xabd4('0x41')],qs['fields'](_0x2cbe5f[_0xabd4('0x43')]['fields']));_0x111126['attributes']=_0x111126['attributes'][_0xabd4('0x49')]?_0x111126[_0xabd4('0x47')]:_0x4ffdfe[_0xabd4('0x41')];if(_0x2cbe5f[_0xabd4('0x43')][_0xabd4('0x52')]){_0x111126[_0xabd4('0x53')]=[{'all':!![]}];}_0x111126=_[_0xabd4('0x50')]({},_0x111126,_0x2cbe5f[_0xabd4('0x51')]);return db[_0xabd4('0x3d')][_0xabd4('0x58')](_0x111126)[_0xabd4('0x21')](handleEntityNotFound(_0x400403,null))['then'](respondWithResult(_0x400403,null))[_0xabd4('0x56')](handleError(_0x400403,null));};exports['create']=function(_0x3b36fb,_0x497d2f){return db[_0xabd4('0x3d')][_0xabd4('0x59')](_0x3b36fb[_0xabd4('0x5a')],{})[_0xabd4('0x21')](function(_0x526ae3){var _0x19015a=_0x3b36fb[_0xabd4('0x5b')][_0xabd4('0x5c')]({'plain':!![]});if(!_0x19015a)throw new Error(_0xabd4('0x5d'));if(_0x19015a[_0xabd4('0x5e')]===_0xabd4('0x5b')){var _0x25b5a6=_0x526ae3[_0xabd4('0x5c')]({'plain':!![]});var _0x178a3d=_0xabd4('0x5f');return db[_0xabd4('0x60')][_0xabd4('0x58')]({'where':{'name':_0x178a3d,'userProfileId':_0x19015a['userProfileId']},'raw':!![]})[_0xabd4('0x21')](function(_0x19e912){if(_0x19e912&&_0x19e912[_0xabd4('0x61')]===0x0){return db[_0xabd4('0x39')]['create']({'name':_0x25b5a6['name'],'resourceId':_0x25b5a6['id'],'type':_0x19e912[_0xabd4('0x3b')],'sectionId':_0x19e912['id']},{})[_0xabd4('0x21')](function(){return _0x526ae3;});}else{return _0x526ae3;}})[_0xabd4('0x56')](function(_0x492ae4){logger['error'](_0xabd4('0x62'),_0x492ae4);throw _0x492ae4;});}return _0x526ae3;})[_0xabd4('0x21')](respondWithResult(_0x497d2f,0xc9))[_0xabd4('0x56')](handleError(_0x497d2f,null));};exports[_0xabd4('0x38')]=function(_0x429f5c,_0x3b634b){if(_0x429f5c[_0xabd4('0x5a')]['id']){delete _0x429f5c[_0xabd4('0x5a')]['id'];}return db[_0xabd4('0x3d')][_0xabd4('0x58')]({'where':{'id':_0x429f5c[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x3b634b,null))[_0xabd4('0x21')](saveUpdates(_0x429f5c['body'],null))['then'](respondWithResult(_0x3b634b,null))[_0xabd4('0x56')](handleError(_0x3b634b,null));};exports['destroy']=function(_0x5375d5,_0xe453d4){return db[_0xabd4('0x3d')][_0xabd4('0x58')]({'where':{'id':_0x5375d5[_0xabd4('0x57')]['id']}})['then'](handleEntityNotFound(_0xe453d4,null))[_0xabd4('0x21')](removeEntity(_0xe453d4,null))['catch'](handleError(_0xe453d4,null));};exports['describe']=function(_0x3ef3b9,_0x330821){return db[_0xabd4('0x3d')][_0xabd4('0x63')]()[_0xabd4('0x21')](respondWithResult(_0x330821,null))[_0xabd4('0x56')](handleError(_0x330821,null));};exports['getMembers']=function(_0x47fb99,_0x1c32ad,_0x570a95){var _0x52f2b3={'raw':!![],'where':{}},_0x51cd6c={},_0x51b233;return db[_0xabd4('0x3d')]['findOne']({'where':{'id':_0x47fb99[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x1c32ad,null))['then'](function(_0x34cdd3){if(_0x34cdd3){_0x51b233=_0x34cdd3[_0xabd4('0x5c')]({'plain':!![]});_0x51cd6c['model']=_[_0xabd4('0x44')](db['UserChatQueue'][_0xabd4('0x3e')]);_0x51cd6c[_0xabd4('0x43')]=_['keys'](_0x47fb99[_0xabd4('0x43')]);_0x51cd6c['filters']=_['intersection'](_0x51cd6c[_0xabd4('0x41')],_0x51cd6c['query']);_0x52f2b3[_0xabd4('0x47')]=_['intersection'](_0x51cd6c[_0xabd4('0x41')],qs[_0xabd4('0x48')](_0x47fb99['query'][_0xabd4('0x48')]));_0x52f2b3['attributes']=_0x52f2b3[_0xabd4('0x47')][_0xabd4('0x49')]?_0x52f2b3['attributes']:_0x51cd6c[_0xabd4('0x41')];if(!_0x47fb99['query'][_0xabd4('0x64')](_0xabd4('0x65'))){_0x52f2b3[_0xabd4('0x4a')]=qs['limit'](_0x47fb99['query'][_0xabd4('0x4a')]);_0x52f2b3[_0xabd4('0x30')]=qs[_0xabd4('0x30')](_0x47fb99['query'][_0xabd4('0x30')]);}_0x52f2b3[_0xabd4('0x4b')]=qs[_0xabd4('0x4c')](_0x47fb99[_0xabd4('0x43')][_0xabd4('0x4c')]);_0x52f2b3[_0xabd4('0x4d')]=qs[_0xabd4('0x45')](_['pick'](_0x47fb99[_0xabd4('0x43')],_0x51cd6c['filters']));_0x52f2b3[_0xabd4('0x4d')][_0xabd4('0x66')]=_0x34cdd3['id'];if(_0x47fb99[_0xabd4('0x43')][_0xabd4('0x4f')]){_0x52f2b3['where']=_[_0xabd4('0x50')](_0x52f2b3[_0xabd4('0x4d')],{'$or':_[_0xabd4('0x42')](_0x52f2b3[_0xabd4('0x47')],function(_0x7760a8){var _0x1cec0f={};_0x1cec0f[_0x7760a8]={'$like':'%'+_0x47fb99[_0xabd4('0x43')][_0xabd4('0x4f')]+'%'};return _0x1cec0f;})});}_0x52f2b3=_[_0xabd4('0x50')]({},_0x52f2b3,_0x47fb99[_0xabd4('0x51')]);return db['UserChatQueue'][_0xabd4('0x54')](_0x52f2b3);}})[_0xabd4('0x21')](function(_0x362f31){if(_0x362f31){return db['User'][_0xabd4('0x67')]({'where':{'id':_['map'](_0x362f31,'UserId'),'role':_0xabd4('0x68')},'attributes':['id',_0xabd4('0x3b'),_0xabd4('0x69'),_0xabd4('0x6a'),_0xabd4('0x6b')]});}})[_0xabd4('0x21')](function(_0x2f9108){if(_0x2f9108){return{'count':_0x2f9108[_0xabd4('0x32')],'rows':_['map'](_0x2f9108[_0xabd4('0x55')],function(_0x3ca40b){return{'membername':_0x3ca40b[_0xabd4('0x3b')],'UserId':_0x3ca40b['id'],'queue_name':_0x51b233[_0xabd4('0x3b')],'ChatQueueId':_0x51b233['id'],'interface':util[_0xabd4('0x6c')]('%s/%s',_0xabd4('0x6d'),_0x3ca40b[_0xabd4('0x3b')]),'penalty':0x0,'paused':_0x3ca40b[_0xabd4('0x69')],'createdAt':_0x3ca40b[_0xabd4('0x6b')],'updatedAt':_0x3ca40b['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xabd4('0x21')](respondWithFilteredResult(_0x1c32ad,_0x52f2b3))[_0xabd4('0x56')](handleError(_0x1c32ad,null));};exports[_0xabd4('0x6e')]=function(_0x158547,_0x24ed66,_0x5aaf14){var _0x294f80={};var _0xa618fb={};var _0x4bfb85;var _0x226aa6;return db[_0xabd4('0x3d')][_0xabd4('0x6f')]({'where':{'id':_0x158547[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x24ed66,null))['then'](function(_0x58bfc1){if(_0x58bfc1){_0x4bfb85=_0x58bfc1;_0xa618fb[_0xabd4('0x41')]=_[_0xabd4('0x44')](db[_0xabd4('0x70')][_0xabd4('0x3e')]);_0xa618fb[_0xabd4('0x43')]=_[_0xabd4('0x44')](_0x158547[_0xabd4('0x43')]);_0xa618fb[_0xabd4('0x45')]=_['intersection'](_0xa618fb[_0xabd4('0x41')],_0xa618fb['query']);_0x294f80[_0xabd4('0x47')]=_[_0xabd4('0x46')](_0xa618fb[_0xabd4('0x41')],qs[_0xabd4('0x48')](_0x158547['query']['fields']));_0x294f80[_0xabd4('0x47')]=_0x294f80[_0xabd4('0x47')][_0xabd4('0x49')]?_0x294f80[_0xabd4('0x47')]:_0xa618fb[_0xabd4('0x41')];_0x294f80['order']=qs[_0xabd4('0x4c')](_0x158547[_0xabd4('0x43')][_0xabd4('0x4c')]);_0x294f80['where']=qs['filters'](_[_0xabd4('0x4e')](_0x158547[_0xabd4('0x43')],_0xa618fb['filters']));if(_0x158547[_0xabd4('0x43')][_0xabd4('0x4f')]){_0x294f80[_0xabd4('0x4d')]=_['merge'](_0x294f80[_0xabd4('0x4d')],{'$or':_[_0xabd4('0x42')](_0x294f80['attributes'],function(_0x190fdc){var _0x17356b={};_0x17356b[_0x190fdc]={'$like':'%'+_0x158547[_0xabd4('0x43')][_0xabd4('0x4f')]+'%'};return _0x17356b;})});}_0x294f80=_['merge']({},_0x294f80,_0x158547[_0xabd4('0x51')]);return _0x4bfb85[_0xabd4('0x6e')](_0x294f80);}})[_0xabd4('0x21')](function(_0x30a145){if(_0x30a145){_0x226aa6=_0x30a145[_0xabd4('0x49')];if(!_0x158547[_0xabd4('0x43')][_0xabd4('0x64')](_0xabd4('0x65'))){_0x294f80[_0xabd4('0x4a')]=qs['limit'](_0x158547[_0xabd4('0x43')][_0xabd4('0x4a')]);_0x294f80[_0xabd4('0x30')]=qs['offset'](_0x158547[_0xabd4('0x43')][_0xabd4('0x30')]);}return _0x4bfb85[_0xabd4('0x6e')](_0x294f80);}})[_0xabd4('0x21')](function(_0xca6d93){if(_0xca6d93){return _0xca6d93?{'count':_0x226aa6,'rows':_0xca6d93}:null;}})['then'](respondWithResult(_0x24ed66,null))[_0xabd4('0x56')](handleError(_0x24ed66,null));};exports[_0xabd4('0x71')]=function(_0x542221,_0x3ac110,_0x4e52a1){var _0x49e0c3=_0x542221[_0xabd4('0x5a')]['ids'];return db[_0xabd4('0x70')][_0xabd4('0x54')]({'where':{'id':_0x49e0c3},'attributes':['id'],'include':[{'model':db[_0xabd4('0x72')],'as':_0xabd4('0x73'),'attributes':['id',_0xabd4('0x3b'),'online',_0xabd4('0x74'),_0xabd4('0x75')],'raw':!![]}]})[_0xabd4('0x21')](function(_0x4dc621){if(_0x4dc621){var _0x157c5c=_[_0xabd4('0x76')](_0x4dc621,function(_0x3f0ebd){var _0x3784cb=_0x3f0ebd['get']({'plain':!![]});return _0x3784cb['Agents'];});return db[_0xabd4('0x3d')][_0xabd4('0x58')]({'where':{'id':_0x542221['params']['id']}})[_0xabd4('0x21')](function(_0x228aec){return db[_0xabd4('0x77')][_0xabd4('0x78')](function(_0x585c63){return _0x228aec[_0xabd4('0x71')](_0x49e0c3,{'transaction':_0x585c63})[_0xabd4('0x21')](function(){return BPromise['each'](_0x157c5c,function(_0x110301){return db[_0xabd4('0x79')][_0xabd4('0x7a')]({'where':{'UserId':_0x110301['id'],'ChatQueueId':_0x542221[_0xabd4('0x57')]['id']},'transaction':_0x585c63});});})['then'](function(){_0x157c5c[_0xabd4('0x7b')](function(_0x379148){socket[_0xabd4('0x7c')](_0xabd4('0x7d'),{'UserId':_0x379148['id'],'ChatQueueId':_0x228aec['id']});});});});});}})[_0xabd4('0x21')](respondWithStatusCode(_0x3ac110,null))[_0xabd4('0x56')](handleError(_0x3ac110,null));};exports[_0xabd4('0x7e')]=function(_0x3a57bc,_0x3cefff,_0x11a4af){return db[_0xabd4('0x70')]['findAll']({'where':{'id':_0x3a57bc[_0xabd4('0x43')]['ids']},'attributes':['id'],'include':[{'model':db[_0xabd4('0x72')],'as':_0xabd4('0x73'),'attributes':['id'],'raw':!![]}]})[_0xabd4('0x21')](handleEntityNotFound(_0x3cefff,null))[_0xabd4('0x21')](function(_0xd975f1){var _0x5d8045=_[_0xabd4('0x42')](_0xd975f1,'id');var _0x2abc8c=[];var _0x39ffcd=[];var _0x1125bf=squel[_0xabd4('0x7f')]();_0x1125bf[_0xabd4('0x80')](_0xabd4('0x81'))[_0xabd4('0x82')](_0xabd4('0x83'),'tq')['join'](_0xabd4('0x84'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0xabd4('0x4d')]('ChatQueueId\x20=\x20?',_0x3a57bc['params']['id']);for(var _0x3f8251=0x0;_0x3f8251<_0xd975f1['length'];_0x3f8251+=0x1){let _0xe2a66d=_0xd975f1[_0x3f8251];for(var _0x5d303c=0x0;_0x5d303c<_0xe2a66d[_0xabd4('0x73')][_0xabd4('0x49')];_0x5d303c+=0x1){let _0x270018=_0xe2a66d[_0xabd4('0x73')][_0x5d303c];var _0x48761d=_0x1125bf[_0xabd4('0x85')]();_0x48761d[_0xabd4('0x4d')](_0xabd4('0x86'),_0x270018['id']);_0x39ffcd['push'](db[_0xabd4('0x77')][_0xabd4('0x43')](_0x48761d[_0xabd4('0x87')](),{'type':db[_0xabd4('0x77')][_0xabd4('0x88')]['SELECT']})[_0xabd4('0x21')](function(_0x76a159){if(_0x76a159[_0xabd4('0x49')]===0x1){return _0x270018['id'];}else{var _0x3266de=_['every'](_['map'](_0x76a159,_0xabd4('0x89')),function(_0x2eb29e){return _[_0xabd4('0x8a')](_0x5d8045,_0x2eb29e);});if(_0x3266de){return _0x270018['id'];}}}));}}return BPromise[_0xabd4('0x8b')](_0x39ffcd)[_0xabd4('0x21')](function(_0x25d417){_0x2abc8c=_(_0x2abc8c)[_0xabd4('0x8c')](_0x25d417)[_0xabd4('0x8d')]()[_0xabd4('0x8e')]();return db[_0xabd4('0x3d')][_0xabd4('0x58')]({'where':{'id':_0x3a57bc[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](function(_0x29642d){return db[_0xabd4('0x77')][_0xabd4('0x78')](function(_0x551eec){return _0x29642d['removeTeams'](_0x3a57bc['query'][_0xabd4('0x8f')],{'transaction':_0x551eec})[_0xabd4('0x21')](function(){if(!_['isEmpty'](_0x2abc8c)){return _0x29642d[_0xabd4('0x90')](_0x2abc8c,{'transaction':_0x551eec});}})[_0xabd4('0x21')](function(){_0x2abc8c[_0xabd4('0x7b')](function(_0x5bfcc8){socket[_0xabd4('0x7c')](_0xabd4('0x91'),{'UserId':_0x5bfcc8,'ChatQueueId':_0x29642d['id']});});});});});});})['then'](respondWithStatusCode(_0x3cefff,null))['catch'](handleError(_0x3cefff,null));};exports[_0xabd4('0x92')]=function(_0x2f5c6d,_0x58f236,_0x3a8e64){return db['ChatQueue'][_0xabd4('0x58')]({'where':{'id':_0x2f5c6d[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x58f236,null))[_0xabd4('0x21')](function(_0x420c96){if(_0x420c96){return _0x420c96[_0xabd4('0x92')](_0x2f5c6d[_0xabd4('0x5a')][_0xabd4('0x8f')],_[_0xabd4('0x93')](_0x2f5c6d['body'],['ids','id'])||{})[_0xabd4('0x94')](function(_0x50c9aa){for(var _0x1e02d7=0x0;_0x1e02d7<_0x2f5c6d[_0xabd4('0x5a')]['ids'][_0xabd4('0x49')];_0x1e02d7+=0x1){socket[_0xabd4('0x7c')](_0xabd4('0x7d'),{'UserId':Number(_0x2f5c6d[_0xabd4('0x5a')]['ids'][_0x1e02d7]),'ChatQueueId':Number(_0x2f5c6d[_0xabd4('0x57')]['id'])});}return _0x50c9aa;});}})[_0xabd4('0x21')](respondWithResult(_0x58f236,null))[_0xabd4('0x56')](handleError(_0x58f236,null));};exports[_0xabd4('0x90')]=function(_0x472590,_0x3fdb28,_0x93ca2c){return db[_0xabd4('0x3d')]['find']({'where':{'id':_0x472590[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x3fdb28,null))['then'](function(_0x1238cf){if(_0x1238cf){return _0x1238cf[_0xabd4('0x90')](_0x472590['query'][_0xabd4('0x8f')])[_0xabd4('0x21')](function(){if(_[_0xabd4('0x95')](_0x472590[_0xabd4('0x43')][_0xabd4('0x8f')])){for(var _0x24c49b=0x0;_0x24c49b<_0x472590[_0xabd4('0x43')][_0xabd4('0x8f')][_0xabd4('0x49')];_0x24c49b+=0x1){socket[_0xabd4('0x7c')](_0xabd4('0x91'),{'UserId':Number(_0x472590[_0xabd4('0x43')]['ids'][_0x24c49b]),'ChatQueueId':Number(_0x472590[_0xabd4('0x57')]['id'])});}}else{socket[_0xabd4('0x7c')](_0xabd4('0x91'),{'UserId':Number(_0x472590[_0xabd4('0x43')][_0xabd4('0x8f')]),'ChatQueueId':Number(_0x472590[_0xabd4('0x57')]['id'])});}});}})[_0xabd4('0x21')](respondWithStatusCode(_0x3fdb28,null))[_0xabd4('0x56')](handleError(_0x3fdb28,null));};exports['getAgents']=function(_0xc95219,_0x38e758,_0x156bc8){var _0x1f7f81={};var _0x12cf0c={};var _0x126beb;var _0x1c8801;return db[_0xabd4('0x3d')][_0xabd4('0x6f')]({'where':{'id':_0xc95219[_0xabd4('0x57')]['id']}})[_0xabd4('0x21')](handleEntityNotFound(_0x38e758,null))['then'](function(_0xd617e1){if(_0xd617e1){_0x126beb=_0xd617e1;_0x12cf0c[_0xabd4('0x41')]=_[_0xabd4('0x44')](db[_0xabd4('0x72')][_0xabd4('0x3e')]);_0x12cf0c[_0xabd4('0x43')]=_[_0xabd4('0x44')](_0xc95219[_0xabd4('0x43')]);_0x12cf0c['filters']=_[_0xabd4('0x46')](_0x12cf0c[_0xabd4('0x41')],_0x12cf0c['query']);_0x1f7f81[_0xabd4('0x47')]=_['intersection'](_0x12cf0c['model'],qs[_0xabd4('0x48')](_0xc95219[_0xabd4('0x43')]['fields']));_0x1f7f81[_0xabd4('0x47')]=_0x1f7f81[_0xabd4('0x47')][_0xabd4('0x49')]?_0x1f7f81[_0xabd4('0x47')]:_0x12cf0c[_0xabd4('0x41')];_0x1f7f81[_0xabd4('0x4b')]=qs[_0xabd4('0x4c')](_0xc95219['query']['sort']);_0x1f7f81['where']=qs[_0xabd4('0x45')](_[_0xabd4('0x4e')](_0xc95219[_0xabd4('0x43')],_0x12cf0c[_0xabd4('0x45')]));if(_0xc95219['query'][_0xabd4('0x4f')]){_0x1f7f81[_0xabd4('0x4d')]=_[_0xabd4('0x50')](_0x1f7f81['where'],{'$or':_[_0xabd4('0x42')](_0x1f7f81['attributes'],function(_0x492cd4){var _0xd2d572={};_0xd2d572[_0x492cd4]={'$like':'%'+_0xc95219[_0xabd4('0x43')][_0xabd4('0x4f')]+'%'};return _0xd2d572;})});}_0x1f7f81=_[_0xabd4('0x50')]({},_0x1f7f81,_0xc95219['options']);return _0x126beb[_0xabd4('0x96')](_0x1f7f81);}})[_0xabd4('0x21')](function(_0x3059a8){if(_0x3059a8){_0x1c8801=_0x3059a8[_0xabd4('0x49')];if(!_0xc95219[_0xabd4('0x43')][_0xabd4('0x64')](_0xabd4('0x65'))){_0x1f7f81[_0xabd4('0x4a')]=qs[_0xabd4('0x4a')](_0xc95219[_0xabd4('0x43')]['limit']);_0x1f7f81[_0xabd4('0x30')]=qs['offset'](_0xc95219[_0xabd4('0x43')][_0xabd4('0x30')]);}return _0x126beb[_0xabd4('0x96')](_0x1f7f81);}})[_0xabd4('0x21')](function(_0x528eef){if(_0x528eef){return _0x528eef?{'count':_0x1c8801,'rows':_0x528eef}:null;}})['then'](respondWithResult(_0x38e758,null))['catch'](handleError(_0x38e758,null));};