85b8d17bca36ebfe46332f4e7eb952e9fe15eef8
[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 _0x173f=['register','jayson/promise','client','http','test','Sequelize','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','apply','save','UserProfileResource','destroy','stack','name','send','index','map','ChatQueue','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','includeAll','include','rows','show','rawAttributes','options','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','ChatQueues','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','describe','findOne','UserChatQueue','ChatQueueId','findAll','User','findAndCountAll','UserId','updatedAt','createdAt','format','%s/%s','SIP','chatPause','Team','getTeams','ids','Agents','voicePause','interface','flatMap','transaction','addTeams','each','findOrCreate','userChatQueue:save','removeTeams','select','field','tq.TeamId','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','sequelize','toString','every','TeamId','includes','all','compact','value','removeAgents','forEach','emit','userChatQueue:remove','addAgents','getAgents','eml-format','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter'];(function(_0x4146b4,_0x274b03){var _0x5133de=function(_0x12c37e){while(--_0x12c37e){_0x4146b4['push'](_0x4146b4['shift']());}};_0x5133de(++_0x274b03);}(_0x173f,0x19b));var _0xf173=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x173f[_0x53ccf2];return _0x5a2964;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf173('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf173('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf173('0x2'));var moment=require(_0xf173('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf173('0x4'));var util=require(_0xf173('0x5'));var path=require('path');var sox=require(_0xf173('0x6'));var csv=require(_0xf173('0x7'));var ejs=require(_0xf173('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xf173('0x9'));var deskjs=require(_0xf173('0xa'));var toCsv=require(_0xf173('0x7'));var querystring=require(_0xf173('0xb'));var Papa=require('papaparse');var Redis=require(_0xf173('0xc'));var authService=require(_0xf173('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf173('0xe'))('api');var utils=require('../../config/utils');var config=require(_0xf173('0xf'));var db=require(_0xf173('0x10'))['db'];config[_0xf173('0x11')]=_[_0xf173('0x12')](config['redis'],{'host':_0xf173('0x13'),'port':0x18eb});var socket=require(_0xf173('0x14'))(new Redis(config[_0xf173('0x11')]));require('./chatQueue.socket')[_0xf173('0x15')](socket);var jayson=require(_0xf173('0x16'));var client=jayson[_0xf173('0x17')][_0xf173('0x18')]({'port':0x232a});function checkPasswordPattern(_0x28d1e5,_0xcb07db,_0x52b763){if(_0x52b763){var _0x3f4269=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3f4269[_0xf173('0x19')](_0xcb07db)){return _0x28d1e5;}else{throw new db[(_0xf173('0x1a'))]['ValidationError']('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x28d1e5;}}function respondWithRpcPromise(_0x21efe1,_0x2db2e4,_0x230262,_0x335dbd){return new BPromise(function(_0x353338,_0x2438ce){var _0x159278=_0x335dbd||client;return _0x159278[_0xf173('0x1b')](_0x21efe1,_0x230262)[_0xf173('0x1c')](function(_0x43f603){logger[_0xf173('0x1d')](_0xf173('0x1e'),_0x2db2e4,_0xf173('0x1f'));logger['debug'](_0xf173('0x20'),_0x2db2e4,_0xf173('0x1f'),JSON[_0xf173('0x21')](_0x43f603));if(_0x43f603[_0xf173('0x22')]){if(_0x43f603[_0xf173('0x22')]['code']===0x1f4){logger[_0xf173('0x22')](_0xf173('0x1e'),_0x2db2e4,_0x43f603[_0xf173('0x22')][_0xf173('0x23')]);return _0x2438ce(_0x43f603[_0xf173('0x22')][_0xf173('0x23')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x2db2e4,_0x43f603['error'][_0xf173('0x23')]);return _0x353338(_0x43f603[_0xf173('0x22')]['message']);}else{logger[_0xf173('0x1d')](_0xf173('0x1e'),_0x2db2e4,_0xf173('0x1f'));_0x353338(_0x43f603[_0xf173('0x24')][_0xf173('0x23')]);}})[_0xf173('0x25')](function(_0x573e43){logger[_0xf173('0x22')]('ChatQueue,\x20%s,\x20%s',_0x2db2e4,_0x573e43);_0x2438ce(_0x573e43);});});}function respondWithStatusCode(_0x317d91,_0x5ab8ef){_0x5ab8ef=_0x5ab8ef||0xcc;return function(_0x57be37){if(_0x57be37){return _0x317d91[_0xf173('0x26')](_0x5ab8ef);}return _0x317d91[_0xf173('0x27')](_0x5ab8ef)[_0xf173('0x28')]();};}function respondWithResult(_0x4103c8,_0x3b07ca){_0x3b07ca=_0x3b07ca||0xc8;return function(_0x4a3a1a){if(_0x4a3a1a){return _0x4103c8[_0xf173('0x27')](_0x3b07ca)[_0xf173('0x29')](_0x4a3a1a);}};}function respondWithFilteredResult(_0xc96af5,_0xaee760){return function(_0x37d97d){if(_0x37d97d){var _0xa0b406=_0x37d97d[_0xf173('0x2a')],_0x32a2fe=_0xaee760[_0xf173('0x2b')],_0x56854a=_0xaee760[_0xf173('0x2b')]+_0xaee760[_0xf173('0x2c')],_0x2cc2c7;if(_0x56854a>=_0xa0b406){_0x56854a=_0xa0b406;_0x2cc2c7=0xc8;}else{_0x2cc2c7=0xce;}_0xc96af5['status'](_0x2cc2c7);return _0xc96af5[_0xf173('0x2d')]('Content-Range',_0x32a2fe+'-'+_0x56854a+'/'+_0xa0b406)['json'](_0x37d97d);}return null;};}function patchUpdates(_0x2b35ba){return function(_0x415f52){try{jsonpatch[_0xf173('0x2e')](_0x415f52,_0x2b35ba,!![]);}catch(_0x18fd56){return BPromise['reject'](_0x18fd56);}return _0x415f52[_0xf173('0x2f')]();};}function saveUpdates(_0x1195f9,_0x1b78ae){return function(_0x2765c3){if(_0x2765c3){return _0x2765c3['update'](_0x1195f9)[_0xf173('0x1c')](function(_0x4fff7c){return _0x4fff7c;});}return null;};}function removeEntity(_0xef0d36,_0x2e476b){return function(_0x2f4f60){if(_0x2f4f60){return _0x2f4f60['destroy']()['then'](function(){var _0x47c569=_0x2f4f60['get']({'plain':!![]});var _0x3fc4e4='ChatQueues';return db[_0xf173('0x30')][_0xf173('0x31')]({'where':{'type':_0x3fc4e4,'resourceId':_0x47c569['id']}})[_0xf173('0x1c')](function(){return _0x2f4f60;});})[_0xf173('0x1c')](function(){_0xef0d36['status'](0xcc)[_0xf173('0x28')]();});}};}function handleEntityNotFound(_0x4eda49,_0x5d1ef7){return function(_0x1896d2){if(!_0x1896d2){_0x4eda49[_0xf173('0x26')](0x194);}return _0x1896d2;};}function handleError(_0x430603,_0x1c9a0d){_0x1c9a0d=_0x1c9a0d||0x1f4;return function(_0x34952e){logger[_0xf173('0x22')](_0x34952e[_0xf173('0x32')]);if(_0x34952e[_0xf173('0x33')]){delete _0x34952e[_0xf173('0x33')];}_0x430603[_0xf173('0x27')](_0x1c9a0d)[_0xf173('0x34')](_0x34952e);};}exports[_0xf173('0x35')]=function(_0x3f5972,_0x58e33d){var _0x3f3002={},_0x413feb={},_0x291458={'count':0x0,'rows':[]};var _0x5cde5f=_[_0xf173('0x36')](db[_0xf173('0x37')]['rawAttributes'],function(_0x1c4cd8){return{'name':_0x1c4cd8['fieldName'],'type':_0x1c4cd8['type'][_0xf173('0x38')]};});_0x413feb[_0xf173('0x39')]=_['map'](_0x5cde5f,_0xf173('0x33'));_0x413feb[_0xf173('0x3a')]=_[_0xf173('0x3b')](_0x3f5972[_0xf173('0x3a')]);_0x413feb[_0xf173('0x3c')]=_[_0xf173('0x3d')](_0x413feb[_0xf173('0x39')],_0x413feb['query']);_0x3f3002[_0xf173('0x3e')]=_[_0xf173('0x3d')](_0x413feb[_0xf173('0x39')],qs[_0xf173('0x3f')](_0x3f5972[_0xf173('0x3a')]['fields']));_0x3f3002[_0xf173('0x3e')]=_0x3f3002[_0xf173('0x3e')][_0xf173('0x40')]?_0x3f3002[_0xf173('0x3e')]:_0x413feb[_0xf173('0x39')];if(!_0x3f5972[_0xf173('0x3a')][_0xf173('0x41')](_0xf173('0x42'))){_0x3f3002[_0xf173('0x2c')]=qs[_0xf173('0x2c')](_0x3f5972['query'][_0xf173('0x2c')]);_0x3f3002[_0xf173('0x2b')]=qs[_0xf173('0x2b')](_0x3f5972['query'][_0xf173('0x2b')]);}_0x3f3002[_0xf173('0x43')]=qs[_0xf173('0x44')](_0x3f5972[_0xf173('0x3a')][_0xf173('0x44')]);_0x3f3002[_0xf173('0x45')]=qs[_0xf173('0x3c')](_[_0xf173('0x46')](_0x3f5972['query'],_0x413feb['filters']),_0x5cde5f);if(_0x3f5972[_0xf173('0x3a')][_0xf173('0x47')]){_0x3f3002[_0xf173('0x45')]=_['merge'](_0x3f3002[_0xf173('0x45')],{'$or':_[_0xf173('0x36')](_0x5cde5f,function(_0x4001a9){if(_0x4001a9[_0xf173('0x48')]!==_0xf173('0x49')){var _0x25cb6a={};_0x25cb6a[_0x4001a9['name']]={'$like':'%'+_0x3f5972[_0xf173('0x3a')][_0xf173('0x47')]+'%'};return _0x25cb6a;}})});}_0x3f3002=_[_0xf173('0x4a')]({},_0x3f3002,_0x3f5972['options']);var _0x541bc1={'where':_0x3f3002['where']};return db[_0xf173('0x37')][_0xf173('0x2a')](_0x541bc1)[_0xf173('0x1c')](function(_0x1ca7f6){_0x291458['count']=_0x1ca7f6;if(_0x3f5972[_0xf173('0x3a')][_0xf173('0x4b')]){_0x3f3002[_0xf173('0x4c')]=[{'all':!![]}];}return db[_0xf173('0x37')]['findAll'](_0x3f3002);})['then'](function(_0x4856a1){_0x291458[_0xf173('0x4d')]=_0x4856a1;return _0x291458;})[_0xf173('0x1c')](respondWithFilteredResult(_0x58e33d,_0x3f3002))['catch'](handleError(_0x58e33d,null));};exports[_0xf173('0x4e')]=function(_0x5dfbd2,_0x26f537){var _0x3706a2={'raw':!![],'where':{'id':_0x5dfbd2['params']['id']}},_0x47ad3d={};_0x47ad3d[_0xf173('0x39')]=_[_0xf173('0x3b')](db[_0xf173('0x37')][_0xf173('0x4f')]);_0x47ad3d[_0xf173('0x3a')]=_[_0xf173('0x3b')](_0x5dfbd2['query']);_0x47ad3d[_0xf173('0x3c')]=_[_0xf173('0x3d')](_0x47ad3d[_0xf173('0x39')],_0x47ad3d[_0xf173('0x3a')]);_0x3706a2[_0xf173('0x3e')]=_['intersection'](_0x47ad3d[_0xf173('0x39')],qs[_0xf173('0x3f')](_0x5dfbd2[_0xf173('0x3a')][_0xf173('0x3f')]));_0x3706a2[_0xf173('0x3e')]=_0x3706a2[_0xf173('0x3e')]['length']?_0x3706a2[_0xf173('0x3e')]:_0x47ad3d[_0xf173('0x39')];if(_0x5dfbd2[_0xf173('0x3a')][_0xf173('0x4b')]){_0x3706a2[_0xf173('0x4c')]=[{'all':!![]}];}_0x3706a2=_[_0xf173('0x4a')]({},_0x3706a2,_0x5dfbd2[_0xf173('0x50')]);return db['ChatQueue'][_0xf173('0x51')](_0x3706a2)[_0xf173('0x1c')](handleEntityNotFound(_0x26f537,null))[_0xf173('0x1c')](respondWithResult(_0x26f537,null))[_0xf173('0x25')](handleError(_0x26f537,null));};exports[_0xf173('0x52')]=function(_0x3b059d,_0x478d56){return db[_0xf173('0x37')][_0xf173('0x52')](_0x3b059d[_0xf173('0x53')],{})[_0xf173('0x1c')](function(_0x214d4a){var _0x3484ee=_0x3b059d['user'][_0xf173('0x54')]({'plain':!![]});if(!_0x3484ee)throw new Error(_0xf173('0x55'));if(_0x3484ee[_0xf173('0x56')]===_0xf173('0x57')){var _0x2407a2=_0x214d4a[_0xf173('0x54')]({'plain':!![]});var _0x4e9546=_0xf173('0x58');return db['UserProfileSection'][_0xf173('0x51')]({'where':{'name':_0x4e9546,'userProfileId':_0x3484ee['userProfileId']},'raw':!![]})[_0xf173('0x1c')](function(_0x398ac8){if(_0x398ac8&&_0x398ac8[_0xf173('0x59')]===0x0){return db[_0xf173('0x30')][_0xf173('0x52')]({'name':_0x2407a2[_0xf173('0x33')],'resourceId':_0x2407a2['id'],'type':_0x398ac8['name'],'sectionId':_0x398ac8['id']},{})['then'](function(){return _0x214d4a;});}else{return _0x214d4a;}})[_0xf173('0x25')](function(_0xb5a9ef){logger[_0xf173('0x22')](_0xf173('0x5a'),_0xb5a9ef);throw _0xb5a9ef;});}return _0x214d4a;})[_0xf173('0x1c')](respondWithResult(_0x478d56,0xc9))[_0xf173('0x25')](handleError(_0x478d56,null));};exports[_0xf173('0x5b')]=function(_0x47b54d,_0x3c9d68){if(_0x47b54d[_0xf173('0x53')]['id']){delete _0x47b54d[_0xf173('0x53')]['id'];}return db['ChatQueue'][_0xf173('0x51')]({'where':{'id':_0x47b54d[_0xf173('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3c9d68,null))['then'](saveUpdates(_0x47b54d[_0xf173('0x53')],null))[_0xf173('0x1c')](respondWithResult(_0x3c9d68,null))['catch'](handleError(_0x3c9d68,null));};exports['destroy']=function(_0x5ed73b,_0x26788a){return db[_0xf173('0x37')][_0xf173('0x51')]({'where':{'id':_0x5ed73b['params']['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x26788a,null))['then'](removeEntity(_0x26788a,null))['catch'](handleError(_0x26788a,null));};exports[_0xf173('0x5d')]=function(_0x1516b3,_0xf47e80){return db[_0xf173('0x37')]['describe']()[_0xf173('0x1c')](respondWithResult(_0xf47e80,null))['catch'](handleError(_0xf47e80,null));};exports['getMembers']=function(_0x4a3201,_0x476830,_0x3de514){var _0x4ccb6a={'raw':!![],'where':{}},_0x37165d={},_0x202557;return db['ChatQueue'][_0xf173('0x5e')]({'where':{'id':_0x4a3201[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x476830,null))[_0xf173('0x1c')](function(_0x3d4b08){if(_0x3d4b08){_0x202557=_0x3d4b08['get']({'plain':!![]});_0x37165d[_0xf173('0x39')]=_['keys'](db[_0xf173('0x5f')]['rawAttributes']);_0x37165d[_0xf173('0x3a')]=_[_0xf173('0x3b')](_0x4a3201[_0xf173('0x3a')]);_0x37165d['filters']=_['intersection'](_0x37165d[_0xf173('0x39')],_0x37165d[_0xf173('0x3a')]);_0x4ccb6a['attributes']=_[_0xf173('0x3d')](_0x37165d[_0xf173('0x39')],qs[_0xf173('0x3f')](_0x4a3201[_0xf173('0x3a')][_0xf173('0x3f')]));_0x4ccb6a[_0xf173('0x3e')]=_0x4ccb6a['attributes']['length']?_0x4ccb6a[_0xf173('0x3e')]:_0x37165d[_0xf173('0x39')];if(!_0x4a3201[_0xf173('0x3a')][_0xf173('0x41')](_0xf173('0x42'))){_0x4ccb6a[_0xf173('0x2c')]=qs['limit'](_0x4a3201[_0xf173('0x3a')][_0xf173('0x2c')]);_0x4ccb6a[_0xf173('0x2b')]=qs[_0xf173('0x2b')](_0x4a3201[_0xf173('0x3a')][_0xf173('0x2b')]);}_0x4ccb6a[_0xf173('0x43')]=qs['sort'](_0x4a3201[_0xf173('0x3a')]['sort']);_0x4ccb6a[_0xf173('0x45')]=qs['filters'](_[_0xf173('0x46')](_0x4a3201[_0xf173('0x3a')],_0x37165d[_0xf173('0x3c')]));_0x4ccb6a[_0xf173('0x45')][_0xf173('0x60')]=_0x3d4b08['id'];if(_0x4a3201[_0xf173('0x3a')][_0xf173('0x47')]){_0x4ccb6a[_0xf173('0x45')]=_[_0xf173('0x4a')](_0x4ccb6a[_0xf173('0x45')],{'$or':_[_0xf173('0x36')](_0x4ccb6a['attributes'],function(_0x3cc0da){var _0x2e37df={};_0x2e37df[_0x3cc0da]={'$like':'%'+_0x4a3201['query']['filter']+'%'};return _0x2e37df;})});}_0x4ccb6a=_[_0xf173('0x4a')]({},_0x4ccb6a,_0x4a3201[_0xf173('0x50')]);return db[_0xf173('0x5f')][_0xf173('0x61')](_0x4ccb6a);}})[_0xf173('0x1c')](function(_0x369f38){if(_0x369f38){return db[_0xf173('0x62')][_0xf173('0x63')]({'where':{'id':_['map'](_0x369f38,_0xf173('0x64')),'role':'agent'},'attributes':['id',_0xf173('0x33'),'chatPause',_0xf173('0x65'),_0xf173('0x66')]});}})[_0xf173('0x1c')](function(_0x28064c){if(_0x28064c){return{'count':_0x28064c['count'],'rows':_[_0xf173('0x36')](_0x28064c['rows'],function(_0x41f948){return{'membername':_0x41f948[_0xf173('0x33')],'UserId':_0x41f948['id'],'queue_name':_0x202557[_0xf173('0x33')],'ChatQueueId':_0x202557['id'],'interface':util[_0xf173('0x67')](_0xf173('0x68'),_0xf173('0x69'),_0x41f948[_0xf173('0x33')]),'penalty':0x0,'paused':_0x41f948[_0xf173('0x6a')],'createdAt':_0x41f948[_0xf173('0x66')],'updatedAt':_0x41f948[_0xf173('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf173('0x1c')](respondWithFilteredResult(_0x476830,_0x4ccb6a))[_0xf173('0x25')](handleError(_0x476830,null));};exports['getTeams']=function(_0x941fa8,_0x74e19c,_0xffc10a){var _0xaa29f7={};var _0x172b30={};var _0x2bf823;var _0x32d416;return db[_0xf173('0x37')][_0xf173('0x5e')]({'where':{'id':_0x941fa8[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x74e19c,null))[_0xf173('0x1c')](function(_0x4b93c8){if(_0x4b93c8){_0x2bf823=_0x4b93c8;_0x172b30[_0xf173('0x39')]=_[_0xf173('0x3b')](db[_0xf173('0x6b')][_0xf173('0x4f')]);_0x172b30['query']=_[_0xf173('0x3b')](_0x941fa8['query']);_0x172b30['filters']=_[_0xf173('0x3d')](_0x172b30[_0xf173('0x39')],_0x172b30[_0xf173('0x3a')]);_0xaa29f7[_0xf173('0x3e')]=_[_0xf173('0x3d')](_0x172b30[_0xf173('0x39')],qs[_0xf173('0x3f')](_0x941fa8[_0xf173('0x3a')][_0xf173('0x3f')]));_0xaa29f7[_0xf173('0x3e')]=_0xaa29f7['attributes'][_0xf173('0x40')]?_0xaa29f7[_0xf173('0x3e')]:_0x172b30[_0xf173('0x39')];_0xaa29f7[_0xf173('0x43')]=qs[_0xf173('0x44')](_0x941fa8[_0xf173('0x3a')][_0xf173('0x44')]);_0xaa29f7[_0xf173('0x45')]=qs[_0xf173('0x3c')](_[_0xf173('0x46')](_0x941fa8[_0xf173('0x3a')],_0x172b30[_0xf173('0x3c')]));if(_0x941fa8['query'][_0xf173('0x47')]){_0xaa29f7['where']=_[_0xf173('0x4a')](_0xaa29f7['where'],{'$or':_[_0xf173('0x36')](_0xaa29f7[_0xf173('0x3e')],function(_0x29ad1a){var _0x3c66d9={};_0x3c66d9[_0x29ad1a]={'$like':'%'+_0x941fa8[_0xf173('0x3a')][_0xf173('0x47')]+'%'};return _0x3c66d9;})});}_0xaa29f7=_[_0xf173('0x4a')]({},_0xaa29f7,_0x941fa8[_0xf173('0x50')]);return _0x2bf823[_0xf173('0x6c')](_0xaa29f7);}})[_0xf173('0x1c')](function(_0x453bef){if(_0x453bef){_0x32d416=_0x453bef[_0xf173('0x40')];if(!_0x941fa8[_0xf173('0x3a')]['hasOwnProperty'](_0xf173('0x42'))){_0xaa29f7[_0xf173('0x2c')]=qs[_0xf173('0x2c')](_0x941fa8[_0xf173('0x3a')][_0xf173('0x2c')]);_0xaa29f7[_0xf173('0x2b')]=qs['offset'](_0x941fa8[_0xf173('0x3a')]['offset']);}return _0x2bf823[_0xf173('0x6c')](_0xaa29f7);}})['then'](function(_0x3202e2){if(_0x3202e2){return _0x3202e2?{'count':_0x32d416,'rows':_0x3202e2}:null;}})[_0xf173('0x1c')](respondWithResult(_0x74e19c,null))[_0xf173('0x25')](handleError(_0x74e19c,null));};exports['addTeams']=function(_0x1be031,_0x50de82,_0x475b46){var _0x2ad2d1=_0x1be031[_0xf173('0x53')][_0xf173('0x6d')];return db[_0xf173('0x6b')][_0xf173('0x61')]({'where':{'id':_0x2ad2d1},'attributes':['id'],'include':[{'model':db['User'],'as':_0xf173('0x6e'),'attributes':['id',_0xf173('0x33'),'online',_0xf173('0x6f'),_0xf173('0x70')],'raw':!![]}]})['then'](function(_0x9cb5ce){if(_0x9cb5ce){var _0xb00c7f=_[_0xf173('0x71')](_0x9cb5ce,function(_0x542002){var _0x3485ab=_0x542002['get']({'plain':!![]});return _0x3485ab['Agents'];});return db[_0xf173('0x37')][_0xf173('0x51')]({'where':{'id':_0x1be031[_0xf173('0x5c')]['id']}})['then'](function(_0x3e9c7a){return db['sequelize'][_0xf173('0x72')](function(_0x56c7cf){return _0x3e9c7a[_0xf173('0x73')](_0x2ad2d1,{'transaction':_0x56c7cf})[_0xf173('0x1c')](function(){return BPromise[_0xf173('0x74')](_0xb00c7f,function(_0x2d773c){return db[_0xf173('0x5f')][_0xf173('0x75')]({'where':{'UserId':_0x2d773c['id'],'ChatQueueId':_0x1be031[_0xf173('0x5c')]['id']},'transaction':_0x56c7cf});});})[_0xf173('0x1c')](function(){_0xb00c7f['forEach'](function(_0x52e5b7){socket['emit'](_0xf173('0x76'),{'UserId':_0x52e5b7['id'],'ChatQueueId':_0x3e9c7a['id']});});});});});}})[_0xf173('0x1c')](respondWithStatusCode(_0x50de82,null))[_0xf173('0x25')](handleError(_0x50de82,null));};exports[_0xf173('0x77')]=function(_0x20327e,_0x246b1b,_0xd5f277){return db['Team'][_0xf173('0x61')]({'where':{'id':_0x20327e[_0xf173('0x3a')][_0xf173('0x6d')]},'attributes':['id'],'include':[{'model':db[_0xf173('0x62')],'as':_0xf173('0x6e'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x246b1b,null))['then'](function(_0x3b92b6){var _0x48cbb0=_['map'](_0x3b92b6,'id');var _0x44500e=[];var _0x5940ac=[];var _0x2f9ab6=squel[_0xf173('0x78')]();_0x2f9ab6[_0xf173('0x79')](_0xf173('0x7a'))['from'](_0xf173('0x7b'),'tq')[_0xf173('0x7c')](_0xf173('0x7d'),'ut',_0xf173('0x7e'))[_0xf173('0x45')]('ChatQueueId\x20=\x20?',_0x20327e['params']['id']);for(var _0xb86386=0x0;_0xb86386<_0x3b92b6[_0xf173('0x40')];_0xb86386+=0x1){let _0x504f47=_0x3b92b6[_0xb86386];for(var _0x579015=0x0;_0x579015<_0x504f47[_0xf173('0x6e')][_0xf173('0x40')];_0x579015+=0x1){let _0x5e08ff=_0x504f47['Agents'][_0x579015];var _0x1a463c=_0x2f9ab6[_0xf173('0x7f')]();_0x1a463c[_0xf173('0x45')](_0xf173('0x80'),_0x5e08ff['id']);_0x5940ac[_0xf173('0x81')](db[_0xf173('0x82')][_0xf173('0x3a')](_0x1a463c[_0xf173('0x83')](),{'type':db[_0xf173('0x82')]['QueryTypes']['SELECT']})['then'](function(_0x3a5101){if(_0x3a5101[_0xf173('0x40')]===0x1){return _0x5e08ff['id'];}else{var _0x4ef5ec=_[_0xf173('0x84')](_['map'](_0x3a5101,_0xf173('0x85')),function(_0x4d265f){return _[_0xf173('0x86')](_0x48cbb0,_0x4d265f);});if(_0x4ef5ec){return _0x5e08ff['id'];}}}));}}return BPromise[_0xf173('0x87')](_0x5940ac)[_0xf173('0x1c')](function(_0x3d00b4){_0x44500e=_(_0x44500e)['union'](_0x3d00b4)[_0xf173('0x88')]()[_0xf173('0x89')]();return db[_0xf173('0x37')][_0xf173('0x51')]({'where':{'id':_0x20327e[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](function(_0x3392c1){return db[_0xf173('0x82')]['transaction'](function(_0x173070){return _0x3392c1[_0xf173('0x77')](_0x20327e[_0xf173('0x3a')]['ids'],{'transaction':_0x173070})[_0xf173('0x1c')](function(){if(!_['isEmpty'](_0x44500e)){return _0x3392c1[_0xf173('0x8a')](_0x44500e,{'transaction':_0x173070});}})[_0xf173('0x1c')](function(){_0x44500e[_0xf173('0x8b')](function(_0x3deea3){socket[_0xf173('0x8c')](_0xf173('0x8d'),{'UserId':_0x3deea3,'ChatQueueId':_0x3392c1['id']});});});});});});})[_0xf173('0x1c')](respondWithStatusCode(_0x246b1b,null))[_0xf173('0x25')](handleError(_0x246b1b,null));};exports[_0xf173('0x8e')]=function(_0x657807,_0x4e7679,_0x522c2d){return db[_0xf173('0x37')][_0xf173('0x51')]({'where':{'id':_0x657807[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x4e7679,null))[_0xf173('0x1c')](function(_0x4830a4){if(_0x4830a4){return _0x4830a4['addAgents'](_0x657807[_0xf173('0x53')][_0xf173('0x6d')],_['omit'](_0x657807[_0xf173('0x53')],[_0xf173('0x6d'),'id'])||{})['spread'](function(_0x20cbc5){for(var _0x421885=0x0;_0x421885<_0x657807[_0xf173('0x53')][_0xf173('0x6d')][_0xf173('0x40')];_0x421885+=0x1){socket['emit'](_0xf173('0x76'),{'UserId':_0x657807[_0xf173('0x53')][_0xf173('0x6d')][_0x421885],'ChatQueueId':_0x657807['params']['id']});}return _0x20cbc5;});}})[_0xf173('0x1c')](respondWithResult(_0x4e7679,null))[_0xf173('0x25')](handleError(_0x4e7679,null));};exports[_0xf173('0x8a')]=function(_0x379d59,_0x192a7b,_0x146f44){return db[_0xf173('0x37')][_0xf173('0x51')]({'where':{'id':_0x379d59[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x192a7b,null))['then'](function(_0x412421){if(_0x412421){return _0x412421[_0xf173('0x8a')](_0x379d59['query'][_0xf173('0x6d')])[_0xf173('0x1c')](function(){if(_['isArray'](_0x379d59[_0xf173('0x3a')][_0xf173('0x6d')])){for(var _0x55910e=0x0;_0x55910e<_0x379d59[_0xf173('0x3a')][_0xf173('0x6d')][_0xf173('0x40')];_0x55910e+=0x1){socket[_0xf173('0x8c')](_0xf173('0x8d'),{'UserId':Number(_0x379d59[_0xf173('0x3a')]['ids'][_0x55910e]),'ChatQueueId':Number(_0x379d59[_0xf173('0x5c')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x379d59[_0xf173('0x3a')][_0xf173('0x6d')]),'ChatQueueId':Number(_0x379d59[_0xf173('0x5c')]['id'])});}});}})[_0xf173('0x1c')](respondWithStatusCode(_0x192a7b,null))[_0xf173('0x25')](handleError(_0x192a7b,null));};exports['getAgents']=function(_0x4ae11c,_0x511720,_0x4df1b6){var _0x51d26b={};var _0x28e4a3={};var _0x1c240d;var _0x1b49df;return db[_0xf173('0x37')][_0xf173('0x5e')]({'where':{'id':_0x4ae11c[_0xf173('0x5c')]['id']}})[_0xf173('0x1c')](handleEntityNotFound(_0x511720,null))[_0xf173('0x1c')](function(_0x332233){if(_0x332233){_0x1c240d=_0x332233;_0x28e4a3['model']=_[_0xf173('0x3b')](db['User']['rawAttributes']);_0x28e4a3[_0xf173('0x3a')]=_[_0xf173('0x3b')](_0x4ae11c[_0xf173('0x3a')]);_0x28e4a3[_0xf173('0x3c')]=_[_0xf173('0x3d')](_0x28e4a3[_0xf173('0x39')],_0x28e4a3['query']);_0x51d26b[_0xf173('0x3e')]=_[_0xf173('0x3d')](_0x28e4a3[_0xf173('0x39')],qs[_0xf173('0x3f')](_0x4ae11c['query'][_0xf173('0x3f')]));_0x51d26b[_0xf173('0x3e')]=_0x51d26b[_0xf173('0x3e')][_0xf173('0x40')]?_0x51d26b['attributes']:_0x28e4a3[_0xf173('0x39')];_0x51d26b[_0xf173('0x43')]=qs[_0xf173('0x44')](_0x4ae11c[_0xf173('0x3a')][_0xf173('0x44')]);_0x51d26b[_0xf173('0x45')]=qs[_0xf173('0x3c')](_['pick'](_0x4ae11c[_0xf173('0x3a')],_0x28e4a3[_0xf173('0x3c')]));if(_0x4ae11c['query'][_0xf173('0x47')]){_0x51d26b[_0xf173('0x45')]=_[_0xf173('0x4a')](_0x51d26b['where'],{'$or':_[_0xf173('0x36')](_0x51d26b[_0xf173('0x3e')],function(_0x11b2a0){var _0x18f63b={};_0x18f63b[_0x11b2a0]={'$like':'%'+_0x4ae11c[_0xf173('0x3a')][_0xf173('0x47')]+'%'};return _0x18f63b;})});}_0x51d26b=_['merge']({},_0x51d26b,_0x4ae11c['options']);return _0x1c240d[_0xf173('0x8f')](_0x51d26b);}})['then'](function(_0x3f1cd8){if(_0x3f1cd8){_0x1b49df=_0x3f1cd8['length'];if(!_0x4ae11c['query'][_0xf173('0x41')](_0xf173('0x42'))){_0x51d26b[_0xf173('0x2c')]=qs['limit'](_0x4ae11c['query'][_0xf173('0x2c')]);_0x51d26b[_0xf173('0x2b')]=qs[_0xf173('0x2b')](_0x4ae11c[_0xf173('0x3a')][_0xf173('0x2b')]);}return _0x1c240d[_0xf173('0x8f')](_0x51d26b);}})[_0xf173('0x1c')](function(_0x912cfa){if(_0x912cfa){return _0x912cfa?{'count':_0x1b49df,'rows':_0x912cfa}:null;}})[_0xf173('0x1c')](respondWithResult(_0x511720,null))[_0xf173('0x25')](handleError(_0x511720,null));};