1b100feeb4491f347546bb0e59be605cd1f44e30
[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 _0x1735=['lodash','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','destroy','get','ChatQueues','UserProfileResource','end','stack','name','index','map','ChatQueue','type','key','query','keys','intersection','attributes','model','fields','order','sort','where','filters','filter','merge','VIRTUAL','findAll','rows','show','params','rawAttributes','length','include','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserChatQueue','hasOwnProperty','nolimit','pick','ChatQueueId','User','findAndCountAll','agent','chatPause','updatedAt','createdAt','format','SIP','getTeams','findOne','addTeams','Team','Agents','online','voicePause','interface','flatMap','sequelize','each','forEach','emit','removeTeams','tq.TeamId','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','toString','SELECT','TeamId','includes','union','compact','value','removeAgents','userChatQueue:remove','addAgents','ids','omit','userChatQueue:save','isArray','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','util','path','to-csv','fs-extra'];(function(_0x47d99d,_0x4681cb){var _0x55e0cc=function(_0x3ace23){while(--_0x3ace23){_0x47d99d['push'](_0x47d99d['shift']());}};_0x55e0cc(++_0x4681cb);}(_0x1735,0x85));var _0x5173=function(_0x32d39a,_0x492e95){_0x32d39a=_0x32d39a-0x0;var _0x1e1267=_0x1735[_0x32d39a];return _0x1e1267;};'use strict';var emlformat=require(_0x5173('0x0'));var rimraf=require(_0x5173('0x1'));var zipdir=require(_0x5173('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5173('0x3'));var BPromise=require(_0x5173('0x4'));var Mustache=require('mustache');var util=require(_0x5173('0x5'));var path=require(_0x5173('0x6'));var sox=require('sox');var csv=require(_0x5173('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5173('0x8'));var _=require(_0x5173('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5173('0xa'));var toCsv=require(_0x5173('0x7'));var querystring=require(_0x5173('0xb'));var Papa=require(_0x5173('0xc'));var Redis=require(_0x5173('0xd'));var authService=require(_0x5173('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x5173('0xf'));var hardwareService=require(_0x5173('0x10'));var logger=require(_0x5173('0x11'))(_0x5173('0x12'));var utils=require('../../config/utils');var config=require(_0x5173('0x13'));var licenseUtil=require(_0x5173('0x14'));var db=require('../../mysqldb')['db'];config[_0x5173('0x15')]=_[_0x5173('0x16')](config[_0x5173('0x15')],{'host':_0x5173('0x17'),'port':0x18eb});var socket=require(_0x5173('0x18'))(new Redis(config[_0x5173('0x15')]));require(_0x5173('0x19'))[_0x5173('0x1a')](socket);var jayson=require(_0x5173('0x1b'));var client=jayson[_0x5173('0x1c')][_0x5173('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x18f742,_0x1e3007,_0x14ef18,_0x4a6286){return new BPromise(function(_0x2f5af5,_0x1eccb1){var _0x1db810=_0x4a6286||client;return _0x1db810['request'](_0x18f742,_0x14ef18)[_0x5173('0x1e')](function(_0x2b59d0){logger[_0x5173('0x1f')](_0x5173('0x20'),_0x1e3007,_0x5173('0x21'));logger['debug'](_0x5173('0x22'),_0x1e3007,'request\x20sent',JSON[_0x5173('0x23')](_0x2b59d0));if(_0x2b59d0[_0x5173('0x24')]){if(_0x2b59d0[_0x5173('0x24')]['code']===0x1f4){logger[_0x5173('0x24')]('ChatQueue,\x20%s,\x20%s',_0x1e3007,_0x2b59d0[_0x5173('0x24')][_0x5173('0x25')]);return _0x1eccb1(_0x2b59d0[_0x5173('0x24')]['message']);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x1e3007,_0x2b59d0[_0x5173('0x24')][_0x5173('0x25')]);return _0x2f5af5(_0x2b59d0[_0x5173('0x24')][_0x5173('0x25')]);}else{logger[_0x5173('0x1f')](_0x5173('0x20'),_0x1e3007,_0x5173('0x21'));_0x2f5af5(_0x2b59d0['result'][_0x5173('0x25')]);}})[_0x5173('0x26')](function(_0x4d55a8){logger[_0x5173('0x24')](_0x5173('0x20'),_0x1e3007,_0x4d55a8);_0x1eccb1(_0x4d55a8);});});}function respondWithStatusCode(_0x2c6a3e,_0xc651e0){_0xc651e0=_0xc651e0||0xcc;return function(_0x4705fe){if(_0x4705fe){return _0x2c6a3e[_0x5173('0x27')](_0xc651e0);}return _0x2c6a3e[_0x5173('0x28')](_0xc651e0)['end']();};}function respondWithResult(_0x98b5ee,_0x3882fb){_0x3882fb=_0x3882fb||0xc8;return function(_0x4722e7){if(_0x4722e7){return _0x98b5ee[_0x5173('0x28')](_0x3882fb)[_0x5173('0x29')](_0x4722e7);}};}function respondWithFilteredResult(_0x177b0f,_0x3a8dcd){return function(_0x17cc5b){if(_0x17cc5b){var _0x38bf0d=typeof _0x3a8dcd[_0x5173('0x2a')]===_0x5173('0x2b')&&typeof _0x3a8dcd['limit']===_0x5173('0x2b');var _0x1c3ce2=_0x17cc5b[_0x5173('0x2c')];var _0x4790d5=_0x38bf0d?0x0:_0x3a8dcd[_0x5173('0x2a')];var _0x12b47e=_0x38bf0d?_0x17cc5b[_0x5173('0x2c')]:_0x3a8dcd[_0x5173('0x2a')]+_0x3a8dcd[_0x5173('0x2d')];var _0x5cd486;if(_0x12b47e>=_0x1c3ce2){_0x12b47e=_0x1c3ce2;_0x5cd486=0xc8;}else{_0x5cd486=0xce;}_0x177b0f[_0x5173('0x28')](_0x5cd486);return _0x177b0f[_0x5173('0x2e')](_0x5173('0x2f'),_0x4790d5+'-'+_0x12b47e+'/'+_0x1c3ce2)['json'](_0x17cc5b);}return null;};}function patchUpdates(_0x28ebf8){return function(_0x54d951){try{jsonpatch[_0x5173('0x30')](_0x54d951,_0x28ebf8,!![]);}catch(_0x52b2fc){return BPromise[_0x5173('0x31')](_0x52b2fc);}return _0x54d951['save']();};}function saveUpdates(_0x2dbf1e,_0x2947eb){return function(_0x2680b4){if(_0x2680b4){return _0x2680b4[_0x5173('0x32')](_0x2dbf1e)['then'](function(_0x553373){return _0x553373;});}return null;};}function removeEntity(_0x5377ce,_0x467833){return function(_0x454c30){if(_0x454c30){return _0x454c30[_0x5173('0x33')]()[_0x5173('0x1e')](function(){var _0x555c84=_0x454c30[_0x5173('0x34')]({'plain':!![]});var _0x11ca68=_0x5173('0x35');return db[_0x5173('0x36')][_0x5173('0x33')]({'where':{'type':_0x11ca68,'resourceId':_0x555c84['id']}})['then'](function(){return _0x454c30;});})[_0x5173('0x1e')](function(){_0x5377ce[_0x5173('0x28')](0xcc)[_0x5173('0x37')]();});}};}function handleEntityNotFound(_0x4f7ad5,_0x12c08e){return function(_0x5d3f48){if(!_0x5d3f48){_0x4f7ad5[_0x5173('0x27')](0x194);}return _0x5d3f48;};}function handleError(_0x52a34e,_0x3ca3ef){_0x3ca3ef=_0x3ca3ef||0x1f4;return function(_0x1406de){logger[_0x5173('0x24')](_0x1406de[_0x5173('0x38')]);if(_0x1406de['name']){delete _0x1406de[_0x5173('0x39')];}_0x52a34e[_0x5173('0x28')](_0x3ca3ef)['send'](_0x1406de);};}exports[_0x5173('0x3a')]=function(_0x495d79,_0x311bb7){var _0xed10e7={},_0x5c4e8f={},_0x7585f1={'count':0x0,'rows':[]};var _0x1246b2=_[_0x5173('0x3b')](db[_0x5173('0x3c')]['rawAttributes'],function(_0x439269){return{'name':_0x439269['fieldName'],'type':_0x439269[_0x5173('0x3d')][_0x5173('0x3e')]};});_0x5c4e8f['model']=_[_0x5173('0x3b')](_0x1246b2,_0x5173('0x39'));_0x5c4e8f[_0x5173('0x3f')]=_[_0x5173('0x40')](_0x495d79[_0x5173('0x3f')]);_0x5c4e8f['filters']=_[_0x5173('0x41')](_0x5c4e8f['model'],_0x5c4e8f['query']);_0xed10e7[_0x5173('0x42')]=_[_0x5173('0x41')](_0x5c4e8f[_0x5173('0x43')],qs[_0x5173('0x44')](_0x495d79[_0x5173('0x3f')]['fields']));_0xed10e7['attributes']=_0xed10e7[_0x5173('0x42')]['length']?_0xed10e7[_0x5173('0x42')]:_0x5c4e8f[_0x5173('0x43')];if(!_0x495d79[_0x5173('0x3f')]['hasOwnProperty']('nolimit')){_0xed10e7[_0x5173('0x2d')]=qs[_0x5173('0x2d')](_0x495d79[_0x5173('0x3f')][_0x5173('0x2d')]);_0xed10e7['offset']=qs[_0x5173('0x2a')](_0x495d79['query'][_0x5173('0x2a')]);}_0xed10e7[_0x5173('0x45')]=qs[_0x5173('0x46')](_0x495d79[_0x5173('0x3f')][_0x5173('0x46')]);_0xed10e7[_0x5173('0x47')]=qs['filters'](_['pick'](_0x495d79['query'],_0x5c4e8f[_0x5173('0x48')]),_0x1246b2);if(_0x495d79['query'][_0x5173('0x49')]){_0xed10e7[_0x5173('0x47')]=_[_0x5173('0x4a')](_0xed10e7[_0x5173('0x47')],{'$or':_['map'](_0x1246b2,function(_0x4af572){if(_0x4af572[_0x5173('0x3d')]!==_0x5173('0x4b')){var _0x35601d={};_0x35601d[_0x4af572[_0x5173('0x39')]]={'$like':'%'+_0x495d79[_0x5173('0x3f')][_0x5173('0x49')]+'%'};return _0x35601d;}})});}_0xed10e7=_['merge']({},_0xed10e7,_0x495d79['options']);var _0x1966c4={'where':_0xed10e7[_0x5173('0x47')]};return db[_0x5173('0x3c')][_0x5173('0x2c')](_0x1966c4)['then'](function(_0x4c6965){_0x7585f1[_0x5173('0x2c')]=_0x4c6965;if(_0x495d79[_0x5173('0x3f')]['includeAll']){_0xed10e7['include']=[{'all':!![]}];}return db['ChatQueue'][_0x5173('0x4c')](_0xed10e7);})['then'](function(_0x44115e){_0x7585f1[_0x5173('0x4d')]=_0x44115e;return _0x7585f1;})[_0x5173('0x1e')](respondWithFilteredResult(_0x311bb7,_0xed10e7))[_0x5173('0x26')](handleError(_0x311bb7,null));};exports[_0x5173('0x4e')]=function(_0x3e8e9a,_0x47b892){var _0x58b94f={'raw':!![],'where':{'id':_0x3e8e9a[_0x5173('0x4f')]['id']}},_0x36a4e4={};_0x36a4e4[_0x5173('0x43')]=_[_0x5173('0x40')](db[_0x5173('0x3c')][_0x5173('0x50')]);_0x36a4e4[_0x5173('0x3f')]=_[_0x5173('0x40')](_0x3e8e9a['query']);_0x36a4e4[_0x5173('0x48')]=_[_0x5173('0x41')](_0x36a4e4[_0x5173('0x43')],_0x36a4e4[_0x5173('0x3f')]);_0x58b94f['attributes']=_['intersection'](_0x36a4e4[_0x5173('0x43')],qs['fields'](_0x3e8e9a[_0x5173('0x3f')][_0x5173('0x44')]));_0x58b94f[_0x5173('0x42')]=_0x58b94f[_0x5173('0x42')][_0x5173('0x51')]?_0x58b94f['attributes']:_0x36a4e4['model'];if(_0x3e8e9a[_0x5173('0x3f')]['includeAll']){_0x58b94f[_0x5173('0x52')]=[{'all':!![]}];}_0x58b94f=_[_0x5173('0x4a')]({},_0x58b94f,_0x3e8e9a[_0x5173('0x53')]);return db[_0x5173('0x3c')]['find'](_0x58b94f)[_0x5173('0x1e')](handleEntityNotFound(_0x47b892,null))[_0x5173('0x1e')](respondWithResult(_0x47b892,null))[_0x5173('0x26')](handleError(_0x47b892,null));};exports['create']=function(_0x472af2,_0x5c623e){return db['ChatQueue'][_0x5173('0x54')](_0x472af2[_0x5173('0x55')],{})['then'](function(_0x1f3912){var _0x46fa60=_0x472af2['user'][_0x5173('0x34')]({'plain':!![]});if(!_0x46fa60)throw new Error(_0x5173('0x56'));if(_0x46fa60[_0x5173('0x57')]==='user'){var _0x4a9ed3=_0x1f3912[_0x5173('0x34')]({'plain':!![]});var _0x1b53fb='ChatQueues';return db['UserProfileSection'][_0x5173('0x58')]({'where':{'name':_0x1b53fb,'userProfileId':_0x46fa60['userProfileId']},'raw':!![]})[_0x5173('0x1e')](function(_0x332e8d){if(_0x332e8d&&_0x332e8d[_0x5173('0x59')]===0x0){return db[_0x5173('0x36')][_0x5173('0x54')]({'name':_0x4a9ed3[_0x5173('0x39')],'resourceId':_0x4a9ed3['id'],'type':_0x332e8d[_0x5173('0x39')],'sectionId':_0x332e8d['id']},{})[_0x5173('0x1e')](function(){return _0x1f3912;});}else{return _0x1f3912;}})[_0x5173('0x26')](function(_0xee71a2){logger[_0x5173('0x24')](_0x5173('0x5a'),_0xee71a2);throw _0xee71a2;});}return _0x1f3912;})[_0x5173('0x1e')](respondWithResult(_0x5c623e,0xc9))['catch'](handleError(_0x5c623e,null));};exports[_0x5173('0x32')]=function(_0x45addb,_0x1b4714){if(_0x45addb[_0x5173('0x55')]['id']){delete _0x45addb[_0x5173('0x55')]['id'];}return db[_0x5173('0x3c')]['find']({'where':{'id':_0x45addb[_0x5173('0x4f')]['id']}})['then'](handleEntityNotFound(_0x1b4714,null))['then'](saveUpdates(_0x45addb[_0x5173('0x55')],null))['then'](respondWithResult(_0x1b4714,null))[_0x5173('0x26')](handleError(_0x1b4714,null));};exports['destroy']=function(_0x40f8e0,_0x4009d9){return db[_0x5173('0x3c')][_0x5173('0x58')]({'where':{'id':_0x40f8e0[_0x5173('0x4f')]['id']}})[_0x5173('0x1e')](handleEntityNotFound(_0x4009d9,null))['then'](removeEntity(_0x4009d9,null))['catch'](handleError(_0x4009d9,null));};exports[_0x5173('0x5b')]=function(_0x1b72e7,_0x12836b){return db['ChatQueue'][_0x5173('0x5b')]()[_0x5173('0x1e')](respondWithResult(_0x12836b,null))[_0x5173('0x26')](handleError(_0x12836b,null));};exports[_0x5173('0x5c')]=function(_0x590083,_0x43dab8,_0x357642){var _0x57cfb0={'raw':!![],'where':{}},_0x563f3b={},_0x40657b;return db['ChatQueue']['findOne']({'where':{'id':_0x590083[_0x5173('0x4f')]['id']}})[_0x5173('0x1e')](handleEntityNotFound(_0x43dab8,null))[_0x5173('0x1e')](function(_0x4ca2d6){if(_0x4ca2d6){_0x40657b=_0x4ca2d6['get']({'plain':!![]});_0x563f3b['model']=_[_0x5173('0x40')](db[_0x5173('0x5d')]['rawAttributes']);_0x563f3b[_0x5173('0x3f')]=_[_0x5173('0x40')](_0x590083[_0x5173('0x3f')]);_0x563f3b[_0x5173('0x48')]=_[_0x5173('0x41')](_0x563f3b[_0x5173('0x43')],_0x563f3b[_0x5173('0x3f')]);_0x57cfb0[_0x5173('0x42')]=_[_0x5173('0x41')](_0x563f3b[_0x5173('0x43')],qs[_0x5173('0x44')](_0x590083[_0x5173('0x3f')][_0x5173('0x44')]));_0x57cfb0['attributes']=_0x57cfb0[_0x5173('0x42')][_0x5173('0x51')]?_0x57cfb0[_0x5173('0x42')]:_0x563f3b['model'];if(!_0x590083[_0x5173('0x3f')][_0x5173('0x5e')](_0x5173('0x5f'))){_0x57cfb0['limit']=qs['limit'](_0x590083[_0x5173('0x3f')][_0x5173('0x2d')]);_0x57cfb0[_0x5173('0x2a')]=qs['offset'](_0x590083[_0x5173('0x3f')]['offset']);}_0x57cfb0['order']=qs[_0x5173('0x46')](_0x590083['query'][_0x5173('0x46')]);_0x57cfb0['where']=qs[_0x5173('0x48')](_[_0x5173('0x60')](_0x590083[_0x5173('0x3f')],_0x563f3b[_0x5173('0x48')]));_0x57cfb0[_0x5173('0x47')][_0x5173('0x61')]=_0x4ca2d6['id'];if(_0x590083[_0x5173('0x3f')][_0x5173('0x49')]){_0x57cfb0[_0x5173('0x47')]=_[_0x5173('0x4a')](_0x57cfb0[_0x5173('0x47')],{'$or':_[_0x5173('0x3b')](_0x57cfb0['attributes'],function(_0x3909ce){var _0x40e04f={};_0x40e04f[_0x3909ce]={'$like':'%'+_0x590083[_0x5173('0x3f')][_0x5173('0x49')]+'%'};return _0x40e04f;})});}_0x57cfb0=_[_0x5173('0x4a')]({},_0x57cfb0,_0x590083[_0x5173('0x53')]);return db['UserChatQueue'][_0x5173('0x4c')](_0x57cfb0);}})[_0x5173('0x1e')](function(_0x4ee635){if(_0x4ee635){return db[_0x5173('0x62')][_0x5173('0x63')]({'where':{'id':_[_0x5173('0x3b')](_0x4ee635,'UserId'),'role':_0x5173('0x64')},'attributes':['id',_0x5173('0x39'),_0x5173('0x65'),_0x5173('0x66'),_0x5173('0x67')]});}})[_0x5173('0x1e')](function(_0x502a8f){if(_0x502a8f){return{'count':_0x502a8f[_0x5173('0x2c')],'rows':_[_0x5173('0x3b')](_0x502a8f[_0x5173('0x4d')],function(_0x413f8b){return{'membername':_0x413f8b[_0x5173('0x39')],'UserId':_0x413f8b['id'],'queue_name':_0x40657b[_0x5173('0x39')],'ChatQueueId':_0x40657b['id'],'interface':util[_0x5173('0x68')]('%s/%s',_0x5173('0x69'),_0x413f8b[_0x5173('0x39')]),'penalty':0x0,'paused':_0x413f8b[_0x5173('0x65')],'createdAt':_0x413f8b[_0x5173('0x67')],'updatedAt':_0x413f8b[_0x5173('0x66')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x5173('0x1e')](respondWithFilteredResult(_0x43dab8,_0x57cfb0))[_0x5173('0x26')](handleError(_0x43dab8,null));};exports[_0x5173('0x6a')]=function(_0xfa4555,_0x473b2c,_0x59eaf1){var _0x454a1f={};var _0x30f1d9={};var _0x4edb61;var _0x204ae9;return db[_0x5173('0x3c')][_0x5173('0x6b')]({'where':{'id':_0xfa4555[_0x5173('0x4f')]['id']}})['then'](handleEntityNotFound(_0x473b2c,null))[_0x5173('0x1e')](function(_0x21a304){if(_0x21a304){_0x4edb61=_0x21a304;_0x30f1d9['model']=_[_0x5173('0x40')](db['Team']['rawAttributes']);_0x30f1d9['query']=_['keys'](_0xfa4555['query']);_0x30f1d9[_0x5173('0x48')]=_[_0x5173('0x41')](_0x30f1d9['model'],_0x30f1d9[_0x5173('0x3f')]);_0x454a1f['attributes']=_['intersection'](_0x30f1d9[_0x5173('0x43')],qs['fields'](_0xfa4555[_0x5173('0x3f')][_0x5173('0x44')]));_0x454a1f[_0x5173('0x42')]=_0x454a1f[_0x5173('0x42')][_0x5173('0x51')]?_0x454a1f[_0x5173('0x42')]:_0x30f1d9[_0x5173('0x43')];_0x454a1f[_0x5173('0x45')]=qs[_0x5173('0x46')](_0xfa4555[_0x5173('0x3f')][_0x5173('0x46')]);_0x454a1f[_0x5173('0x47')]=qs['filters'](_['pick'](_0xfa4555[_0x5173('0x3f')],_0x30f1d9[_0x5173('0x48')]));if(_0xfa4555[_0x5173('0x3f')]['filter']){_0x454a1f[_0x5173('0x47')]=_[_0x5173('0x4a')](_0x454a1f[_0x5173('0x47')],{'$or':_['map'](_0x454a1f[_0x5173('0x42')],function(_0x26929b){var _0x5d052e={};_0x5d052e[_0x26929b]={'$like':'%'+_0xfa4555[_0x5173('0x3f')]['filter']+'%'};return _0x5d052e;})});}_0x454a1f=_[_0x5173('0x4a')]({},_0x454a1f,_0xfa4555[_0x5173('0x53')]);return _0x4edb61[_0x5173('0x6a')](_0x454a1f);}})['then'](function(_0x4c6124){if(_0x4c6124){_0x204ae9=_0x4c6124[_0x5173('0x51')];if(!_0xfa4555[_0x5173('0x3f')][_0x5173('0x5e')](_0x5173('0x5f'))){_0x454a1f[_0x5173('0x2d')]=qs[_0x5173('0x2d')](_0xfa4555[_0x5173('0x3f')][_0x5173('0x2d')]);_0x454a1f['offset']=qs[_0x5173('0x2a')](_0xfa4555[_0x5173('0x3f')][_0x5173('0x2a')]);}return _0x4edb61[_0x5173('0x6a')](_0x454a1f);}})['then'](function(_0x4c9753){if(_0x4c9753){return _0x4c9753?{'count':_0x204ae9,'rows':_0x4c9753}:null;}})[_0x5173('0x1e')](respondWithResult(_0x473b2c,null))[_0x5173('0x26')](handleError(_0x473b2c,null));};exports[_0x5173('0x6c')]=function(_0x317e54,_0x486b64,_0x3a6085){var _0x25c5a8=_0x317e54[_0x5173('0x55')]['ids'];return db[_0x5173('0x6d')][_0x5173('0x4c')]({'where':{'id':_0x25c5a8},'attributes':['id'],'include':[{'model':db[_0x5173('0x62')],'as':_0x5173('0x6e'),'attributes':['id','name',_0x5173('0x6f'),_0x5173('0x70'),_0x5173('0x71')],'raw':!![]}]})[_0x5173('0x1e')](function(_0x558199){if(_0x558199){var _0x4c6281=_[_0x5173('0x72')](_0x558199,function(_0x2521d9){var _0x180e4c=_0x2521d9[_0x5173('0x34')]({'plain':!![]});return _0x180e4c[_0x5173('0x6e')];});return db['ChatQueue'][_0x5173('0x58')]({'where':{'id':_0x317e54['params']['id']}})[_0x5173('0x1e')](function(_0x15bd5f){return db[_0x5173('0x73')]['transaction'](function(_0x2b17f3){return _0x15bd5f[_0x5173('0x6c')](_0x25c5a8,{'transaction':_0x2b17f3})[_0x5173('0x1e')](function(){return BPromise[_0x5173('0x74')](_0x4c6281,function(_0x4ec698){return db[_0x5173('0x5d')]['findOrCreate']({'where':{'UserId':_0x4ec698['id'],'ChatQueueId':_0x317e54[_0x5173('0x4f')]['id']},'transaction':_0x2b17f3});});})['then'](function(){_0x4c6281[_0x5173('0x75')](function(_0x4acaca){socket[_0x5173('0x76')]('userChatQueue:save',{'UserId':_0x4acaca['id'],'ChatQueueId':_0x15bd5f['id']});});});});});}})[_0x5173('0x1e')](respondWithStatusCode(_0x486b64,null))[_0x5173('0x26')](handleError(_0x486b64,null));};exports[_0x5173('0x77')]=function(_0x20dfec,_0x443e61,_0x433753){return db['Team']['findAll']({'where':{'id':_0x20dfec['query']['ids']},'attributes':['id'],'include':[{'model':db[_0x5173('0x62')],'as':_0x5173('0x6e'),'attributes':['id'],'raw':!![]}]})[_0x5173('0x1e')](handleEntityNotFound(_0x443e61,null))[_0x5173('0x1e')](function(_0x2e5cce){var _0x40e328=_['map'](_0x2e5cce,'id');var _0x1ffd52=[];var _0x5afde0=[];var _0x1d099a=squel['select']();_0x1d099a['field'](_0x5173('0x78'))[_0x5173('0x79')]('team_has_chat_queues','tq')[_0x5173('0x7a')](_0x5173('0x7b'),'ut',_0x5173('0x7c'))['where'](_0x5173('0x7d'),_0x20dfec[_0x5173('0x4f')]['id']);for(var _0x16624c=0x0;_0x16624c<_0x2e5cce['length'];_0x16624c+=0x1){let _0x1af23c=_0x2e5cce[_0x16624c];for(var _0x1a2151=0x0;_0x1a2151<_0x1af23c[_0x5173('0x6e')]['length'];_0x1a2151+=0x1){let _0x23e047=_0x1af23c[_0x5173('0x6e')][_0x1a2151];var _0x20489e=_0x1d099a['clone']();_0x20489e[_0x5173('0x47')](_0x5173('0x7e'),_0x23e047['id']);_0x5afde0['push'](db[_0x5173('0x73')][_0x5173('0x3f')](_0x20489e[_0x5173('0x7f')](),{'type':db[_0x5173('0x73')]['QueryTypes'][_0x5173('0x80')]})['then'](function(_0x76b83f){if(_0x76b83f['length']===0x1){return _0x23e047['id'];}else{var _0x55670f=_['every'](_[_0x5173('0x3b')](_0x76b83f,_0x5173('0x81')),function(_0x12d20d){return _[_0x5173('0x82')](_0x40e328,_0x12d20d);});if(_0x55670f){return _0x23e047['id'];}}}));}}return BPromise['all'](_0x5afde0)['then'](function(_0x37d9bf){_0x1ffd52=_(_0x1ffd52)[_0x5173('0x83')](_0x37d9bf)[_0x5173('0x84')]()[_0x5173('0x85')]();return db[_0x5173('0x3c')][_0x5173('0x58')]({'where':{'id':_0x20dfec[_0x5173('0x4f')]['id']}})[_0x5173('0x1e')](function(_0x1b90d9){return db['sequelize']['transaction'](function(_0x10e057){return _0x1b90d9[_0x5173('0x77')](_0x20dfec[_0x5173('0x3f')]['ids'],{'transaction':_0x10e057})[_0x5173('0x1e')](function(){if(!_['isEmpty'](_0x1ffd52)){return _0x1b90d9[_0x5173('0x86')](_0x1ffd52,{'transaction':_0x10e057});}})[_0x5173('0x1e')](function(){_0x1ffd52['forEach'](function(_0x5d09f7){socket[_0x5173('0x76')](_0x5173('0x87'),{'UserId':_0x5d09f7,'ChatQueueId':_0x1b90d9['id']});});});});});});})[_0x5173('0x1e')](respondWithStatusCode(_0x443e61,null))[_0x5173('0x26')](handleError(_0x443e61,null));};exports[_0x5173('0x88')]=function(_0xc9001a,_0x466032,_0x3fa4dc){return db[_0x5173('0x3c')]['find']({'where':{'id':_0xc9001a[_0x5173('0x4f')]['id']}})['then'](handleEntityNotFound(_0x466032,null))[_0x5173('0x1e')](function(_0x27442f){if(_0x27442f){return _0x27442f[_0x5173('0x88')](_0xc9001a[_0x5173('0x55')][_0x5173('0x89')],_[_0x5173('0x8a')](_0xc9001a['body'],['ids','id'])||{})['spread'](function(_0x29d440){for(var _0x832d3=0x0;_0x832d3<_0xc9001a[_0x5173('0x55')][_0x5173('0x89')][_0x5173('0x51')];_0x832d3+=0x1){socket[_0x5173('0x76')](_0x5173('0x8b'),{'UserId':Number(_0xc9001a[_0x5173('0x55')][_0x5173('0x89')][_0x832d3]),'ChatQueueId':Number(_0xc9001a[_0x5173('0x4f')]['id'])});}return _0x29d440;});}})[_0x5173('0x1e')](respondWithResult(_0x466032,null))[_0x5173('0x26')](handleError(_0x466032,null));};exports[_0x5173('0x86')]=function(_0x5b8925,_0x4863fe,_0x3b9d5e){return db[_0x5173('0x3c')]['find']({'where':{'id':_0x5b8925[_0x5173('0x4f')]['id']}})[_0x5173('0x1e')](handleEntityNotFound(_0x4863fe,null))['then'](function(_0x52004f){if(_0x52004f){return _0x52004f[_0x5173('0x86')](_0x5b8925['query'][_0x5173('0x89')])['then'](function(){if(_[_0x5173('0x8c')](_0x5b8925[_0x5173('0x3f')]['ids'])){for(var _0x49b1be=0x0;_0x49b1be<_0x5b8925[_0x5173('0x3f')][_0x5173('0x89')][_0x5173('0x51')];_0x49b1be+=0x1){socket['emit'](_0x5173('0x87'),{'UserId':Number(_0x5b8925['query'][_0x5173('0x89')][_0x49b1be]),'ChatQueueId':Number(_0x5b8925[_0x5173('0x4f')]['id'])});}}else{socket['emit'](_0x5173('0x87'),{'UserId':Number(_0x5b8925[_0x5173('0x3f')][_0x5173('0x89')]),'ChatQueueId':Number(_0x5b8925[_0x5173('0x4f')]['id'])});}});}})[_0x5173('0x1e')](respondWithStatusCode(_0x4863fe,null))['catch'](handleError(_0x4863fe,null));};exports[_0x5173('0x8d')]=function(_0x56d4c3,_0x2c55e2,_0xc2ebd9){var _0x5777e5={};var _0x2b278e={};var _0x561ff5;var _0x54647a;return db[_0x5173('0x3c')][_0x5173('0x6b')]({'where':{'id':_0x56d4c3[_0x5173('0x4f')]['id']}})['then'](handleEntityNotFound(_0x2c55e2,null))[_0x5173('0x1e')](function(_0x4fc46b){if(_0x4fc46b){_0x561ff5=_0x4fc46b;_0x2b278e[_0x5173('0x43')]=_[_0x5173('0x40')](db[_0x5173('0x62')]['rawAttributes']);_0x2b278e[_0x5173('0x3f')]=_['keys'](_0x56d4c3[_0x5173('0x3f')]);_0x2b278e[_0x5173('0x48')]=_[_0x5173('0x41')](_0x2b278e[_0x5173('0x43')],_0x2b278e[_0x5173('0x3f')]);_0x5777e5[_0x5173('0x42')]=_[_0x5173('0x41')](_0x2b278e[_0x5173('0x43')],qs['fields'](_0x56d4c3[_0x5173('0x3f')][_0x5173('0x44')]));_0x5777e5['attributes']=_0x5777e5[_0x5173('0x42')][_0x5173('0x51')]?_0x5777e5[_0x5173('0x42')]:_0x2b278e[_0x5173('0x43')];_0x5777e5[_0x5173('0x45')]=qs['sort'](_0x56d4c3[_0x5173('0x3f')][_0x5173('0x46')]);_0x5777e5[_0x5173('0x47')]=qs[_0x5173('0x48')](_[_0x5173('0x60')](_0x56d4c3[_0x5173('0x3f')],_0x2b278e[_0x5173('0x48')]));if(_0x56d4c3['query'][_0x5173('0x49')]){_0x5777e5[_0x5173('0x47')]=_[_0x5173('0x4a')](_0x5777e5[_0x5173('0x47')],{'$or':_[_0x5173('0x3b')](_0x5777e5[_0x5173('0x42')],function(_0x263d17){var _0xe08be5={};_0xe08be5[_0x263d17]={'$like':'%'+_0x56d4c3[_0x5173('0x3f')][_0x5173('0x49')]+'%'};return _0xe08be5;})});}_0x5777e5=_['merge']({},_0x5777e5,_0x56d4c3[_0x5173('0x53')]);return _0x561ff5[_0x5173('0x8d')](_0x5777e5);}})[_0x5173('0x1e')](function(_0x54e2cc){if(_0x54e2cc){_0x54647a=_0x54e2cc[_0x5173('0x51')];if(!_0x56d4c3[_0x5173('0x3f')]['hasOwnProperty'](_0x5173('0x5f'))){_0x5777e5[_0x5173('0x2d')]=qs[_0x5173('0x2d')](_0x56d4c3['query']['limit']);_0x5777e5[_0x5173('0x2a')]=qs[_0x5173('0x2a')](_0x56d4c3[_0x5173('0x3f')][_0x5173('0x2a')]);}return _0x561ff5['getAgents'](_0x5777e5);}})['then'](function(_0x5c01e3){if(_0x5c01e3){return _0x5c01e3?{'count':_0x54647a,'rows':_0x5c01e3}:null;}})[_0x5173('0x1e')](respondWithResult(_0x2c55e2,null))[_0x5173('0x26')](handleError(_0x2c55e2,null));};