Built motion from commit (unavailable).|2.4.18
[motion2.git] / server / api / cmHopper / cmHopper.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 _0xb7aa=['CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','html-pdf','eml-format','rimraf','zip-dir','util','path','sox','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','map','CmHopper','rawAttributes','fieldName','type','key','model','query','filters','$or','$lt','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$any','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','VoiceQueueId','CampaignId','Campaign','omit','createdAt','state','deleted','campaign','membername','user','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','getPreview','getVoiceQueues','outbound','dialOrderByScheduledAt','sequelize','transaction','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','LOCK','UPDATE','Contact','Company','CmList','List','VoiceQueue','Queue','dialActive','getOpenContacts','preview','isNumber'];(function(_0x303b3a,_0x2f01f7){var _0x5daedd=function(_0xcc0425){while(--_0xcc0425){_0x303b3a['push'](_0x303b3a['shift']());}};_0x5daedd(++_0x2f01f7);}(_0xb7aa,0x1be));var _0xab7a=function(_0x51ff86,_0x54da33){_0x51ff86=_0x51ff86-0x0;var _0x1abbd9=_0xb7aa[_0x51ff86];return _0x1abbd9;};'use strict';var pdf=require(_0xab7a('0x0'));var emlformat=require(_0xab7a('0x1'));var rimraf=require(_0xab7a('0x2'));var zipdir=require(_0xab7a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xab7a('0x4'));var path=require(_0xab7a('0x5'));var sox=require(_0xab7a('0x6'));var csv=require('to-csv');var ejs=require(_0xab7a('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0xab7a('0x8'));var crypto=require(_0xab7a('0x9'));var jsforce=require(_0xab7a('0xa'));var deskjs=require(_0xab7a('0xb'));var toCsv=require('to-csv');var querystring=require(_0xab7a('0xc'));var Papa=require('papaparse');var Redis=require(_0xab7a('0xd'));var authService=require(_0xab7a('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xab7a('0xf'));var hardwareService=require(_0xab7a('0x10'));var logger=require(_0xab7a('0x11'))(_0xab7a('0x12'));var utils=require(_0xab7a('0x13'));var config=require(_0xab7a('0x14'));var db=require(_0xab7a('0x15'))['db'];function respondWithStatusCode(_0x5088f3,_0x25a685){_0x25a685=_0x25a685||0xcc;return function(_0x2d7bcd){if(_0x2d7bcd){return _0x5088f3[_0xab7a('0x16')](_0x25a685);}return _0x5088f3[_0xab7a('0x17')](_0x25a685)[_0xab7a('0x18')]();};}function respondWithResult(_0x4aa700,_0xca5f0a){_0xca5f0a=_0xca5f0a||0xc8;return function(_0x27ff5c){if(_0x27ff5c){return _0x4aa700[_0xab7a('0x17')](_0xca5f0a)[_0xab7a('0x19')](_0x27ff5c);}};}function respondWithFilteredResult(_0x111d6c,_0x1702fc){return function(_0x3499c8){if(_0x3499c8){var _0x173a5e=_0x3499c8[_0xab7a('0x1a')],_0xaf8b65=_0x1702fc[_0xab7a('0x1b')],_0x401069=_0x1702fc[_0xab7a('0x1b')]+_0x1702fc[_0xab7a('0x1c')],_0x33a080;if(_0x401069>=_0x173a5e){_0x401069=_0x173a5e;_0x33a080=0xc8;}else{_0x33a080=0xce;}_0x111d6c[_0xab7a('0x17')](_0x33a080);return _0x111d6c['set'](_0xab7a('0x1d'),_0xaf8b65+'-'+_0x401069+'/'+_0x173a5e)[_0xab7a('0x19')](_0x3499c8);}return null;};}function patchUpdates(_0xec8e8b){return function(_0x502a02){try{jsonpatch[_0xab7a('0x1e')](_0x502a02,_0xec8e8b,!![]);}catch(_0x2dd2fa){return BPromise[_0xab7a('0x1f')](_0x2dd2fa);}return _0x502a02[_0xab7a('0x20')]();};}function saveUpdates(_0x129e10,_0x2ad827){return function(_0x4fce67){if(_0x4fce67){return _0x4fce67[_0xab7a('0x21')](_0x129e10)['then'](function(_0x413d1d){return _0x413d1d;});}return null;};}function removeEntity(_0x17c2fa,_0x2a44ea){return function(_0x4f478b){if(_0x4f478b){return _0x4f478b[_0xab7a('0x22')]()[_0xab7a('0x23')](function(){_0x17c2fa[_0xab7a('0x17')](0xcc)[_0xab7a('0x18')]();});}};}function handleEntityNotFound(_0x8e3d9d,_0x42e099){return function(_0x3fb08d){if(!_0x3fb08d){_0x8e3d9d[_0xab7a('0x16')](0x194);}return _0x3fb08d;};}function handleError(_0x2bf054,_0x5bfb40){_0x5bfb40=_0x5bfb40||0x1f4;return function(_0x180ab4){logger[_0xab7a('0x24')](_0x180ab4[_0xab7a('0x25')]);if(_0x180ab4[_0xab7a('0x26')]){delete _0x180ab4['name'];}_0x2bf054[_0xab7a('0x17')](_0x5bfb40)[_0xab7a('0x27')](_0x180ab4);};}exports['index']=function(_0x29d88b,_0x32b9a2){var _0x5da7e={},_0x1ea62a={},_0x3d25d6={'count':0x0,'rows':[]};var _0x536a9f=_[_0xab7a('0x28')](db[_0xab7a('0x29')][_0xab7a('0x2a')],function(_0x5ed101){return{'name':_0x5ed101[_0xab7a('0x2b')],'type':_0x5ed101[_0xab7a('0x2c')][_0xab7a('0x2d')]};});_0x1ea62a[_0xab7a('0x2e')]=_[_0xab7a('0x28')](_0x536a9f,'name');_0x1ea62a[_0xab7a('0x2f')]=_['keys'](_0x29d88b[_0xab7a('0x2f')]);_0x1ea62a[_0xab7a('0x30')]=_['intersection'](_0x1ea62a[_0xab7a('0x2e')],_0x1ea62a[_0xab7a('0x2f')]);_0x1ea62a[_0xab7a('0x30')]=_['concat'](_0x1ea62a['filters'],['$and',_0xab7a('0x31'),'$gt','$gte',_0xab7a('0x32'),'$lte',_0xab7a('0x33'),_0xab7a('0x34'),_0xab7a('0x35'),_0xab7a('0x36'),_0xab7a('0x37'),_0xab7a('0x38'),_0xab7a('0x39'),_0xab7a('0x3a'),_0xab7a('0x3b'),_0xab7a('0x3c'),_0xab7a('0x3d'),_0xab7a('0x3a'),_0xab7a('0x3e'),_0xab7a('0x3f'),'$contained',_0xab7a('0x40')]);_0x5da7e[_0xab7a('0x41')]=_[_0xab7a('0x42')](_0x1ea62a[_0xab7a('0x2e')],qs[_0xab7a('0x43')](_0x29d88b[_0xab7a('0x2f')][_0xab7a('0x43')]));_0x5da7e[_0xab7a('0x41')]=_0x5da7e[_0xab7a('0x41')][_0xab7a('0x44')]?_0x5da7e[_0xab7a('0x41')]:_0x1ea62a['model'];if(!_0x29d88b['query'][_0xab7a('0x45')](_0xab7a('0x46'))){_0x5da7e['limit']=qs['limit'](_0x29d88b[_0xab7a('0x2f')][_0xab7a('0x1c')]);_0x5da7e[_0xab7a('0x1b')]=qs[_0xab7a('0x1b')](_0x29d88b[_0xab7a('0x2f')][_0xab7a('0x1b')]);}_0x5da7e[_0xab7a('0x47')]=qs[_0xab7a('0x48')](_0x29d88b['query'][_0xab7a('0x48')]);_0x5da7e['where']=qs['filters'](_[_0xab7a('0x49')](_0x29d88b[_0xab7a('0x2f')],_0x1ea62a['filters']));if(_0x29d88b[_0xab7a('0x2f')][_0xab7a('0x4a')]){_0x5da7e[_0xab7a('0x4b')]=_[_0xab7a('0x4c')](_0x5da7e['where'],{'$or':_['map'](_0x536a9f,function(_0x561ea5){if(_0x561ea5[_0xab7a('0x2c')]!==_0xab7a('0x4d')){var _0x333789={};_0x333789[_0x561ea5[_0xab7a('0x26')]]={'$like':'%'+_0x29d88b[_0xab7a('0x2f')]['filter']+'%'};return _0x333789;}})});}_0x5da7e=_[_0xab7a('0x4c')]({},_0x5da7e,_0x29d88b[_0xab7a('0x4e')]);var _0x4d4692={'where':_0x5da7e[_0xab7a('0x4b')]};return db[_0xab7a('0x29')][_0xab7a('0x1a')](_0x4d4692)[_0xab7a('0x23')](function(_0x152219){_0x3d25d6[_0xab7a('0x1a')]=_0x152219;if(_0x29d88b[_0xab7a('0x2f')][_0xab7a('0x4f')]){_0x5da7e[_0xab7a('0x50')]=[{'all':!![]}];}return db[_0xab7a('0x29')][_0xab7a('0x51')](_0x5da7e);})[_0xab7a('0x23')](function(_0x2b1a52){_0x3d25d6[_0xab7a('0x52')]=_0x2b1a52;return _0x3d25d6;})[_0xab7a('0x23')](respondWithFilteredResult(_0x32b9a2,_0x5da7e))[_0xab7a('0x53')](handleError(_0x32b9a2,null));};exports[_0xab7a('0x54')]=function(_0x5aea27,_0x5f227){var _0x34e7eb={'raw':!![],'where':{'id':_0x5aea27[_0xab7a('0x55')]['id']}},_0x2f3c78={};_0x2f3c78[_0xab7a('0x2e')]=_[_0xab7a('0x56')](db[_0xab7a('0x29')][_0xab7a('0x2a')]);_0x2f3c78[_0xab7a('0x2f')]=_['keys'](_0x5aea27[_0xab7a('0x2f')]);_0x2f3c78['filters']=_[_0xab7a('0x42')](_0x2f3c78[_0xab7a('0x2e')],_0x2f3c78[_0xab7a('0x2f')]);_0x34e7eb[_0xab7a('0x41')]=_[_0xab7a('0x42')](_0x2f3c78['model'],qs[_0xab7a('0x43')](_0x5aea27[_0xab7a('0x2f')][_0xab7a('0x43')]));_0x34e7eb[_0xab7a('0x41')]=_0x34e7eb[_0xab7a('0x41')][_0xab7a('0x44')]?_0x34e7eb[_0xab7a('0x41')]:_0x2f3c78[_0xab7a('0x2e')];if(_0x5aea27[_0xab7a('0x2f')][_0xab7a('0x4f')]){_0x34e7eb['include']=[{'all':!![]}];}_0x34e7eb=_[_0xab7a('0x4c')]({},_0x34e7eb,_0x5aea27[_0xab7a('0x4e')]);return db[_0xab7a('0x29')][_0xab7a('0x57')](_0x34e7eb)[_0xab7a('0x23')](handleEntityNotFound(_0x5f227,null))[_0xab7a('0x23')](respondWithResult(_0x5f227,null))[_0xab7a('0x53')](handleError(_0x5f227,null));};exports['create']=function(_0x426a5b,_0x466946){return db[_0xab7a('0x29')][_0xab7a('0x58')](_0x426a5b[_0xab7a('0x59')],{})[_0xab7a('0x23')](respondWithResult(_0x466946,0xc9))['catch'](handleError(_0x466946,null));};exports[_0xab7a('0x21')]=function(_0x5ed3d8,_0x4a5971){if(_0x5ed3d8[_0xab7a('0x59')]['id']){delete _0x5ed3d8[_0xab7a('0x59')]['id'];}return db['CmHopper'][_0xab7a('0x57')]({'where':{'id':_0x5ed3d8[_0xab7a('0x55')]['id']}})[_0xab7a('0x23')](handleEntityNotFound(_0x4a5971,null))[_0xab7a('0x23')](saveUpdates(_0x5ed3d8[_0xab7a('0x59')],null))[_0xab7a('0x23')](respondWithResult(_0x4a5971,null))[_0xab7a('0x53')](handleError(_0x4a5971,null));};exports[_0xab7a('0x5a')]=function(_0x562567,_0x2ef136){return db['CmHopper'][_0xab7a('0x5a')]()[_0xab7a('0x23')](respondWithResult(_0x2ef136,null))[_0xab7a('0x53')](handleError(_0x2ef136,null));};exports['destroy']=function(_0x4d668d,_0x1712d2){var _0xb7c9c8;return db['CmHopper'][_0xab7a('0x57')]({'where':{'id':_0x4d668d[_0xab7a('0x55')]['id']}})[_0xab7a('0x23')](handleEntityNotFound(_0x1712d2,null))[_0xab7a('0x23')](function(_0x1d2b7d){if(_0x1d2b7d){return _0x1d2b7d['destroy']()['then'](function(_0x34842e){return _0x34842e;});}})['then'](function(_0x119a6c){_0xb7c9c8=_0x119a6c;if(_0x119a6c){if(_0x119a6c[_0xab7a('0x5b')]||_0x119a6c[_0xab7a('0x5c')]){return db[_0x119a6c[_0xab7a('0x5b')]?'VoiceQueue':_0xab7a('0x5d')][_0xab7a('0x57')]({'where':{'id':_0x119a6c[_0xab7a('0x5b')]?_0x119a6c[_0xab7a('0x5b')]:_0x119a6c[_0xab7a('0x5c')]},'attributes':['id','name'],'raw':!![]});}}})[_0xab7a('0x23')](function(_0x59d375){var _0x2ccee7={};if(_0x59d375){_[_0xab7a('0x4c')](_0x2ccee7,_[_0xab7a('0x5e')](_0xb7c9c8['dataValues'],[_0xab7a('0x5f'),'updatedAt','id']));_0x2ccee7[_0xab7a('0x60')]=0x15;_0x2ccee7['statedesc']=_0xab7a('0x61');_0x2ccee7[_0xab7a('0x62')]=_0x59d375[_0xab7a('0x26')];_0x2ccee7[_0xab7a('0x63')]=_0x4d668d[_0xab7a('0x64')][_0xab7a('0x26')];_0x2ccee7['UserId']=_0x4d668d[_0xab7a('0x64')]['id'];_0x2ccee7[_0xab7a('0x61')]=!![];_0x2ccee7[_0xab7a('0x65')]=moment()[_0xab7a('0x66')](_0xab7a('0x67'));_0x2ccee7[_0xab7a('0x68')]=_0xb7c9c8[_0xab7a('0x69')];_0x2ccee7[_0xab7a('0x6a')]=_0xb7c9c8[_0xab7a('0x5b')]?_0xab7a('0x6b'):_0xab7a('0x6c');return db[_0xab7a('0x6d')]['find']({'where':{'id':_0x2ccee7[_0xab7a('0x6e')]},'attributes':[_0xab7a('0x6f'),_0xab7a('0x70')]})['then'](function(_0xc34bd0){if(!_[_0xab7a('0x71')](_0x1712d2)&&!_[_0xab7a('0x71')](_0xc34bd0[_0xab7a('0x6f')])){_0x2ccee7[_0xab7a('0x72')]=_0xc34bd0[_0xab7a('0x6f')];if(!_[_0xab7a('0x71')](_0xc34bd0[_0xab7a('0x70')])){_0x2ccee7[_0xab7a('0x72')]+='\x20'+_0xc34bd0[_0xab7a('0x70')];}}})['finally'](function(){return db['CmHopperFinal'][_0xab7a('0x58')](_0x2ccee7);});}})[_0xab7a('0x23')](function(){return _0x1712d2[_0xab7a('0x17')](0xcc)['end']();})[_0xab7a('0x53')](handleError(_0x1712d2,null));};exports[_0xab7a('0x73')]=function(_0x20b79d,_0x510c04,_0x4dcb1c){var _0x7ec8f9=[];return db[_0xab7a('0x6d')][_0xab7a('0x5a')]()[_0xab7a('0x23')](function(_0x528c03){_0x7ec8f9=_[_0xab7a('0x56')](_0x528c03);return _0x20b79d[_0xab7a('0x64')][_0xab7a('0x74')]({'where':{'type':_0xab7a('0x75'),'dialActive':!![],'dialMethod':'preview'},'attributes':['id',_0xab7a('0x76')],'raw':!![]});})['then'](function(_0x2bd4d5){if(_0x2bd4d5&&_0x2bd4d5[_0xab7a('0x44')]){return db[_0xab7a('0x77')][_0xab7a('0x78')](function(_0x25e46b){var _0xde9a1b={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_['map'](_0x2bd4d5,'id')},'$or':[{'UserId':null},{'UserId':_0x20b79d[_0xab7a('0x64')]['id']}]};var _0x4b28e2=[];if(_0x20b79d['body']['direction']&&_0x20b79d[_0xab7a('0x59')][_0xab7a('0x79')]===_0xab7a('0x7a')){if(!_[_0xab7a('0x7b')](_0x20b79d['body']['hopperIds'])){_0xde9a1b['id']={'$in':_0x20b79d[_0xab7a('0x59')][_0xab7a('0x7c')]};}_0x4b28e2=[[_0xab7a('0x7d'),_0xab7a('0x7e')],[_0xab7a('0x7f'),_0x2bd4d5[0x0][_0xab7a('0x76')]===_0xab7a('0x7e')?'DESC':_0xab7a('0x7e')],db[_0xab7a('0x77')][_0xab7a('0x80')](_0xab7a('0x81')),['id',_0xab7a('0x82')]];}else{if(!_[_0xab7a('0x7b')](_0x20b79d[_0xab7a('0x59')][_0xab7a('0x7c')])){_0xde9a1b['id']={'$notIn':_0x20b79d[_0xab7a('0x59')][_0xab7a('0x7c')]};}_0x4b28e2=[['priority','DESC'],[_0xab7a('0x7f'),_0x2bd4d5[0x0][_0xab7a('0x76')]],db[_0xab7a('0x77')][_0xab7a('0x80')](_0xab7a('0x83')),['id','ASC']];}return db[_0xab7a('0x29')][_0xab7a('0x84')]({'attributes':['id',_0xab7a('0x85')],'where':_0xde9a1b,'order':_0x4b28e2,'transaction':_0x25e46b,'lock':_0x25e46b[_0xab7a('0x86')][_0xab7a('0x87')],'include':[{'model':db[_0xab7a('0x6d')],'as':_0xab7a('0x88'),'attributes':_0x7ec8f9,'include':[{'model':db['CmCompany'],'as':_0xab7a('0x89'),'attributes':['id',_0xab7a('0x26')]}]},{'model':db[_0xab7a('0x8a')],'as':_0xab7a('0x8b'),'attributes':['id',_0xab7a('0x26')]},{'model':db[_0xab7a('0x8c')],'as':_0xab7a('0x8d'),'attributes':['id',_0xab7a('0x26'),_0xab7a('0x8e')]}]})[_0xab7a('0x23')](function(_0x5870cd){if(_0x5870cd){return _0x5870cd[_0xab7a('0x21')]({'UserId':_0x20b79d['user']['id']},{'transaction':_0x25e46b});}});});}})[_0xab7a('0x23')](handleEntityNotFound(_0x510c04,null))['then'](respondWithResult(_0x510c04,null))[_0xab7a('0x53')](handleError(_0x510c04,null));};exports[_0xab7a('0x8f')]=function(_0x4a8455,_0x49e287,_0x2a509f){return _0x4a8455[_0xab7a('0x64')]['getVoiceQueues']({'where':{'type':_0xab7a('0x75'),'dialActive':!![],'dialMethod':_0xab7a('0x90')},'attributes':['id'],'raw':!![]})[_0xab7a('0x23')](function(_0x476db5){if(_0x476db5&&_0x476db5[_0xab7a('0x44')]){return db[_0xab7a('0x29')][_0xab7a('0x1a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xab7a('0x66')](_0xab7a('0x67'))},'VoiceQueueId':{'$in':_[_0xab7a('0x28')](_0x476db5,'id')},'$or':[{'UserId':null},{'UserId':_0x4a8455['user']['id']}]}});}return 0x0;})[_0xab7a('0x23')](function(_0x2264f1){if(!_['isNil'](_0x2264f1)&&_[_0xab7a('0x91')](_0x2264f1)){return _0x49e287[_0xab7a('0x17')](0xc8)[_0xab7a('0x19')]({'contacts':_0x2264f1});}else{logger[_0xab7a('0x24')](_0xab7a('0x92'),_0xab7a('0x8f'),0x194,_0xab7a('0x93'));_0x49e287['sendStatus'](0x194);}})['catch'](handleError(_0x49e287,null));};