34621eb7e681a1ef3205418d636b5c41ccdef79f
[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 _0xec9f=['type','key','model','keys','query','intersection','fields','attributes','length','nolimit','order','sort','pick','filters','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','describe','getMembers','UserChatQueue','hasOwnProperty','User','findAndCountAll','UserId','agent','chatPause','updatedAt','format','%s/%s','SIP','getTeams','findOne','Team','addTeams','Agents','online','voicePause','flatMap','sequelize','transaction','each','findOrCreate','forEach','userChatQueue:save','ids','select','field','from','team_has_chat_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','includes','all','compact','value','removeTeams','isEmpty','removeAgents','emit','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','request','then','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','error','message','info','request\x20sent','result','catch','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','destroy','ChatQueues','UserProfileResource','sendStatus','name','index','map','ChatQueue','rawAttributes','fieldName'];(function(_0x3f96f0,_0xa755cc){var _0x338019=function(_0xeeeb33){while(--_0xeeeb33){_0x3f96f0['push'](_0x3f96f0['shift']());}};_0x338019(++_0xa755cc);}(_0xec9f,0xf8));var _0xfec9=function(_0x4f243a,_0x36a151){_0x4f243a=_0x4f243a-0x0;var _0xc90cfb=_0xec9f[_0x4f243a];return _0xc90cfb;};'use strict';var emlformat=require(_0xfec9('0x0'));var rimraf=require(_0xfec9('0x1'));var zipdir=require(_0xfec9('0x2'));var jsonpatch=require(_0xfec9('0x3'));var rp=require(_0xfec9('0x4'));var moment=require(_0xfec9('0x5'));var BPromise=require(_0xfec9('0x6'));var Mustache=require(_0xfec9('0x7'));var util=require(_0xfec9('0x8'));var path=require(_0xfec9('0x9'));var sox=require(_0xfec9('0xa'));var csv=require('to-csv');var ejs=require(_0xfec9('0xb'));var fs=require('fs');var fs_extra=require(_0xfec9('0xc'));var _=require('lodash');var squel=require(_0xfec9('0xd'));var crypto=require('crypto');var jsforce=require(_0xfec9('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xfec9('0xf'));var Redis=require(_0xfec9('0x10'));var authService=require(_0xfec9('0x11'));var qs=require(_0xfec9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xfec9('0x13'))('api');var utils=require(_0xfec9('0x14'));var config=require(_0xfec9('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xfec9('0x16'))['db'];config['redis']=_[_0xfec9('0x17')](config[_0xfec9('0x18')],{'host':_0xfec9('0x19'),'port':0x18eb});var socket=require(_0xfec9('0x1a'))(new Redis(config[_0xfec9('0x18')]));require(_0xfec9('0x1b'))[_0xfec9('0x1c')](socket);var jayson=require(_0xfec9('0x1d'));var client=jayson['client'][_0xfec9('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x43ad96,_0xf17464,_0x11166f,_0x3d8042){return new BPromise(function(_0x5b3541,_0x426525){var _0x329a3b=_0x3d8042||client;return _0x329a3b[_0xfec9('0x1f')](_0x43ad96,_0x11166f)[_0xfec9('0x20')](function(_0x1ec3e2){logger['info'](_0xfec9('0x21'),_0xf17464,'request\x20sent');logger[_0xfec9('0x22')](_0xfec9('0x23'),_0xf17464,'request\x20sent',JSON['stringify'](_0x1ec3e2));if(_0x1ec3e2[_0xfec9('0x24')]){if(_0x1ec3e2[_0xfec9('0x24')]['code']===0x1f4){logger[_0xfec9('0x24')](_0xfec9('0x21'),_0xf17464,_0x1ec3e2[_0xfec9('0x24')][_0xfec9('0x25')]);return _0x426525(_0x1ec3e2['error'][_0xfec9('0x25')]);}logger[_0xfec9('0x24')](_0xfec9('0x21'),_0xf17464,_0x1ec3e2['error'][_0xfec9('0x25')]);return _0x5b3541(_0x1ec3e2[_0xfec9('0x24')][_0xfec9('0x25')]);}else{logger[_0xfec9('0x26')](_0xfec9('0x21'),_0xf17464,_0xfec9('0x27'));_0x5b3541(_0x1ec3e2[_0xfec9('0x28')][_0xfec9('0x25')]);}})[_0xfec9('0x29')](function(_0x2c5ab8){logger[_0xfec9('0x24')]('ChatQueue,\x20%s,\x20%s',_0xf17464,_0x2c5ab8);_0x426525(_0x2c5ab8);});});}function respondWithStatusCode(_0x718ca4,_0x5b625d){_0x5b625d=_0x5b625d||0xcc;return function(_0x1ca040){if(_0x1ca040){return _0x718ca4['sendStatus'](_0x5b625d);}return _0x718ca4[_0xfec9('0x2a')](_0x5b625d)[_0xfec9('0x2b')]();};}function respondWithResult(_0x3e23d9,_0x50909e){_0x50909e=_0x50909e||0xc8;return function(_0x3081a5){if(_0x3081a5){return _0x3e23d9[_0xfec9('0x2a')](_0x50909e)[_0xfec9('0x2c')](_0x3081a5);}};}function respondWithFilteredResult(_0x3c34c9,_0x3f35e7){return function(_0x3861d0){if(_0x3861d0){var _0x5c90fb=typeof _0x3f35e7[_0xfec9('0x2d')]===_0xfec9('0x2e')&&typeof _0x3f35e7['limit']==='undefined';var _0x1fbdb0=_0x3861d0[_0xfec9('0x2f')];var _0x4dfd8b=_0x5c90fb?0x0:_0x3f35e7[_0xfec9('0x2d')];var _0x49d7a7=_0x5c90fb?_0x3861d0[_0xfec9('0x2f')]:_0x3f35e7['offset']+_0x3f35e7[_0xfec9('0x30')];var _0x32ed93;if(_0x49d7a7>=_0x1fbdb0){_0x49d7a7=_0x1fbdb0;_0x32ed93=0xc8;}else{_0x32ed93=0xce;}_0x3c34c9[_0xfec9('0x2a')](_0x32ed93);return _0x3c34c9[_0xfec9('0x31')](_0xfec9('0x32'),_0x4dfd8b+'-'+_0x49d7a7+'/'+_0x1fbdb0)[_0xfec9('0x2c')](_0x3861d0);}return null;};}function patchUpdates(_0x558ac1){return function(_0x2c759a){try{jsonpatch[_0xfec9('0x33')](_0x2c759a,_0x558ac1,!![]);}catch(_0x2625bc){return BPromise[_0xfec9('0x34')](_0x2625bc);}return _0x2c759a[_0xfec9('0x35')]();};}function saveUpdates(_0xb62831,_0x322122){return function(_0x1e9b7d){if(_0x1e9b7d){return _0x1e9b7d['update'](_0xb62831)[_0xfec9('0x20')](function(_0x247f12){return _0x247f12;});}return null;};}function removeEntity(_0x1611b6,_0x1ed530){return function(_0x2ed956){if(_0x2ed956){return _0x2ed956[_0xfec9('0x36')]()[_0xfec9('0x20')](function(){var _0x36342f=_0x2ed956['get']({'plain':!![]});var _0x3f49be=_0xfec9('0x37');return db[_0xfec9('0x38')][_0xfec9('0x36')]({'where':{'type':_0x3f49be,'resourceId':_0x36342f['id']}})[_0xfec9('0x20')](function(){return _0x2ed956;});})[_0xfec9('0x20')](function(){_0x1611b6['status'](0xcc)[_0xfec9('0x2b')]();});}};}function handleEntityNotFound(_0x118862,_0x36183d){return function(_0x14d8e9){if(!_0x14d8e9){_0x118862[_0xfec9('0x39')](0x194);}return _0x14d8e9;};}function handleError(_0x147092,_0x22cfc6){_0x22cfc6=_0x22cfc6||0x1f4;return function(_0x514fa4){logger[_0xfec9('0x24')](_0x514fa4['stack']);if(_0x514fa4['name']){delete _0x514fa4[_0xfec9('0x3a')];}_0x147092[_0xfec9('0x2a')](_0x22cfc6)['send'](_0x514fa4);};}exports[_0xfec9('0x3b')]=function(_0x81f1d0,_0x2a5ace){var _0x11b95b={},_0x2da4b2={},_0x49a153={'count':0x0,'rows':[]};var _0x4dfc5f=_[_0xfec9('0x3c')](db[_0xfec9('0x3d')][_0xfec9('0x3e')],function(_0x56c7d6){return{'name':_0x56c7d6[_0xfec9('0x3f')],'type':_0x56c7d6[_0xfec9('0x40')][_0xfec9('0x41')]};});_0x2da4b2[_0xfec9('0x42')]=_[_0xfec9('0x3c')](_0x4dfc5f,_0xfec9('0x3a'));_0x2da4b2['query']=_[_0xfec9('0x43')](_0x81f1d0[_0xfec9('0x44')]);_0x2da4b2['filters']=_[_0xfec9('0x45')](_0x2da4b2[_0xfec9('0x42')],_0x2da4b2[_0xfec9('0x44')]);_0x11b95b['attributes']=_[_0xfec9('0x45')](_0x2da4b2[_0xfec9('0x42')],qs[_0xfec9('0x46')](_0x81f1d0['query'][_0xfec9('0x46')]));_0x11b95b[_0xfec9('0x47')]=_0x11b95b[_0xfec9('0x47')][_0xfec9('0x48')]?_0x11b95b[_0xfec9('0x47')]:_0x2da4b2[_0xfec9('0x42')];if(!_0x81f1d0[_0xfec9('0x44')]['hasOwnProperty'](_0xfec9('0x49'))){_0x11b95b[_0xfec9('0x30')]=qs[_0xfec9('0x30')](_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x30')]);_0x11b95b[_0xfec9('0x2d')]=qs['offset'](_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x2d')]);}_0x11b95b[_0xfec9('0x4a')]=qs[_0xfec9('0x4b')](_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x4b')]);_0x11b95b['where']=qs['filters'](_[_0xfec9('0x4c')](_0x81f1d0[_0xfec9('0x44')],_0x2da4b2[_0xfec9('0x4d')]),_0x4dfc5f);if(_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x4e')]){_0x11b95b['where']=_['merge'](_0x11b95b[_0xfec9('0x4f')],{'$or':_[_0xfec9('0x3c')](_0x4dfc5f,function(_0x1ae740){if(_0x1ae740['type']!==_0xfec9('0x50')){var _0x495ecb={};_0x495ecb[_0x1ae740[_0xfec9('0x3a')]]={'$like':'%'+_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x4e')]+'%'};return _0x495ecb;}})});}_0x11b95b=_[_0xfec9('0x51')]({},_0x11b95b,_0x81f1d0[_0xfec9('0x52')]);var _0x196150={'where':_0x11b95b[_0xfec9('0x4f')]};return db[_0xfec9('0x3d')][_0xfec9('0x2f')](_0x196150)[_0xfec9('0x20')](function(_0x3767ef){_0x49a153[_0xfec9('0x2f')]=_0x3767ef;if(_0x81f1d0[_0xfec9('0x44')][_0xfec9('0x53')]){_0x11b95b[_0xfec9('0x54')]=[{'all':!![]}];}return db[_0xfec9('0x3d')][_0xfec9('0x55')](_0x11b95b);})[_0xfec9('0x20')](function(_0x172890){_0x49a153[_0xfec9('0x56')]=_0x172890;return _0x49a153;})['then'](respondWithFilteredResult(_0x2a5ace,_0x11b95b))[_0xfec9('0x29')](handleError(_0x2a5ace,null));};exports[_0xfec9('0x57')]=function(_0x24ca58,_0x409480){var _0x63c1a1={'raw':!![],'where':{'id':_0x24ca58['params']['id']}},_0x29e6d2={};_0x29e6d2['model']=_[_0xfec9('0x43')](db[_0xfec9('0x3d')][_0xfec9('0x3e')]);_0x29e6d2['query']=_[_0xfec9('0x43')](_0x24ca58[_0xfec9('0x44')]);_0x29e6d2[_0xfec9('0x4d')]=_[_0xfec9('0x45')](_0x29e6d2[_0xfec9('0x42')],_0x29e6d2['query']);_0x63c1a1[_0xfec9('0x47')]=_[_0xfec9('0x45')](_0x29e6d2['model'],qs['fields'](_0x24ca58['query'][_0xfec9('0x46')]));_0x63c1a1['attributes']=_0x63c1a1[_0xfec9('0x47')][_0xfec9('0x48')]?_0x63c1a1[_0xfec9('0x47')]:_0x29e6d2[_0xfec9('0x42')];if(_0x24ca58[_0xfec9('0x44')][_0xfec9('0x53')]){_0x63c1a1['include']=[{'all':!![]}];}_0x63c1a1=_[_0xfec9('0x51')]({},_0x63c1a1,_0x24ca58['options']);return db[_0xfec9('0x3d')][_0xfec9('0x58')](_0x63c1a1)[_0xfec9('0x20')](handleEntityNotFound(_0x409480,null))['then'](respondWithResult(_0x409480,null))[_0xfec9('0x29')](handleError(_0x409480,null));};exports[_0xfec9('0x59')]=function(_0xfd3b5,_0x233640){return db[_0xfec9('0x3d')][_0xfec9('0x59')](_0xfd3b5[_0xfec9('0x5a')],{})[_0xfec9('0x20')](function(_0x598179){var _0x40d7be=_0xfd3b5[_0xfec9('0x5b')][_0xfec9('0x5c')]({'plain':!![]});if(!_0x40d7be)throw new Error(_0xfec9('0x5d'));if(_0x40d7be[_0xfec9('0x5e')]===_0xfec9('0x5b')){var _0x4c9346=_0x598179[_0xfec9('0x5c')]({'plain':!![]});var _0x300520=_0xfec9('0x37');return db[_0xfec9('0x5f')]['find']({'where':{'name':_0x300520,'userProfileId':_0x40d7be[_0xfec9('0x60')]},'raw':!![]})[_0xfec9('0x20')](function(_0x2ce554){if(_0x2ce554&&_0x2ce554[_0xfec9('0x61')]===0x0){return db[_0xfec9('0x38')][_0xfec9('0x59')]({'name':_0x4c9346['name'],'resourceId':_0x4c9346['id'],'type':_0x2ce554[_0xfec9('0x3a')],'sectionId':_0x2ce554['id']},{})[_0xfec9('0x20')](function(){return _0x598179;});}else{return _0x598179;}})[_0xfec9('0x29')](function(_0x47d007){logger[_0xfec9('0x24')](_0xfec9('0x62'),_0x47d007);throw _0x47d007;});}return _0x598179;})[_0xfec9('0x20')](respondWithResult(_0x233640,0xc9))[_0xfec9('0x29')](handleError(_0x233640,null));};exports[_0xfec9('0x63')]=function(_0x2d2fe7,_0x425960){if(_0x2d2fe7[_0xfec9('0x5a')]['id']){delete _0x2d2fe7['body']['id'];}return db[_0xfec9('0x3d')][_0xfec9('0x58')]({'where':{'id':_0x2d2fe7[_0xfec9('0x64')]['id']}})[_0xfec9('0x20')](handleEntityNotFound(_0x425960,null))[_0xfec9('0x20')](saveUpdates(_0x2d2fe7[_0xfec9('0x5a')],null))[_0xfec9('0x20')](respondWithResult(_0x425960,null))[_0xfec9('0x29')](handleError(_0x425960,null));};exports[_0xfec9('0x36')]=function(_0x1acd4f,_0x1f5112){return db['ChatQueue'][_0xfec9('0x58')]({'where':{'id':_0x1acd4f[_0xfec9('0x64')]['id']}})[_0xfec9('0x20')](handleEntityNotFound(_0x1f5112,null))[_0xfec9('0x20')](removeEntity(_0x1f5112,null))[_0xfec9('0x29')](handleError(_0x1f5112,null));};exports['describe']=function(_0x3c8dbc,_0x292428){return db['ChatQueue'][_0xfec9('0x65')]()[_0xfec9('0x20')](respondWithResult(_0x292428,null))[_0xfec9('0x29')](handleError(_0x292428,null));};exports[_0xfec9('0x66')]=function(_0x47fb66,_0x568be0,_0x5159d1){var _0x4c0e30={'raw':!![],'where':{}},_0x5b996c={},_0x4d4534;return db['ChatQueue']['findOne']({'where':{'id':_0x47fb66['params']['id']}})['then'](handleEntityNotFound(_0x568be0,null))[_0xfec9('0x20')](function(_0x1161e6){if(_0x1161e6){_0x4d4534=_0x1161e6[_0xfec9('0x5c')]({'plain':!![]});_0x5b996c[_0xfec9('0x42')]=_['keys'](db[_0xfec9('0x67')][_0xfec9('0x3e')]);_0x5b996c[_0xfec9('0x44')]=_[_0xfec9('0x43')](_0x47fb66[_0xfec9('0x44')]);_0x5b996c['filters']=_[_0xfec9('0x45')](_0x5b996c[_0xfec9('0x42')],_0x5b996c[_0xfec9('0x44')]);_0x4c0e30['attributes']=_['intersection'](_0x5b996c['model'],qs[_0xfec9('0x46')](_0x47fb66['query'][_0xfec9('0x46')]));_0x4c0e30[_0xfec9('0x47')]=_0x4c0e30[_0xfec9('0x47')][_0xfec9('0x48')]?_0x4c0e30['attributes']:_0x5b996c[_0xfec9('0x42')];if(!_0x47fb66[_0xfec9('0x44')][_0xfec9('0x68')](_0xfec9('0x49'))){_0x4c0e30[_0xfec9('0x30')]=qs[_0xfec9('0x30')](_0x47fb66['query'][_0xfec9('0x30')]);_0x4c0e30[_0xfec9('0x2d')]=qs[_0xfec9('0x2d')](_0x47fb66[_0xfec9('0x44')][_0xfec9('0x2d')]);}_0x4c0e30[_0xfec9('0x4a')]=qs['sort'](_0x47fb66[_0xfec9('0x44')][_0xfec9('0x4b')]);_0x4c0e30[_0xfec9('0x4f')]=qs[_0xfec9('0x4d')](_['pick'](_0x47fb66['query'],_0x5b996c[_0xfec9('0x4d')]));_0x4c0e30[_0xfec9('0x4f')]['ChatQueueId']=_0x1161e6['id'];if(_0x47fb66[_0xfec9('0x44')][_0xfec9('0x4e')]){_0x4c0e30[_0xfec9('0x4f')]=_[_0xfec9('0x51')](_0x4c0e30[_0xfec9('0x4f')],{'$or':_[_0xfec9('0x3c')](_0x4c0e30[_0xfec9('0x47')],function(_0x55129b){var _0x5ddbc3={};_0x5ddbc3[_0x55129b]={'$like':'%'+_0x47fb66[_0xfec9('0x44')][_0xfec9('0x4e')]+'%'};return _0x5ddbc3;})});}_0x4c0e30=_['merge']({},_0x4c0e30,_0x47fb66[_0xfec9('0x52')]);return db['UserChatQueue'][_0xfec9('0x55')](_0x4c0e30);}})['then'](function(_0x53124f){if(_0x53124f){return db[_0xfec9('0x69')][_0xfec9('0x6a')]({'where':{'id':_['map'](_0x53124f,_0xfec9('0x6b')),'role':_0xfec9('0x6c')},'attributes':['id',_0xfec9('0x3a'),_0xfec9('0x6d'),_0xfec9('0x6e'),'createdAt']});}})[_0xfec9('0x20')](function(_0x509556){if(_0x509556){return{'count':_0x509556[_0xfec9('0x2f')],'rows':_[_0xfec9('0x3c')](_0x509556[_0xfec9('0x56')],function(_0xb2c860){return{'membername':_0xb2c860['name'],'UserId':_0xb2c860['id'],'queue_name':_0x4d4534[_0xfec9('0x3a')],'ChatQueueId':_0x4d4534['id'],'interface':util[_0xfec9('0x6f')](_0xfec9('0x70'),_0xfec9('0x71'),_0xb2c860['name']),'penalty':0x0,'paused':_0xb2c860[_0xfec9('0x6d')],'createdAt':_0xb2c860['createdAt'],'updatedAt':_0xb2c860[_0xfec9('0x6e')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xfec9('0x20')](respondWithFilteredResult(_0x568be0,_0x4c0e30))[_0xfec9('0x29')](handleError(_0x568be0,null));};exports[_0xfec9('0x72')]=function(_0x1520eb,_0x30c58b,_0x171fe5){var _0x1cf78e={};var _0x5b62c7={};var _0x5a2503;var _0xd2099e;return db[_0xfec9('0x3d')][_0xfec9('0x73')]({'where':{'id':_0x1520eb[_0xfec9('0x64')]['id']}})['then'](handleEntityNotFound(_0x30c58b,null))[_0xfec9('0x20')](function(_0x1d5c77){if(_0x1d5c77){_0x5a2503=_0x1d5c77;_0x5b62c7[_0xfec9('0x42')]=_[_0xfec9('0x43')](db[_0xfec9('0x74')][_0xfec9('0x3e')]);_0x5b62c7[_0xfec9('0x44')]=_[_0xfec9('0x43')](_0x1520eb[_0xfec9('0x44')]);_0x5b62c7[_0xfec9('0x4d')]=_[_0xfec9('0x45')](_0x5b62c7[_0xfec9('0x42')],_0x5b62c7['query']);_0x1cf78e[_0xfec9('0x47')]=_[_0xfec9('0x45')](_0x5b62c7['model'],qs[_0xfec9('0x46')](_0x1520eb[_0xfec9('0x44')][_0xfec9('0x46')]));_0x1cf78e[_0xfec9('0x47')]=_0x1cf78e['attributes'][_0xfec9('0x48')]?_0x1cf78e[_0xfec9('0x47')]:_0x5b62c7[_0xfec9('0x42')];_0x1cf78e[_0xfec9('0x4a')]=qs['sort'](_0x1520eb[_0xfec9('0x44')][_0xfec9('0x4b')]);_0x1cf78e[_0xfec9('0x4f')]=qs[_0xfec9('0x4d')](_['pick'](_0x1520eb[_0xfec9('0x44')],_0x5b62c7[_0xfec9('0x4d')]));if(_0x1520eb[_0xfec9('0x44')][_0xfec9('0x4e')]){_0x1cf78e['where']=_[_0xfec9('0x51')](_0x1cf78e['where'],{'$or':_[_0xfec9('0x3c')](_0x1cf78e[_0xfec9('0x47')],function(_0x411fd8){var _0x44fa93={};_0x44fa93[_0x411fd8]={'$like':'%'+_0x1520eb[_0xfec9('0x44')][_0xfec9('0x4e')]+'%'};return _0x44fa93;})});}_0x1cf78e=_[_0xfec9('0x51')]({},_0x1cf78e,_0x1520eb[_0xfec9('0x52')]);return _0x5a2503['getTeams'](_0x1cf78e);}})[_0xfec9('0x20')](function(_0x496631){if(_0x496631){_0xd2099e=_0x496631[_0xfec9('0x48')];if(!_0x1520eb[_0xfec9('0x44')][_0xfec9('0x68')](_0xfec9('0x49'))){_0x1cf78e[_0xfec9('0x30')]=qs['limit'](_0x1520eb[_0xfec9('0x44')][_0xfec9('0x30')]);_0x1cf78e['offset']=qs[_0xfec9('0x2d')](_0x1520eb[_0xfec9('0x44')][_0xfec9('0x2d')]);}return _0x5a2503[_0xfec9('0x72')](_0x1cf78e);}})[_0xfec9('0x20')](function(_0x2133ea){if(_0x2133ea){return _0x2133ea?{'count':_0xd2099e,'rows':_0x2133ea}:null;}})['then'](respondWithResult(_0x30c58b,null))[_0xfec9('0x29')](handleError(_0x30c58b,null));};exports[_0xfec9('0x75')]=function(_0x55a5ec,_0x55f7c2,_0x35bff8){var _0x3c7397=_0x55a5ec['body']['ids'];return db['Team'][_0xfec9('0x55')]({'where':{'id':_0x3c7397},'attributes':['id'],'include':[{'model':db[_0xfec9('0x69')],'as':_0xfec9('0x76'),'attributes':['id',_0xfec9('0x3a'),_0xfec9('0x77'),_0xfec9('0x78'),'interface'],'raw':!![]}]})[_0xfec9('0x20')](function(_0x4d6785){if(_0x4d6785){var _0xc8d24a=_[_0xfec9('0x79')](_0x4d6785,function(_0xe87f25){var _0x522a74=_0xe87f25['get']({'plain':!![]});return _0x522a74['Agents'];});return db['ChatQueue'][_0xfec9('0x58')]({'where':{'id':_0x55a5ec[_0xfec9('0x64')]['id']}})['then'](function(_0x1a8743){return db[_0xfec9('0x7a')][_0xfec9('0x7b')](function(_0x5670a8){return _0x1a8743[_0xfec9('0x75')](_0x3c7397,{'transaction':_0x5670a8})[_0xfec9('0x20')](function(){return BPromise[_0xfec9('0x7c')](_0xc8d24a,function(_0x368a36){return db['UserChatQueue'][_0xfec9('0x7d')]({'where':{'UserId':_0x368a36['id'],'ChatQueueId':_0x55a5ec[_0xfec9('0x64')]['id']},'transaction':_0x5670a8});});})['then'](function(){_0xc8d24a[_0xfec9('0x7e')](function(_0x5aa880){socket['emit'](_0xfec9('0x7f'),{'UserId':_0x5aa880['id'],'ChatQueueId':_0x1a8743['id']});});});});});}})[_0xfec9('0x20')](respondWithStatusCode(_0x55f7c2,null))[_0xfec9('0x29')](handleError(_0x55f7c2,null));};exports['removeTeams']=function(_0x2b1590,_0x402bb3,_0x11089a){return db[_0xfec9('0x74')][_0xfec9('0x55')]({'where':{'id':_0x2b1590[_0xfec9('0x44')][_0xfec9('0x80')]},'attributes':['id'],'include':[{'model':db[_0xfec9('0x69')],'as':_0xfec9('0x76'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x402bb3,null))[_0xfec9('0x20')](function(_0x34d318){var _0x2b99fa=_[_0xfec9('0x3c')](_0x34d318,'id');var _0x1854aa=[];var _0x32f918=[];var _0x12acfa=squel[_0xfec9('0x81')]();_0x12acfa[_0xfec9('0x82')]('tq.TeamId')[_0xfec9('0x83')](_0xfec9('0x84'),'tq')['join'](_0xfec9('0x85'),'ut',_0xfec9('0x86'))[_0xfec9('0x4f')](_0xfec9('0x87'),_0x2b1590[_0xfec9('0x64')]['id']);for(var _0x1d5fa1=0x0;_0x1d5fa1<_0x34d318[_0xfec9('0x48')];_0x1d5fa1+=0x1){let _0x5ce86c=_0x34d318[_0x1d5fa1];for(var _0x5a1a1e=0x0;_0x5a1a1e<_0x5ce86c[_0xfec9('0x76')][_0xfec9('0x48')];_0x5a1a1e+=0x1){let _0x308518=_0x5ce86c[_0xfec9('0x76')][_0x5a1a1e];var _0x3185a7=_0x12acfa[_0xfec9('0x88')]();_0x3185a7[_0xfec9('0x4f')](_0xfec9('0x89'),_0x308518['id']);_0x32f918[_0xfec9('0x8a')](db['sequelize'][_0xfec9('0x44')](_0x3185a7[_0xfec9('0x8b')](),{'type':db['sequelize'][_0xfec9('0x8c')][_0xfec9('0x8d')]})[_0xfec9('0x20')](function(_0x4effc2){if(_0x4effc2[_0xfec9('0x48')]===0x1){return _0x308518['id'];}else{var _0x3ab154=_['every'](_[_0xfec9('0x3c')](_0x4effc2,'TeamId'),function(_0x41e422){return _[_0xfec9('0x8e')](_0x2b99fa,_0x41e422);});if(_0x3ab154){return _0x308518['id'];}}}));}}return BPromise[_0xfec9('0x8f')](_0x32f918)[_0xfec9('0x20')](function(_0xea663d){_0x1854aa=_(_0x1854aa)['union'](_0xea663d)[_0xfec9('0x90')]()[_0xfec9('0x91')]();return db[_0xfec9('0x3d')][_0xfec9('0x58')]({'where':{'id':_0x2b1590[_0xfec9('0x64')]['id']}})[_0xfec9('0x20')](function(_0x19d102){return db['sequelize']['transaction'](function(_0x25c782){return _0x19d102[_0xfec9('0x92')](_0x2b1590[_0xfec9('0x44')][_0xfec9('0x80')],{'transaction':_0x25c782})['then'](function(){if(!_[_0xfec9('0x93')](_0x1854aa)){return _0x19d102[_0xfec9('0x94')](_0x1854aa,{'transaction':_0x25c782});}})[_0xfec9('0x20')](function(){_0x1854aa['forEach'](function(_0x419178){socket[_0xfec9('0x95')](_0xfec9('0x96'),{'UserId':_0x419178,'ChatQueueId':_0x19d102['id']});});});});});});})[_0xfec9('0x20')](respondWithStatusCode(_0x402bb3,null))[_0xfec9('0x29')](handleError(_0x402bb3,null));};exports[_0xfec9('0x97')]=function(_0x4f7a38,_0x457f93,_0x24475c){return db[_0xfec9('0x3d')][_0xfec9('0x58')]({'where':{'id':_0x4f7a38['params']['id']}})[_0xfec9('0x20')](handleEntityNotFound(_0x457f93,null))[_0xfec9('0x20')](function(_0x4d5b5a){if(_0x4d5b5a){return _0x4d5b5a[_0xfec9('0x97')](_0x4f7a38[_0xfec9('0x5a')][_0xfec9('0x80')],_[_0xfec9('0x98')](_0x4f7a38['body'],[_0xfec9('0x80'),'id'])||{})[_0xfec9('0x99')](function(_0x28b7da){for(var _0x5644e8=0x0;_0x5644e8<_0x4f7a38[_0xfec9('0x5a')][_0xfec9('0x80')]['length'];_0x5644e8+=0x1){socket[_0xfec9('0x95')]('userChatQueue:save',{'UserId':Number(_0x4f7a38[_0xfec9('0x5a')][_0xfec9('0x80')][_0x5644e8]),'ChatQueueId':Number(_0x4f7a38['params']['id'])});}return _0x28b7da;});}})[_0xfec9('0x20')](respondWithResult(_0x457f93,null))['catch'](handleError(_0x457f93,null));};exports[_0xfec9('0x94')]=function(_0x4c4602,_0xa17a4e,_0xf6b18f){return db[_0xfec9('0x3d')][_0xfec9('0x58')]({'where':{'id':_0x4c4602[_0xfec9('0x64')]['id']}})[_0xfec9('0x20')](handleEntityNotFound(_0xa17a4e,null))[_0xfec9('0x20')](function(_0xa98c00){if(_0xa98c00){return _0xa98c00[_0xfec9('0x94')](_0x4c4602['query'][_0xfec9('0x80')])[_0xfec9('0x20')](function(){if(_[_0xfec9('0x9a')](_0x4c4602[_0xfec9('0x44')]['ids'])){for(var _0x4a8c48=0x0;_0x4a8c48<_0x4c4602[_0xfec9('0x44')]['ids'][_0xfec9('0x48')];_0x4a8c48+=0x1){socket[_0xfec9('0x95')](_0xfec9('0x96'),{'UserId':Number(_0x4c4602['query'][_0xfec9('0x80')][_0x4a8c48]),'ChatQueueId':Number(_0x4c4602[_0xfec9('0x64')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x4c4602[_0xfec9('0x44')]['ids']),'ChatQueueId':Number(_0x4c4602[_0xfec9('0x64')]['id'])});}});}})[_0xfec9('0x20')](respondWithStatusCode(_0xa17a4e,null))['catch'](handleError(_0xa17a4e,null));};exports[_0xfec9('0x9b')]=function(_0x530c3d,_0xefb831,_0x379d41){var _0xd37cc3={};var _0x275c17={};var _0x12bd89;var _0x5793a5;return db[_0xfec9('0x3d')][_0xfec9('0x73')]({'where':{'id':_0x530c3d['params']['id']}})[_0xfec9('0x20')](handleEntityNotFound(_0xefb831,null))[_0xfec9('0x20')](function(_0x47e6a5){if(_0x47e6a5){_0x12bd89=_0x47e6a5;_0x275c17[_0xfec9('0x42')]=_[_0xfec9('0x43')](db[_0xfec9('0x69')][_0xfec9('0x3e')]);_0x275c17[_0xfec9('0x44')]=_[_0xfec9('0x43')](_0x530c3d['query']);_0x275c17[_0xfec9('0x4d')]=_[_0xfec9('0x45')](_0x275c17[_0xfec9('0x42')],_0x275c17['query']);_0xd37cc3[_0xfec9('0x47')]=_['intersection'](_0x275c17[_0xfec9('0x42')],qs[_0xfec9('0x46')](_0x530c3d[_0xfec9('0x44')][_0xfec9('0x46')]));_0xd37cc3[_0xfec9('0x47')]=_0xd37cc3['attributes']['length']?_0xd37cc3[_0xfec9('0x47')]:_0x275c17[_0xfec9('0x42')];_0xd37cc3['order']=qs['sort'](_0x530c3d[_0xfec9('0x44')][_0xfec9('0x4b')]);_0xd37cc3[_0xfec9('0x4f')]=qs['filters'](_[_0xfec9('0x4c')](_0x530c3d[_0xfec9('0x44')],_0x275c17[_0xfec9('0x4d')]));if(_0x530c3d[_0xfec9('0x44')][_0xfec9('0x4e')]){_0xd37cc3[_0xfec9('0x4f')]=_[_0xfec9('0x51')](_0xd37cc3[_0xfec9('0x4f')],{'$or':_['map'](_0xd37cc3['attributes'],function(_0x155c4a){var _0x3d585d={};_0x3d585d[_0x155c4a]={'$like':'%'+_0x530c3d[_0xfec9('0x44')][_0xfec9('0x4e')]+'%'};return _0x3d585d;})});}_0xd37cc3=_[_0xfec9('0x51')]({},_0xd37cc3,_0x530c3d[_0xfec9('0x52')]);return _0x12bd89[_0xfec9('0x9b')](_0xd37cc3);}})[_0xfec9('0x20')](function(_0xc8142a){if(_0xc8142a){_0x5793a5=_0xc8142a[_0xfec9('0x48')];if(!_0x530c3d['query'][_0xfec9('0x68')](_0xfec9('0x49'))){_0xd37cc3[_0xfec9('0x30')]=qs[_0xfec9('0x30')](_0x530c3d[_0xfec9('0x44')][_0xfec9('0x30')]);_0xd37cc3[_0xfec9('0x2d')]=qs[_0xfec9('0x2d')](_0x530c3d[_0xfec9('0x44')][_0xfec9('0x2d')]);}return _0x12bd89['getAgents'](_0xd37cc3);}})[_0xfec9('0x20')](function(_0x1de8c7){if(_0x1de8c7){return _0x1de8c7?{'count':_0x5793a5,'rows':_0x1de8c7}:null;}})[_0xfec9('0x20')](respondWithResult(_0xefb831,null))[_0xfec9('0x29')](handleError(_0xefb831,null));};