27b8139cba8794e5e6f9768471a45b913be2bda2
[motion2.git] / server / api / mailQueue / mailQueue.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 _0x2fc7=['../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','update','then','destroy','get','end','error','stack','send','map','MailQueue','rawAttributes','fieldName','type','key','model','name','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','filters','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','MailQueues','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserMailQueue','MailQueueId','findAndCountAll','UserId','agent','mailPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','addTeams','ids','Team','User','Agents','online','voicePause','flatMap','transaction','each','findOrCreate','forEach','emit','removeTeams','select','field','tq.TeamId','from','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','sequelize','toString','SELECT','every','TeamId','includes','union','value','removeAgents','userMailQueue:remove','userMailQueue:save','isArray','getAgents','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x2faea6,_0x3d2c4){var _0xcfd2f8=function(_0x38d68a){while(--_0x38d68a){_0x2faea6['push'](_0x2faea6['shift']());}};_0xcfd2f8(++_0x3d2c4);}(_0x2fc7,0x19d));var _0x72fc=function(_0x2442d2,_0x2ce109){_0x2442d2=_0x2442d2-0x0;var _0x3ed8c4=_0x2fc7[_0x2442d2];return _0x3ed8c4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x72fc('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x72fc('0x1'));var rp=require('request-promise');var moment=require(_0x72fc('0x2'));var BPromise=require(_0x72fc('0x3'));var Mustache=require(_0x72fc('0x4'));var util=require(_0x72fc('0x5'));var path=require(_0x72fc('0x6'));var sox=require(_0x72fc('0x7'));var csv=require(_0x72fc('0x8'));var ejs=require(_0x72fc('0x9'));var fs=require('fs');var fs_extra=require(_0x72fc('0xa'));var _=require(_0x72fc('0xb'));var squel=require(_0x72fc('0xc'));var crypto=require(_0x72fc('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x72fc('0xe'));var toCsv=require(_0x72fc('0x8'));var querystring=require(_0x72fc('0xf'));var Papa=require(_0x72fc('0x10'));var Redis=require(_0x72fc('0x11'));var authService=require(_0x72fc('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x72fc('0x13'));var hardwareService=require(_0x72fc('0x14'));var logger=require(_0x72fc('0x15'))(_0x72fc('0x16'));var utils=require(_0x72fc('0x17'));var config=require(_0x72fc('0x18'));var licenseUtil=require(_0x72fc('0x19'));var db=require(_0x72fc('0x1a'))['db'];config['redis']=_['defaults'](config[_0x72fc('0x1b')],{'host':_0x72fc('0x1c'),'port':0x18eb});var socket=require(_0x72fc('0x1d'))(new Redis(config['redis']));require('./mailQueue.socket')[_0x72fc('0x1e')](socket);function respondWithStatusCode(_0x7b111d,_0x4baa41){_0x4baa41=_0x4baa41||0xcc;return function(_0x29f339){if(_0x29f339){return _0x7b111d[_0x72fc('0x1f')](_0x4baa41);}return _0x7b111d[_0x72fc('0x20')](_0x4baa41)['end']();};}function respondWithResult(_0x14444f,_0x551c3a){_0x551c3a=_0x551c3a||0xc8;return function(_0x5e562e){if(_0x5e562e){return _0x14444f[_0x72fc('0x20')](_0x551c3a)['json'](_0x5e562e);}};}function respondWithFilteredResult(_0x2eddd4,_0x5cbc01){return function(_0x506261){if(_0x506261){var _0x18f93c=typeof _0x5cbc01[_0x72fc('0x21')]===_0x72fc('0x22')&&typeof _0x5cbc01[_0x72fc('0x23')]===_0x72fc('0x22');var _0x402451=_0x506261['count'];var _0x25b6dd=_0x18f93c?0x0:_0x5cbc01['offset'];var _0x13cb74=_0x18f93c?_0x506261[_0x72fc('0x24')]:_0x5cbc01[_0x72fc('0x21')]+_0x5cbc01[_0x72fc('0x23')];var _0x598148;if(_0x13cb74>=_0x402451){_0x13cb74=_0x402451;_0x598148=0xc8;}else{_0x598148=0xce;}_0x2eddd4[_0x72fc('0x20')](_0x598148);return _0x2eddd4[_0x72fc('0x25')](_0x72fc('0x26'),_0x25b6dd+'-'+_0x13cb74+'/'+_0x402451)[_0x72fc('0x27')](_0x506261);}return null;};}function patchUpdates(_0xb90af4){return function(_0x23f168){try{jsonpatch[_0x72fc('0x28')](_0x23f168,_0xb90af4,!![]);}catch(_0x5002dc){return BPromise['reject'](_0x5002dc);}return _0x23f168['save']();};}function saveUpdates(_0x21932f,_0x15267a){return function(_0x256dc0){if(_0x256dc0){return _0x256dc0[_0x72fc('0x29')](_0x21932f)[_0x72fc('0x2a')](function(_0x8ebcbe){return _0x8ebcbe;});}return null;};}function removeEntity(_0x37aa2b,_0x45d479){return function(_0x27cae3){if(_0x27cae3){return _0x27cae3[_0x72fc('0x2b')]()[_0x72fc('0x2a')](function(){var _0xcd893=_0x27cae3[_0x72fc('0x2c')]({'plain':!![]});var _0x4ddb1f='MailQueues';return db['UserProfileResource'][_0x72fc('0x2b')]({'where':{'type':_0x4ddb1f,'resourceId':_0xcd893['id']}})['then'](function(){return _0x27cae3;});})[_0x72fc('0x2a')](function(){_0x37aa2b['status'](0xcc)[_0x72fc('0x2d')]();});}};}function handleEntityNotFound(_0x520193,_0xd5225d){return function(_0x42823e){if(!_0x42823e){_0x520193[_0x72fc('0x1f')](0x194);}return _0x42823e;};}function handleError(_0x2ba54d,_0x34b1b9){_0x34b1b9=_0x34b1b9||0x1f4;return function(_0x366491){logger[_0x72fc('0x2e')](_0x366491[_0x72fc('0x2f')]);if(_0x366491['name']){delete _0x366491['name'];}_0x2ba54d[_0x72fc('0x20')](_0x34b1b9)[_0x72fc('0x30')](_0x366491);};}exports['index']=function(_0x7b5917,_0x3de6f3){var _0x30a85d={},_0x4c3e50={},_0x4d6caf={'count':0x0,'rows':[]};var _0x3f9ac0=_[_0x72fc('0x31')](db[_0x72fc('0x32')][_0x72fc('0x33')],function(_0x4c3298){return{'name':_0x4c3298[_0x72fc('0x34')],'type':_0x4c3298[_0x72fc('0x35')][_0x72fc('0x36')]};});_0x4c3e50[_0x72fc('0x37')]=_[_0x72fc('0x31')](_0x3f9ac0,_0x72fc('0x38'));_0x4c3e50[_0x72fc('0x39')]=_['keys'](_0x7b5917[_0x72fc('0x39')]);_0x4c3e50['filters']=_['intersection'](_0x4c3e50[_0x72fc('0x37')],_0x4c3e50['query']);_0x30a85d[_0x72fc('0x3a')]=_[_0x72fc('0x3b')](_0x4c3e50[_0x72fc('0x37')],qs[_0x72fc('0x3c')](_0x7b5917['query'][_0x72fc('0x3c')]));_0x30a85d[_0x72fc('0x3a')]=_0x30a85d[_0x72fc('0x3a')][_0x72fc('0x3d')]?_0x30a85d[_0x72fc('0x3a')]:_0x4c3e50[_0x72fc('0x37')];if(!_0x7b5917[_0x72fc('0x39')][_0x72fc('0x3e')](_0x72fc('0x3f'))){_0x30a85d[_0x72fc('0x23')]=qs[_0x72fc('0x23')](_0x7b5917[_0x72fc('0x39')][_0x72fc('0x23')]);_0x30a85d[_0x72fc('0x21')]=qs[_0x72fc('0x21')](_0x7b5917[_0x72fc('0x39')][_0x72fc('0x21')]);}_0x30a85d[_0x72fc('0x40')]=qs[_0x72fc('0x41')](_0x7b5917[_0x72fc('0x39')][_0x72fc('0x41')]);_0x30a85d[_0x72fc('0x42')]=qs['filters'](_[_0x72fc('0x43')](_0x7b5917[_0x72fc('0x39')],_0x4c3e50['filters']),_0x3f9ac0);if(_0x7b5917[_0x72fc('0x39')][_0x72fc('0x44')]){_0x30a85d[_0x72fc('0x42')]=_['merge'](_0x30a85d[_0x72fc('0x42')],{'$or':_[_0x72fc('0x31')](_0x3f9ac0,function(_0x58b513){if(_0x58b513['type']!==_0x72fc('0x45')){var _0x3d5bd8={};_0x3d5bd8[_0x58b513[_0x72fc('0x38')]]={'$like':'%'+_0x7b5917[_0x72fc('0x39')][_0x72fc('0x44')]+'%'};return _0x3d5bd8;}})});}_0x30a85d=_[_0x72fc('0x46')]({},_0x30a85d,_0x7b5917[_0x72fc('0x47')]);var _0x46dcf6={'where':_0x30a85d[_0x72fc('0x42')]};return db[_0x72fc('0x32')][_0x72fc('0x24')](_0x46dcf6)[_0x72fc('0x2a')](function(_0x13dc4b){_0x4d6caf[_0x72fc('0x24')]=_0x13dc4b;if(_0x7b5917['query'][_0x72fc('0x48')]){_0x30a85d[_0x72fc('0x49')]=[{'all':!![]}];}return db[_0x72fc('0x32')][_0x72fc('0x4a')](_0x30a85d);})[_0x72fc('0x2a')](function(_0x361ab9){_0x4d6caf[_0x72fc('0x4b')]=_0x361ab9;return _0x4d6caf;})[_0x72fc('0x2a')](respondWithFilteredResult(_0x3de6f3,_0x30a85d))[_0x72fc('0x4c')](handleError(_0x3de6f3,null));};exports[_0x72fc('0x4d')]=function(_0x11df8,_0xb37544){var _0x346acb={'raw':!![],'where':{'id':_0x11df8[_0x72fc('0x4e')]['id']}},_0x12c1aa={};_0x12c1aa[_0x72fc('0x37')]=_['keys'](db['MailQueue'][_0x72fc('0x33')]);_0x12c1aa[_0x72fc('0x39')]=_[_0x72fc('0x4f')](_0x11df8['query']);_0x12c1aa[_0x72fc('0x50')]=_[_0x72fc('0x3b')](_0x12c1aa[_0x72fc('0x37')],_0x12c1aa[_0x72fc('0x39')]);_0x346acb[_0x72fc('0x3a')]=_[_0x72fc('0x3b')](_0x12c1aa[_0x72fc('0x37')],qs[_0x72fc('0x3c')](_0x11df8[_0x72fc('0x39')][_0x72fc('0x3c')]));_0x346acb['attributes']=_0x346acb[_0x72fc('0x3a')][_0x72fc('0x3d')]?_0x346acb[_0x72fc('0x3a')]:_0x12c1aa['model'];if(_0x11df8['query'][_0x72fc('0x48')]){_0x346acb[_0x72fc('0x49')]=[{'all':!![]}];}_0x346acb=_['merge']({},_0x346acb,_0x11df8[_0x72fc('0x47')]);return db[_0x72fc('0x32')][_0x72fc('0x51')](_0x346acb)[_0x72fc('0x2a')](handleEntityNotFound(_0xb37544,null))[_0x72fc('0x2a')](respondWithResult(_0xb37544,null))[_0x72fc('0x4c')](handleError(_0xb37544,null));};exports[_0x72fc('0x52')]=function(_0xc64b1c,_0x3ea3fb){return db[_0x72fc('0x32')]['create'](_0xc64b1c[_0x72fc('0x53')],{})[_0x72fc('0x2a')](function(_0x503412){var _0x58fc04=_0xc64b1c[_0x72fc('0x54')][_0x72fc('0x2c')]({'plain':!![]});if(!_0x58fc04)throw new Error(_0x72fc('0x55'));if(_0x58fc04[_0x72fc('0x56')]===_0x72fc('0x54')){var _0x1e9419=_0x503412['get']({'plain':!![]});var _0x23f42d=_0x72fc('0x57');return db[_0x72fc('0x58')][_0x72fc('0x51')]({'where':{'name':_0x23f42d,'userProfileId':_0x58fc04[_0x72fc('0x59')]},'raw':!![]})['then'](function(_0x50c8a1){if(_0x50c8a1&&_0x50c8a1[_0x72fc('0x5a')]===0x0){return db[_0x72fc('0x5b')][_0x72fc('0x52')]({'name':_0x1e9419[_0x72fc('0x38')],'resourceId':_0x1e9419['id'],'type':_0x50c8a1[_0x72fc('0x38')],'sectionId':_0x50c8a1['id']},{})[_0x72fc('0x2a')](function(){return _0x503412;});}else{return _0x503412;}})['catch'](function(_0x5e9ef5){logger[_0x72fc('0x2e')](_0x72fc('0x5c'),_0x5e9ef5);throw _0x5e9ef5;});}return _0x503412;})[_0x72fc('0x2a')](respondWithResult(_0x3ea3fb,0xc9))[_0x72fc('0x4c')](handleError(_0x3ea3fb,null));};exports[_0x72fc('0x29')]=function(_0x79d60b,_0x50eb87){if(_0x79d60b[_0x72fc('0x53')]['id']){delete _0x79d60b[_0x72fc('0x53')]['id'];}return db['MailQueue'][_0x72fc('0x51')]({'where':{'id':_0x79d60b[_0x72fc('0x4e')]['id']}})['then'](handleEntityNotFound(_0x50eb87,null))[_0x72fc('0x2a')](saveUpdates(_0x79d60b[_0x72fc('0x53')],null))[_0x72fc('0x2a')](respondWithResult(_0x50eb87,null))[_0x72fc('0x4c')](handleError(_0x50eb87,null));};exports[_0x72fc('0x2b')]=function(_0x415d45,_0xd27e94){return db[_0x72fc('0x32')][_0x72fc('0x51')]({'where':{'id':_0x415d45['params']['id']}})[_0x72fc('0x2a')](handleEntityNotFound(_0xd27e94,null))[_0x72fc('0x2a')](removeEntity(_0xd27e94,null))[_0x72fc('0x4c')](handleError(_0xd27e94,null));};exports[_0x72fc('0x5d')]=function(_0x5b1044,_0x37de19){return db[_0x72fc('0x32')][_0x72fc('0x5d')]()['then'](respondWithResult(_0x37de19,null))['catch'](handleError(_0x37de19,null));};exports[_0x72fc('0x5e')]=function(_0x3dd779,_0x4bcdb9,_0x9378bc){var _0x2989a8={'raw':!![],'where':{}},_0x587c24={},_0x417a9f;return db[_0x72fc('0x32')][_0x72fc('0x5f')]({'where':{'id':_0x3dd779[_0x72fc('0x4e')]['id']}})[_0x72fc('0x2a')](handleEntityNotFound(_0x4bcdb9,null))[_0x72fc('0x2a')](function(_0x4502e8){if(_0x4502e8){_0x417a9f=_0x4502e8[_0x72fc('0x2c')]({'plain':!![]});_0x587c24[_0x72fc('0x37')]=_['keys'](db[_0x72fc('0x60')][_0x72fc('0x33')]);_0x587c24[_0x72fc('0x39')]=_['keys'](_0x3dd779[_0x72fc('0x39')]);_0x587c24[_0x72fc('0x50')]=_[_0x72fc('0x3b')](_0x587c24[_0x72fc('0x37')],_0x587c24['query']);_0x2989a8[_0x72fc('0x3a')]=_['intersection'](_0x587c24[_0x72fc('0x37')],qs[_0x72fc('0x3c')](_0x3dd779['query'][_0x72fc('0x3c')]));_0x2989a8['attributes']=_0x2989a8['attributes'][_0x72fc('0x3d')]?_0x2989a8['attributes']:_0x587c24[_0x72fc('0x37')];if(!_0x3dd779[_0x72fc('0x39')]['hasOwnProperty'](_0x72fc('0x3f'))){_0x2989a8['limit']=qs[_0x72fc('0x23')](_0x3dd779[_0x72fc('0x39')]['limit']);_0x2989a8[_0x72fc('0x21')]=qs[_0x72fc('0x21')](_0x3dd779['query']['offset']);}_0x2989a8[_0x72fc('0x40')]=qs[_0x72fc('0x41')](_0x3dd779[_0x72fc('0x39')][_0x72fc('0x41')]);_0x2989a8[_0x72fc('0x42')]=qs[_0x72fc('0x50')](_[_0x72fc('0x43')](_0x3dd779[_0x72fc('0x39')],_0x587c24[_0x72fc('0x50')]));_0x2989a8[_0x72fc('0x42')][_0x72fc('0x61')]=_0x4502e8['id'];if(_0x3dd779[_0x72fc('0x39')]['filter']){_0x2989a8[_0x72fc('0x42')]=_[_0x72fc('0x46')](_0x2989a8['where'],{'$or':_[_0x72fc('0x31')](_0x2989a8[_0x72fc('0x3a')],function(_0x36e190){var _0x1ce715={};_0x1ce715[_0x36e190]={'$like':'%'+_0x3dd779[_0x72fc('0x39')][_0x72fc('0x44')]+'%'};return _0x1ce715;})});}_0x2989a8=_[_0x72fc('0x46')]({},_0x2989a8,_0x3dd779['options']);return db[_0x72fc('0x60')][_0x72fc('0x4a')](_0x2989a8);}})[_0x72fc('0x2a')](function(_0x15c821){if(_0x15c821){return db['User'][_0x72fc('0x62')]({'where':{'id':_[_0x72fc('0x31')](_0x15c821,_0x72fc('0x63')),'role':_0x72fc('0x64')},'attributes':['id',_0x72fc('0x38'),_0x72fc('0x65'),_0x72fc('0x66'),_0x72fc('0x67')]});}})['then'](function(_0x32a35d){if(_0x32a35d){return{'count':_0x32a35d[_0x72fc('0x24')],'rows':_['map'](_0x32a35d[_0x72fc('0x4b')],function(_0x244237){return{'membername':_0x244237[_0x72fc('0x38')],'UserId':_0x244237['id'],'queue_name':_0x417a9f[_0x72fc('0x38')],'MailQueueId':_0x417a9f['id'],'interface':util[_0x72fc('0x68')](_0x72fc('0x69'),_0x72fc('0x6a'),_0x244237['name']),'penalty':0x0,'paused':_0x244237[_0x72fc('0x65')],'createdAt':_0x244237['createdAt'],'updatedAt':_0x244237[_0x72fc('0x66')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x72fc('0x2a')](respondWithFilteredResult(_0x4bcdb9,_0x2989a8))[_0x72fc('0x4c')](handleError(_0x4bcdb9,null));};exports[_0x72fc('0x6b')]=function(_0x5dfa71,_0x915129,_0x9a537b){var _0x127dae={};var _0x59a05a={};var _0x301391;var _0x5d4117;return db[_0x72fc('0x32')][_0x72fc('0x5f')]({'where':{'id':_0x5dfa71['params']['id']}})[_0x72fc('0x2a')](handleEntityNotFound(_0x915129,null))['then'](function(_0x3ad090){if(_0x3ad090){_0x301391=_0x3ad090;_0x59a05a[_0x72fc('0x37')]=_[_0x72fc('0x4f')](db['Team'][_0x72fc('0x33')]);_0x59a05a[_0x72fc('0x39')]=_[_0x72fc('0x4f')](_0x5dfa71[_0x72fc('0x39')]);_0x59a05a[_0x72fc('0x50')]=_[_0x72fc('0x3b')](_0x59a05a[_0x72fc('0x37')],_0x59a05a[_0x72fc('0x39')]);_0x127dae[_0x72fc('0x3a')]=_[_0x72fc('0x3b')](_0x59a05a[_0x72fc('0x37')],qs['fields'](_0x5dfa71[_0x72fc('0x39')][_0x72fc('0x3c')]));_0x127dae[_0x72fc('0x3a')]=_0x127dae[_0x72fc('0x3a')][_0x72fc('0x3d')]?_0x127dae['attributes']:_0x59a05a['model'];_0x127dae[_0x72fc('0x40')]=qs[_0x72fc('0x41')](_0x5dfa71[_0x72fc('0x39')][_0x72fc('0x41')]);_0x127dae[_0x72fc('0x42')]=qs[_0x72fc('0x50')](_['pick'](_0x5dfa71[_0x72fc('0x39')],_0x59a05a['filters']));if(_0x5dfa71['query']['filter']){_0x127dae[_0x72fc('0x42')]=_[_0x72fc('0x46')](_0x127dae[_0x72fc('0x42')],{'$or':_[_0x72fc('0x31')](_0x127dae[_0x72fc('0x3a')],function(_0x26469c){var _0x4c27b6={};_0x4c27b6[_0x26469c]={'$like':'%'+_0x5dfa71['query'][_0x72fc('0x44')]+'%'};return _0x4c27b6;})});}_0x127dae=_[_0x72fc('0x46')]({},_0x127dae,_0x5dfa71['options']);return _0x301391['getTeams'](_0x127dae);}})[_0x72fc('0x2a')](function(_0x19c9a6){if(_0x19c9a6){_0x5d4117=_0x19c9a6[_0x72fc('0x3d')];if(!_0x5dfa71[_0x72fc('0x39')][_0x72fc('0x3e')](_0x72fc('0x3f'))){_0x127dae[_0x72fc('0x23')]=qs['limit'](_0x5dfa71[_0x72fc('0x39')][_0x72fc('0x23')]);_0x127dae[_0x72fc('0x21')]=qs['offset'](_0x5dfa71[_0x72fc('0x39')][_0x72fc('0x21')]);}return _0x301391['getTeams'](_0x127dae);}})['then'](function(_0x231067){if(_0x231067){return _0x231067?{'count':_0x5d4117,'rows':_0x231067}:null;}})['then'](respondWithResult(_0x915129,null))[_0x72fc('0x4c')](handleError(_0x915129,null));};exports[_0x72fc('0x6c')]=function(_0x584819,_0x4fd85f,_0x500452){var _0x18960d=_0x584819[_0x72fc('0x53')][_0x72fc('0x6d')];return db[_0x72fc('0x6e')][_0x72fc('0x4a')]({'where':{'id':_0x18960d},'attributes':['id'],'include':[{'model':db[_0x72fc('0x6f')],'as':_0x72fc('0x70'),'attributes':['id',_0x72fc('0x38'),_0x72fc('0x71'),_0x72fc('0x72'),'interface'],'raw':!![]}]})[_0x72fc('0x2a')](function(_0x289e41){if(_0x289e41){var _0x2d6490=_[_0x72fc('0x73')](_0x289e41,function(_0x435088){var _0x573187=_0x435088[_0x72fc('0x2c')]({'plain':!![]});return _0x573187[_0x72fc('0x70')];});return db[_0x72fc('0x32')][_0x72fc('0x51')]({'where':{'id':_0x584819[_0x72fc('0x4e')]['id']}})[_0x72fc('0x2a')](function(_0x1f4027){return db['sequelize'][_0x72fc('0x74')](function(_0x927165){return _0x1f4027['addTeams'](_0x18960d,{'transaction':_0x927165})[_0x72fc('0x2a')](function(){return BPromise[_0x72fc('0x75')](_0x2d6490,function(_0x29da64){return db[_0x72fc('0x60')][_0x72fc('0x76')]({'where':{'UserId':_0x29da64['id'],'MailQueueId':_0x584819[_0x72fc('0x4e')]['id']},'transaction':_0x927165});});})[_0x72fc('0x2a')](function(){_0x2d6490[_0x72fc('0x77')](function(_0x1de9f8){socket[_0x72fc('0x78')]('userMailQueue:save',{'UserId':_0x1de9f8['id'],'MailQueueId':_0x1f4027['id']});});});});});}})[_0x72fc('0x2a')](respondWithStatusCode(_0x4fd85f,null))[_0x72fc('0x4c')](handleError(_0x4fd85f,null));};exports[_0x72fc('0x79')]=function(_0x3a96bf,_0x4a4e6a,_0x3e859d){return db[_0x72fc('0x6e')][_0x72fc('0x4a')]({'where':{'id':_0x3a96bf[_0x72fc('0x39')][_0x72fc('0x6d')]},'attributes':['id'],'include':[{'model':db[_0x72fc('0x6f')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x72fc('0x2a')](handleEntityNotFound(_0x4a4e6a,null))[_0x72fc('0x2a')](function(_0x9ab112){var _0x6d7a9a=_['map'](_0x9ab112,'id');var _0x563f5b=[];var _0x53247a=[];var _0x5306cc=squel[_0x72fc('0x7a')]();_0x5306cc[_0x72fc('0x7b')](_0x72fc('0x7c'))[_0x72fc('0x7d')](_0x72fc('0x7e'),'tq')[_0x72fc('0x7f')](_0x72fc('0x80'),'ut',_0x72fc('0x81'))[_0x72fc('0x42')](_0x72fc('0x82'),_0x3a96bf[_0x72fc('0x4e')]['id']);for(var _0x4f2e54=0x0;_0x4f2e54<_0x9ab112[_0x72fc('0x3d')];_0x4f2e54+=0x1){let _0xf57116=_0x9ab112[_0x4f2e54];for(var _0x95ba5d=0x0;_0x95ba5d<_0xf57116[_0x72fc('0x70')]['length'];_0x95ba5d+=0x1){let _0x44179e=_0xf57116[_0x72fc('0x70')][_0x95ba5d];var _0x515862=_0x5306cc[_0x72fc('0x83')]();_0x515862[_0x72fc('0x42')](_0x72fc('0x84'),_0x44179e['id']);_0x53247a['push'](db[_0x72fc('0x85')][_0x72fc('0x39')](_0x515862[_0x72fc('0x86')](),{'type':db['sequelize']['QueryTypes'][_0x72fc('0x87')]})['then'](function(_0x102681){if(_0x102681['length']===0x1){return _0x44179e['id'];}else{var _0x4eedb=_[_0x72fc('0x88')](_[_0x72fc('0x31')](_0x102681,_0x72fc('0x89')),function(_0x302a62){return _[_0x72fc('0x8a')](_0x6d7a9a,_0x302a62);});if(_0x4eedb){return _0x44179e['id'];}}}));}}return BPromise['all'](_0x53247a)[_0x72fc('0x2a')](function(_0x276a96){_0x563f5b=_(_0x563f5b)[_0x72fc('0x8b')](_0x276a96)['compact']()[_0x72fc('0x8c')]();return db[_0x72fc('0x32')][_0x72fc('0x51')]({'where':{'id':_0x3a96bf[_0x72fc('0x4e')]['id']}})[_0x72fc('0x2a')](function(_0x6511bc){return db[_0x72fc('0x85')]['transaction'](function(_0x5b6a31){return _0x6511bc[_0x72fc('0x79')](_0x3a96bf[_0x72fc('0x39')]['ids'],{'transaction':_0x5b6a31})[_0x72fc('0x2a')](function(){if(!_['isEmpty'](_0x563f5b)){return _0x6511bc[_0x72fc('0x8d')](_0x563f5b,{'transaction':_0x5b6a31});}})[_0x72fc('0x2a')](function(){_0x563f5b['forEach'](function(_0x4cc93b){socket['emit'](_0x72fc('0x8e'),{'UserId':_0x4cc93b,'MailQueueId':_0x6511bc['id']});});});});});});})['then'](respondWithStatusCode(_0x4a4e6a,null))[_0x72fc('0x4c')](handleError(_0x4a4e6a,null));};exports['addAgents']=function(_0x1cc0d7,_0x870e4b,_0x2eb0c0){return db[_0x72fc('0x32')][_0x72fc('0x51')]({'where':{'id':_0x1cc0d7[_0x72fc('0x4e')]['id']}})['then'](handleEntityNotFound(_0x870e4b,null))[_0x72fc('0x2a')](function(_0x58c1fa){if(_0x58c1fa){return _0x58c1fa['addAgents'](_0x1cc0d7[_0x72fc('0x53')][_0x72fc('0x6d')],_['omit'](_0x1cc0d7[_0x72fc('0x53')],['ids','id'])||{})['spread'](function(_0x5392cf){for(var _0x4695ed=0x0;_0x4695ed<_0x1cc0d7[_0x72fc('0x53')]['ids'][_0x72fc('0x3d')];_0x4695ed+=0x1){socket[_0x72fc('0x78')](_0x72fc('0x8f'),{'UserId':Number(_0x1cc0d7[_0x72fc('0x53')]['ids'][_0x4695ed]),'MailQueueId':Number(_0x1cc0d7[_0x72fc('0x4e')]['id'])});}return _0x5392cf;});}})[_0x72fc('0x2a')](respondWithResult(_0x870e4b,null))[_0x72fc('0x4c')](handleError(_0x870e4b,null));};exports[_0x72fc('0x8d')]=function(_0x2efaf5,_0x128238,_0x2188ac){return db[_0x72fc('0x32')][_0x72fc('0x51')]({'where':{'id':_0x2efaf5['params']['id']}})['then'](handleEntityNotFound(_0x128238,null))[_0x72fc('0x2a')](function(_0x53eb7c){if(_0x53eb7c){return _0x53eb7c[_0x72fc('0x8d')](_0x2efaf5[_0x72fc('0x39')][_0x72fc('0x6d')])['then'](function(){if(_[_0x72fc('0x90')](_0x2efaf5[_0x72fc('0x39')]['ids'])){for(var _0x136781=0x0;_0x136781<_0x2efaf5[_0x72fc('0x39')][_0x72fc('0x6d')][_0x72fc('0x3d')];_0x136781+=0x1){socket[_0x72fc('0x78')](_0x72fc('0x8e'),{'UserId':Number(_0x2efaf5[_0x72fc('0x39')][_0x72fc('0x6d')][_0x136781]),'MailQueueId':Number(_0x2efaf5[_0x72fc('0x4e')]['id'])});}}else{socket[_0x72fc('0x78')]('userMailQueue:remove',{'UserId':Number(_0x2efaf5[_0x72fc('0x39')][_0x72fc('0x6d')]),'MailQueueId':Number(_0x2efaf5['params']['id'])});}});}})[_0x72fc('0x2a')](respondWithStatusCode(_0x128238,null))[_0x72fc('0x4c')](handleError(_0x128238,null));};exports[_0x72fc('0x91')]=function(_0x394065,_0x535357,_0x4c6965){var _0x28808b={};var _0x21969d={};var _0x37f2fc;var _0x161ae5;return db[_0x72fc('0x32')][_0x72fc('0x5f')]({'where':{'id':_0x394065['params']['id']}})['then'](handleEntityNotFound(_0x535357,null))[_0x72fc('0x2a')](function(_0x4e9ea2){if(_0x4e9ea2){_0x37f2fc=_0x4e9ea2;_0x21969d['model']=_['keys'](db[_0x72fc('0x6f')][_0x72fc('0x33')]);_0x21969d[_0x72fc('0x39')]=_['keys'](_0x394065[_0x72fc('0x39')]);_0x21969d[_0x72fc('0x50')]=_[_0x72fc('0x3b')](_0x21969d['model'],_0x21969d[_0x72fc('0x39')]);_0x28808b[_0x72fc('0x3a')]=_[_0x72fc('0x3b')](_0x21969d[_0x72fc('0x37')],qs[_0x72fc('0x3c')](_0x394065['query'][_0x72fc('0x3c')]));_0x28808b[_0x72fc('0x3a')]=_0x28808b['attributes'][_0x72fc('0x3d')]?_0x28808b['attributes']:_0x21969d[_0x72fc('0x37')];_0x28808b[_0x72fc('0x40')]=qs[_0x72fc('0x41')](_0x394065[_0x72fc('0x39')]['sort']);_0x28808b[_0x72fc('0x42')]=qs[_0x72fc('0x50')](_[_0x72fc('0x43')](_0x394065[_0x72fc('0x39')],_0x21969d['filters']));if(_0x394065[_0x72fc('0x39')][_0x72fc('0x44')]){_0x28808b['where']=_[_0x72fc('0x46')](_0x28808b['where'],{'$or':_['map'](_0x28808b[_0x72fc('0x3a')],function(_0x34f4b8){var _0x31d591={};_0x31d591[_0x34f4b8]={'$like':'%'+_0x394065[_0x72fc('0x39')][_0x72fc('0x44')]+'%'};return _0x31d591;})});}_0x28808b=_[_0x72fc('0x46')]({},_0x28808b,_0x394065[_0x72fc('0x47')]);return _0x37f2fc[_0x72fc('0x91')](_0x28808b);}})['then'](function(_0x5f1427){if(_0x5f1427){_0x161ae5=_0x5f1427[_0x72fc('0x3d')];if(!_0x394065['query'][_0x72fc('0x3e')](_0x72fc('0x3f'))){_0x28808b[_0x72fc('0x23')]=qs[_0x72fc('0x23')](_0x394065[_0x72fc('0x39')][_0x72fc('0x23')]);_0x28808b[_0x72fc('0x21')]=qs[_0x72fc('0x21')](_0x394065[_0x72fc('0x39')][_0x72fc('0x21')]);}return _0x37f2fc['getAgents'](_0x28808b);}})[_0x72fc('0x2a')](function(_0x215a7a){if(_0x215a7a){return _0x215a7a?{'count':_0x161ae5,'rows':_0x215a7a}:null;}})[_0x72fc('0x2a')](respondWithResult(_0x535357,null))['catch'](handleError(_0x535357,null));};