eedd9782d7f80318e29884c489d5babf7067c4e3
[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 _0xa8fd=['../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','jayson/promise','client','request','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','status','json','undefined','limit','count','offset','Content-Range','apply','save','update','destroy','then','ChatQueues','UserProfileResource','end','sendStatus','name','send','index','map','ChatQueue','rawAttributes','type','key','model','keys','query','filters','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','show','params','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','intersection','UserChatQueue','User','findAndCountAll','agent','updatedAt','createdAt','rows','format','%s/%s','getTeams','addTeams','ids','Team','findAll','Agents','online','voicePause','interface','transaction','findOrCreate','userChatQueue:save','removeTeams','field','tq.TeamId','from','join','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','sequelize','toString','SELECT','every','TeamId','all','compact','value','isEmpty','emit','userChatQueue:remove','addAgents','spread','removeAgents','isArray','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xa8fd,0x19f));var _0xda8f=function(_0x2c9c68,_0x49ad48){_0x2c9c68=_0x2c9c68-0x0;var _0x53576f=_0xa8fd[_0x2c9c68];return _0x53576f;};'use strict';var emlformat=require(_0xda8f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xda8f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xda8f('0x2'));var moment=require(_0xda8f('0x3'));var BPromise=require(_0xda8f('0x4'));var Mustache=require(_0xda8f('0x5'));var util=require(_0xda8f('0x6'));var path=require(_0xda8f('0x7'));var sox=require(_0xda8f('0x8'));var csv=require(_0xda8f('0x9'));var ejs=require(_0xda8f('0xa'));var fs=require('fs');var fs_extra=require(_0xda8f('0xb'));var _=require(_0xda8f('0xc'));var squel=require(_0xda8f('0xd'));var crypto=require('crypto');var jsforce=require(_0xda8f('0xe'));var deskjs=require(_0xda8f('0xf'));var toCsv=require(_0xda8f('0x9'));var querystring=require(_0xda8f('0x10'));var Papa=require(_0xda8f('0x11'));var Redis=require(_0xda8f('0x12'));var authService=require(_0xda8f('0x13'));var qs=require(_0xda8f('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xda8f('0x15'))('api');var utils=require(_0xda8f('0x16'));var config=require(_0xda8f('0x17'));var licenseUtil=require(_0xda8f('0x18'));var db=require(_0xda8f('0x19'))['db'];config[_0xda8f('0x1a')]=_[_0xda8f('0x1b')](config[_0xda8f('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0xda8f('0x1c'))(new Redis(config[_0xda8f('0x1a')]));require('./chatQueue.socket')[_0xda8f('0x1d')](socket);var jayson=require(_0xda8f('0x1e'));var client=jayson[_0xda8f('0x1f')]['http']({'port':0x232a});function respondWithRpcPromise(_0x27b793,_0x3788ae,_0x43d058,_0x57627b){return new BPromise(function(_0x2f75ce,_0x2367ff){var _0x3e295f=_0x57627b||client;return _0x3e295f[_0xda8f('0x20')](_0x27b793,_0x43d058)['then'](function(_0x3a9711){logger['info'](_0xda8f('0x21'),_0x3788ae,_0xda8f('0x22'));logger['debug'](_0xda8f('0x23'),_0x3788ae,_0xda8f('0x22'),JSON[_0xda8f('0x24')](_0x3a9711));if(_0x3a9711[_0xda8f('0x25')]){if(_0x3a9711['error'][_0xda8f('0x26')]===0x1f4){logger[_0xda8f('0x25')](_0xda8f('0x21'),_0x3788ae,_0x3a9711['error'][_0xda8f('0x27')]);return _0x2367ff(_0x3a9711[_0xda8f('0x25')][_0xda8f('0x27')]);}logger[_0xda8f('0x25')](_0xda8f('0x21'),_0x3788ae,_0x3a9711['error']['message']);return _0x2f75ce(_0x3a9711[_0xda8f('0x25')][_0xda8f('0x27')]);}else{logger[_0xda8f('0x28')](_0xda8f('0x21'),_0x3788ae,_0xda8f('0x22'));_0x2f75ce(_0x3a9711['result'][_0xda8f('0x27')]);}})[_0xda8f('0x29')](function(_0x27ba46){logger[_0xda8f('0x25')](_0xda8f('0x21'),_0x3788ae,_0x27ba46);_0x2367ff(_0x27ba46);});});}function respondWithStatusCode(_0x42906a,_0x591dca){_0x591dca=_0x591dca||0xcc;return function(_0x582e8b){if(_0x582e8b){return _0x42906a['sendStatus'](_0x591dca);}return _0x42906a[_0xda8f('0x2a')](_0x591dca)['end']();};}function respondWithResult(_0x42389e,_0x1fa685){_0x1fa685=_0x1fa685||0xc8;return function(_0x1b3f1d){if(_0x1b3f1d){return _0x42389e[_0xda8f('0x2a')](_0x1fa685)[_0xda8f('0x2b')](_0x1b3f1d);}};}function respondWithFilteredResult(_0x50565c,_0x68a0fe){return function(_0x271959){if(_0x271959){var _0x79e39e=typeof _0x68a0fe['offset']===_0xda8f('0x2c')&&typeof _0x68a0fe[_0xda8f('0x2d')]==='undefined';var _0x357618=_0x271959[_0xda8f('0x2e')];var _0x1fdfec=_0x79e39e?0x0:_0x68a0fe['offset'];var _0x43477b=_0x79e39e?_0x271959[_0xda8f('0x2e')]:_0x68a0fe[_0xda8f('0x2f')]+_0x68a0fe[_0xda8f('0x2d')];var _0x1cdc7f;if(_0x43477b>=_0x357618){_0x43477b=_0x357618;_0x1cdc7f=0xc8;}else{_0x1cdc7f=0xce;}_0x50565c[_0xda8f('0x2a')](_0x1cdc7f);return _0x50565c['set'](_0xda8f('0x30'),_0x1fdfec+'-'+_0x43477b+'/'+_0x357618)[_0xda8f('0x2b')](_0x271959);}return null;};}function patchUpdates(_0x3e7482){return function(_0x4fe133){try{jsonpatch[_0xda8f('0x31')](_0x4fe133,_0x3e7482,!![]);}catch(_0x5132cb){return BPromise['reject'](_0x5132cb);}return _0x4fe133[_0xda8f('0x32')]();};}function saveUpdates(_0x360ec5,_0x26232b){return function(_0x336e7c){if(_0x336e7c){return _0x336e7c[_0xda8f('0x33')](_0x360ec5)['then'](function(_0x2ec48b){return _0x2ec48b;});}return null;};}function removeEntity(_0x510df0,_0x5531fc){return function(_0x42c59c){if(_0x42c59c){return _0x42c59c[_0xda8f('0x34')]()[_0xda8f('0x35')](function(){var _0x299085=_0x42c59c['get']({'plain':!![]});var _0x433002=_0xda8f('0x36');return db[_0xda8f('0x37')]['destroy']({'where':{'type':_0x433002,'resourceId':_0x299085['id']}})[_0xda8f('0x35')](function(){return _0x42c59c;});})[_0xda8f('0x35')](function(){_0x510df0[_0xda8f('0x2a')](0xcc)[_0xda8f('0x38')]();});}};}function handleEntityNotFound(_0x4ca540,_0x459936){return function(_0x5a99a8){if(!_0x5a99a8){_0x4ca540[_0xda8f('0x39')](0x194);}return _0x5a99a8;};}function handleError(_0x19e247,_0x93ec11){_0x93ec11=_0x93ec11||0x1f4;return function(_0x3c43ba){logger[_0xda8f('0x25')](_0x3c43ba['stack']);if(_0x3c43ba[_0xda8f('0x3a')]){delete _0x3c43ba['name'];}_0x19e247['status'](_0x93ec11)[_0xda8f('0x3b')](_0x3c43ba);};}exports[_0xda8f('0x3c')]=function(_0x2945ac,_0x39bc0d){var _0x3d5310={},_0x2db641={},_0x2e2ec8={'count':0x0,'rows':[]};var _0x3dc621=_[_0xda8f('0x3d')](db[_0xda8f('0x3e')][_0xda8f('0x3f')],function(_0x4538f7){return{'name':_0x4538f7['fieldName'],'type':_0x4538f7[_0xda8f('0x40')][_0xda8f('0x41')]};});_0x2db641[_0xda8f('0x42')]=_[_0xda8f('0x3d')](_0x3dc621,_0xda8f('0x3a'));_0x2db641['query']=_[_0xda8f('0x43')](_0x2945ac[_0xda8f('0x44')]);_0x2db641[_0xda8f('0x45')]=_['intersection'](_0x2db641[_0xda8f('0x42')],_0x2db641[_0xda8f('0x44')]);_0x3d5310['attributes']=_['intersection'](_0x2db641[_0xda8f('0x42')],qs[_0xda8f('0x46')](_0x2945ac[_0xda8f('0x44')]['fields']));_0x3d5310[_0xda8f('0x47')]=_0x3d5310['attributes']['length']?_0x3d5310[_0xda8f('0x47')]:_0x2db641[_0xda8f('0x42')];if(!_0x2945ac[_0xda8f('0x44')][_0xda8f('0x48')](_0xda8f('0x49'))){_0x3d5310[_0xda8f('0x2d')]=qs['limit'](_0x2945ac[_0xda8f('0x44')][_0xda8f('0x2d')]);_0x3d5310['offset']=qs[_0xda8f('0x2f')](_0x2945ac['query'][_0xda8f('0x2f')]);}_0x3d5310[_0xda8f('0x4a')]=qs[_0xda8f('0x4b')](_0x2945ac[_0xda8f('0x44')][_0xda8f('0x4b')]);_0x3d5310[_0xda8f('0x4c')]=qs[_0xda8f('0x45')](_[_0xda8f('0x4d')](_0x2945ac[_0xda8f('0x44')],_0x2db641[_0xda8f('0x45')]),_0x3dc621);if(_0x2945ac['query'][_0xda8f('0x4e')]){_0x3d5310[_0xda8f('0x4c')]=_[_0xda8f('0x4f')](_0x3d5310[_0xda8f('0x4c')],{'$or':_[_0xda8f('0x3d')](_0x3dc621,function(_0x1d1724){if(_0x1d1724[_0xda8f('0x40')]!==_0xda8f('0x50')){var _0x10bdf8={};_0x10bdf8[_0x1d1724[_0xda8f('0x3a')]]={'$like':'%'+_0x2945ac[_0xda8f('0x44')][_0xda8f('0x4e')]+'%'};return _0x10bdf8;}})});}_0x3d5310=_[_0xda8f('0x4f')]({},_0x3d5310,_0x2945ac[_0xda8f('0x51')]);var _0x387875={'where':_0x3d5310[_0xda8f('0x4c')]};return db[_0xda8f('0x3e')][_0xda8f('0x2e')](_0x387875)[_0xda8f('0x35')](function(_0x3ec4e0){_0x2e2ec8[_0xda8f('0x2e')]=_0x3ec4e0;if(_0x2945ac[_0xda8f('0x44')][_0xda8f('0x52')]){_0x3d5310[_0xda8f('0x53')]=[{'all':!![]}];}return db['ChatQueue']['findAll'](_0x3d5310);})[_0xda8f('0x35')](function(_0x58b771){_0x2e2ec8['rows']=_0x58b771;return _0x2e2ec8;})[_0xda8f('0x35')](respondWithFilteredResult(_0x39bc0d,_0x3d5310))['catch'](handleError(_0x39bc0d,null));};exports[_0xda8f('0x54')]=function(_0x80cdbd,_0x34363d){var _0x549f7f={'raw':!![],'where':{'id':_0x80cdbd[_0xda8f('0x55')]['id']}},_0x1e6843={};_0x1e6843[_0xda8f('0x42')]=_[_0xda8f('0x43')](db['ChatQueue']['rawAttributes']);_0x1e6843[_0xda8f('0x44')]=_[_0xda8f('0x43')](_0x80cdbd[_0xda8f('0x44')]);_0x1e6843[_0xda8f('0x45')]=_['intersection'](_0x1e6843['model'],_0x1e6843[_0xda8f('0x44')]);_0x549f7f[_0xda8f('0x47')]=_['intersection'](_0x1e6843[_0xda8f('0x42')],qs['fields'](_0x80cdbd[_0xda8f('0x44')][_0xda8f('0x46')]));_0x549f7f[_0xda8f('0x47')]=_0x549f7f[_0xda8f('0x47')][_0xda8f('0x56')]?_0x549f7f[_0xda8f('0x47')]:_0x1e6843[_0xda8f('0x42')];if(_0x80cdbd[_0xda8f('0x44')][_0xda8f('0x52')]){_0x549f7f[_0xda8f('0x53')]=[{'all':!![]}];}_0x549f7f=_[_0xda8f('0x4f')]({},_0x549f7f,_0x80cdbd[_0xda8f('0x51')]);return db['ChatQueue']['find'](_0x549f7f)[_0xda8f('0x35')](handleEntityNotFound(_0x34363d,null))[_0xda8f('0x35')](respondWithResult(_0x34363d,null))['catch'](handleError(_0x34363d,null));};exports[_0xda8f('0x57')]=function(_0x243c68,_0x2d9f7d){return db[_0xda8f('0x3e')][_0xda8f('0x57')](_0x243c68[_0xda8f('0x58')],{})[_0xda8f('0x35')](function(_0x12b583){var _0x5db342=_0x243c68[_0xda8f('0x59')]['get']({'plain':!![]});if(!_0x5db342)throw new Error(_0xda8f('0x5a'));if(_0x5db342[_0xda8f('0x5b')]===_0xda8f('0x59')){var _0x5bbb7d=_0x12b583[_0xda8f('0x5c')]({'plain':!![]});var _0x513a25=_0xda8f('0x36');return db['UserProfileSection'][_0xda8f('0x5d')]({'where':{'name':_0x513a25,'userProfileId':_0x5db342[_0xda8f('0x5e')]},'raw':!![]})[_0xda8f('0x35')](function(_0x8f7524){if(_0x8f7524&&_0x8f7524['autoAssociation']===0x0){return db[_0xda8f('0x37')][_0xda8f('0x57')]({'name':_0x5bbb7d[_0xda8f('0x3a')],'resourceId':_0x5bbb7d['id'],'type':_0x8f7524['name'],'sectionId':_0x8f7524['id']},{})['then'](function(){return _0x12b583;});}else{return _0x12b583;}})[_0xda8f('0x29')](function(_0x1bb663){logger[_0xda8f('0x25')](_0xda8f('0x5f'),_0x1bb663);throw _0x1bb663;});}return _0x12b583;})[_0xda8f('0x35')](respondWithResult(_0x2d9f7d,0xc9))['catch'](handleError(_0x2d9f7d,null));};exports[_0xda8f('0x33')]=function(_0x355f25,_0x147d5d){if(_0x355f25['body']['id']){delete _0x355f25[_0xda8f('0x58')]['id'];}return db[_0xda8f('0x3e')]['find']({'where':{'id':_0x355f25[_0xda8f('0x55')]['id']}})['then'](handleEntityNotFound(_0x147d5d,null))[_0xda8f('0x35')](saveUpdates(_0x355f25[_0xda8f('0x58')],null))[_0xda8f('0x35')](respondWithResult(_0x147d5d,null))['catch'](handleError(_0x147d5d,null));};exports[_0xda8f('0x34')]=function(_0x3954b2,_0xc80e57){return db[_0xda8f('0x3e')][_0xda8f('0x5d')]({'where':{'id':_0x3954b2[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](handleEntityNotFound(_0xc80e57,null))['then'](removeEntity(_0xc80e57,null))[_0xda8f('0x29')](handleError(_0xc80e57,null));};exports[_0xda8f('0x60')]=function(_0x399d22,_0x1895e0){return db['ChatQueue'][_0xda8f('0x60')]()[_0xda8f('0x35')](respondWithResult(_0x1895e0,null))[_0xda8f('0x29')](handleError(_0x1895e0,null));};exports[_0xda8f('0x61')]=function(_0x6bbb8a,_0x7bcb,_0x45fba0){var _0x102a74={'raw':!![],'where':{}},_0x3cdbbb={},_0x1cd9e3;return db[_0xda8f('0x3e')][_0xda8f('0x62')]({'where':{'id':_0x6bbb8a[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](handleEntityNotFound(_0x7bcb,null))[_0xda8f('0x35')](function(_0x7260b2){if(_0x7260b2){_0x1cd9e3=_0x7260b2[_0xda8f('0x5c')]({'plain':!![]});_0x3cdbbb[_0xda8f('0x42')]=_['keys'](db['UserChatQueue']['rawAttributes']);_0x3cdbbb['query']=_[_0xda8f('0x43')](_0x6bbb8a[_0xda8f('0x44')]);_0x3cdbbb[_0xda8f('0x45')]=_[_0xda8f('0x63')](_0x3cdbbb[_0xda8f('0x42')],_0x3cdbbb['query']);_0x102a74[_0xda8f('0x47')]=_['intersection'](_0x3cdbbb[_0xda8f('0x42')],qs[_0xda8f('0x46')](_0x6bbb8a[_0xda8f('0x44')]['fields']));_0x102a74['attributes']=_0x102a74[_0xda8f('0x47')][_0xda8f('0x56')]?_0x102a74[_0xda8f('0x47')]:_0x3cdbbb['model'];if(!_0x6bbb8a['query'][_0xda8f('0x48')](_0xda8f('0x49'))){_0x102a74[_0xda8f('0x2d')]=qs['limit'](_0x6bbb8a[_0xda8f('0x44')]['limit']);_0x102a74[_0xda8f('0x2f')]=qs[_0xda8f('0x2f')](_0x6bbb8a[_0xda8f('0x44')][_0xda8f('0x2f')]);}_0x102a74[_0xda8f('0x4a')]=qs[_0xda8f('0x4b')](_0x6bbb8a[_0xda8f('0x44')]['sort']);_0x102a74[_0xda8f('0x4c')]=qs[_0xda8f('0x45')](_['pick'](_0x6bbb8a[_0xda8f('0x44')],_0x3cdbbb[_0xda8f('0x45')]));_0x102a74['where']['ChatQueueId']=_0x7260b2['id'];if(_0x6bbb8a[_0xda8f('0x44')][_0xda8f('0x4e')]){_0x102a74[_0xda8f('0x4c')]=_[_0xda8f('0x4f')](_0x102a74[_0xda8f('0x4c')],{'$or':_[_0xda8f('0x3d')](_0x102a74[_0xda8f('0x47')],function(_0x4b01d1){var _0x3abd0d={};_0x3abd0d[_0x4b01d1]={'$like':'%'+_0x6bbb8a['query'][_0xda8f('0x4e')]+'%'};return _0x3abd0d;})});}_0x102a74=_[_0xda8f('0x4f')]({},_0x102a74,_0x6bbb8a[_0xda8f('0x51')]);return db[_0xda8f('0x64')]['findAll'](_0x102a74);}})[_0xda8f('0x35')](function(_0xc0092){if(_0xc0092){return db[_0xda8f('0x65')][_0xda8f('0x66')]({'where':{'id':_[_0xda8f('0x3d')](_0xc0092,'UserId'),'role':_0xda8f('0x67')},'attributes':['id',_0xda8f('0x3a'),'chatPause',_0xda8f('0x68'),_0xda8f('0x69')]});}})['then'](function(_0x383305){if(_0x383305){return{'count':_0x383305[_0xda8f('0x2e')],'rows':_[_0xda8f('0x3d')](_0x383305[_0xda8f('0x6a')],function(_0x437c0d){return{'membername':_0x437c0d['name'],'UserId':_0x437c0d['id'],'queue_name':_0x1cd9e3[_0xda8f('0x3a')],'ChatQueueId':_0x1cd9e3['id'],'interface':util[_0xda8f('0x6b')](_0xda8f('0x6c'),'SIP',_0x437c0d['name']),'penalty':0x0,'paused':_0x437c0d['chatPause'],'createdAt':_0x437c0d[_0xda8f('0x69')],'updatedAt':_0x437c0d[_0xda8f('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xda8f('0x35')](respondWithFilteredResult(_0x7bcb,_0x102a74))[_0xda8f('0x29')](handleError(_0x7bcb,null));};exports['getTeams']=function(_0x170885,_0x2e89b6,_0x914568){var _0x418cc6={};var _0x505b29={};var _0x59c5f3;var _0x542137;return db['ChatQueue'][_0xda8f('0x62')]({'where':{'id':_0x170885['params']['id']}})[_0xda8f('0x35')](handleEntityNotFound(_0x2e89b6,null))['then'](function(_0x27c6e0){if(_0x27c6e0){_0x59c5f3=_0x27c6e0;_0x505b29[_0xda8f('0x42')]=_['keys'](db['Team']['rawAttributes']);_0x505b29[_0xda8f('0x44')]=_[_0xda8f('0x43')](_0x170885[_0xda8f('0x44')]);_0x505b29[_0xda8f('0x45')]=_[_0xda8f('0x63')](_0x505b29[_0xda8f('0x42')],_0x505b29[_0xda8f('0x44')]);_0x418cc6[_0xda8f('0x47')]=_[_0xda8f('0x63')](_0x505b29['model'],qs[_0xda8f('0x46')](_0x170885[_0xda8f('0x44')]['fields']));_0x418cc6[_0xda8f('0x47')]=_0x418cc6[_0xda8f('0x47')][_0xda8f('0x56')]?_0x418cc6['attributes']:_0x505b29[_0xda8f('0x42')];_0x418cc6[_0xda8f('0x4a')]=qs[_0xda8f('0x4b')](_0x170885[_0xda8f('0x44')][_0xda8f('0x4b')]);_0x418cc6[_0xda8f('0x4c')]=qs[_0xda8f('0x45')](_['pick'](_0x170885[_0xda8f('0x44')],_0x505b29[_0xda8f('0x45')]));if(_0x170885[_0xda8f('0x44')]['filter']){_0x418cc6[_0xda8f('0x4c')]=_[_0xda8f('0x4f')](_0x418cc6['where'],{'$or':_[_0xda8f('0x3d')](_0x418cc6[_0xda8f('0x47')],function(_0x592900){var _0x11a258={};_0x11a258[_0x592900]={'$like':'%'+_0x170885[_0xda8f('0x44')][_0xda8f('0x4e')]+'%'};return _0x11a258;})});}_0x418cc6=_[_0xda8f('0x4f')]({},_0x418cc6,_0x170885['options']);return _0x59c5f3[_0xda8f('0x6d')](_0x418cc6);}})[_0xda8f('0x35')](function(_0x406467){if(_0x406467){_0x542137=_0x406467[_0xda8f('0x56')];if(!_0x170885[_0xda8f('0x44')][_0xda8f('0x48')]('nolimit')){_0x418cc6['limit']=qs['limit'](_0x170885[_0xda8f('0x44')]['limit']);_0x418cc6[_0xda8f('0x2f')]=qs[_0xda8f('0x2f')](_0x170885[_0xda8f('0x44')]['offset']);}return _0x59c5f3[_0xda8f('0x6d')](_0x418cc6);}})[_0xda8f('0x35')](function(_0x4cca34){if(_0x4cca34){return _0x4cca34?{'count':_0x542137,'rows':_0x4cca34}:null;}})[_0xda8f('0x35')](respondWithResult(_0x2e89b6,null))['catch'](handleError(_0x2e89b6,null));};exports[_0xda8f('0x6e')]=function(_0xa5ce27,_0x64dd5f,_0x48d945){var _0x1ea98c=_0xa5ce27[_0xda8f('0x58')][_0xda8f('0x6f')];return db[_0xda8f('0x70')][_0xda8f('0x71')]({'where':{'id':_0x1ea98c},'attributes':['id'],'include':[{'model':db[_0xda8f('0x65')],'as':_0xda8f('0x72'),'attributes':['id',_0xda8f('0x3a'),_0xda8f('0x73'),_0xda8f('0x74'),_0xda8f('0x75')],'raw':!![]}]})['then'](function(_0x463988){if(_0x463988){var _0x25bec5=_['flatMap'](_0x463988,function(_0x33e402){var _0x1eb113=_0x33e402[_0xda8f('0x5c')]({'plain':!![]});return _0x1eb113['Agents'];});return db[_0xda8f('0x3e')][_0xda8f('0x5d')]({'where':{'id':_0xa5ce27[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](function(_0x575b36){return db['sequelize'][_0xda8f('0x76')](function(_0x469dc1){return _0x575b36[_0xda8f('0x6e')](_0x1ea98c,{'transaction':_0x469dc1})[_0xda8f('0x35')](function(){return BPromise['each'](_0x25bec5,function(_0x513ce5){return db[_0xda8f('0x64')][_0xda8f('0x77')]({'where':{'UserId':_0x513ce5['id'],'ChatQueueId':_0xa5ce27[_0xda8f('0x55')]['id']},'transaction':_0x469dc1});});})[_0xda8f('0x35')](function(){_0x25bec5['forEach'](function(_0x5e3b2d){socket['emit'](_0xda8f('0x78'),{'UserId':_0x5e3b2d['id'],'ChatQueueId':_0x575b36['id']});});});});});}})[_0xda8f('0x35')](respondWithStatusCode(_0x64dd5f,null))[_0xda8f('0x29')](handleError(_0x64dd5f,null));};exports[_0xda8f('0x79')]=function(_0x41b66f,_0x22f204,_0x4823a2){return db[_0xda8f('0x70')][_0xda8f('0x71')]({'where':{'id':_0x41b66f['query'][_0xda8f('0x6f')]},'attributes':['id'],'include':[{'model':db[_0xda8f('0x65')],'as':_0xda8f('0x72'),'attributes':['id'],'raw':!![]}]})[_0xda8f('0x35')](handleEntityNotFound(_0x22f204,null))[_0xda8f('0x35')](function(_0x5a7cb6){var _0x3e9a30=_['map'](_0x5a7cb6,'id');var _0x52725e=[];var _0x16e5e1=[];var _0x4a5bf0=squel['select']();_0x4a5bf0[_0xda8f('0x7a')](_0xda8f('0x7b'))[_0xda8f('0x7c')]('team_has_chat_queues','tq')[_0xda8f('0x7d')](_0xda8f('0x7e'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0xda8f('0x4c')](_0xda8f('0x7f'),_0x41b66f[_0xda8f('0x55')]['id']);for(var _0x38497f=0x0;_0x38497f<_0x5a7cb6['length'];_0x38497f+=0x1){let _0x365ba7=_0x5a7cb6[_0x38497f];for(var _0x39234e=0x0;_0x39234e<_0x365ba7[_0xda8f('0x72')][_0xda8f('0x56')];_0x39234e+=0x1){let _0xc1e367=_0x365ba7[_0xda8f('0x72')][_0x39234e];var _0x218a50=_0x4a5bf0[_0xda8f('0x80')]();_0x218a50[_0xda8f('0x4c')](_0xda8f('0x81'),_0xc1e367['id']);_0x16e5e1['push'](db[_0xda8f('0x82')][_0xda8f('0x44')](_0x218a50[_0xda8f('0x83')](),{'type':db['sequelize']['QueryTypes'][_0xda8f('0x84')]})['then'](function(_0x544a3a){if(_0x544a3a[_0xda8f('0x56')]===0x1){return _0xc1e367['id'];}else{var _0xa9467a=_[_0xda8f('0x85')](_[_0xda8f('0x3d')](_0x544a3a,_0xda8f('0x86')),function(_0x1a2f00){return _['includes'](_0x3e9a30,_0x1a2f00);});if(_0xa9467a){return _0xc1e367['id'];}}}));}}return BPromise[_0xda8f('0x87')](_0x16e5e1)[_0xda8f('0x35')](function(_0x56b505){_0x52725e=_(_0x52725e)['union'](_0x56b505)[_0xda8f('0x88')]()[_0xda8f('0x89')]();return db[_0xda8f('0x3e')]['find']({'where':{'id':_0x41b66f[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](function(_0x39caa8){return db[_0xda8f('0x82')][_0xda8f('0x76')](function(_0x1d09a0){return _0x39caa8[_0xda8f('0x79')](_0x41b66f[_0xda8f('0x44')]['ids'],{'transaction':_0x1d09a0})['then'](function(){if(!_[_0xda8f('0x8a')](_0x52725e)){return _0x39caa8['removeAgents'](_0x52725e,{'transaction':_0x1d09a0});}})[_0xda8f('0x35')](function(){_0x52725e['forEach'](function(_0x4e0d39){socket[_0xda8f('0x8b')](_0xda8f('0x8c'),{'UserId':_0x4e0d39,'ChatQueueId':_0x39caa8['id']});});});});});});})[_0xda8f('0x35')](respondWithStatusCode(_0x22f204,null))['catch'](handleError(_0x22f204,null));};exports[_0xda8f('0x8d')]=function(_0x168a32,_0x43c901,_0xf678a){return db[_0xda8f('0x3e')][_0xda8f('0x5d')]({'where':{'id':_0x168a32[_0xda8f('0x55')]['id']}})['then'](handleEntityNotFound(_0x43c901,null))['then'](function(_0x5022d9){if(_0x5022d9){return _0x5022d9['addAgents'](_0x168a32[_0xda8f('0x58')][_0xda8f('0x6f')],_['omit'](_0x168a32[_0xda8f('0x58')],['ids','id'])||{})[_0xda8f('0x8e')](function(_0x488744){for(var _0x2e013b=0x0;_0x2e013b<_0x168a32[_0xda8f('0x58')][_0xda8f('0x6f')]['length'];_0x2e013b+=0x1){socket['emit']('userChatQueue:save',{'UserId':Number(_0x168a32['body'][_0xda8f('0x6f')][_0x2e013b]),'ChatQueueId':Number(_0x168a32[_0xda8f('0x55')]['id'])});}return _0x488744;});}})['then'](respondWithResult(_0x43c901,null))[_0xda8f('0x29')](handleError(_0x43c901,null));};exports['removeAgents']=function(_0x60dc9c,_0x51f86f,_0x408511){return db[_0xda8f('0x3e')]['find']({'where':{'id':_0x60dc9c[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](handleEntityNotFound(_0x51f86f,null))[_0xda8f('0x35')](function(_0x434af0){if(_0x434af0){return _0x434af0[_0xda8f('0x8f')](_0x60dc9c['query'][_0xda8f('0x6f')])[_0xda8f('0x35')](function(){if(_[_0xda8f('0x90')](_0x60dc9c[_0xda8f('0x44')][_0xda8f('0x6f')])){for(var _0x28fc82=0x0;_0x28fc82<_0x60dc9c[_0xda8f('0x44')][_0xda8f('0x6f')][_0xda8f('0x56')];_0x28fc82+=0x1){socket[_0xda8f('0x8b')](_0xda8f('0x8c'),{'UserId':Number(_0x60dc9c[_0xda8f('0x44')][_0xda8f('0x6f')][_0x28fc82]),'ChatQueueId':Number(_0x60dc9c[_0xda8f('0x55')]['id'])});}}else{socket[_0xda8f('0x8b')](_0xda8f('0x8c'),{'UserId':Number(_0x60dc9c['query']['ids']),'ChatQueueId':Number(_0x60dc9c['params']['id'])});}});}})[_0xda8f('0x35')](respondWithStatusCode(_0x51f86f,null))[_0xda8f('0x29')](handleError(_0x51f86f,null));};exports[_0xda8f('0x91')]=function(_0x5f47c1,_0x7757b4,_0x51466c){var _0x1eaefd={};var _0x2ce46b={};var _0x5c97af;var _0x29115a;return db[_0xda8f('0x3e')][_0xda8f('0x62')]({'where':{'id':_0x5f47c1[_0xda8f('0x55')]['id']}})[_0xda8f('0x35')](handleEntityNotFound(_0x7757b4,null))[_0xda8f('0x35')](function(_0x1186ea){if(_0x1186ea){_0x5c97af=_0x1186ea;_0x2ce46b[_0xda8f('0x42')]=_[_0xda8f('0x43')](db[_0xda8f('0x65')][_0xda8f('0x3f')]);_0x2ce46b[_0xda8f('0x44')]=_['keys'](_0x5f47c1[_0xda8f('0x44')]);_0x2ce46b[_0xda8f('0x45')]=_['intersection'](_0x2ce46b[_0xda8f('0x42')],_0x2ce46b['query']);_0x1eaefd[_0xda8f('0x47')]=_[_0xda8f('0x63')](_0x2ce46b[_0xda8f('0x42')],qs[_0xda8f('0x46')](_0x5f47c1[_0xda8f('0x44')][_0xda8f('0x46')]));_0x1eaefd[_0xda8f('0x47')]=_0x1eaefd[_0xda8f('0x47')][_0xda8f('0x56')]?_0x1eaefd['attributes']:_0x2ce46b[_0xda8f('0x42')];_0x1eaefd['order']=qs[_0xda8f('0x4b')](_0x5f47c1[_0xda8f('0x44')][_0xda8f('0x4b')]);_0x1eaefd['where']=qs['filters'](_[_0xda8f('0x4d')](_0x5f47c1[_0xda8f('0x44')],_0x2ce46b[_0xda8f('0x45')]));if(_0x5f47c1['query'][_0xda8f('0x4e')]){_0x1eaefd[_0xda8f('0x4c')]=_[_0xda8f('0x4f')](_0x1eaefd[_0xda8f('0x4c')],{'$or':_[_0xda8f('0x3d')](_0x1eaefd[_0xda8f('0x47')],function(_0x4dfba2){var _0xbbb0d3={};_0xbbb0d3[_0x4dfba2]={'$like':'%'+_0x5f47c1[_0xda8f('0x44')]['filter']+'%'};return _0xbbb0d3;})});}_0x1eaefd=_[_0xda8f('0x4f')]({},_0x1eaefd,_0x5f47c1['options']);return _0x5c97af[_0xda8f('0x91')](_0x1eaefd);}})['then'](function(_0x28dfec){if(_0x28dfec){_0x29115a=_0x28dfec[_0xda8f('0x56')];if(!_0x5f47c1[_0xda8f('0x44')]['hasOwnProperty'](_0xda8f('0x49'))){_0x1eaefd[_0xda8f('0x2d')]=qs['limit'](_0x5f47c1[_0xda8f('0x44')][_0xda8f('0x2d')]);_0x1eaefd[_0xda8f('0x2f')]=qs['offset'](_0x5f47c1['query'][_0xda8f('0x2f')]);}return _0x5c97af[_0xda8f('0x91')](_0x1eaefd);}})['then'](function(_0x4abc23){if(_0x4abc23){return _0x4abc23?{'count':_0x29115a,'rows':_0x4abc23}:null;}})['then'](respondWithResult(_0x7757b4,null))[_0xda8f('0x29')](handleError(_0x7757b4,null));};