24e8002338cdcd0c6c7e53b31c8b2cba62ac6cf6
[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 _0x32f4=['intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','VIRTUAL','merge','options','count','include','findAll','catch','show','rawAttributes','includeAll','find','describe','body','uniqueid','params','countContactsQueueCampaignHopperFinal','sequelize','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','COUNT','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','congestionContacts','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','`state`\x20=\x208,\x201,\x20null','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','fromQuery','phone','ContactId','ListId','VoiceQueueId','updatedAt','select','field','NOW()','scheduledAt','ANY_VALUE(VoiceQueueId)','createdAt','from','VoiceQueueId\x20=\x20?','state\x20=\x20?','state','toString','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','cm_hopper','calleridnum','cm_hopper_final','state\x20=\x204','moveContactsIvrCampaignHopperFinal','Campaign','CampaignId','ANY_VALUE(calleridnum)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','checkContactHopper','CmHopper','findOne','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../mysqldb','status','end','json','offset','limit','set','Content-Range','apply','reject','save','update','then','sendStatus','stack','name','send','index','CmHopperFinal','type','model','map','keys','query','attributes'];(function(_0x2a3257,_0x170ea2){var _0x1f9128=function(_0x2ebc37){while(--_0x2ebc37){_0x2a3257['push'](_0x2a3257['shift']());}};_0x1f9128(++_0x170ea2);}(_0x32f4,0x154));var _0x432f=function(_0x2c6671,_0x36b506){_0x2c6671=_0x2c6671-0x0;var _0x5ad496=_0x32f4[_0x2c6671];return _0x5ad496;};'use strict';var pdf=require(_0x432f('0x0'));var emlformat=require(_0x432f('0x1'));var rimraf=require(_0x432f('0x2'));var zipdir=require(_0x432f('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x432f('0x4'));var moment=require(_0x432f('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x432f('0x6'));var util=require(_0x432f('0x7'));var path=require(_0x432f('0x8'));var sox=require(_0x432f('0x9'));var csv=require(_0x432f('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x432f('0xb'));var crypto=require(_0x432f('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x432f('0xd'));var toCsv=require('to-csv');var querystring=require(_0x432f('0xe'));var Papa=require(_0x432f('0xf'));var Redis=require(_0x432f('0x10'));var authService=require(_0x432f('0x11'));var qs=require(_0x432f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x432f('0x13'));var logger=require('../../config/logger')(_0x432f('0x14'));var utils=require('../../config/utils');var config=require(_0x432f('0x15'));var db=require(_0x432f('0x16'))['db'];function respondWithStatusCode(_0x53459c,_0x457389){_0x457389=_0x457389||0xcc;return function(_0x29f7d2){if(_0x29f7d2){return _0x53459c['sendStatus'](_0x457389);}return _0x53459c[_0x432f('0x17')](_0x457389)[_0x432f('0x18')]();};}function respondWithResult(_0x5dd518,_0x48a4db){_0x48a4db=_0x48a4db||0xc8;return function(_0x28d9e9){if(_0x28d9e9){return _0x5dd518[_0x432f('0x17')](_0x48a4db)[_0x432f('0x19')](_0x28d9e9);}};}function respondWithFilteredResult(_0x453725,_0x419bfe){return function(_0x4f91c5){if(_0x4f91c5){var _0x175ba7=_0x4f91c5['count'],_0x2f0708=_0x419bfe[_0x432f('0x1a')],_0x1e2c30=_0x419bfe[_0x432f('0x1a')]+_0x419bfe[_0x432f('0x1b')],_0x1504db;if(_0x1e2c30>=_0x175ba7){_0x1e2c30=_0x175ba7;_0x1504db=0xc8;}else{_0x1504db=0xce;}_0x453725[_0x432f('0x17')](_0x1504db);return _0x453725[_0x432f('0x1c')](_0x432f('0x1d'),_0x2f0708+'-'+_0x1e2c30+'/'+_0x175ba7)['json'](_0x4f91c5);}return null;};}function patchUpdates(_0x2d2c86){return function(_0x4ddd21){try{jsonpatch[_0x432f('0x1e')](_0x4ddd21,_0x2d2c86,!![]);}catch(_0x2bf251){return BPromise[_0x432f('0x1f')](_0x2bf251);}return _0x4ddd21[_0x432f('0x20')]();};}function saveUpdates(_0x1debda,_0xf1f5d){return function(_0x10f39b){if(_0x10f39b){return _0x10f39b[_0x432f('0x21')](_0x1debda)[_0x432f('0x22')](function(_0xf5b60c){return _0xf5b60c;});}return null;};}function removeEntity(_0x40176d,_0x3446fd){return function(_0x4dd230){if(_0x4dd230){return _0x4dd230['destroy']()[_0x432f('0x22')](function(){_0x40176d['status'](0xcc)[_0x432f('0x18')]();});}};}function handleEntityNotFound(_0x5b9c70,_0x37f136){return function(_0x175d1b){if(!_0x175d1b){_0x5b9c70[_0x432f('0x23')](0x194);}return _0x175d1b;};}function handleError(_0x89ea50,_0x2f84a7){_0x2f84a7=_0x2f84a7||0x1f4;return function(_0x1e347a){logger['error'](_0x1e347a[_0x432f('0x24')]);if(_0x1e347a[_0x432f('0x25')]){delete _0x1e347a['name'];}_0x89ea50[_0x432f('0x17')](_0x2f84a7)[_0x432f('0x26')](_0x1e347a);};}exports[_0x432f('0x27')]=function(_0x23347e,_0x44839){var _0x781862={},_0x138a6a={},_0x5a3d18={'count':0x0,'rows':[]};var _0x294bfe=_['map'](db[_0x432f('0x28')]['rawAttributes'],function(_0x20404d){return{'name':_0x20404d['fieldName'],'type':_0x20404d[_0x432f('0x29')]['key']};});_0x138a6a[_0x432f('0x2a')]=_[_0x432f('0x2b')](_0x294bfe,_0x432f('0x25'));_0x138a6a['query']=_[_0x432f('0x2c')](_0x23347e[_0x432f('0x2d')]);_0x138a6a['filters']=_['intersection'](_0x138a6a[_0x432f('0x2a')],_0x138a6a[_0x432f('0x2d')]);_0x781862[_0x432f('0x2e')]=_[_0x432f('0x2f')](_0x138a6a[_0x432f('0x2a')],qs[_0x432f('0x30')](_0x23347e['query']['fields']));_0x781862[_0x432f('0x2e')]=_0x781862[_0x432f('0x2e')][_0x432f('0x31')]?_0x781862['attributes']:_0x138a6a[_0x432f('0x2a')];if(!_0x23347e[_0x432f('0x2d')][_0x432f('0x32')](_0x432f('0x33'))){_0x781862[_0x432f('0x1b')]=qs[_0x432f('0x1b')](_0x23347e[_0x432f('0x2d')][_0x432f('0x1b')]);_0x781862['offset']=qs['offset'](_0x23347e[_0x432f('0x2d')][_0x432f('0x1a')]);}_0x781862['order']=qs['sort'](_0x23347e['query'][_0x432f('0x34')]);_0x781862[_0x432f('0x35')]=qs['filters'](_[_0x432f('0x36')](_0x23347e[_0x432f('0x2d')],_0x138a6a[_0x432f('0x37')]),_0x294bfe);if(_0x23347e['query'][_0x432f('0x38')]){_0x781862[_0x432f('0x35')]=_['merge'](_0x781862[_0x432f('0x35')],{'$or':_[_0x432f('0x2b')](_0x294bfe,function(_0x59e111){if(_0x59e111[_0x432f('0x29')]!==_0x432f('0x39')){var _0x148a95={};_0x148a95[_0x59e111[_0x432f('0x25')]]={'$like':'%'+_0x23347e[_0x432f('0x2d')][_0x432f('0x38')]+'%'};return _0x148a95;}})});}_0x781862=_[_0x432f('0x3a')]({},_0x781862,_0x23347e[_0x432f('0x3b')]);var _0x244970={'where':_0x781862[_0x432f('0x35')]};return db[_0x432f('0x28')]['count'](_0x244970)[_0x432f('0x22')](function(_0x59f6c3){_0x5a3d18[_0x432f('0x3c')]=_0x59f6c3;if(_0x23347e[_0x432f('0x2d')]['includeAll']){_0x781862[_0x432f('0x3d')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x432f('0x3e')](_0x781862);})[_0x432f('0x22')](function(_0x5e418c){_0x5a3d18['rows']=_0x5e418c;return _0x5a3d18;})[_0x432f('0x22')](respondWithFilteredResult(_0x44839,_0x781862))[_0x432f('0x3f')](handleError(_0x44839,null));};exports[_0x432f('0x40')]=function(_0x121687,_0x63a3b4){var _0x513a57={'raw':!![],'where':{'id':_0x121687['params']['id']}},_0x5dade1={};_0x5dade1[_0x432f('0x2a')]=_[_0x432f('0x2c')](db['CmHopperFinal'][_0x432f('0x41')]);_0x5dade1[_0x432f('0x2d')]=_[_0x432f('0x2c')](_0x121687[_0x432f('0x2d')]);_0x5dade1[_0x432f('0x37')]=_[_0x432f('0x2f')](_0x5dade1[_0x432f('0x2a')],_0x5dade1[_0x432f('0x2d')]);_0x513a57[_0x432f('0x2e')]=_['intersection'](_0x5dade1[_0x432f('0x2a')],qs[_0x432f('0x30')](_0x121687['query'][_0x432f('0x30')]));_0x513a57[_0x432f('0x2e')]=_0x513a57[_0x432f('0x2e')][_0x432f('0x31')]?_0x513a57[_0x432f('0x2e')]:_0x5dade1[_0x432f('0x2a')];if(_0x121687[_0x432f('0x2d')][_0x432f('0x42')]){_0x513a57[_0x432f('0x3d')]=[{'all':!![]}];}_0x513a57=_[_0x432f('0x3a')]({},_0x513a57,_0x121687[_0x432f('0x3b')]);return db[_0x432f('0x28')][_0x432f('0x43')](_0x513a57)[_0x432f('0x22')](handleEntityNotFound(_0x63a3b4,null))['then'](respondWithResult(_0x63a3b4,null))['catch'](handleError(_0x63a3b4,null));};exports[_0x432f('0x44')]=function(_0x34dca6,_0xcbdcc0){return db[_0x432f('0x28')][_0x432f('0x44')]()['then'](respondWithResult(_0xcbdcc0,null))[_0x432f('0x3f')](handleError(_0xcbdcc0,null));};exports[_0x432f('0x21')]=function(_0x46c5ee,_0x2f88d6){if(_0x46c5ee[_0x432f('0x45')][_0x432f('0x46')]){delete _0x46c5ee[_0x432f('0x45')]['uniqueid'];}return db[_0x432f('0x28')][_0x432f('0x43')]({'where':{'uniqueid':_0x46c5ee[_0x432f('0x47')]['id']}})['then'](handleEntityNotFound(_0x2f88d6,null))[_0x432f('0x22')](saveUpdates(_0x46c5ee[_0x432f('0x45')],null))['then'](respondWithResult(_0x2f88d6,null))['catch'](handleError(_0x2f88d6,null));};exports[_0x432f('0x48')]=function(_0x24f244,_0x4a6d37,_0x57ad3a){return db[_0x432f('0x28')]['findAll']({'raw':![],'where':{'VoiceQueueId':_0x24f244[_0x432f('0x47')]['id']},'attributes':[[db[_0x432f('0x49')]['fn']('COUNT',db[_0x432f('0x49')]['fn']('IF',db['sequelize'][_0x432f('0x4a')](_0x432f('0x4b')))),_0x432f('0x4c')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db['sequelize'][_0x432f('0x4a')]('`state`\x20=\x203,\x201,\x20null'))),_0x432f('0x4e')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db['sequelize'][_0x432f('0x4a')](_0x432f('0x4f')))),_0x432f('0x50')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')]['literal']('`state`\x20=\x208,\x201,\x20null'))),_0x432f('0x51')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x432f('0x52')],[db['sequelize']['fn']('COUNT',db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')](_0x432f('0x53')))),_0x432f('0x54')],[db[_0x432f('0x49')]['fn']('COUNT',db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')]['literal'](_0x432f('0x55')))),_0x432f('0x56')],[db['sequelize']['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')](_0x432f('0x57')))),_0x432f('0x58')]]})[_0x432f('0x22')](handleEntityNotFound(_0x4a6d37,null))[_0x432f('0x22')](respondWithResult(_0x4a6d37,null))[_0x432f('0x3f')](handleError(_0x4a6d37,null));};exports[_0x432f('0x59')]=function(_0x419c68,_0x5904c6,_0x1caa4b){return db[_0x432f('0x28')][_0x432f('0x3e')]({'raw':![],'where':{'CampaignId':_0x419c68[_0x432f('0x47')]['id']},'attributes':[[db['sequelize']['fn']('COUNT',db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')]('`state`\x20=\x200,\x201,\x20null'))),_0x432f('0x4c')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db['sequelize']['fn']('IF',db['sequelize'][_0x432f('0x4a')](_0x432f('0x5a')))),'noAnswerContacts'],[db[_0x432f('0x49')]['fn']('COUNT',db[_0x432f('0x49')]['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')]('`state`\x20=\x205,\x201,\x20null'))),_0x432f('0x50')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db['sequelize'][_0x432f('0x4a')](_0x432f('0x5b')))),'congestionContacts'],[db[_0x432f('0x49')]['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x432f('0x4a')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x432f('0x52')],[db[_0x432f('0x49')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')](_0x432f('0x53')))),_0x432f('0x54')],[db['sequelize']['fn'](_0x432f('0x4d'),db[_0x432f('0x49')]['fn']('IF',db['sequelize'][_0x432f('0x4a')]('`state`\x20=\x2022,\x201,\x20null'))),_0x432f('0x56')],[db[_0x432f('0x49')]['fn'](_0x432f('0x4d'),db['sequelize']['fn']('IF',db[_0x432f('0x49')][_0x432f('0x4a')](_0x432f('0x57')))),_0x432f('0x58')]]})['then'](handleEntityNotFound(_0x5904c6,null))[_0x432f('0x22')](respondWithResult(_0x5904c6,null))['catch'](handleError(_0x5904c6,null));};exports[_0x432f('0x5c')]=function(_0x300921,_0x264025,_0x2038fd){return db[_0x432f('0x5d')][_0x432f('0x43')]({'where':{'id':_0x300921[_0x432f('0x47')]['id']}})[_0x432f('0x22')](handleEntityNotFound(_0x264025,null))['then'](function(_0x4add38){var _0x2e0e99;if(_0x4add38){_0x2e0e99=squel[_0x432f('0x5e')]()[_0x432f('0x5f')]('cm_hopper')[_0x432f('0x60')]([_0x432f('0x61'),'scheduledAt',_0x432f('0x62'),_0x432f('0x63'),_0x432f('0x64'),'createdAt',_0x432f('0x65')],squel[_0x432f('0x66')]()[_0x432f('0x67')]('ANY_VALUE(calleridnum)','phone')[_0x432f('0x67')](_0x432f('0x68'),_0x432f('0x69'))[_0x432f('0x67')]('ANY_VALUE(ContactId)','ContactId')[_0x432f('0x67')]('ANY_VALUE(ListId)',_0x432f('0x63'))[_0x432f('0x67')](_0x432f('0x6a'),_0x432f('0x64'))[_0x432f('0x67')](_0x432f('0x68'),_0x432f('0x6b'))[_0x432f('0x67')]('NOW()',_0x432f('0x65'))[_0x432f('0x6c')]('cm_hopper_final')[_0x432f('0x35')](_0x432f('0x6d'),_0x300921['params']['id']['toString']())['where'](_0x432f('0x6e'),_0x300921[_0x432f('0x45')][_0x432f('0x6f')][_0x432f('0x70')]())[_0x432f('0x35')](_0x432f('0x71'))['where'](_0x432f('0x72'),squel[_0x432f('0x66')]()[_0x432f('0x67')](_0x432f('0x61'))[_0x432f('0x6c')](_0x432f('0x73'))[_0x432f('0x35')](_0x432f('0x6d'),_0x300921[_0x432f('0x47')]['id']['toString']()))[_0x432f('0x35')](_0x432f('0x72'),squel[_0x432f('0x66')]()[_0x432f('0x67')](_0x432f('0x74'))[_0x432f('0x6c')](_0x432f('0x75'))[_0x432f('0x35')](_0x432f('0x6d'),_0x300921[_0x432f('0x47')]['id'][_0x432f('0x70')]())['where'](_0x432f('0x76')))['group']('ContactId'))[_0x432f('0x70')]();return db[_0x432f('0x49')][_0x432f('0x2d')](_0x2e0e99);}return[];})['then'](respondWithResult(_0x264025,null))['catch'](handleError(_0x264025,null));};exports[_0x432f('0x77')]=function(_0x398b64,_0x23078a,_0x183a91){return db[_0x432f('0x78')][_0x432f('0x43')]({'where':{'id':_0x398b64[_0x432f('0x47')]['id']}})['then'](handleEntityNotFound(_0x23078a,null))[_0x432f('0x22')](function(_0x5b2b69){var _0x10007b;if(_0x5b2b69){_0x10007b=squel['insert']()[_0x432f('0x5f')](_0x432f('0x73'))['fromQuery']([_0x432f('0x61'),'scheduledAt',_0x432f('0x62'),_0x432f('0x63'),_0x432f('0x79'),_0x432f('0x6b'),_0x432f('0x65')],squel[_0x432f('0x66')]()[_0x432f('0x67')](_0x432f('0x7a'),'phone')['field']('NOW()',_0x432f('0x69'))[_0x432f('0x67')]('ANY_VALUE(ContactId)',_0x432f('0x62'))[_0x432f('0x67')](_0x432f('0x7b'),_0x432f('0x63'))['field'](_0x432f('0x7c'),_0x432f('0x79'))[_0x432f('0x67')]('NOW()',_0x432f('0x6b'))[_0x432f('0x67')](_0x432f('0x68'),_0x432f('0x65'))[_0x432f('0x6c')](_0x432f('0x75'))[_0x432f('0x35')](_0x432f('0x7d'),_0x398b64[_0x432f('0x47')]['id'][_0x432f('0x70')]())[_0x432f('0x35')](_0x432f('0x6e'),_0x398b64['body'][_0x432f('0x6f')]['toString']())[_0x432f('0x35')](_0x432f('0x71'))[_0x432f('0x35')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x432f('0x66')]()[_0x432f('0x67')](_0x432f('0x61'))[_0x432f('0x6c')](_0x432f('0x73'))[_0x432f('0x35')](_0x432f('0x7d'),_0x398b64[_0x432f('0x47')]['id'][_0x432f('0x70')]()))['where'](_0x432f('0x72'),squel['select']()[_0x432f('0x67')](_0x432f('0x74'))[_0x432f('0x6c')](_0x432f('0x75'))[_0x432f('0x35')](_0x432f('0x7d'),_0x398b64[_0x432f('0x47')]['id'][_0x432f('0x70')]())[_0x432f('0x35')](_0x432f('0x76')))['group'](_0x432f('0x62')))['toString']();return db[_0x432f('0x49')]['query'](_0x10007b);}return[];})[_0x432f('0x22')](respondWithResult(_0x23078a,null))[_0x432f('0x3f')](handleError(_0x23078a,null));};exports[_0x432f('0x7e')]=function(_0x16bb82,_0x21dd08,_0x294444){return db[_0x432f('0x7f')][_0x432f('0x80')]({'where':{'VoiceQueueId':_0x16bb82[_0x432f('0x45')][_0x432f('0x64')],'CampaignId':_0x16bb82[_0x432f('0x45')][_0x432f('0x79')],'ContactId':_0x16bb82['body'][_0x432f('0x62')]}})[_0x432f('0x22')](handleEntityNotFound(_0x21dd08,null))['then'](function(_0x2357ac){if(_0x2357ac){return _0x2357ac;}return null;})[_0x432f('0x22')](respondWithResult(_0x21dd08,null))['catch'](handleError(_0x21dd08,null));};