c86dd3e34a3bab657f12dc1af4e4309d6481ca64
[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 _0x446d=['hasOwnProperty','nolimit','order','sort','pick','where','merge','options','count','includeAll','include','rows','show','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','UserProfileResource','update','body','params','describe','findOne','UserChatQueue','filter','findAll','User','findAndCountAll','UserId','createdAt','format','SIP','chatPause','updatedAt','getTeams','Team','ids','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','forEach','emit','removeTeams','field','tq.TeamId','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','all','union','compact','value','addAgents','omit','userChatQueue:save','removeAgents','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','then','ChatQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','result','catch','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','destroy','get','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model'];(function(_0x223139,_0x41038f){var _0x35f2a5=function(_0x2f1595){while(--_0x2f1595){_0x223139['push'](_0x223139['shift']());}};_0x35f2a5(++_0x41038f);}(_0x446d,0xdb));var _0xd446=function(_0x4a9d73,_0x404b5f){_0x4a9d73=_0x4a9d73-0x0;var _0x2544c1=_0x446d[_0x4a9d73];return _0x2544c1;};'use strict';var emlformat=require(_0xd446('0x0'));var rimraf=require(_0xd446('0x1'));var zipdir=require(_0xd446('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd446('0x3'));var moment=require('moment');var BPromise=require(_0xd446('0x4'));var Mustache=require('mustache');var util=require(_0xd446('0x5'));var path=require(_0xd446('0x6'));var sox=require(_0xd446('0x7'));var csv=require(_0xd446('0x8'));var ejs=require(_0xd446('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd446('0xa'));var squel=require('squel');var crypto=require(_0xd446('0xb'));var jsforce=require(_0xd446('0xc'));var deskjs=require(_0xd446('0xd'));var toCsv=require(_0xd446('0x8'));var querystring=require(_0xd446('0xe'));var Papa=require(_0xd446('0xf'));var Redis=require(_0xd446('0x10'));var authService=require(_0xd446('0x11'));var qs=require(_0xd446('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd446('0x13'))(_0xd446('0x14'));var utils=require(_0xd446('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd446('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0xd446('0x17')],{'host':_0xd446('0x18'),'port':0x18eb});var socket=require(_0xd446('0x19'))(new Redis(config[_0xd446('0x17')]));require(_0xd446('0x1a'))[_0xd446('0x1b')](socket);var jayson=require(_0xd446('0x1c'));var client=jayson['client'][_0xd446('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x12b006,_0x54a37f,_0x545768,_0x5f51cd){return new BPromise(function(_0x80c5b7,_0x53ff43){var _0x101a56=_0x5f51cd||client;return _0x101a56['request'](_0x12b006,_0x545768)[_0xd446('0x1e')](function(_0x1d0473){logger['info'](_0xd446('0x1f'),_0x54a37f,'request\x20sent');logger[_0xd446('0x20')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x54a37f,_0xd446('0x21'),JSON[_0xd446('0x22')](_0x1d0473));if(_0x1d0473[_0xd446('0x23')]){if(_0x1d0473['error'][_0xd446('0x24')]===0x1f4){logger[_0xd446('0x23')]('ChatQueue,\x20%s,\x20%s',_0x54a37f,_0x1d0473[_0xd446('0x23')][_0xd446('0x25')]);return _0x53ff43(_0x1d0473[_0xd446('0x23')][_0xd446('0x25')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x54a37f,_0x1d0473[_0xd446('0x23')]['message']);return _0x80c5b7(_0x1d0473[_0xd446('0x23')][_0xd446('0x25')]);}else{logger[_0xd446('0x26')](_0xd446('0x1f'),_0x54a37f,_0xd446('0x21'));_0x80c5b7(_0x1d0473[_0xd446('0x27')][_0xd446('0x25')]);}})[_0xd446('0x28')](function(_0x44d3b0){logger[_0xd446('0x23')]('ChatQueue,\x20%s,\x20%s',_0x54a37f,_0x44d3b0);_0x53ff43(_0x44d3b0);});});}function respondWithStatusCode(_0x3e7cc5,_0x4d5a07){_0x4d5a07=_0x4d5a07||0xcc;return function(_0x918821){if(_0x918821){return _0x3e7cc5[_0xd446('0x29')](_0x4d5a07);}return _0x3e7cc5[_0xd446('0x2a')](_0x4d5a07)[_0xd446('0x2b')]();};}function respondWithResult(_0x50b447,_0x245a25){_0x245a25=_0x245a25||0xc8;return function(_0x5b0277){if(_0x5b0277){return _0x50b447['status'](_0x245a25)[_0xd446('0x2c')](_0x5b0277);}};}function respondWithFilteredResult(_0x38dbcb,_0x2f50b5){return function(_0x34f78b){if(_0x34f78b){var _0x8bb393=typeof _0x2f50b5[_0xd446('0x2d')]===_0xd446('0x2e')&&typeof _0x2f50b5['limit']===_0xd446('0x2e');var _0x52139d=_0x34f78b['count'];var _0x322aaa=_0x8bb393?0x0:_0x2f50b5[_0xd446('0x2d')];var _0x57b6e8=_0x8bb393?_0x34f78b['count']:_0x2f50b5[_0xd446('0x2d')]+_0x2f50b5[_0xd446('0x2f')];var _0x4a6fcc;if(_0x57b6e8>=_0x52139d){_0x57b6e8=_0x52139d;_0x4a6fcc=0xc8;}else{_0x4a6fcc=0xce;}_0x38dbcb[_0xd446('0x2a')](_0x4a6fcc);return _0x38dbcb[_0xd446('0x30')](_0xd446('0x31'),_0x322aaa+'-'+_0x57b6e8+'/'+_0x52139d)[_0xd446('0x2c')](_0x34f78b);}return null;};}function patchUpdates(_0x5f55d2){return function(_0x14c3f1){try{jsonpatch[_0xd446('0x32')](_0x14c3f1,_0x5f55d2,!![]);}catch(_0x5a81c7){return BPromise[_0xd446('0x33')](_0x5a81c7);}return _0x14c3f1[_0xd446('0x34')]();};}function saveUpdates(_0xa4e1ab,_0x268eb9){return function(_0x5a40ea){if(_0x5a40ea){return _0x5a40ea['update'](_0xa4e1ab)['then'](function(_0x321c72){return _0x321c72;});}return null;};}function removeEntity(_0x555af1,_0x4c1e48){return function(_0x3ee7b7){if(_0x3ee7b7){return _0x3ee7b7[_0xd446('0x35')]()['then'](function(){var _0x269fc6=_0x3ee7b7[_0xd446('0x36')]({'plain':!![]});var _0x80f749='ChatQueues';return db['UserProfileResource']['destroy']({'where':{'type':_0x80f749,'resourceId':_0x269fc6['id']}})[_0xd446('0x1e')](function(){return _0x3ee7b7;});})[_0xd446('0x1e')](function(){_0x555af1[_0xd446('0x2a')](0xcc)[_0xd446('0x2b')]();});}};}function handleEntityNotFound(_0x17a7dc,_0xbfe78a){return function(_0x2ccb13){if(!_0x2ccb13){_0x17a7dc[_0xd446('0x29')](0x194);}return _0x2ccb13;};}function handleError(_0x1e648e,_0x46dbe5){_0x46dbe5=_0x46dbe5||0x1f4;return function(_0x30902c){logger[_0xd446('0x23')](_0x30902c[_0xd446('0x37')]);if(_0x30902c[_0xd446('0x38')]){delete _0x30902c[_0xd446('0x38')];}_0x1e648e[_0xd446('0x2a')](_0x46dbe5)[_0xd446('0x39')](_0x30902c);};}exports[_0xd446('0x3a')]=function(_0x42fa18,_0x3873f4){var _0x84028={},_0x18198d={},_0x3e8b71={'count':0x0,'rows':[]};var _0x1d01f2=_[_0xd446('0x3b')](db[_0xd446('0x3c')][_0xd446('0x3d')],function(_0x1ae66a){return{'name':_0x1ae66a[_0xd446('0x3e')],'type':_0x1ae66a[_0xd446('0x3f')][_0xd446('0x40')]};});_0x18198d['model']=_[_0xd446('0x3b')](_0x1d01f2,_0xd446('0x38'));_0x18198d[_0xd446('0x41')]=_[_0xd446('0x42')](_0x42fa18[_0xd446('0x41')]);_0x18198d[_0xd446('0x43')]=_[_0xd446('0x44')](_0x18198d['model'],_0x18198d[_0xd446('0x41')]);_0x84028[_0xd446('0x45')]=_[_0xd446('0x44')](_0x18198d['model'],qs[_0xd446('0x46')](_0x42fa18[_0xd446('0x41')][_0xd446('0x46')]));_0x84028[_0xd446('0x45')]=_0x84028[_0xd446('0x45')][_0xd446('0x47')]?_0x84028[_0xd446('0x45')]:_0x18198d[_0xd446('0x48')];if(!_0x42fa18['query'][_0xd446('0x49')](_0xd446('0x4a'))){_0x84028[_0xd446('0x2f')]=qs[_0xd446('0x2f')](_0x42fa18['query'][_0xd446('0x2f')]);_0x84028['offset']=qs[_0xd446('0x2d')](_0x42fa18[_0xd446('0x41')]['offset']);}_0x84028[_0xd446('0x4b')]=qs[_0xd446('0x4c')](_0x42fa18[_0xd446('0x41')][_0xd446('0x4c')]);_0x84028['where']=qs[_0xd446('0x43')](_[_0xd446('0x4d')](_0x42fa18['query'],_0x18198d[_0xd446('0x43')]),_0x1d01f2);if(_0x42fa18['query']['filter']){_0x84028[_0xd446('0x4e')]=_['merge'](_0x84028[_0xd446('0x4e')],{'$or':_['map'](_0x1d01f2,function(_0x1f5cc4){if(_0x1f5cc4[_0xd446('0x3f')]!=='VIRTUAL'){var _0x1cd214={};_0x1cd214[_0x1f5cc4[_0xd446('0x38')]]={'$like':'%'+_0x42fa18[_0xd446('0x41')]['filter']+'%'};return _0x1cd214;}})});}_0x84028=_[_0xd446('0x4f')]({},_0x84028,_0x42fa18[_0xd446('0x50')]);var _0x39f3e4={'where':_0x84028[_0xd446('0x4e')]};return db[_0xd446('0x3c')]['count'](_0x39f3e4)[_0xd446('0x1e')](function(_0x315789){_0x3e8b71[_0xd446('0x51')]=_0x315789;if(_0x42fa18['query'][_0xd446('0x52')]){_0x84028[_0xd446('0x53')]=[{'all':!![]}];}return db[_0xd446('0x3c')]['findAll'](_0x84028);})[_0xd446('0x1e')](function(_0x3deed4){_0x3e8b71[_0xd446('0x54')]=_0x3deed4;return _0x3e8b71;})['then'](respondWithFilteredResult(_0x3873f4,_0x84028))[_0xd446('0x28')](handleError(_0x3873f4,null));};exports[_0xd446('0x55')]=function(_0x364286,_0x4500ba){var _0x1feb66={'raw':!![],'where':{'id':_0x364286['params']['id']}},_0x436d82={};_0x436d82[_0xd446('0x48')]=_[_0xd446('0x42')](db[_0xd446('0x3c')][_0xd446('0x3d')]);_0x436d82[_0xd446('0x41')]=_[_0xd446('0x42')](_0x364286['query']);_0x436d82[_0xd446('0x43')]=_['intersection'](_0x436d82[_0xd446('0x48')],_0x436d82[_0xd446('0x41')]);_0x1feb66[_0xd446('0x45')]=_[_0xd446('0x44')](_0x436d82['model'],qs['fields'](_0x364286['query'][_0xd446('0x46')]));_0x1feb66[_0xd446('0x45')]=_0x1feb66['attributes']['length']?_0x1feb66[_0xd446('0x45')]:_0x436d82[_0xd446('0x48')];if(_0x364286[_0xd446('0x41')][_0xd446('0x52')]){_0x1feb66['include']=[{'all':!![]}];}_0x1feb66=_[_0xd446('0x4f')]({},_0x1feb66,_0x364286[_0xd446('0x50')]);return db[_0xd446('0x3c')][_0xd446('0x56')](_0x1feb66)[_0xd446('0x1e')](handleEntityNotFound(_0x4500ba,null))['then'](respondWithResult(_0x4500ba,null))[_0xd446('0x28')](handleError(_0x4500ba,null));};exports[_0xd446('0x57')]=function(_0x3e911b,_0x4b116b){return db[_0xd446('0x3c')][_0xd446('0x57')](_0x3e911b['body'],{})[_0xd446('0x1e')](function(_0x11f213){var _0x286f47=_0x3e911b[_0xd446('0x58')][_0xd446('0x36')]({'plain':!![]});if(!_0x286f47)throw new Error(_0xd446('0x59'));if(_0x286f47['role']===_0xd446('0x58')){var _0x54e108=_0x11f213['get']({'plain':!![]});var _0x36a95f='ChatQueues';return db[_0xd446('0x5a')][_0xd446('0x56')]({'where':{'name':_0x36a95f,'userProfileId':_0x286f47['userProfileId']},'raw':!![]})['then'](function(_0x80d565){if(_0x80d565&&_0x80d565['autoAssociation']===0x0){return db[_0xd446('0x5b')][_0xd446('0x57')]({'name':_0x54e108[_0xd446('0x38')],'resourceId':_0x54e108['id'],'type':_0x80d565[_0xd446('0x38')],'sectionId':_0x80d565['id']},{})[_0xd446('0x1e')](function(){return _0x11f213;});}else{return _0x11f213;}})[_0xd446('0x28')](function(_0x2f12e3){logger[_0xd446('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2f12e3);throw _0x2f12e3;});}return _0x11f213;})['then'](respondWithResult(_0x4b116b,0xc9))[_0xd446('0x28')](handleError(_0x4b116b,null));};exports[_0xd446('0x5c')]=function(_0x3f807d,_0x4f38a5){if(_0x3f807d[_0xd446('0x5d')]['id']){delete _0x3f807d[_0xd446('0x5d')]['id'];}return db[_0xd446('0x3c')][_0xd446('0x56')]({'where':{'id':_0x3f807d[_0xd446('0x5e')]['id']}})[_0xd446('0x1e')](handleEntityNotFound(_0x4f38a5,null))[_0xd446('0x1e')](saveUpdates(_0x3f807d['body'],null))['then'](respondWithResult(_0x4f38a5,null))[_0xd446('0x28')](handleError(_0x4f38a5,null));};exports[_0xd446('0x35')]=function(_0x18d56d,_0x5634a1){return db['ChatQueue'][_0xd446('0x56')]({'where':{'id':_0x18d56d['params']['id']}})[_0xd446('0x1e')](handleEntityNotFound(_0x5634a1,null))[_0xd446('0x1e')](removeEntity(_0x5634a1,null))['catch'](handleError(_0x5634a1,null));};exports[_0xd446('0x5f')]=function(_0x467c09,_0x2d4764){return db[_0xd446('0x3c')][_0xd446('0x5f')]()['then'](respondWithResult(_0x2d4764,null))[_0xd446('0x28')](handleError(_0x2d4764,null));};exports['getMembers']=function(_0x4ef72c,_0x1e76d4,_0x23fcbf){var _0x37f945={'raw':!![],'where':{}},_0x46f687={},_0x4f578c;return db[_0xd446('0x3c')][_0xd446('0x60')]({'where':{'id':_0x4ef72c[_0xd446('0x5e')]['id']}})[_0xd446('0x1e')](handleEntityNotFound(_0x1e76d4,null))[_0xd446('0x1e')](function(_0x39d732){if(_0x39d732){_0x4f578c=_0x39d732[_0xd446('0x36')]({'plain':!![]});_0x46f687[_0xd446('0x48')]=_[_0xd446('0x42')](db[_0xd446('0x61')][_0xd446('0x3d')]);_0x46f687[_0xd446('0x41')]=_['keys'](_0x4ef72c[_0xd446('0x41')]);_0x46f687[_0xd446('0x43')]=_[_0xd446('0x44')](_0x46f687['model'],_0x46f687[_0xd446('0x41')]);_0x37f945[_0xd446('0x45')]=_[_0xd446('0x44')](_0x46f687['model'],qs[_0xd446('0x46')](_0x4ef72c[_0xd446('0x41')][_0xd446('0x46')]));_0x37f945[_0xd446('0x45')]=_0x37f945[_0xd446('0x45')][_0xd446('0x47')]?_0x37f945[_0xd446('0x45')]:_0x46f687[_0xd446('0x48')];if(!_0x4ef72c['query'][_0xd446('0x49')]('nolimit')){_0x37f945[_0xd446('0x2f')]=qs[_0xd446('0x2f')](_0x4ef72c[_0xd446('0x41')][_0xd446('0x2f')]);_0x37f945[_0xd446('0x2d')]=qs[_0xd446('0x2d')](_0x4ef72c[_0xd446('0x41')][_0xd446('0x2d')]);}_0x37f945[_0xd446('0x4b')]=qs[_0xd446('0x4c')](_0x4ef72c[_0xd446('0x41')][_0xd446('0x4c')]);_0x37f945[_0xd446('0x4e')]=qs['filters'](_['pick'](_0x4ef72c['query'],_0x46f687[_0xd446('0x43')]));_0x37f945[_0xd446('0x4e')]['ChatQueueId']=_0x39d732['id'];if(_0x4ef72c['query'][_0xd446('0x62')]){_0x37f945[_0xd446('0x4e')]=_[_0xd446('0x4f')](_0x37f945[_0xd446('0x4e')],{'$or':_[_0xd446('0x3b')](_0x37f945[_0xd446('0x45')],function(_0x2f5f9c){var _0x74b7e0={};_0x74b7e0[_0x2f5f9c]={'$like':'%'+_0x4ef72c[_0xd446('0x41')][_0xd446('0x62')]+'%'};return _0x74b7e0;})});}_0x37f945=_[_0xd446('0x4f')]({},_0x37f945,_0x4ef72c['options']);return db[_0xd446('0x61')][_0xd446('0x63')](_0x37f945);}})[_0xd446('0x1e')](function(_0x39cfd2){if(_0x39cfd2){return db[_0xd446('0x64')][_0xd446('0x65')]({'where':{'id':_[_0xd446('0x3b')](_0x39cfd2,_0xd446('0x66')),'role':'agent'},'attributes':['id',_0xd446('0x38'),'chatPause','updatedAt',_0xd446('0x67')]});}})[_0xd446('0x1e')](function(_0x56f7ac){if(_0x56f7ac){return{'count':_0x56f7ac[_0xd446('0x51')],'rows':_['map'](_0x56f7ac[_0xd446('0x54')],function(_0x4e03cb){return{'membername':_0x4e03cb[_0xd446('0x38')],'UserId':_0x4e03cb['id'],'queue_name':_0x4f578c['name'],'ChatQueueId':_0x4f578c['id'],'interface':util[_0xd446('0x68')]('%s/%s',_0xd446('0x69'),_0x4e03cb[_0xd446('0x38')]),'penalty':0x0,'paused':_0x4e03cb[_0xd446('0x6a')],'createdAt':_0x4e03cb[_0xd446('0x67')],'updatedAt':_0x4e03cb[_0xd446('0x6b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xd446('0x1e')](respondWithFilteredResult(_0x1e76d4,_0x37f945))[_0xd446('0x28')](handleError(_0x1e76d4,null));};exports[_0xd446('0x6c')]=function(_0x56e59f,_0x8eec2,_0x41b5e7){var _0xfece70={};var _0x208824={};var _0x552500;var _0xdf125e;return db['ChatQueue'][_0xd446('0x60')]({'where':{'id':_0x56e59f[_0xd446('0x5e')]['id']}})['then'](handleEntityNotFound(_0x8eec2,null))[_0xd446('0x1e')](function(_0x25b181){if(_0x25b181){_0x552500=_0x25b181;_0x208824[_0xd446('0x48')]=_[_0xd446('0x42')](db[_0xd446('0x6d')]['rawAttributes']);_0x208824[_0xd446('0x41')]=_[_0xd446('0x42')](_0x56e59f['query']);_0x208824['filters']=_[_0xd446('0x44')](_0x208824[_0xd446('0x48')],_0x208824[_0xd446('0x41')]);_0xfece70[_0xd446('0x45')]=_[_0xd446('0x44')](_0x208824[_0xd446('0x48')],qs[_0xd446('0x46')](_0x56e59f[_0xd446('0x41')][_0xd446('0x46')]));_0xfece70[_0xd446('0x45')]=_0xfece70[_0xd446('0x45')][_0xd446('0x47')]?_0xfece70[_0xd446('0x45')]:_0x208824[_0xd446('0x48')];_0xfece70[_0xd446('0x4b')]=qs[_0xd446('0x4c')](_0x56e59f[_0xd446('0x41')]['sort']);_0xfece70['where']=qs['filters'](_[_0xd446('0x4d')](_0x56e59f[_0xd446('0x41')],_0x208824['filters']));if(_0x56e59f[_0xd446('0x41')]['filter']){_0xfece70[_0xd446('0x4e')]=_[_0xd446('0x4f')](_0xfece70[_0xd446('0x4e')],{'$or':_[_0xd446('0x3b')](_0xfece70[_0xd446('0x45')],function(_0x336a01){var _0x1a9931={};_0x1a9931[_0x336a01]={'$like':'%'+_0x56e59f[_0xd446('0x41')][_0xd446('0x62')]+'%'};return _0x1a9931;})});}_0xfece70=_['merge']({},_0xfece70,_0x56e59f[_0xd446('0x50')]);return _0x552500[_0xd446('0x6c')](_0xfece70);}})['then'](function(_0x15c3f4){if(_0x15c3f4){_0xdf125e=_0x15c3f4[_0xd446('0x47')];if(!_0x56e59f[_0xd446('0x41')][_0xd446('0x49')](_0xd446('0x4a'))){_0xfece70['limit']=qs['limit'](_0x56e59f[_0xd446('0x41')][_0xd446('0x2f')]);_0xfece70[_0xd446('0x2d')]=qs[_0xd446('0x2d')](_0x56e59f[_0xd446('0x41')]['offset']);}return _0x552500[_0xd446('0x6c')](_0xfece70);}})[_0xd446('0x1e')](function(_0x1aa8b3){if(_0x1aa8b3){return _0x1aa8b3?{'count':_0xdf125e,'rows':_0x1aa8b3}:null;}})[_0xd446('0x1e')](respondWithResult(_0x8eec2,null))[_0xd446('0x28')](handleError(_0x8eec2,null));};exports['addTeams']=function(_0x26b2ed,_0x3ea147,_0xdfa4ae){var _0x53132e=_0x26b2ed['body'][_0xd446('0x6e')];return db['Team']['findAll']({'where':{'id':_0x53132e},'attributes':['id'],'include':[{'model':db[_0xd446('0x64')],'as':_0xd446('0x6f'),'attributes':['id','name',_0xd446('0x70'),_0xd446('0x71'),_0xd446('0x72')],'raw':!![]}]})[_0xd446('0x1e')](function(_0x4126a3){if(_0x4126a3){var _0x35d594=_[_0xd446('0x73')](_0x4126a3,function(_0x31f941){var _0x4b6eb3=_0x31f941[_0xd446('0x36')]({'plain':!![]});return _0x4b6eb3[_0xd446('0x6f')];});return db['ChatQueue']['find']({'where':{'id':_0x26b2ed['params']['id']}})['then'](function(_0x1d7c2b){return db[_0xd446('0x74')][_0xd446('0x75')](function(_0x5275ab){return _0x1d7c2b['addTeams'](_0x53132e,{'transaction':_0x5275ab})['then'](function(){return BPromise[_0xd446('0x76')](_0x35d594,function(_0x567655){return db[_0xd446('0x61')]['findOrCreate']({'where':{'UserId':_0x567655['id'],'ChatQueueId':_0x26b2ed[_0xd446('0x5e')]['id']},'transaction':_0x5275ab});});})[_0xd446('0x1e')](function(){_0x35d594[_0xd446('0x77')](function(_0x24f9c7){socket[_0xd446('0x78')]('userChatQueue:save',{'UserId':_0x24f9c7['id'],'ChatQueueId':_0x1d7c2b['id']});});});});});}})[_0xd446('0x1e')](respondWithStatusCode(_0x3ea147,null))['catch'](handleError(_0x3ea147,null));};exports[_0xd446('0x79')]=function(_0x165071,_0x1e6d29,_0x248bf2){return db[_0xd446('0x6d')]['findAll']({'where':{'id':_0x165071[_0xd446('0x41')][_0xd446('0x6e')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xd446('0x6f'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x1e6d29,null))['then'](function(_0x56ce20){var _0x1dd1f1=_[_0xd446('0x3b')](_0x56ce20,'id');var _0x522107=[];var _0x23d281=[];var _0x3a2fad=squel['select']();_0x3a2fad[_0xd446('0x7a')](_0xd446('0x7b'))['from'](_0xd446('0x7c'),'tq')[_0xd446('0x7d')](_0xd446('0x7e'),'ut',_0xd446('0x7f'))[_0xd446('0x4e')]('ChatQueueId\x20=\x20?',_0x165071[_0xd446('0x5e')]['id']);for(var _0x5896e4=0x0;_0x5896e4<_0x56ce20[_0xd446('0x47')];_0x5896e4+=0x1){let _0x42a045=_0x56ce20[_0x5896e4];for(var _0x43e3ef=0x0;_0x43e3ef<_0x42a045[_0xd446('0x6f')][_0xd446('0x47')];_0x43e3ef+=0x1){let _0x303886=_0x42a045['Agents'][_0x43e3ef];var _0x271a5d=_0x3a2fad[_0xd446('0x80')]();_0x271a5d[_0xd446('0x4e')](_0xd446('0x81'),_0x303886['id']);_0x23d281[_0xd446('0x82')](db[_0xd446('0x74')][_0xd446('0x41')](_0x271a5d[_0xd446('0x83')](),{'type':db['sequelize'][_0xd446('0x84')]['SELECT']})['then'](function(_0x3ae90b){if(_0x3ae90b[_0xd446('0x47')]===0x1){return _0x303886['id'];}else{var _0x1a1a53=_[_0xd446('0x85')](_[_0xd446('0x3b')](_0x3ae90b,_0xd446('0x86')),function(_0x211dbe){return _['includes'](_0x1dd1f1,_0x211dbe);});if(_0x1a1a53){return _0x303886['id'];}}}));}}return BPromise[_0xd446('0x87')](_0x23d281)[_0xd446('0x1e')](function(_0x3cf059){_0x522107=_(_0x522107)[_0xd446('0x88')](_0x3cf059)[_0xd446('0x89')]()[_0xd446('0x8a')]();return db[_0xd446('0x3c')]['find']({'where':{'id':_0x165071[_0xd446('0x5e')]['id']}})[_0xd446('0x1e')](function(_0x537816){return db[_0xd446('0x74')]['transaction'](function(_0x455866){return _0x537816['removeTeams'](_0x165071[_0xd446('0x41')][_0xd446('0x6e')],{'transaction':_0x455866})['then'](function(){if(!_['isEmpty'](_0x522107)){return _0x537816['removeAgents'](_0x522107,{'transaction':_0x455866});}})['then'](function(){_0x522107['forEach'](function(_0x3a3529){socket[_0xd446('0x78')]('userChatQueue:remove',{'UserId':_0x3a3529,'ChatQueueId':_0x537816['id']});});});});});});})[_0xd446('0x1e')](respondWithStatusCode(_0x1e6d29,null))['catch'](handleError(_0x1e6d29,null));};exports[_0xd446('0x8b')]=function(_0x3ad5de,_0x25e441,_0x18e1a9){return db['ChatQueue'][_0xd446('0x56')]({'where':{'id':_0x3ad5de['params']['id']}})[_0xd446('0x1e')](handleEntityNotFound(_0x25e441,null))['then'](function(_0x133d7f){if(_0x133d7f){return _0x133d7f[_0xd446('0x8b')](_0x3ad5de['body']['ids'],_[_0xd446('0x8c')](_0x3ad5de[_0xd446('0x5d')],['ids','id'])||{})['spread'](function(_0x948228){for(var _0x2d3cce=0x0;_0x2d3cce<_0x3ad5de[_0xd446('0x5d')][_0xd446('0x6e')]['length'];_0x2d3cce+=0x1){socket[_0xd446('0x78')](_0xd446('0x8d'),{'UserId':Number(_0x3ad5de[_0xd446('0x5d')][_0xd446('0x6e')][_0x2d3cce]),'ChatQueueId':Number(_0x3ad5de[_0xd446('0x5e')]['id'])});}return _0x948228;});}})[_0xd446('0x1e')](respondWithResult(_0x25e441,null))['catch'](handleError(_0x25e441,null));};exports[_0xd446('0x8e')]=function(_0x4803be,_0x5df0ae,_0x476cb6){return db[_0xd446('0x3c')]['find']({'where':{'id':_0x4803be[_0xd446('0x5e')]['id']}})['then'](handleEntityNotFound(_0x5df0ae,null))['then'](function(_0x1db4b5){if(_0x1db4b5){return _0x1db4b5['removeAgents'](_0x4803be[_0xd446('0x41')]['ids'])[_0xd446('0x1e')](function(){if(_[_0xd446('0x8f')](_0x4803be[_0xd446('0x41')][_0xd446('0x6e')])){for(var _0x29c137=0x0;_0x29c137<_0x4803be[_0xd446('0x41')][_0xd446('0x6e')][_0xd446('0x47')];_0x29c137+=0x1){socket['emit'](_0xd446('0x90'),{'UserId':Number(_0x4803be['query'][_0xd446('0x6e')][_0x29c137]),'ChatQueueId':Number(_0x4803be[_0xd446('0x5e')]['id'])});}}else{socket['emit'](_0xd446('0x90'),{'UserId':Number(_0x4803be[_0xd446('0x41')][_0xd446('0x6e')]),'ChatQueueId':Number(_0x4803be[_0xd446('0x5e')]['id'])});}});}})[_0xd446('0x1e')](respondWithStatusCode(_0x5df0ae,null))[_0xd446('0x28')](handleError(_0x5df0ae,null));};exports[_0xd446('0x91')]=function(_0x14ada0,_0x4a2043,_0x3accaa){var _0x287199={};var _0x29717b={};var _0x809e5e;var _0x11f1cb;return db[_0xd446('0x3c')][_0xd446('0x60')]({'where':{'id':_0x14ada0[_0xd446('0x5e')]['id']}})[_0xd446('0x1e')](handleEntityNotFound(_0x4a2043,null))[_0xd446('0x1e')](function(_0x1f293d){if(_0x1f293d){_0x809e5e=_0x1f293d;_0x29717b['model']=_['keys'](db['User']['rawAttributes']);_0x29717b['query']=_[_0xd446('0x42')](_0x14ada0[_0xd446('0x41')]);_0x29717b[_0xd446('0x43')]=_[_0xd446('0x44')](_0x29717b[_0xd446('0x48')],_0x29717b[_0xd446('0x41')]);_0x287199[_0xd446('0x45')]=_[_0xd446('0x44')](_0x29717b[_0xd446('0x48')],qs[_0xd446('0x46')](_0x14ada0[_0xd446('0x41')][_0xd446('0x46')]));_0x287199['attributes']=_0x287199[_0xd446('0x45')][_0xd446('0x47')]?_0x287199['attributes']:_0x29717b[_0xd446('0x48')];_0x287199['order']=qs['sort'](_0x14ada0[_0xd446('0x41')][_0xd446('0x4c')]);_0x287199[_0xd446('0x4e')]=qs[_0xd446('0x43')](_['pick'](_0x14ada0[_0xd446('0x41')],_0x29717b[_0xd446('0x43')]));if(_0x14ada0[_0xd446('0x41')][_0xd446('0x62')]){_0x287199[_0xd446('0x4e')]=_[_0xd446('0x4f')](_0x287199['where'],{'$or':_[_0xd446('0x3b')](_0x287199['attributes'],function(_0x50ac71){var _0x3b2f50={};_0x3b2f50[_0x50ac71]={'$like':'%'+_0x14ada0[_0xd446('0x41')][_0xd446('0x62')]+'%'};return _0x3b2f50;})});}_0x287199=_[_0xd446('0x4f')]({},_0x287199,_0x14ada0[_0xd446('0x50')]);return _0x809e5e[_0xd446('0x91')](_0x287199);}})[_0xd446('0x1e')](function(_0x2fdc9f){if(_0x2fdc9f){_0x11f1cb=_0x2fdc9f[_0xd446('0x47')];if(!_0x14ada0[_0xd446('0x41')]['hasOwnProperty'](_0xd446('0x4a'))){_0x287199[_0xd446('0x2f')]=qs[_0xd446('0x2f')](_0x14ada0['query'][_0xd446('0x2f')]);_0x287199[_0xd446('0x2d')]=qs['offset'](_0x14ada0['query'][_0xd446('0x2d')]);}return _0x809e5e[_0xd446('0x91')](_0x287199);}})[_0xd446('0x1e')](function(_0x35ec7e){if(_0x35ec7e){return _0x35ec7e?{'count':_0x11f1cb,'rows':_0x35ec7e}:null;}})[_0xd446('0x1e')](respondWithResult(_0x4a2043,null))[_0xd446('0x28')](handleError(_0x4a2043,null));};