c545d18a9a1d414e37fa11b5c289484d3b56c9ca
[motion2.git] / server / api / openchannelQueue / openchannelQueue.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 _0xe8f0=['interface','flatMap','sequelize','each','findOrCreate','forEach','emit','userOpenchannelQueue:save','removeTeams','select','field','tq.TeamId','team_has_openchannel_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','QueryTypes','SELECT','every','TeamId','includes','all','value','isEmpty','removeAgents','addAgents','omit','spread','isArray','userOpenchannelQueue:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','update','then','get','OpenchannelQueues','UserProfileResource','destroy','error','name','send','index','map','OpenchannelQueue','rawAttributes','type','model','query','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','include','findAll','rows','catch','show','params','keys','intersection','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','describe','getMembers','findOne','UserOpenchannelQueue','OpenchannelQueueId','User','findAndCountAll','UserId','agent','openchannelPause','updatedAt','createdAt','format','%s/%s','getTeams','Team','options','addTeams','ids','Agents'];(function(_0x2170d0,_0x1aaf1d){var _0x4644a1=function(_0x131700){while(--_0x131700){_0x2170d0['push'](_0x2170d0['shift']());}};_0x4644a1(++_0x1aaf1d);}(_0xe8f0,0x141));var _0x0e8f=function(_0x255f10,_0xa8323f){_0x255f10=_0x255f10-0x0;var _0x20fe33=_0xe8f0[_0x255f10];return _0x20fe33;};'use strict';var emlformat=require(_0x0e8f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0e8f('0x1'));var jsonpatch=require(_0x0e8f('0x2'));var rp=require(_0x0e8f('0x3'));var moment=require(_0x0e8f('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0e8f('0x5'));var util=require(_0x0e8f('0x6'));var path=require(_0x0e8f('0x7'));var sox=require(_0x0e8f('0x8'));var csv=require(_0x0e8f('0x9'));var ejs=require(_0x0e8f('0xa'));var fs=require('fs');var fs_extra=require(_0x0e8f('0xb'));var _=require('lodash');var squel=require(_0x0e8f('0xc'));var crypto=require(_0x0e8f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x0e8f('0xe'));var toCsv=require(_0x0e8f('0x9'));var querystring=require(_0x0e8f('0xf'));var Papa=require(_0x0e8f('0x10'));var Redis=require(_0x0e8f('0x11'));var authService=require(_0x0e8f('0x12'));var qs=require(_0x0e8f('0x13'));var as=require(_0x0e8f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0e8f('0x15'))(_0x0e8f('0x16'));var utils=require('../../config/utils');var config=require(_0x0e8f('0x17'));var licenseUtil=require(_0x0e8f('0x18'));var db=require(_0x0e8f('0x19'))['db'];config['redis']=_[_0x0e8f('0x1a')](config[_0x0e8f('0x1b')],{'host':_0x0e8f('0x1c'),'port':0x18eb});var socket=require(_0x0e8f('0x1d'))(new Redis(config[_0x0e8f('0x1b')]));require('./openchannelQueue.socket')[_0x0e8f('0x1e')](socket);function respondWithStatusCode(_0x4b8229,_0x3179d8){_0x3179d8=_0x3179d8||0xcc;return function(_0x4125f3){if(_0x4125f3){return _0x4b8229[_0x0e8f('0x1f')](_0x3179d8);}return _0x4b8229[_0x0e8f('0x20')](_0x3179d8)[_0x0e8f('0x21')]();};}function respondWithResult(_0x117a7b,_0x4a2692){_0x4a2692=_0x4a2692||0xc8;return function(_0x453968){if(_0x453968){return _0x117a7b['status'](_0x4a2692)['json'](_0x453968);}};}function respondWithFilteredResult(_0x4cf1c9,_0x4ba573){return function(_0x1be063){if(_0x1be063){var _0x2de0d0=typeof _0x4ba573[_0x0e8f('0x22')]===_0x0e8f('0x23')&&typeof _0x4ba573[_0x0e8f('0x24')]==='undefined';var _0x5af118=_0x1be063[_0x0e8f('0x25')];var _0x4d1fe6=_0x2de0d0?0x0:_0x4ba573[_0x0e8f('0x22')];var _0x584af9=_0x2de0d0?_0x1be063[_0x0e8f('0x25')]:_0x4ba573[_0x0e8f('0x22')]+_0x4ba573[_0x0e8f('0x24')];var _0x518067;if(_0x584af9>=_0x5af118){_0x584af9=_0x5af118;_0x518067=0xc8;}else{_0x518067=0xce;}_0x4cf1c9[_0x0e8f('0x20')](_0x518067);return _0x4cf1c9['set'](_0x0e8f('0x26'),_0x4d1fe6+'-'+_0x584af9+'/'+_0x5af118)[_0x0e8f('0x27')](_0x1be063);}return null;};}function patchUpdates(_0x14e9a6){return function(_0x24992){try{jsonpatch[_0x0e8f('0x28')](_0x24992,_0x14e9a6,!![]);}catch(_0x27643c){return BPromise[_0x0e8f('0x29')](_0x27643c);}return _0x24992['save']();};}function saveUpdates(_0x5d4b2c,_0x506967){return function(_0x582360){if(_0x582360){return _0x582360[_0x0e8f('0x2a')](_0x5d4b2c)[_0x0e8f('0x2b')](function(_0x694da1){return _0x694da1;});}return null;};}function removeEntity(_0x33ea88,_0x3b220c){return function(_0x513a3b){if(_0x513a3b){return _0x513a3b['destroy']()[_0x0e8f('0x2b')](function(){var _0x2da682=_0x513a3b[_0x0e8f('0x2c')]({'plain':!![]});var _0x224e89=_0x0e8f('0x2d');return db[_0x0e8f('0x2e')][_0x0e8f('0x2f')]({'where':{'type':_0x224e89,'resourceId':_0x2da682['id']}})[_0x0e8f('0x2b')](function(){return _0x513a3b;});})['then'](function(){_0x33ea88[_0x0e8f('0x20')](0xcc)[_0x0e8f('0x21')]();});}};}function handleEntityNotFound(_0x2c9c3a,_0x3764b5){return function(_0xe04e41){if(!_0xe04e41){_0x2c9c3a['sendStatus'](0x194);}return _0xe04e41;};}function handleError(_0x39c7b3,_0x3c711a){_0x3c711a=_0x3c711a||0x1f4;return function(_0x43bd65){logger[_0x0e8f('0x30')](_0x43bd65['stack']);if(_0x43bd65[_0x0e8f('0x31')]){delete _0x43bd65[_0x0e8f('0x31')];}_0x39c7b3[_0x0e8f('0x20')](_0x3c711a)[_0x0e8f('0x32')](_0x43bd65);};}exports[_0x0e8f('0x33')]=function(_0x432cbe,_0xa8f75b){var _0x4302f5={},_0x4af03b={},_0x54e52f={'count':0x0,'rows':[]};var _0x3ea154=_[_0x0e8f('0x34')](db[_0x0e8f('0x35')][_0x0e8f('0x36')],function(_0x354007){return{'name':_0x354007['fieldName'],'type':_0x354007[_0x0e8f('0x37')]['key']};});_0x4af03b[_0x0e8f('0x38')]=_[_0x0e8f('0x34')](_0x3ea154,_0x0e8f('0x31'));_0x4af03b[_0x0e8f('0x39')]=_['keys'](_0x432cbe[_0x0e8f('0x39')]);_0x4af03b[_0x0e8f('0x3a')]=_['intersection'](_0x4af03b['model'],_0x4af03b[_0x0e8f('0x39')]);_0x4302f5[_0x0e8f('0x3b')]=_['intersection'](_0x4af03b[_0x0e8f('0x38')],qs[_0x0e8f('0x3c')](_0x432cbe[_0x0e8f('0x39')]['fields']));_0x4302f5[_0x0e8f('0x3b')]=_0x4302f5[_0x0e8f('0x3b')]['length']?_0x4302f5['attributes']:_0x4af03b[_0x0e8f('0x38')];if(!_0x432cbe[_0x0e8f('0x39')][_0x0e8f('0x3d')](_0x0e8f('0x3e'))){_0x4302f5[_0x0e8f('0x24')]=qs[_0x0e8f('0x24')](_0x432cbe[_0x0e8f('0x39')][_0x0e8f('0x24')]);_0x4302f5['offset']=qs[_0x0e8f('0x22')](_0x432cbe[_0x0e8f('0x39')][_0x0e8f('0x22')]);}_0x4302f5[_0x0e8f('0x3f')]=qs['sort'](_0x432cbe['query'][_0x0e8f('0x40')]);_0x4302f5[_0x0e8f('0x41')]=qs[_0x0e8f('0x3a')](_[_0x0e8f('0x42')](_0x432cbe['query'],_0x4af03b[_0x0e8f('0x3a')]),_0x3ea154);if(_0x432cbe[_0x0e8f('0x39')]['filter']){_0x4302f5['where']=_[_0x0e8f('0x43')](_0x4302f5['where'],{'$or':_[_0x0e8f('0x34')](_0x3ea154,function(_0x3c3c91){if(_0x3c3c91[_0x0e8f('0x37')]!==_0x0e8f('0x44')){var _0x41bb19={};_0x41bb19[_0x3c3c91[_0x0e8f('0x31')]]={'$like':'%'+_0x432cbe[_0x0e8f('0x39')][_0x0e8f('0x45')]+'%'};return _0x41bb19;}})});}_0x4302f5=_[_0x0e8f('0x43')]({},_0x4302f5,_0x432cbe['options']);var _0x38b3c7={'where':_0x4302f5[_0x0e8f('0x41')]};return db[_0x0e8f('0x35')]['count'](_0x38b3c7)[_0x0e8f('0x2b')](function(_0x28f372){_0x54e52f['count']=_0x28f372;if(_0x432cbe[_0x0e8f('0x39')]['includeAll']){_0x4302f5[_0x0e8f('0x46')]=[{'all':!![]}];}return db['OpenchannelQueue'][_0x0e8f('0x47')](_0x4302f5);})[_0x0e8f('0x2b')](function(_0x229e3d){_0x54e52f[_0x0e8f('0x48')]=_0x229e3d;return _0x54e52f;})['then'](respondWithFilteredResult(_0xa8f75b,_0x4302f5))[_0x0e8f('0x49')](handleError(_0xa8f75b,null));};exports[_0x0e8f('0x4a')]=function(_0x3165d1,_0x217ad3){var _0x15a09e={'raw':!![],'where':{'id':_0x3165d1[_0x0e8f('0x4b')]['id']}},_0x3d686d={};_0x3d686d[_0x0e8f('0x38')]=_['keys'](db[_0x0e8f('0x35')][_0x0e8f('0x36')]);_0x3d686d[_0x0e8f('0x39')]=_[_0x0e8f('0x4c')](_0x3165d1['query']);_0x3d686d['filters']=_['intersection'](_0x3d686d[_0x0e8f('0x38')],_0x3d686d[_0x0e8f('0x39')]);_0x15a09e[_0x0e8f('0x3b')]=_[_0x0e8f('0x4d')](_0x3d686d[_0x0e8f('0x38')],qs[_0x0e8f('0x3c')](_0x3165d1['query']['fields']));_0x15a09e[_0x0e8f('0x3b')]=_0x15a09e[_0x0e8f('0x3b')][_0x0e8f('0x4e')]?_0x15a09e[_0x0e8f('0x3b')]:_0x3d686d[_0x0e8f('0x38')];if(_0x3165d1['query']['includeAll']){_0x15a09e[_0x0e8f('0x46')]=[{'all':!![]}];}_0x15a09e=_[_0x0e8f('0x43')]({},_0x15a09e,_0x3165d1['options']);return db[_0x0e8f('0x35')]['find'](_0x15a09e)[_0x0e8f('0x2b')](handleEntityNotFound(_0x217ad3,null))[_0x0e8f('0x2b')](respondWithResult(_0x217ad3,null))[_0x0e8f('0x49')](handleError(_0x217ad3,null));};exports[_0x0e8f('0x4f')]=function(_0x4fcc47,_0x22b849){return db[_0x0e8f('0x35')]['create'](_0x4fcc47[_0x0e8f('0x50')],{})['then'](function(_0x5ad187){var _0x23e396=_0x4fcc47[_0x0e8f('0x51')]['get']({'plain':!![]});if(!_0x23e396)throw new Error(_0x0e8f('0x52'));if(_0x23e396[_0x0e8f('0x53')]===_0x0e8f('0x51')){var _0x2fc67e=_0x5ad187[_0x0e8f('0x2c')]({'plain':!![]});var _0x2090c1=_0x0e8f('0x2d');return db['UserProfileSection']['find']({'where':{'name':_0x2090c1,'userProfileId':_0x23e396[_0x0e8f('0x54')]},'raw':!![]})[_0x0e8f('0x2b')](function(_0x254483){if(_0x254483&&_0x254483[_0x0e8f('0x55')]===0x0){return db[_0x0e8f('0x2e')][_0x0e8f('0x4f')]({'name':_0x2fc67e[_0x0e8f('0x31')],'resourceId':_0x2fc67e['id'],'type':_0x254483['name'],'sectionId':_0x254483['id']},{})['then'](function(){return _0x5ad187;});}else{return _0x5ad187;}})['catch'](function(_0x39c182){logger[_0x0e8f('0x30')](_0x0e8f('0x56'),_0x39c182);throw _0x39c182;});}return _0x5ad187;})[_0x0e8f('0x2b')](respondWithResult(_0x22b849,0xc9))['catch'](handleError(_0x22b849,null));};exports[_0x0e8f('0x2a')]=function(_0x124bf5,_0x5a6ef1){if(_0x124bf5[_0x0e8f('0x50')]['id']){delete _0x124bf5[_0x0e8f('0x50')]['id'];}return db['OpenchannelQueue'][_0x0e8f('0x57')]({'where':{'id':_0x124bf5[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x5a6ef1,null))[_0x0e8f('0x2b')](saveUpdates(_0x124bf5[_0x0e8f('0x50')],null))['then'](respondWithResult(_0x5a6ef1,null))[_0x0e8f('0x49')](handleError(_0x5a6ef1,null));};exports[_0x0e8f('0x2f')]=function(_0x251d1e,_0x562259){return db[_0x0e8f('0x35')][_0x0e8f('0x57')]({'where':{'id':_0x251d1e[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x562259,null))['then'](removeEntity(_0x562259,null))['catch'](handleError(_0x562259,null));};exports[_0x0e8f('0x58')]=function(_0x4c289c,_0x53d864){return db[_0x0e8f('0x35')][_0x0e8f('0x58')]()[_0x0e8f('0x2b')](respondWithResult(_0x53d864,null))[_0x0e8f('0x49')](handleError(_0x53d864,null));};exports[_0x0e8f('0x59')]=function(_0x15a5ac,_0x1df696,_0x2e3250){var _0x4b4235={'raw':!![],'where':{}},_0x5dca7a={},_0x54e00c;return db[_0x0e8f('0x35')][_0x0e8f('0x5a')]({'where':{'id':_0x15a5ac[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x1df696,null))[_0x0e8f('0x2b')](function(_0x5cc4c0){if(_0x5cc4c0){_0x54e00c=_0x5cc4c0['get']({'plain':!![]});_0x5dca7a[_0x0e8f('0x38')]=_[_0x0e8f('0x4c')](db[_0x0e8f('0x5b')][_0x0e8f('0x36')]);_0x5dca7a[_0x0e8f('0x39')]=_[_0x0e8f('0x4c')](_0x15a5ac[_0x0e8f('0x39')]);_0x5dca7a['filters']=_['intersection'](_0x5dca7a[_0x0e8f('0x38')],_0x5dca7a[_0x0e8f('0x39')]);_0x4b4235[_0x0e8f('0x3b')]=_[_0x0e8f('0x4d')](_0x5dca7a[_0x0e8f('0x38')],qs['fields'](_0x15a5ac[_0x0e8f('0x39')][_0x0e8f('0x3c')]));_0x4b4235[_0x0e8f('0x3b')]=_0x4b4235[_0x0e8f('0x3b')][_0x0e8f('0x4e')]?_0x4b4235[_0x0e8f('0x3b')]:_0x5dca7a['model'];if(!_0x15a5ac[_0x0e8f('0x39')][_0x0e8f('0x3d')](_0x0e8f('0x3e'))){_0x4b4235['limit']=qs[_0x0e8f('0x24')](_0x15a5ac[_0x0e8f('0x39')][_0x0e8f('0x24')]);_0x4b4235[_0x0e8f('0x22')]=qs[_0x0e8f('0x22')](_0x15a5ac['query'][_0x0e8f('0x22')]);}_0x4b4235[_0x0e8f('0x3f')]=qs['sort'](_0x15a5ac['query']['sort']);_0x4b4235[_0x0e8f('0x41')]=qs['filters'](_[_0x0e8f('0x42')](_0x15a5ac[_0x0e8f('0x39')],_0x5dca7a[_0x0e8f('0x3a')]));_0x4b4235[_0x0e8f('0x41')][_0x0e8f('0x5c')]=_0x5cc4c0['id'];if(_0x15a5ac[_0x0e8f('0x39')][_0x0e8f('0x45')]){_0x4b4235[_0x0e8f('0x41')]=_[_0x0e8f('0x43')](_0x4b4235[_0x0e8f('0x41')],{'$or':_[_0x0e8f('0x34')](_0x4b4235[_0x0e8f('0x3b')],function(_0x445d7a){var _0x1e0d25={};_0x1e0d25[_0x445d7a]={'$like':'%'+_0x15a5ac[_0x0e8f('0x39')][_0x0e8f('0x45')]+'%'};return _0x1e0d25;})});}_0x4b4235=_[_0x0e8f('0x43')]({},_0x4b4235,_0x15a5ac['options']);return db['UserOpenchannelQueue'][_0x0e8f('0x47')](_0x4b4235);}})['then'](function(_0x5621be){if(_0x5621be){return db[_0x0e8f('0x5d')][_0x0e8f('0x5e')]({'where':{'id':_[_0x0e8f('0x34')](_0x5621be,_0x0e8f('0x5f')),'role':_0x0e8f('0x60')},'attributes':['id',_0x0e8f('0x31'),_0x0e8f('0x61'),_0x0e8f('0x62'),_0x0e8f('0x63')]});}})[_0x0e8f('0x2b')](function(_0x5dbf21){if(_0x5dbf21){return{'count':_0x5dbf21[_0x0e8f('0x25')],'rows':_[_0x0e8f('0x34')](_0x5dbf21[_0x0e8f('0x48')],function(_0x5e8913){return{'membername':_0x5e8913[_0x0e8f('0x31')],'UserId':_0x5e8913['id'],'queue_name':_0x54e00c[_0x0e8f('0x31')],'OpenchannelQueueId':_0x54e00c['id'],'interface':util[_0x0e8f('0x64')](_0x0e8f('0x65'),'SIP',_0x5e8913[_0x0e8f('0x31')]),'penalty':0x0,'paused':_0x5e8913['openchannelPause'],'createdAt':_0x5e8913[_0x0e8f('0x63')],'updatedAt':_0x5e8913[_0x0e8f('0x62')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1df696,_0x4b4235))[_0x0e8f('0x49')](handleError(_0x1df696,null));};exports[_0x0e8f('0x66')]=function(_0x29f6be,_0x256041,_0x2094d0){var _0x1a2f39={};var _0x39d874={};var _0x163a98;var _0x5b63aa;return db[_0x0e8f('0x35')]['findOne']({'where':{'id':_0x29f6be[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x256041,null))['then'](function(_0x53791a){if(_0x53791a){_0x163a98=_0x53791a;_0x39d874[_0x0e8f('0x38')]=_['keys'](db[_0x0e8f('0x67')]['rawAttributes']);_0x39d874[_0x0e8f('0x39')]=_[_0x0e8f('0x4c')](_0x29f6be['query']);_0x39d874[_0x0e8f('0x3a')]=_[_0x0e8f('0x4d')](_0x39d874[_0x0e8f('0x38')],_0x39d874['query']);_0x1a2f39[_0x0e8f('0x3b')]=_[_0x0e8f('0x4d')](_0x39d874[_0x0e8f('0x38')],qs[_0x0e8f('0x3c')](_0x29f6be[_0x0e8f('0x39')][_0x0e8f('0x3c')]));_0x1a2f39[_0x0e8f('0x3b')]=_0x1a2f39[_0x0e8f('0x3b')][_0x0e8f('0x4e')]?_0x1a2f39[_0x0e8f('0x3b')]:_0x39d874[_0x0e8f('0x38')];_0x1a2f39[_0x0e8f('0x3f')]=qs['sort'](_0x29f6be[_0x0e8f('0x39')][_0x0e8f('0x40')]);_0x1a2f39[_0x0e8f('0x41')]=qs[_0x0e8f('0x3a')](_[_0x0e8f('0x42')](_0x29f6be[_0x0e8f('0x39')],_0x39d874[_0x0e8f('0x3a')]));if(_0x29f6be[_0x0e8f('0x39')][_0x0e8f('0x45')]){_0x1a2f39[_0x0e8f('0x41')]=_['merge'](_0x1a2f39[_0x0e8f('0x41')],{'$or':_[_0x0e8f('0x34')](_0x1a2f39[_0x0e8f('0x3b')],function(_0x1e21dd){var _0x2fb55d={};_0x2fb55d[_0x1e21dd]={'$like':'%'+_0x29f6be[_0x0e8f('0x39')]['filter']+'%'};return _0x2fb55d;})});}_0x1a2f39=_[_0x0e8f('0x43')]({},_0x1a2f39,_0x29f6be[_0x0e8f('0x68')]);return _0x163a98[_0x0e8f('0x66')](_0x1a2f39);}})[_0x0e8f('0x2b')](function(_0xb8641c){if(_0xb8641c){_0x5b63aa=_0xb8641c[_0x0e8f('0x4e')];if(!_0x29f6be[_0x0e8f('0x39')][_0x0e8f('0x3d')](_0x0e8f('0x3e'))){_0x1a2f39[_0x0e8f('0x24')]=qs[_0x0e8f('0x24')](_0x29f6be[_0x0e8f('0x39')]['limit']);_0x1a2f39[_0x0e8f('0x22')]=qs[_0x0e8f('0x22')](_0x29f6be[_0x0e8f('0x39')][_0x0e8f('0x22')]);}return _0x163a98[_0x0e8f('0x66')](_0x1a2f39);}})['then'](function(_0x5053ce){if(_0x5053ce){return _0x5053ce?{'count':_0x5b63aa,'rows':_0x5053ce}:null;}})[_0x0e8f('0x2b')](respondWithResult(_0x256041,null))[_0x0e8f('0x49')](handleError(_0x256041,null));};exports[_0x0e8f('0x69')]=function(_0x4c4356,_0x265f49,_0x2a1158){var _0x1e1641=_0x4c4356[_0x0e8f('0x50')][_0x0e8f('0x6a')];return db[_0x0e8f('0x67')][_0x0e8f('0x47')]({'where':{'id':_0x1e1641},'attributes':['id'],'include':[{'model':db[_0x0e8f('0x5d')],'as':_0x0e8f('0x6b'),'attributes':['id',_0x0e8f('0x31'),'online','voicePause',_0x0e8f('0x6c')],'raw':!![]}]})['then'](function(_0x3b01e2){if(_0x3b01e2){var _0x3ecc70=_[_0x0e8f('0x6d')](_0x3b01e2,function(_0x2fccd9){var _0x140d87=_0x2fccd9[_0x0e8f('0x2c')]({'plain':!![]});return _0x140d87[_0x0e8f('0x6b')];});return db['OpenchannelQueue'][_0x0e8f('0x57')]({'where':{'id':_0x4c4356['params']['id']}})[_0x0e8f('0x2b')](function(_0x2786c8){return db[_0x0e8f('0x6e')]['transaction'](function(_0x3e86dc){return _0x2786c8[_0x0e8f('0x69')](_0x1e1641,{'transaction':_0x3e86dc})[_0x0e8f('0x2b')](function(){return BPromise[_0x0e8f('0x6f')](_0x3ecc70,function(_0x529efb){return db['UserOpenchannelQueue'][_0x0e8f('0x70')]({'where':{'UserId':_0x529efb['id'],'OpenchannelQueueId':_0x4c4356[_0x0e8f('0x4b')]['id']},'transaction':_0x3e86dc});});})[_0x0e8f('0x2b')](function(){_0x3ecc70[_0x0e8f('0x71')](function(_0xa58573){socket[_0x0e8f('0x72')](_0x0e8f('0x73'),{'UserId':_0xa58573['id'],'OpenchannelQueueId':_0x2786c8['id']});});});});});}})[_0x0e8f('0x2b')](respondWithStatusCode(_0x265f49,null))['catch'](handleError(_0x265f49,null));};exports[_0x0e8f('0x74')]=function(_0x4a0e4c,_0x3a2443,_0x130deb){return db[_0x0e8f('0x67')][_0x0e8f('0x47')]({'where':{'id':_0x4a0e4c[_0x0e8f('0x39')][_0x0e8f('0x6a')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x0e8f('0x6b'),'attributes':['id'],'raw':!![]}]})[_0x0e8f('0x2b')](handleEntityNotFound(_0x3a2443,null))[_0x0e8f('0x2b')](function(_0x3c6d24){var _0x56f7c5=_['map'](_0x3c6d24,'id');var _0x23d3d4=[];var _0x542253=[];var _0x187efd=squel[_0x0e8f('0x75')]();_0x187efd[_0x0e8f('0x76')](_0x0e8f('0x77'))['from'](_0x0e8f('0x78'),'tq')[_0x0e8f('0x79')](_0x0e8f('0x7a'),'ut',_0x0e8f('0x7b'))['where'](_0x0e8f('0x7c'),_0x4a0e4c[_0x0e8f('0x4b')]['id']);for(var _0x3b9615=0x0;_0x3b9615<_0x3c6d24[_0x0e8f('0x4e')];_0x3b9615+=0x1){let _0x3c2ed4=_0x3c6d24[_0x3b9615];for(var _0x430493=0x0;_0x430493<_0x3c2ed4['Agents'][_0x0e8f('0x4e')];_0x430493+=0x1){let _0x1b8be8=_0x3c2ed4[_0x0e8f('0x6b')][_0x430493];var _0x4ae595=_0x187efd[_0x0e8f('0x7d')]();_0x4ae595[_0x0e8f('0x41')](_0x0e8f('0x7e'),_0x1b8be8['id']);_0x542253[_0x0e8f('0x7f')](db['sequelize'][_0x0e8f('0x39')](_0x4ae595['toString'](),{'type':db[_0x0e8f('0x6e')][_0x0e8f('0x80')][_0x0e8f('0x81')]})[_0x0e8f('0x2b')](function(_0x58e4d6){if(_0x58e4d6[_0x0e8f('0x4e')]===0x1){return _0x1b8be8['id'];}else{var _0x586240=_[_0x0e8f('0x82')](_[_0x0e8f('0x34')](_0x58e4d6,_0x0e8f('0x83')),function(_0x4142e8){return _[_0x0e8f('0x84')](_0x56f7c5,_0x4142e8);});if(_0x586240){return _0x1b8be8['id'];}}}));}}return BPromise[_0x0e8f('0x85')](_0x542253)[_0x0e8f('0x2b')](function(_0x2f896a){_0x23d3d4=_(_0x23d3d4)['union'](_0x2f896a)['compact']()[_0x0e8f('0x86')]();return db[_0x0e8f('0x35')][_0x0e8f('0x57')]({'where':{'id':_0x4a0e4c[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](function(_0x4c34e7){return db[_0x0e8f('0x6e')]['transaction'](function(_0xdb2a8b){return _0x4c34e7[_0x0e8f('0x74')](_0x4a0e4c[_0x0e8f('0x39')][_0x0e8f('0x6a')],{'transaction':_0xdb2a8b})[_0x0e8f('0x2b')](function(){if(!_[_0x0e8f('0x87')](_0x23d3d4)){return _0x4c34e7[_0x0e8f('0x88')](_0x23d3d4,{'transaction':_0xdb2a8b});}})[_0x0e8f('0x2b')](function(){_0x23d3d4[_0x0e8f('0x71')](function(_0x500991){socket[_0x0e8f('0x72')]('userOpenchannelQueue:remove',{'UserId':_0x500991,'OpenchannelQueueId':_0x4c34e7['id']});});});});});});})['then'](respondWithStatusCode(_0x3a2443,null))[_0x0e8f('0x49')](handleError(_0x3a2443,null));};exports[_0x0e8f('0x89')]=function(_0x530e83,_0x14c9a8,_0x1fafcc){return db[_0x0e8f('0x35')]['find']({'where':{'id':_0x530e83['params']['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x14c9a8,null))['then'](function(_0x3f2e4a){if(_0x3f2e4a){return _0x3f2e4a[_0x0e8f('0x89')](_0x530e83[_0x0e8f('0x50')][_0x0e8f('0x6a')],_[_0x0e8f('0x8a')](_0x530e83['body'],[_0x0e8f('0x6a'),'id'])||{})[_0x0e8f('0x8b')](function(_0x3ffa09){for(var _0x46e88f=0x0;_0x46e88f<_0x530e83[_0x0e8f('0x50')][_0x0e8f('0x6a')][_0x0e8f('0x4e')];_0x46e88f+=0x1){socket['emit'](_0x0e8f('0x73'),{'UserId':Number(_0x530e83[_0x0e8f('0x50')][_0x0e8f('0x6a')][_0x46e88f]),'OpenchannelQueueId':Number(_0x530e83[_0x0e8f('0x4b')]['id'])});}return _0x3ffa09;});}})[_0x0e8f('0x2b')](respondWithResult(_0x14c9a8,null))['catch'](handleError(_0x14c9a8,null));};exports['removeAgents']=function(_0x50f627,_0x2427f1,_0x3b077e){return db[_0x0e8f('0x35')][_0x0e8f('0x57')]({'where':{'id':_0x50f627[_0x0e8f('0x4b')]['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x2427f1,null))[_0x0e8f('0x2b')](function(_0x434b8b){if(_0x434b8b){return _0x434b8b['removeAgents'](_0x50f627['query'][_0x0e8f('0x6a')])[_0x0e8f('0x2b')](function(){if(_[_0x0e8f('0x8c')](_0x50f627['query'][_0x0e8f('0x6a')])){for(var _0x5a7c68=0x0;_0x5a7c68<_0x50f627[_0x0e8f('0x39')][_0x0e8f('0x6a')]['length'];_0x5a7c68+=0x1){socket['emit'](_0x0e8f('0x8d'),{'UserId':Number(_0x50f627[_0x0e8f('0x39')][_0x0e8f('0x6a')][_0x5a7c68]),'OpenchannelQueueId':Number(_0x50f627[_0x0e8f('0x4b')]['id'])});}}else{socket[_0x0e8f('0x72')](_0x0e8f('0x8d'),{'UserId':Number(_0x50f627[_0x0e8f('0x39')]['ids']),'OpenchannelQueueId':Number(_0x50f627[_0x0e8f('0x4b')]['id'])});}});}})[_0x0e8f('0x2b')](respondWithStatusCode(_0x2427f1,null))['catch'](handleError(_0x2427f1,null));};exports[_0x0e8f('0x8e')]=function(_0x349a43,_0x310440,_0x4a3dad){var _0x118053={};var _0x1e8cad={};var _0x35dd92;var _0x4b1972;return db[_0x0e8f('0x35')][_0x0e8f('0x5a')]({'where':{'id':_0x349a43['params']['id']}})[_0x0e8f('0x2b')](handleEntityNotFound(_0x310440,null))[_0x0e8f('0x2b')](function(_0x16c05d){if(_0x16c05d){_0x35dd92=_0x16c05d;_0x1e8cad[_0x0e8f('0x38')]=_['keys'](db[_0x0e8f('0x5d')][_0x0e8f('0x36')]);_0x1e8cad['query']=_[_0x0e8f('0x4c')](_0x349a43[_0x0e8f('0x39')]);_0x1e8cad[_0x0e8f('0x3a')]=_[_0x0e8f('0x4d')](_0x1e8cad[_0x0e8f('0x38')],_0x1e8cad[_0x0e8f('0x39')]);_0x118053['attributes']=_[_0x0e8f('0x4d')](_0x1e8cad['model'],qs[_0x0e8f('0x3c')](_0x349a43[_0x0e8f('0x39')][_0x0e8f('0x3c')]));_0x118053['attributes']=_0x118053[_0x0e8f('0x3b')][_0x0e8f('0x4e')]?_0x118053['attributes']:_0x1e8cad[_0x0e8f('0x38')];_0x118053[_0x0e8f('0x3f')]=qs['sort'](_0x349a43[_0x0e8f('0x39')]['sort']);_0x118053[_0x0e8f('0x41')]=qs[_0x0e8f('0x3a')](_[_0x0e8f('0x42')](_0x349a43['query'],_0x1e8cad[_0x0e8f('0x3a')]));if(_0x349a43[_0x0e8f('0x39')][_0x0e8f('0x45')]){_0x118053[_0x0e8f('0x41')]=_[_0x0e8f('0x43')](_0x118053[_0x0e8f('0x41')],{'$or':_['map'](_0x118053[_0x0e8f('0x3b')],function(_0x4986aa){var _0x11bd9c={};_0x11bd9c[_0x4986aa]={'$like':'%'+_0x349a43['query'][_0x0e8f('0x45')]+'%'};return _0x11bd9c;})});}_0x118053=_[_0x0e8f('0x43')]({},_0x118053,_0x349a43['options']);return _0x35dd92[_0x0e8f('0x8e')](_0x118053);}})[_0x0e8f('0x2b')](function(_0x3309fd){if(_0x3309fd){_0x4b1972=_0x3309fd[_0x0e8f('0x4e')];if(!_0x349a43[_0x0e8f('0x39')][_0x0e8f('0x3d')]('nolimit')){_0x118053[_0x0e8f('0x24')]=qs['limit'](_0x349a43['query'][_0x0e8f('0x24')]);_0x118053['offset']=qs[_0x0e8f('0x22')](_0x349a43[_0x0e8f('0x39')][_0x0e8f('0x22')]);}return _0x35dd92['getAgents'](_0x118053);}})['then'](function(_0x47b01e){if(_0x47b01e){return _0x47b01e?{'count':_0x4b1972,'rows':_0x47b01e}:null;}})[_0x0e8f('0x2b')](respondWithResult(_0x310440,null))[_0x0e8f('0x49')](handleError(_0x310440,null));};