a2fdddc16eedaf7ec4590a0ab6f005b6a2394f02
[motion2.git] / server / api / cmHopperFinal / cmHopperFinal.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 _0x5309=['reject','save','update','then','destroy','error','stack','name','send','index','map','CmHopperFinal','rawAttributes','fieldName','model','query','keys','filters','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','params','intersection','find','catch','describe','body','uniqueid','countContactsQueueCampaignHopperFinal','sequelize','literal','noSuchContacts','COUNT','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','countContactsIvrCampaignHopperFinal','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2019,\x201,\x20null','answeringMachine','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','fromQuery','phone','scheduledAt','ListId','VoiceQueueId','updatedAt','select','field','ANY_VALUE(calleridnum)','ANY_VALUE(ListId)','NOW()','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','state\x20=\x204','ContactId','moveContactsIvrCampaignHopperFinal','Campaign','cm_hopper','CampaignId','ANY_VALUE(ContactId)','ANY_VALUE(CampaignId)','createdAt','CampaignId\x20=\x20?','state','group','checkContactHopper','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply'];(function(_0x27cc19,_0x107641){var _0x2c9ded=function(_0x1f1f02){while(--_0x1f1f02){_0x27cc19['push'](_0x27cc19['shift']());}};_0x2c9ded(++_0x107641);}(_0x5309,0x165));var _0x9530=function(_0xaf25ae,_0x2001c1){_0xaf25ae=_0xaf25ae-0x0;var _0x49732d=_0x5309[_0xaf25ae];return _0x49732d;};'use strict';var emlformat=require(_0x9530('0x0'));var rimraf=require(_0x9530('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9530('0x2'));var rp=require(_0x9530('0x3'));var moment=require(_0x9530('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9530('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x9530('0x6'));var ejs=require(_0x9530('0x7'));var fs=require('fs');var fs_extra=require(_0x9530('0x8'));var _=require(_0x9530('0x9'));var squel=require(_0x9530('0xa'));var crypto=require(_0x9530('0xb'));var jsforce=require(_0x9530('0xc'));var deskjs=require(_0x9530('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x9530('0xe'));var Redis=require(_0x9530('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9530('0x10'));var hardwareService=require(_0x9530('0x11'));var logger=require(_0x9530('0x12'))(_0x9530('0x13'));var utils=require('../../config/utils');var config=require(_0x9530('0x14'));var licenseUtil=require(_0x9530('0x15'));var db=require(_0x9530('0x16'))['db'];function respondWithStatusCode(_0xfabb74,_0x364fd9){_0x364fd9=_0x364fd9||0xcc;return function(_0x5ac2a5){if(_0x5ac2a5){return _0xfabb74[_0x9530('0x17')](_0x364fd9);}return _0xfabb74[_0x9530('0x18')](_0x364fd9)[_0x9530('0x19')]();};}function respondWithResult(_0x5c5cc8,_0x209f8c){_0x209f8c=_0x209f8c||0xc8;return function(_0x467a3d){if(_0x467a3d){return _0x5c5cc8[_0x9530('0x18')](_0x209f8c)[_0x9530('0x1a')](_0x467a3d);}};}function respondWithFilteredResult(_0x18a712,_0x36bda3){return function(_0x2a1b9c){if(_0x2a1b9c){var _0x27f6b8=typeof _0x36bda3[_0x9530('0x1b')]==='undefined'&&typeof _0x36bda3[_0x9530('0x1c')]===_0x9530('0x1d');var _0x1ca71a=_0x2a1b9c[_0x9530('0x1e')];var _0x42df25=_0x27f6b8?0x0:_0x36bda3['offset'];var _0x270375=_0x27f6b8?_0x2a1b9c[_0x9530('0x1e')]:_0x36bda3[_0x9530('0x1b')]+_0x36bda3['limit'];var _0x30b274;if(_0x270375>=_0x1ca71a){_0x270375=_0x1ca71a;_0x30b274=0xc8;}else{_0x30b274=0xce;}_0x18a712['status'](_0x30b274);return _0x18a712['set'](_0x9530('0x1f'),_0x42df25+'-'+_0x270375+'/'+_0x1ca71a)[_0x9530('0x1a')](_0x2a1b9c);}return null;};}function patchUpdates(_0x9f4484){return function(_0xe4db8){try{jsonpatch[_0x9530('0x20')](_0xe4db8,_0x9f4484,!![]);}catch(_0x43d47d){return BPromise[_0x9530('0x21')](_0x43d47d);}return _0xe4db8[_0x9530('0x22')]();};}function saveUpdates(_0x371e99,_0x475d98){return function(_0x242ec4){if(_0x242ec4){return _0x242ec4[_0x9530('0x23')](_0x371e99)[_0x9530('0x24')](function(_0x4cf58e){return _0x4cf58e;});}return null;};}function removeEntity(_0x4c98e0,_0x2e05d8){return function(_0xed9cfa){if(_0xed9cfa){return _0xed9cfa[_0x9530('0x25')]()[_0x9530('0x24')](function(){_0x4c98e0[_0x9530('0x18')](0xcc)[_0x9530('0x19')]();});}};}function handleEntityNotFound(_0x50349e,_0x4de891){return function(_0x184d6f){if(!_0x184d6f){_0x50349e['sendStatus'](0x194);}return _0x184d6f;};}function handleError(_0x4fa31b,_0x151296){_0x151296=_0x151296||0x1f4;return function(_0x688dbc){logger[_0x9530('0x26')](_0x688dbc[_0x9530('0x27')]);if(_0x688dbc['name']){delete _0x688dbc[_0x9530('0x28')];}_0x4fa31b[_0x9530('0x18')](_0x151296)[_0x9530('0x29')](_0x688dbc);};}exports[_0x9530('0x2a')]=function(_0x541f33,_0x4e4aa6){var _0x1a86a3={},_0x25d176={},_0x143e8b={'count':0x0,'rows':[]};var _0x1330ec=_[_0x9530('0x2b')](db[_0x9530('0x2c')][_0x9530('0x2d')],function(_0x5a20f2){return{'name':_0x5a20f2[_0x9530('0x2e')],'type':_0x5a20f2['type']['key']};});_0x25d176[_0x9530('0x2f')]=_[_0x9530('0x2b')](_0x1330ec,'name');_0x25d176[_0x9530('0x30')]=_[_0x9530('0x31')](_0x541f33[_0x9530('0x30')]);_0x25d176[_0x9530('0x32')]=_['intersection'](_0x25d176[_0x9530('0x2f')],_0x25d176[_0x9530('0x30')]);_0x1a86a3[_0x9530('0x33')]=_['intersection'](_0x25d176[_0x9530('0x2f')],qs[_0x9530('0x34')](_0x541f33['query']['fields']));_0x1a86a3[_0x9530('0x33')]=_0x1a86a3['attributes'][_0x9530('0x35')]?_0x1a86a3[_0x9530('0x33')]:_0x25d176[_0x9530('0x2f')];if(!_0x541f33[_0x9530('0x30')][_0x9530('0x36')]('nolimit')){_0x1a86a3['limit']=qs[_0x9530('0x1c')](_0x541f33[_0x9530('0x30')]['limit']);_0x1a86a3['offset']=qs[_0x9530('0x1b')](_0x541f33[_0x9530('0x30')][_0x9530('0x1b')]);}_0x1a86a3[_0x9530('0x37')]=qs[_0x9530('0x38')](_0x541f33['query'][_0x9530('0x38')]);_0x1a86a3[_0x9530('0x39')]=qs[_0x9530('0x32')](_['pick'](_0x541f33[_0x9530('0x30')],_0x25d176[_0x9530('0x32')]),_0x1330ec);if(_0x541f33[_0x9530('0x30')][_0x9530('0x3a')]){_0x1a86a3[_0x9530('0x39')]=_[_0x9530('0x3b')](_0x1a86a3[_0x9530('0x39')],{'$or':_[_0x9530('0x2b')](_0x1330ec,function(_0x3b5ad1){if(_0x3b5ad1[_0x9530('0x3c')]!==_0x9530('0x3d')){var _0x4e2c70={};_0x4e2c70[_0x3b5ad1[_0x9530('0x28')]]={'$like':'%'+_0x541f33[_0x9530('0x30')][_0x9530('0x3a')]+'%'};return _0x4e2c70;}})});}_0x1a86a3=_[_0x9530('0x3b')]({},_0x1a86a3,_0x541f33[_0x9530('0x3e')]);var _0x49c201={'where':_0x1a86a3[_0x9530('0x39')]};return db[_0x9530('0x2c')][_0x9530('0x1e')](_0x49c201)[_0x9530('0x24')](function(_0x527f99){_0x143e8b[_0x9530('0x1e')]=_0x527f99;if(_0x541f33[_0x9530('0x30')][_0x9530('0x3f')]){_0x1a86a3[_0x9530('0x40')]=[{'all':!![]}];}return db[_0x9530('0x2c')][_0x9530('0x41')](_0x1a86a3);})[_0x9530('0x24')](function(_0x2a30f3){_0x143e8b[_0x9530('0x42')]=_0x2a30f3;return _0x143e8b;})[_0x9530('0x24')](respondWithFilteredResult(_0x4e4aa6,_0x1a86a3))['catch'](handleError(_0x4e4aa6,null));};exports['show']=function(_0x592ba5,_0x472a14){var _0x2d60af={'raw':!![],'where':{'id':_0x592ba5[_0x9530('0x43')]['id']}},_0x5cbe7d={};_0x5cbe7d[_0x9530('0x2f')]=_[_0x9530('0x31')](db['CmHopperFinal'][_0x9530('0x2d')]);_0x5cbe7d[_0x9530('0x30')]=_[_0x9530('0x31')](_0x592ba5[_0x9530('0x30')]);_0x5cbe7d[_0x9530('0x32')]=_[_0x9530('0x44')](_0x5cbe7d[_0x9530('0x2f')],_0x5cbe7d[_0x9530('0x30')]);_0x2d60af[_0x9530('0x33')]=_['intersection'](_0x5cbe7d[_0x9530('0x2f')],qs['fields'](_0x592ba5['query'][_0x9530('0x34')]));_0x2d60af[_0x9530('0x33')]=_0x2d60af[_0x9530('0x33')][_0x9530('0x35')]?_0x2d60af[_0x9530('0x33')]:_0x5cbe7d[_0x9530('0x2f')];if(_0x592ba5[_0x9530('0x30')]['includeAll']){_0x2d60af[_0x9530('0x40')]=[{'all':!![]}];}_0x2d60af=_['merge']({},_0x2d60af,_0x592ba5[_0x9530('0x3e')]);return db[_0x9530('0x2c')][_0x9530('0x45')](_0x2d60af)[_0x9530('0x24')](handleEntityNotFound(_0x472a14,null))[_0x9530('0x24')](respondWithResult(_0x472a14,null))[_0x9530('0x46')](handleError(_0x472a14,null));};exports[_0x9530('0x47')]=function(_0x368655,_0x2347cc){return db['CmHopperFinal'][_0x9530('0x47')]()[_0x9530('0x24')](respondWithResult(_0x2347cc,null))[_0x9530('0x46')](handleError(_0x2347cc,null));};exports[_0x9530('0x23')]=function(_0x5cf336,_0x225332){if(_0x5cf336[_0x9530('0x48')][_0x9530('0x49')]){delete _0x5cf336[_0x9530('0x48')][_0x9530('0x49')];}return db['CmHopperFinal'][_0x9530('0x45')]({'where':{'uniqueid':_0x5cf336[_0x9530('0x43')]['id']}})['then'](handleEntityNotFound(_0x225332,null))['then'](saveUpdates(_0x5cf336[_0x9530('0x48')],null))[_0x9530('0x24')](respondWithResult(_0x225332,null))[_0x9530('0x46')](handleError(_0x225332,null));};exports[_0x9530('0x4a')]=function(_0x4f8bde,_0x1a07a4,_0xffb8b6){return db['CmHopperFinal'][_0x9530('0x41')]({'raw':![],'where':{'VoiceQueueId':_0x4f8bde['params']['id']},'attributes':[[db[_0x9530('0x4b')]['fn']('COUNT',db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')]('`state`\x20=\x200,\x201,\x20null'))),_0x9530('0x4d')],[db['sequelize']['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x4f')))),_0x9530('0x50')],[db['sequelize']['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db['sequelize'][_0x9530('0x4c')](_0x9530('0x51')))),_0x9530('0x52')],[db['sequelize']['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x53')))),_0x9530('0x54')],[db['sequelize']['fn'](_0x9530('0x4e'),db['sequelize']['fn']('IF',db[_0x9530('0x4b')]['literal']('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x9530('0x55')],[db[_0x9530('0x4b')]['fn']('COUNT',db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x56')))),_0x9530('0x57')],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x58')))),_0x9530('0x59')],[db['sequelize']['fn']('COUNT',db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')]('`state`\x20=\x2019,\x201,\x20null'))),'answeringMachine']]})[_0x9530('0x24')](handleEntityNotFound(_0x1a07a4,null))[_0x9530('0x24')](respondWithResult(_0x1a07a4,null))['catch'](handleError(_0x1a07a4,null));};exports[_0x9530('0x5a')]=function(_0x3991fc,_0x2019f1,_0x16e092){return db[_0x9530('0x2c')]['findAll']({'raw':![],'where':{'CampaignId':_0x3991fc['params']['id']},'attributes':[[db['sequelize']['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db['sequelize'][_0x9530('0x4c')]('`state`\x20=\x200,\x201,\x20null'))),'noSuchContacts'],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db['sequelize']['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x4f')))),_0x9530('0x50')],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db['sequelize'][_0x9530('0x4c')]('`state`\x20=\x205,\x201,\x20null'))),'busyContacts'],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x53')))),_0x9530('0x54')],[db['sequelize']['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x5b')))),_0x9530('0x55')],[db['sequelize']['fn'](_0x9530('0x4e'),db['sequelize']['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x56')))),_0x9530('0x57')],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db[_0x9530('0x4b')][_0x9530('0x4c')](_0x9530('0x58')))),_0x9530('0x59')],[db[_0x9530('0x4b')]['fn'](_0x9530('0x4e'),db[_0x9530('0x4b')]['fn']('IF',db['sequelize'][_0x9530('0x4c')](_0x9530('0x5c')))),_0x9530('0x5d')]]})[_0x9530('0x24')](handleEntityNotFound(_0x2019f1,null))['then'](respondWithResult(_0x2019f1,null))[_0x9530('0x46')](handleError(_0x2019f1,null));};exports[_0x9530('0x5e')]=function(_0xb13fbd,_0x393a8d,_0x1876ae){return db[_0x9530('0x5f')][_0x9530('0x45')]({'where':{'id':_0xb13fbd[_0x9530('0x43')]['id']}})[_0x9530('0x24')](handleEntityNotFound(_0x393a8d,null))[_0x9530('0x24')](function(_0x22526f){var _0x235257;if(_0x22526f){_0x235257=squel[_0x9530('0x60')]()[_0x9530('0x61')]('cm_hopper')[_0x9530('0x62')]([_0x9530('0x63'),_0x9530('0x64'),'ContactId',_0x9530('0x65'),_0x9530('0x66'),'createdAt',_0x9530('0x67')],squel[_0x9530('0x68')]()[_0x9530('0x69')](_0x9530('0x6a'),_0x9530('0x63'))[_0x9530('0x69')]('NOW()',_0x9530('0x64'))['field']('ANY_VALUE(ContactId)','ContactId')[_0x9530('0x69')](_0x9530('0x6b'),_0x9530('0x65'))[_0x9530('0x69')]('ANY_VALUE(VoiceQueueId)',_0x9530('0x66'))[_0x9530('0x69')](_0x9530('0x6c'),'createdAt')[_0x9530('0x69')](_0x9530('0x6c'),_0x9530('0x67'))[_0x9530('0x6d')](_0x9530('0x6e'))[_0x9530('0x39')](_0x9530('0x6f'),_0xb13fbd['params']['id'][_0x9530('0x70')]())[_0x9530('0x39')](_0x9530('0x71'),_0xb13fbd[_0x9530('0x48')]['state'][_0x9530('0x70')]())[_0x9530('0x39')](_0x9530('0x72'))[_0x9530('0x39')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x9530('0x68')]()[_0x9530('0x69')](_0x9530('0x63'))['from']('cm_hopper')['where'](_0x9530('0x6f'),_0xb13fbd['params']['id']['toString']()))[_0x9530('0x39')](_0x9530('0x73'),squel[_0x9530('0x68')]()[_0x9530('0x69')](_0x9530('0x74'))[_0x9530('0x6d')](_0x9530('0x6e'))['where']('VoiceQueueId\x20=\x20?',_0xb13fbd[_0x9530('0x43')]['id'][_0x9530('0x70')]())['where'](_0x9530('0x75')))['group'](_0x9530('0x76')))['toString']();return db[_0x9530('0x4b')]['query'](_0x235257);}return[];})['then'](respondWithResult(_0x393a8d,null))[_0x9530('0x46')](handleError(_0x393a8d,null));};exports[_0x9530('0x77')]=function(_0x4f255b,_0x6af464,_0x4ec7a2){return db[_0x9530('0x78')]['find']({'where':{'id':_0x4f255b['params']['id']}})[_0x9530('0x24')](handleEntityNotFound(_0x6af464,null))['then'](function(_0x318048){var _0x3e9ef2;if(_0x318048){_0x3e9ef2=squel[_0x9530('0x60')]()[_0x9530('0x61')](_0x9530('0x79'))['fromQuery']([_0x9530('0x63'),_0x9530('0x64'),'ContactId','ListId',_0x9530('0x7a'),'createdAt','updatedAt'],squel[_0x9530('0x68')]()['field'](_0x9530('0x6a'),_0x9530('0x63'))[_0x9530('0x69')](_0x9530('0x6c'),_0x9530('0x64'))[_0x9530('0x69')](_0x9530('0x7b'),_0x9530('0x76'))[_0x9530('0x69')](_0x9530('0x6b'),_0x9530('0x65'))[_0x9530('0x69')](_0x9530('0x7c'),_0x9530('0x7a'))['field'](_0x9530('0x6c'),_0x9530('0x7d'))[_0x9530('0x69')](_0x9530('0x6c'),'updatedAt')[_0x9530('0x6d')]('cm_hopper_final')['where'](_0x9530('0x7e'),_0x4f255b[_0x9530('0x43')]['id']['toString']())[_0x9530('0x39')](_0x9530('0x71'),_0x4f255b[_0x9530('0x48')][_0x9530('0x7f')][_0x9530('0x70')]())['where']('calleridnum\x20IS\x20NOT\x20NULL')['where']('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x9530('0x68')]()[_0x9530('0x69')](_0x9530('0x63'))['from'](_0x9530('0x79'))[_0x9530('0x39')]('CampaignId\x20=\x20?',_0x4f255b[_0x9530('0x43')]['id'][_0x9530('0x70')]()))[_0x9530('0x39')](_0x9530('0x73'),squel[_0x9530('0x68')]()[_0x9530('0x69')]('calleridnum')[_0x9530('0x6d')](_0x9530('0x6e'))[_0x9530('0x39')]('CampaignId\x20=\x20?',_0x4f255b[_0x9530('0x43')]['id'][_0x9530('0x70')]())['where'](_0x9530('0x75')))[_0x9530('0x80')](_0x9530('0x76')))[_0x9530('0x70')]();return db[_0x9530('0x4b')][_0x9530('0x30')](_0x3e9ef2);}return[];})[_0x9530('0x24')](respondWithResult(_0x6af464,null))['catch'](handleError(_0x6af464,null));};exports[_0x9530('0x81')]=function(_0x59acfd,_0x49c6b8,_0x174ffe){return db['CmHopper']['findOne']({'where':{'VoiceQueueId':_0x59acfd[_0x9530('0x48')][_0x9530('0x66')],'CampaignId':_0x59acfd[_0x9530('0x48')][_0x9530('0x7a')],'ContactId':_0x59acfd['body'][_0x9530('0x76')]}})[_0x9530('0x24')](handleEntityNotFound(_0x49c6b8,null))[_0x9530('0x24')](function(_0xac4085){if(_0xac4085){return _0xac4085;}return null;})[_0x9530('0x24')](respondWithResult(_0x49c6b8,null))['catch'](handleError(_0x49c6b8,null));};