26c7c92eae0f4f597a970950464c4d6e1aca9419
[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 _0x99e9=['busyContacts','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','`state`\x20=\x203,\x201,\x20null','congestionContacts','VoiceQueue','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ListId','VoiceQueueId','createdAt','select','field','NOW()','ANY_VALUE(ContactId)','ContactId','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','updatedAt','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','from','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','state\x20=\x204','ANY_VALUE(calleridnum)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','state\x20=\x20?','calleridnum\x20IS\x20NOT\x20NULL','group','checkContactHopper','CmHopper','findOne','CampaignId','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','set','Content-Range','reject','save','update','then','sendStatus','stack','name','send','index','map','CmHopperFinal','fieldName','type','key','model','query','keys','intersection','fields','length','attributes','nolimit','limit','offset','order','sort','where','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','rawAttributes','find','describe','body','uniqueid','params','countContactsQueueCampaignHopperFinal','sequelize','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','COUNT','noAnswerContacts','`state`\x20=\x205,\x201,\x20null'];(function(_0xb9f490,_0x526fec){var _0x554db4=function(_0x9e549d){while(--_0x9e549d){_0xb9f490['push'](_0xb9f490['shift']());}};_0x554db4(++_0x526fec);}(_0x99e9,0xb4));var _0x999e=function(_0x59eacf,_0x56ec4a){_0x59eacf=_0x59eacf-0x0;var _0x5d74f2=_0x99e9[_0x59eacf];return _0x5d74f2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x999e('0x0'));var rimraf=require(_0x999e('0x1'));var zipdir=require(_0x999e('0x2'));var jsonpatch=require(_0x999e('0x3'));var rp=require('request-promise');var moment=require(_0x999e('0x4'));var BPromise=require(_0x999e('0x5'));var Mustache=require(_0x999e('0x6'));var util=require('util');var path=require(_0x999e('0x7'));var sox=require('sox');var csv=require(_0x999e('0x8'));var ejs=require(_0x999e('0x9'));var fs=require('fs');var _=require(_0x999e('0xa'));var squel=require(_0x999e('0xb'));var crypto=require('crypto');var jsforce=require(_0x999e('0xc'));var deskjs=require(_0x999e('0xd'));var toCsv=require(_0x999e('0x8'));var querystring=require(_0x999e('0xe'));var Papa=require(_0x999e('0xf'));var Redis=require(_0x999e('0x10'));var authService=require(_0x999e('0x11'));var qs=require(_0x999e('0x12'));var as=require(_0x999e('0x13'));var hardwareService=require(_0x999e('0x14'));var logger=require(_0x999e('0x15'))(_0x999e('0x16'));var utils=require(_0x999e('0x17'));var config=require(_0x999e('0x18'));var licenseUtil=require(_0x999e('0x19'));var db=require(_0x999e('0x1a'))['db'];function respondWithStatusCode(_0x26b55a,_0x47a3c1){_0x47a3c1=_0x47a3c1||0xcc;return function(_0x15f771){if(_0x15f771){return _0x26b55a['sendStatus'](_0x47a3c1);}return _0x26b55a[_0x999e('0x1b')](_0x47a3c1)[_0x999e('0x1c')]();};}function respondWithResult(_0x2fbc3e,_0x538a92){_0x538a92=_0x538a92||0xc8;return function(_0x28bdd1){if(_0x28bdd1){return _0x2fbc3e['status'](_0x538a92)[_0x999e('0x1d')](_0x28bdd1);}};}function respondWithFilteredResult(_0x539598,_0x549ad4){return function(_0x1eee64){if(_0x1eee64){var _0x22feac=_0x1eee64[_0x999e('0x1e')],_0x2dd5f4=_0x549ad4['offset'],_0x289e0e=_0x549ad4['offset']+_0x549ad4['limit'],_0x1e9bff;if(_0x289e0e>=_0x22feac){_0x289e0e=_0x22feac;_0x1e9bff=0xc8;}else{_0x1e9bff=0xce;}_0x539598[_0x999e('0x1b')](_0x1e9bff);return _0x539598[_0x999e('0x1f')](_0x999e('0x20'),_0x2dd5f4+'-'+_0x289e0e+'/'+_0x22feac)[_0x999e('0x1d')](_0x1eee64);}return null;};}function patchUpdates(_0x229673){return function(_0x3ece5e){try{jsonpatch['apply'](_0x3ece5e,_0x229673,!![]);}catch(_0x5d86d4){return BPromise[_0x999e('0x21')](_0x5d86d4);}return _0x3ece5e[_0x999e('0x22')]();};}function saveUpdates(_0x3b3642,_0x510fa2){return function(_0x351dd7){if(_0x351dd7){return _0x351dd7[_0x999e('0x23')](_0x3b3642)[_0x999e('0x24')](function(_0x36fce4){return _0x36fce4;});}return null;};}function removeEntity(_0x373b80,_0x3750a0){return function(_0x427bcf){if(_0x427bcf){return _0x427bcf['destroy']()['then'](function(){_0x373b80[_0x999e('0x1b')](0xcc)[_0x999e('0x1c')]();});}};}function handleEntityNotFound(_0x4c5491,_0x452acd){return function(_0xe324d8){if(!_0xe324d8){_0x4c5491[_0x999e('0x25')](0x194);}return _0xe324d8;};}function handleError(_0x13027c,_0x3f2bbf){_0x3f2bbf=_0x3f2bbf||0x1f4;return function(_0x320634){logger['error'](_0x320634[_0x999e('0x26')]);if(_0x320634[_0x999e('0x27')]){delete _0x320634[_0x999e('0x27')];}_0x13027c[_0x999e('0x1b')](_0x3f2bbf)[_0x999e('0x28')](_0x320634);};}exports[_0x999e('0x29')]=function(_0x44b790,_0x5798f3){var _0x28f803={},_0x5ba8b0={},_0x4fed13={'count':0x0,'rows':[]};var _0x3dff6b=_[_0x999e('0x2a')](db[_0x999e('0x2b')]['rawAttributes'],function(_0x1ea0e4){return{'name':_0x1ea0e4[_0x999e('0x2c')],'type':_0x1ea0e4[_0x999e('0x2d')][_0x999e('0x2e')]};});_0x5ba8b0[_0x999e('0x2f')]=_[_0x999e('0x2a')](_0x3dff6b,_0x999e('0x27'));_0x5ba8b0[_0x999e('0x30')]=_[_0x999e('0x31')](_0x44b790[_0x999e('0x30')]);_0x5ba8b0['filters']=_[_0x999e('0x32')](_0x5ba8b0[_0x999e('0x2f')],_0x5ba8b0[_0x999e('0x30')]);_0x28f803['attributes']=_[_0x999e('0x32')](_0x5ba8b0['model'],qs['fields'](_0x44b790[_0x999e('0x30')][_0x999e('0x33')]));_0x28f803['attributes']=_0x28f803['attributes'][_0x999e('0x34')]?_0x28f803[_0x999e('0x35')]:_0x5ba8b0[_0x999e('0x2f')];if(!_0x44b790[_0x999e('0x30')]['hasOwnProperty'](_0x999e('0x36'))){_0x28f803[_0x999e('0x37')]=qs[_0x999e('0x37')](_0x44b790[_0x999e('0x30')]['limit']);_0x28f803['offset']=qs[_0x999e('0x38')](_0x44b790['query'][_0x999e('0x38')]);}_0x28f803[_0x999e('0x39')]=qs[_0x999e('0x3a')](_0x44b790[_0x999e('0x30')]['sort']);_0x28f803[_0x999e('0x3b')]=qs[_0x999e('0x3c')](_['pick'](_0x44b790['query'],_0x5ba8b0[_0x999e('0x3c')]),_0x3dff6b);if(_0x44b790['query'][_0x999e('0x3d')]){_0x28f803['where']=_['merge'](_0x28f803['where'],{'$or':_['map'](_0x3dff6b,function(_0x17e257){if(_0x17e257['type']!==_0x999e('0x3e')){var _0x5240a7={};_0x5240a7[_0x17e257['name']]={'$like':'%'+_0x44b790['query'][_0x999e('0x3d')]+'%'};return _0x5240a7;}})});}_0x28f803=_[_0x999e('0x3f')]({},_0x28f803,_0x44b790[_0x999e('0x40')]);var _0xe3c089={'where':_0x28f803[_0x999e('0x3b')]};return db[_0x999e('0x2b')][_0x999e('0x1e')](_0xe3c089)[_0x999e('0x24')](function(_0x54866a){_0x4fed13[_0x999e('0x1e')]=_0x54866a;if(_0x44b790[_0x999e('0x30')][_0x999e('0x41')]){_0x28f803[_0x999e('0x42')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x999e('0x43')](_0x28f803);})['then'](function(_0x36194c){_0x4fed13[_0x999e('0x44')]=_0x36194c;return _0x4fed13;})[_0x999e('0x24')](respondWithFilteredResult(_0x5798f3,_0x28f803))[_0x999e('0x45')](handleError(_0x5798f3,null));};exports['show']=function(_0x155dae,_0x108c96){var _0x1bc78e={'raw':!![],'where':{'id':_0x155dae['params']['id']}},_0x494222={};_0x494222[_0x999e('0x2f')]=_[_0x999e('0x31')](db[_0x999e('0x2b')][_0x999e('0x46')]);_0x494222[_0x999e('0x30')]=_[_0x999e('0x31')](_0x155dae[_0x999e('0x30')]);_0x494222[_0x999e('0x3c')]=_[_0x999e('0x32')](_0x494222[_0x999e('0x2f')],_0x494222['query']);_0x1bc78e['attributes']=_[_0x999e('0x32')](_0x494222[_0x999e('0x2f')],qs[_0x999e('0x33')](_0x155dae[_0x999e('0x30')][_0x999e('0x33')]));_0x1bc78e[_0x999e('0x35')]=_0x1bc78e['attributes'][_0x999e('0x34')]?_0x1bc78e['attributes']:_0x494222['model'];if(_0x155dae[_0x999e('0x30')]['includeAll']){_0x1bc78e['include']=[{'all':!![]}];}_0x1bc78e=_['merge']({},_0x1bc78e,_0x155dae['options']);return db[_0x999e('0x2b')][_0x999e('0x47')](_0x1bc78e)['then'](handleEntityNotFound(_0x108c96,null))[_0x999e('0x24')](respondWithResult(_0x108c96,null))[_0x999e('0x45')](handleError(_0x108c96,null));};exports[_0x999e('0x48')]=function(_0x57aaa9,_0x4b230d){return db[_0x999e('0x2b')][_0x999e('0x48')]()[_0x999e('0x24')](respondWithResult(_0x4b230d,null))['catch'](handleError(_0x4b230d,null));};exports['update']=function(_0x4d0358,_0x5ee14d){if(_0x4d0358[_0x999e('0x49')]['uniqueid']){delete _0x4d0358['body'][_0x999e('0x4a')];}return db[_0x999e('0x2b')]['find']({'where':{'uniqueid':_0x4d0358[_0x999e('0x4b')]['id']}})[_0x999e('0x24')](handleEntityNotFound(_0x5ee14d,null))['then'](saveUpdates(_0x4d0358[_0x999e('0x49')],null))['then'](respondWithResult(_0x5ee14d,null))[_0x999e('0x45')](handleError(_0x5ee14d,null));};exports[_0x999e('0x4c')]=function(_0x5f0c4f,_0x210f1e,_0xdc94ea){return db['CmHopperFinal']['findAll']({'raw':![],'where':{'VoiceQueueId':_0x5f0c4f[_0x999e('0x4b')]['id']},'attributes':[[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x4f')))),_0x999e('0x50')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db['sequelize']['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')]('`state`\x20=\x203,\x201,\x20null'))),_0x999e('0x52')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x53')))),_0x999e('0x54')],[db[_0x999e('0x4d')]['fn']('COUNT',db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x55')))),'congestionContacts'],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x56')))),_0x999e('0x57')],[db[_0x999e('0x4d')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x58')))),_0x999e('0x59')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db['sequelize']['literal'](_0x999e('0x5a')))),_0x999e('0x5b')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db['sequelize'][_0x999e('0x4e')](_0x999e('0x5c')))),_0x999e('0x5d')]]})[_0x999e('0x24')](handleEntityNotFound(_0x210f1e,null))[_0x999e('0x24')](respondWithResult(_0x210f1e,null))[_0x999e('0x45')](handleError(_0x210f1e,null));};exports[_0x999e('0x5e')]=function(_0x53734c,_0x30edde,_0x521b7a){return db[_0x999e('0x2b')][_0x999e('0x43')]({'raw':![],'where':{'CampaignId':_0x53734c[_0x999e('0x4b')]['id']},'attributes':[[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db['sequelize'][_0x999e('0x4e')](_0x999e('0x4f')))),_0x999e('0x50')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x5f')))),_0x999e('0x52')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')]('`state`\x20=\x205,\x201,\x20null'))),_0x999e('0x54')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db['sequelize']['literal'](_0x999e('0x55')))),_0x999e('0x60')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x56')))),_0x999e('0x57')],[db['sequelize']['fn'](_0x999e('0x51'),db['sequelize']['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x999e('0x59')],[db[_0x999e('0x4d')]['fn'](_0x999e('0x51'),db[_0x999e('0x4d')]['fn']('IF',db[_0x999e('0x4d')]['literal'](_0x999e('0x5a')))),_0x999e('0x5b')],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x999e('0x4d')][_0x999e('0x4e')](_0x999e('0x5c')))),_0x999e('0x5d')]]})[_0x999e('0x24')](handleEntityNotFound(_0x30edde,null))['then'](respondWithResult(_0x30edde,null))['catch'](handleError(_0x30edde,null));};exports['moveContactsQueueCampaignHopperFinal']=function(_0x49293d,_0x513580,_0x53ba16){return db[_0x999e('0x61')]['find']({'where':{'id':_0x49293d[_0x999e('0x4b')]['id']}})[_0x999e('0x24')](handleEntityNotFound(_0x513580,null))[_0x999e('0x24')](function(_0x5b8a0d){var _0x3ca455;if(_0x5b8a0d){_0x3ca455=squel[_0x999e('0x62')]()[_0x999e('0x63')](_0x999e('0x64'))[_0x999e('0x65')]([_0x999e('0x66'),_0x999e('0x67'),'ContactId',_0x999e('0x68'),_0x999e('0x69'),_0x999e('0x6a'),'updatedAt'],squel[_0x999e('0x6b')]()[_0x999e('0x6c')]('ANY_VALUE(calleridnum)',_0x999e('0x66'))[_0x999e('0x6c')](_0x999e('0x6d'),_0x999e('0x67'))[_0x999e('0x6c')](_0x999e('0x6e'),_0x999e('0x6f'))[_0x999e('0x6c')](_0x999e('0x70'),'ListId')[_0x999e('0x6c')](_0x999e('0x71'),_0x999e('0x69'))['field'](_0x999e('0x6d'),'createdAt')[_0x999e('0x6c')](_0x999e('0x6d'),_0x999e('0x72'))['from'](_0x999e('0x73'))[_0x999e('0x3b')](_0x999e('0x74'),_0x49293d[_0x999e('0x4b')]['id'][_0x999e('0x75')]())[_0x999e('0x3b')]('state\x20=\x20?',_0x49293d[_0x999e('0x49')]['state'][_0x999e('0x75')]())['where']('calleridnum\x20IS\x20NOT\x20NULL')[_0x999e('0x3b')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x999e('0x6b')]()[_0x999e('0x6c')]('phone')[_0x999e('0x76')](_0x999e('0x64'))['where'](_0x999e('0x74'),_0x49293d[_0x999e('0x4b')]['id'][_0x999e('0x75')]()))[_0x999e('0x3b')](_0x999e('0x77'),squel[_0x999e('0x6b')]()[_0x999e('0x6c')](_0x999e('0x78'))['from']('cm_hopper_final')[_0x999e('0x3b')](_0x999e('0x74'),_0x49293d[_0x999e('0x4b')]['id'][_0x999e('0x75')]())[_0x999e('0x3b')](_0x999e('0x79')))['group'](_0x999e('0x6f')))[_0x999e('0x75')]();return db['sequelize'][_0x999e('0x30')](_0x3ca455);}return[];})[_0x999e('0x24')](respondWithResult(_0x513580,null))[_0x999e('0x45')](handleError(_0x513580,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x389520,_0x1a53c9,_0x328c2d){return db['Campaign'][_0x999e('0x47')]({'where':{'id':_0x389520[_0x999e('0x4b')]['id']}})[_0x999e('0x24')](handleEntityNotFound(_0x1a53c9,null))['then'](function(_0x4f3595){var _0x10a6f1;if(_0x4f3595){_0x10a6f1=squel['insert']()[_0x999e('0x63')](_0x999e('0x64'))[_0x999e('0x65')]([_0x999e('0x66'),_0x999e('0x67'),_0x999e('0x6f'),_0x999e('0x68'),'CampaignId',_0x999e('0x6a'),'updatedAt'],squel['select']()[_0x999e('0x6c')](_0x999e('0x7a'),_0x999e('0x66'))[_0x999e('0x6c')](_0x999e('0x6d'),_0x999e('0x67'))['field'](_0x999e('0x6e'),'ContactId')[_0x999e('0x6c')](_0x999e('0x70'),_0x999e('0x68'))['field'](_0x999e('0x7b'),'CampaignId')[_0x999e('0x6c')](_0x999e('0x6d'),_0x999e('0x6a'))[_0x999e('0x6c')](_0x999e('0x6d'),'updatedAt')['from'](_0x999e('0x73'))[_0x999e('0x3b')](_0x999e('0x7c'),_0x389520[_0x999e('0x4b')]['id'][_0x999e('0x75')]())[_0x999e('0x3b')](_0x999e('0x7d'),_0x389520[_0x999e('0x49')]['state'][_0x999e('0x75')]())[_0x999e('0x3b')](_0x999e('0x7e'))[_0x999e('0x3b')](_0x999e('0x77'),squel[_0x999e('0x6b')]()[_0x999e('0x6c')](_0x999e('0x66'))['from'](_0x999e('0x64'))[_0x999e('0x3b')](_0x999e('0x7c'),_0x389520[_0x999e('0x4b')]['id'][_0x999e('0x75')]()))[_0x999e('0x3b')](_0x999e('0x77'),squel[_0x999e('0x6b')]()['field'](_0x999e('0x78'))[_0x999e('0x76')](_0x999e('0x73'))['where'](_0x999e('0x7c'),_0x389520[_0x999e('0x4b')]['id'][_0x999e('0x75')]())[_0x999e('0x3b')](_0x999e('0x79')))[_0x999e('0x7f')](_0x999e('0x6f')))[_0x999e('0x75')]();return db[_0x999e('0x4d')]['query'](_0x10a6f1);}return[];})[_0x999e('0x24')](respondWithResult(_0x1a53c9,null))[_0x999e('0x45')](handleError(_0x1a53c9,null));};exports[_0x999e('0x80')]=function(_0x4a827a,_0x5f1cf8,_0x427bef){return db[_0x999e('0x81')][_0x999e('0x82')]({'where':{'VoiceQueueId':_0x4a827a['body'][_0x999e('0x69')],'CampaignId':_0x4a827a[_0x999e('0x49')][_0x999e('0x83')],'ContactId':_0x4a827a['body'][_0x999e('0x6f')]}})[_0x999e('0x24')](handleEntityNotFound(_0x5f1cf8,null))['then'](function(_0x45c6fc){if(_0x45c6fc){return _0x45c6fc;}return null;})['then'](respondWithResult(_0x5f1cf8,null))['catch'](handleError(_0x5f1cf8,null));};