Built motion from commit (unavailable).|2.5.6
[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 _0x5636=['ANY_VALUE(CampaignId)','CampaignId','CampaignId\x20=\x20?','state\x20=\x204','CmHopper','findOne','html-pdf','eml-format','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','apply','reject','save','update','then','destroy','stack','name','send','map','CmHopperFinal','rawAttributes','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','pick','filter','merge','options','findAll','rows','catch','show','params','includeAll','include','describe','body','find','countContactsQueueCampaignHopperFinal','sequelize','COUNT','literal','noSuchContacts','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','countContactsIvrCampaignHopperFinal','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','dropContacts','answeringMachine','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','cm_hopper','phone','scheduledAt','ContactId','ListId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','VoiceQueueId','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','group','moveContactsIvrCampaignHopperFinal','Campaign'];(function(_0x52917e,_0x23ebac){var _0x6ac3da=function(_0x29dbf5){while(--_0x29dbf5){_0x52917e['push'](_0x52917e['shift']());}};_0x6ac3da(++_0x23ebac);}(_0x5636,0x102));var _0x6563=function(_0x525d99,_0x265b42){_0x525d99=_0x525d99-0x0;var _0x7a1b41=_0x5636[_0x525d99];return _0x7a1b41;};'use strict';var pdf=require(_0x6563('0x0'));var emlformat=require(_0x6563('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6563('0x2'));var moment=require(_0x6563('0x3'));var BPromise=require(_0x6563('0x4'));var Mustache=require('mustache');var util=require(_0x6563('0x5'));var path=require(_0x6563('0x6'));var sox=require(_0x6563('0x7'));var csv=require(_0x6563('0x8'));var ejs=require(_0x6563('0x9'));var fs=require('fs');var _=require(_0x6563('0xa'));var squel=require(_0x6563('0xb'));var crypto=require(_0x6563('0xc'));var jsforce=require(_0x6563('0xd'));var deskjs=require(_0x6563('0xe'));var toCsv=require(_0x6563('0x8'));var querystring=require(_0x6563('0xf'));var Papa=require(_0x6563('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6563('0x11'));var as=require(_0x6563('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x6563('0x13'));var config=require(_0x6563('0x14'));var licenseUtil=require(_0x6563('0x15'));var db=require(_0x6563('0x16'))['db'];function respondWithStatusCode(_0x33816e,_0x2ed676){_0x2ed676=_0x2ed676||0xcc;return function(_0x31d3fa){if(_0x31d3fa){return _0x33816e[_0x6563('0x17')](_0x2ed676);}return _0x33816e[_0x6563('0x18')](_0x2ed676)['end']();};}function respondWithResult(_0xa0a0b6,_0x5e9329){_0x5e9329=_0x5e9329||0xc8;return function(_0x37131e){if(_0x37131e){return _0xa0a0b6[_0x6563('0x18')](_0x5e9329)[_0x6563('0x19')](_0x37131e);}};}function respondWithFilteredResult(_0x10d08c,_0x5af5d0){return function(_0x26f26e){if(_0x26f26e){var _0x11baa2=_0x26f26e[_0x6563('0x1a')],_0x477d9b=_0x5af5d0['offset'],_0xd398ce=_0x5af5d0['offset']+_0x5af5d0['limit'],_0x4e7282;if(_0xd398ce>=_0x11baa2){_0xd398ce=_0x11baa2;_0x4e7282=0xc8;}else{_0x4e7282=0xce;}_0x10d08c[_0x6563('0x18')](_0x4e7282);return _0x10d08c['set']('Content-Range',_0x477d9b+'-'+_0xd398ce+'/'+_0x11baa2)[_0x6563('0x19')](_0x26f26e);}return null;};}function patchUpdates(_0x344f60){return function(_0x17a29f){try{jsonpatch[_0x6563('0x1b')](_0x17a29f,_0x344f60,!![]);}catch(_0xf8b544){return BPromise[_0x6563('0x1c')](_0xf8b544);}return _0x17a29f[_0x6563('0x1d')]();};}function saveUpdates(_0x93a45,_0x2a70f0){return function(_0x5bf608){if(_0x5bf608){return _0x5bf608[_0x6563('0x1e')](_0x93a45)[_0x6563('0x1f')](function(_0x20b478){return _0x20b478;});}return null;};}function removeEntity(_0x5a335c,_0x293db2){return function(_0x5c37bb){if(_0x5c37bb){return _0x5c37bb[_0x6563('0x20')]()[_0x6563('0x1f')](function(){_0x5a335c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ab7f6,_0x492f45){return function(_0x1097d0){if(!_0x1097d0){_0x3ab7f6[_0x6563('0x17')](0x194);}return _0x1097d0;};}function handleError(_0x20d152,_0x4bbdab){_0x4bbdab=_0x4bbdab||0x1f4;return function(_0xd860d5){logger['error'](_0xd860d5[_0x6563('0x21')]);if(_0xd860d5[_0x6563('0x22')]){delete _0xd860d5['name'];}_0x20d152[_0x6563('0x18')](_0x4bbdab)[_0x6563('0x23')](_0xd860d5);};}exports['index']=function(_0x2ddb2b,_0x5b03a7){var _0x1fe1cb={},_0x4fbb20={},_0x480408={'count':0x0,'rows':[]};var _0x30f05a=_[_0x6563('0x24')](db[_0x6563('0x25')][_0x6563('0x26')],function(_0x3eb23b){return{'name':_0x3eb23b['fieldName'],'type':_0x3eb23b[_0x6563('0x27')]['key']};});_0x4fbb20['model']=_[_0x6563('0x24')](_0x30f05a,_0x6563('0x22'));_0x4fbb20[_0x6563('0x28')]=_[_0x6563('0x29')](_0x2ddb2b[_0x6563('0x28')]);_0x4fbb20[_0x6563('0x2a')]=_[_0x6563('0x2b')](_0x4fbb20[_0x6563('0x2c')],_0x4fbb20[_0x6563('0x28')]);_0x1fe1cb[_0x6563('0x2d')]=_['intersection'](_0x4fbb20[_0x6563('0x2c')],qs[_0x6563('0x2e')](_0x2ddb2b[_0x6563('0x28')][_0x6563('0x2e')]));_0x1fe1cb[_0x6563('0x2d')]=_0x1fe1cb[_0x6563('0x2d')][_0x6563('0x2f')]?_0x1fe1cb['attributes']:_0x4fbb20[_0x6563('0x2c')];if(!_0x2ddb2b[_0x6563('0x28')][_0x6563('0x30')](_0x6563('0x31'))){_0x1fe1cb[_0x6563('0x32')]=qs[_0x6563('0x32')](_0x2ddb2b['query'][_0x6563('0x32')]);_0x1fe1cb[_0x6563('0x33')]=qs[_0x6563('0x33')](_0x2ddb2b[_0x6563('0x28')][_0x6563('0x33')]);}_0x1fe1cb[_0x6563('0x34')]=qs[_0x6563('0x35')](_0x2ddb2b['query'][_0x6563('0x35')]);_0x1fe1cb[_0x6563('0x36')]=qs['filters'](_[_0x6563('0x37')](_0x2ddb2b[_0x6563('0x28')],_0x4fbb20['filters']),_0x30f05a);if(_0x2ddb2b['query'][_0x6563('0x38')]){_0x1fe1cb[_0x6563('0x36')]=_[_0x6563('0x39')](_0x1fe1cb[_0x6563('0x36')],{'$or':_['map'](_0x30f05a,function(_0x2d36d4){if(_0x2d36d4[_0x6563('0x27')]!=='VIRTUAL'){var _0x6f31d9={};_0x6f31d9[_0x2d36d4[_0x6563('0x22')]]={'$like':'%'+_0x2ddb2b[_0x6563('0x28')][_0x6563('0x38')]+'%'};return _0x6f31d9;}})});}_0x1fe1cb=_[_0x6563('0x39')]({},_0x1fe1cb,_0x2ddb2b[_0x6563('0x3a')]);var _0x95e404={'where':_0x1fe1cb[_0x6563('0x36')]};return db[_0x6563('0x25')]['count'](_0x95e404)[_0x6563('0x1f')](function(_0x772286){_0x480408[_0x6563('0x1a')]=_0x772286;if(_0x2ddb2b[_0x6563('0x28')]['includeAll']){_0x1fe1cb['include']=[{'all':!![]}];}return db[_0x6563('0x25')][_0x6563('0x3b')](_0x1fe1cb);})[_0x6563('0x1f')](function(_0x5db29d){_0x480408[_0x6563('0x3c')]=_0x5db29d;return _0x480408;})['then'](respondWithFilteredResult(_0x5b03a7,_0x1fe1cb))[_0x6563('0x3d')](handleError(_0x5b03a7,null));};exports[_0x6563('0x3e')]=function(_0x57c1bf,_0x13d9d9){var _0x3625b7={'raw':!![],'where':{'id':_0x57c1bf[_0x6563('0x3f')]['id']}},_0xea186={};_0xea186[_0x6563('0x2c')]=_[_0x6563('0x29')](db[_0x6563('0x25')][_0x6563('0x26')]);_0xea186[_0x6563('0x28')]=_[_0x6563('0x29')](_0x57c1bf[_0x6563('0x28')]);_0xea186['filters']=_['intersection'](_0xea186[_0x6563('0x2c')],_0xea186[_0x6563('0x28')]);_0x3625b7[_0x6563('0x2d')]=_[_0x6563('0x2b')](_0xea186[_0x6563('0x2c')],qs[_0x6563('0x2e')](_0x57c1bf[_0x6563('0x28')]['fields']));_0x3625b7[_0x6563('0x2d')]=_0x3625b7[_0x6563('0x2d')][_0x6563('0x2f')]?_0x3625b7[_0x6563('0x2d')]:_0xea186['model'];if(_0x57c1bf[_0x6563('0x28')][_0x6563('0x40')]){_0x3625b7[_0x6563('0x41')]=[{'all':!![]}];}_0x3625b7=_[_0x6563('0x39')]({},_0x3625b7,_0x57c1bf[_0x6563('0x3a')]);return db['CmHopperFinal']['find'](_0x3625b7)[_0x6563('0x1f')](handleEntityNotFound(_0x13d9d9,null))[_0x6563('0x1f')](respondWithResult(_0x13d9d9,null))[_0x6563('0x3d')](handleError(_0x13d9d9,null));};exports['describe']=function(_0x331a4e,_0x120723){return db[_0x6563('0x25')][_0x6563('0x42')]()['then'](respondWithResult(_0x120723,null))[_0x6563('0x3d')](handleError(_0x120723,null));};exports[_0x6563('0x1e')]=function(_0xd54477,_0x55e927){if(_0xd54477[_0x6563('0x43')]['uniqueid']){delete _0xd54477[_0x6563('0x43')]['uniqueid'];}return db['CmHopperFinal'][_0x6563('0x44')]({'where':{'uniqueid':_0xd54477[_0x6563('0x3f')]['id']}})[_0x6563('0x1f')](handleEntityNotFound(_0x55e927,null))[_0x6563('0x1f')](saveUpdates(_0xd54477[_0x6563('0x43')],null))[_0x6563('0x1f')](respondWithResult(_0x55e927,null))[_0x6563('0x3d')](handleError(_0x55e927,null));};exports[_0x6563('0x45')]=function(_0x3193f5,_0x411b72,_0x4951a6){return db[_0x6563('0x25')]['findAll']({'raw':![],'where':{'VoiceQueueId':_0x3193f5[_0x6563('0x3f')]['id']},'attributes':[[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db['sequelize']['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')]('`state`\x20=\x200,\x201,\x20null'))),_0x6563('0x49')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')]['literal'](_0x6563('0x4a')))),'noAnswerContacts'],[db[_0x6563('0x46')]['fn']('COUNT',db[_0x6563('0x46')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x205,\x201,\x20null'))),'busyContacts'],[db[_0x6563('0x46')]['fn']('COUNT',db[_0x6563('0x46')]['fn']('IF',db['sequelize'][_0x6563('0x48')](_0x6563('0x4b')))),_0x6563('0x4c')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x4d')))),'dropContacts'],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x4e')))),_0x6563('0x4f')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')]['literal'](_0x6563('0x50')))),_0x6563('0x51')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x52')))),'answeringMachine']]})[_0x6563('0x1f')](handleEntityNotFound(_0x411b72,null))['then'](respondWithResult(_0x411b72,null))[_0x6563('0x3d')](handleError(_0x411b72,null));};exports[_0x6563('0x53')]=function(_0x58b81e,_0x4f3d5f,_0x3374b0){return db[_0x6563('0x25')][_0x6563('0x3b')]({'raw':![],'where':{'CampaignId':_0x58b81e[_0x6563('0x3f')]['id']},'attributes':[[db['sequelize']['fn'](_0x6563('0x47'),db['sequelize']['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')]('`state`\x20=\x200,\x201,\x20null'))),'noSuchContacts'],[db[_0x6563('0x46')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x6563('0x46')]['literal'](_0x6563('0x4a')))),_0x6563('0x54')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db['sequelize']['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x55')))),_0x6563('0x56')],[db[_0x6563('0x46')]['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')]['literal']('`state`\x20=\x208,\x201,\x20null'))),_0x6563('0x4c')],[db[_0x6563('0x46')]['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x6563('0x48')](_0x6563('0x4d')))),_0x6563('0x57')],[db[_0x6563('0x46')]['fn']('COUNT',db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x4e')))),_0x6563('0x4f')],[db['sequelize']['fn']('COUNT',db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')]('`state`\x20=\x2022,\x201,\x20null'))),_0x6563('0x51')],[db['sequelize']['fn'](_0x6563('0x47'),db[_0x6563('0x46')]['fn']('IF',db[_0x6563('0x46')][_0x6563('0x48')](_0x6563('0x52')))),_0x6563('0x58')]]})[_0x6563('0x1f')](handleEntityNotFound(_0x4f3d5f,null))['then'](respondWithResult(_0x4f3d5f,null))['catch'](handleError(_0x4f3d5f,null));};exports[_0x6563('0x59')]=function(_0x1228b3,_0x2327fe,_0x2daeb2){return db[_0x6563('0x5a')][_0x6563('0x44')]({'where':{'id':_0x1228b3['params']['id']}})['then'](handleEntityNotFound(_0x2327fe,null))['then'](function(_0x20560f){var _0x1b7fce;if(_0x20560f){_0x1b7fce=squel[_0x6563('0x5b')]()[_0x6563('0x5c')](_0x6563('0x5d'))['fromQuery']([_0x6563('0x5e'),_0x6563('0x5f'),_0x6563('0x60'),_0x6563('0x61'),'VoiceQueueId',_0x6563('0x62'),_0x6563('0x63')],squel[_0x6563('0x64')]()[_0x6563('0x65')](_0x6563('0x66'),_0x6563('0x5e'))[_0x6563('0x65')](_0x6563('0x67'),_0x6563('0x5f'))[_0x6563('0x65')](_0x6563('0x68'),_0x6563('0x60'))[_0x6563('0x65')](_0x6563('0x69'),_0x6563('0x61'))['field'](_0x6563('0x6a'),_0x6563('0x6b'))[_0x6563('0x65')](_0x6563('0x67'),_0x6563('0x62'))[_0x6563('0x65')](_0x6563('0x67'),_0x6563('0x63'))[_0x6563('0x6c')](_0x6563('0x6d'))['where'](_0x6563('0x6e'),_0x1228b3[_0x6563('0x3f')]['id'][_0x6563('0x6f')]())[_0x6563('0x36')](_0x6563('0x70'),_0x1228b3[_0x6563('0x43')][_0x6563('0x71')]['toString']())[_0x6563('0x36')](_0x6563('0x72'))[_0x6563('0x36')](_0x6563('0x73'),squel[_0x6563('0x64')]()[_0x6563('0x65')]('phone')[_0x6563('0x6c')](_0x6563('0x5d'))[_0x6563('0x36')]('VoiceQueueId\x20=\x20?',_0x1228b3[_0x6563('0x3f')]['id'][_0x6563('0x6f')]()))[_0x6563('0x36')]('calleridnum\x20NOT\x20IN\x20(?)',squel['select']()['field'](_0x6563('0x74'))[_0x6563('0x6c')](_0x6563('0x6d'))[_0x6563('0x36')]('VoiceQueueId\x20=\x20?',_0x1228b3[_0x6563('0x3f')]['id'][_0x6563('0x6f')]())['where']('state\x20=\x204'))[_0x6563('0x75')](_0x6563('0x60')))[_0x6563('0x6f')]();return db[_0x6563('0x46')]['query'](_0x1b7fce);}return[];})[_0x6563('0x1f')](respondWithResult(_0x2327fe,null))[_0x6563('0x3d')](handleError(_0x2327fe,null));};exports[_0x6563('0x76')]=function(_0x22c981,_0x24d334,_0x3fc6fe){return db[_0x6563('0x77')][_0x6563('0x44')]({'where':{'id':_0x22c981[_0x6563('0x3f')]['id']}})['then'](handleEntityNotFound(_0x24d334,null))[_0x6563('0x1f')](function(_0x403cf0){var _0x241ce0;if(_0x403cf0){_0x241ce0=squel[_0x6563('0x5b')]()[_0x6563('0x5c')](_0x6563('0x5d'))['fromQuery']([_0x6563('0x5e'),_0x6563('0x5f'),_0x6563('0x60'),'ListId','CampaignId',_0x6563('0x62'),_0x6563('0x63')],squel[_0x6563('0x64')]()[_0x6563('0x65')](_0x6563('0x66'),'phone')['field'](_0x6563('0x67'),'scheduledAt')[_0x6563('0x65')]('ANY_VALUE(ContactId)','ContactId')[_0x6563('0x65')](_0x6563('0x69'),_0x6563('0x61'))[_0x6563('0x65')](_0x6563('0x78'),_0x6563('0x79'))[_0x6563('0x65')](_0x6563('0x67'),'createdAt')[_0x6563('0x65')](_0x6563('0x67'),_0x6563('0x63'))[_0x6563('0x6c')]('cm_hopper_final')[_0x6563('0x36')]('CampaignId\x20=\x20?',_0x22c981[_0x6563('0x3f')]['id'][_0x6563('0x6f')]())[_0x6563('0x36')](_0x6563('0x70'),_0x22c981[_0x6563('0x43')][_0x6563('0x71')][_0x6563('0x6f')]())[_0x6563('0x36')](_0x6563('0x72'))[_0x6563('0x36')](_0x6563('0x73'),squel[_0x6563('0x64')]()['field'](_0x6563('0x5e'))['from'](_0x6563('0x5d'))[_0x6563('0x36')](_0x6563('0x7a'),_0x22c981[_0x6563('0x3f')]['id'][_0x6563('0x6f')]()))[_0x6563('0x36')](_0x6563('0x73'),squel[_0x6563('0x64')]()[_0x6563('0x65')](_0x6563('0x74'))[_0x6563('0x6c')]('cm_hopper_final')[_0x6563('0x36')](_0x6563('0x7a'),_0x22c981[_0x6563('0x3f')]['id']['toString']())[_0x6563('0x36')](_0x6563('0x7b')))[_0x6563('0x75')](_0x6563('0x60')))[_0x6563('0x6f')]();return db[_0x6563('0x46')]['query'](_0x241ce0);}return[];})[_0x6563('0x1f')](respondWithResult(_0x24d334,null))[_0x6563('0x3d')](handleError(_0x24d334,null));};exports['checkContactHopper']=function(_0x162a57,_0x5396de,_0x5244c8){return db[_0x6563('0x7c')][_0x6563('0x7d')]({'where':{'VoiceQueueId':_0x162a57[_0x6563('0x43')][_0x6563('0x6b')],'CampaignId':_0x162a57[_0x6563('0x43')][_0x6563('0x79')],'ContactId':_0x162a57[_0x6563('0x43')][_0x6563('0x60')]}})[_0x6563('0x1f')](handleEntityNotFound(_0x5396de,null))[_0x6563('0x1f')](function(_0x54fc23){if(_0x54fc23){return _0x54fc23;}return null;})[_0x6563('0x1f')](respondWithResult(_0x5396de,null))[_0x6563('0x3d')](handleError(_0x5396de,null));};