Built motion from commit (unavailable).|2.4.21
[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 _0xac6b=['calleridnum\x20NOT\x20IN\x20(?)','select','from','calleridnum','state\x20=\x204','group','ContactId','moveContactsIvrCampaignHopperFinal','Campaign','insert','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','CampaignId','CampaignId\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','checkContactHopper','CmHopper','findOne','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','CmHopperFinal','type','key','map','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','length','find','describe','body','uniqueid','countContactsQueueCampaignHopperFinal','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','findAll','noAnswerContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2022,\x201,\x20null','moveContactsQueueCampaignHopperFinal','into','cm_hopper','fromQuery','phone','scheduledAt','ListId','VoiceQueueId','createdAt','updatedAt','field','ANY_VALUE(calleridnum)','NOW()','cm_hopper_final','VoiceQueueId\x20=\x20?','state\x20=\x20?','toString'];(function(_0x5730f2,_0x258a36){var _0x3d81d0=function(_0x53add1){while(--_0x53add1){_0x5730f2['push'](_0x5730f2['shift']());}};_0x3d81d0(++_0x258a36);}(_0xac6b,0x115));var _0xbac6=function(_0xe841b7,_0x1c48e5){_0xe841b7=_0xe841b7-0x0;var _0x246b7d=_0xac6b[_0xe841b7];return _0x246b7d;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbac6('0x0'));var rimraf=require(_0xbac6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbac6('0x2'));var rp=require('request-promise');var moment=require(_0xbac6('0x3'));var BPromise=require(_0xbac6('0x4'));var Mustache=require(_0xbac6('0x5'));var util=require(_0xbac6('0x6'));var path=require(_0xbac6('0x7'));var sox=require(_0xbac6('0x8'));var csv=require(_0xbac6('0x9'));var ejs=require(_0xbac6('0xa'));var fs=require('fs');var _=require(_0xbac6('0xb'));var squel=require('squel');var crypto=require(_0xbac6('0xc'));var jsforce=require(_0xbac6('0xd'));var deskjs=require(_0xbac6('0xe'));var toCsv=require(_0xbac6('0x9'));var querystring=require('querystring');var Papa=require(_0xbac6('0xf'));var Redis=require('ioredis');var authService=require(_0xbac6('0x10'));var qs=require(_0xbac6('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbac6('0x12'));var logger=require(_0xbac6('0x13'))('api');var utils=require(_0xbac6('0x14'));var config=require(_0xbac6('0x15'));var db=require(_0xbac6('0x16'))['db'];function respondWithStatusCode(_0xbef215,_0x2b28ef){_0x2b28ef=_0x2b28ef||0xcc;return function(_0xbf41a1){if(_0xbf41a1){return _0xbef215[_0xbac6('0x17')](_0x2b28ef);}return _0xbef215[_0xbac6('0x18')](_0x2b28ef)['end']();};}function respondWithResult(_0x4bafa9,_0x10c499){_0x10c499=_0x10c499||0xc8;return function(_0x37a96b){if(_0x37a96b){return _0x4bafa9[_0xbac6('0x18')](_0x10c499)[_0xbac6('0x19')](_0x37a96b);}};}function respondWithFilteredResult(_0x22d93c,_0xa03347){return function(_0x4ac346){if(_0x4ac346){var _0x5a7433=_0x4ac346[_0xbac6('0x1a')],_0x2dd030=_0xa03347['offset'],_0x5708c1=_0xa03347[_0xbac6('0x1b')]+_0xa03347[_0xbac6('0x1c')],_0x5e48f9;if(_0x5708c1>=_0x5a7433){_0x5708c1=_0x5a7433;_0x5e48f9=0xc8;}else{_0x5e48f9=0xce;}_0x22d93c[_0xbac6('0x18')](_0x5e48f9);return _0x22d93c['set'](_0xbac6('0x1d'),_0x2dd030+'-'+_0x5708c1+'/'+_0x5a7433)[_0xbac6('0x19')](_0x4ac346);}return null;};}function patchUpdates(_0x46a559){return function(_0x4a4727){try{jsonpatch[_0xbac6('0x1e')](_0x4a4727,_0x46a559,!![]);}catch(_0x44fb0e){return BPromise[_0xbac6('0x1f')](_0x44fb0e);}return _0x4a4727[_0xbac6('0x20')]();};}function saveUpdates(_0x2bb447,_0x494cd5){return function(_0x406f1d){if(_0x406f1d){return _0x406f1d[_0xbac6('0x21')](_0x2bb447)[_0xbac6('0x22')](function(_0x4e46b8){return _0x4e46b8;});}return null;};}function removeEntity(_0x5634a6,_0xf62c41){return function(_0x5e5fca){if(_0x5e5fca){return _0x5e5fca[_0xbac6('0x23')]()['then'](function(){_0x5634a6[_0xbac6('0x18')](0xcc)[_0xbac6('0x24')]();});}};}function handleEntityNotFound(_0x2b3f98,_0x165fc3){return function(_0x33b66c){if(!_0x33b66c){_0x2b3f98[_0xbac6('0x17')](0x194);}return _0x33b66c;};}function handleError(_0x1e4adf,_0x50e2c8){_0x50e2c8=_0x50e2c8||0x1f4;return function(_0xd55486){logger[_0xbac6('0x25')](_0xd55486[_0xbac6('0x26')]);if(_0xd55486[_0xbac6('0x27')]){delete _0xd55486[_0xbac6('0x27')];}_0x1e4adf[_0xbac6('0x18')](_0x50e2c8)['send'](_0xd55486);};}exports['index']=function(_0x128cc8,_0x51a989){var _0x32fd1a={},_0x427257={},_0x16b362={'count':0x0,'rows':[]};var _0x1dfbf0=_['map'](db[_0xbac6('0x28')]['rawAttributes'],function(_0x149ed0){return{'name':_0x149ed0['fieldName'],'type':_0x149ed0[_0xbac6('0x29')][_0xbac6('0x2a')]};});_0x427257['model']=_[_0xbac6('0x2b')](_0x1dfbf0,_0xbac6('0x27'));_0x427257[_0xbac6('0x2c')]=_[_0xbac6('0x2d')](_0x128cc8[_0xbac6('0x2c')]);_0x427257[_0xbac6('0x2e')]=_[_0xbac6('0x2f')](_0x427257[_0xbac6('0x30')],_0x427257['query']);_0x32fd1a['attributes']=_[_0xbac6('0x2f')](_0x427257[_0xbac6('0x30')],qs[_0xbac6('0x31')](_0x128cc8['query'][_0xbac6('0x31')]));_0x32fd1a['attributes']=_0x32fd1a[_0xbac6('0x32')]['length']?_0x32fd1a[_0xbac6('0x32')]:_0x427257[_0xbac6('0x30')];if(!_0x128cc8['query'][_0xbac6('0x33')](_0xbac6('0x34'))){_0x32fd1a[_0xbac6('0x1c')]=qs[_0xbac6('0x1c')](_0x128cc8[_0xbac6('0x2c')][_0xbac6('0x1c')]);_0x32fd1a['offset']=qs[_0xbac6('0x1b')](_0x128cc8[_0xbac6('0x2c')][_0xbac6('0x1b')]);}_0x32fd1a['order']=qs[_0xbac6('0x35')](_0x128cc8['query'][_0xbac6('0x35')]);_0x32fd1a[_0xbac6('0x36')]=qs[_0xbac6('0x2e')](_['pick'](_0x128cc8[_0xbac6('0x2c')],_0x427257[_0xbac6('0x2e')]));if(_0x128cc8[_0xbac6('0x2c')][_0xbac6('0x37')]){_0x32fd1a[_0xbac6('0x36')]=_[_0xbac6('0x38')](_0x32fd1a[_0xbac6('0x36')],{'$or':_[_0xbac6('0x2b')](_0x1dfbf0,function(_0x4acbf5){if(_0x4acbf5[_0xbac6('0x29')]!==_0xbac6('0x39')){var _0x4bd6fa={};_0x4bd6fa[_0x4acbf5['name']]={'$like':'%'+_0x128cc8['query'][_0xbac6('0x37')]+'%'};return _0x4bd6fa;}})});}_0x32fd1a=_[_0xbac6('0x38')]({},_0x32fd1a,_0x128cc8[_0xbac6('0x3a')]);var _0x2a147e={'where':_0x32fd1a['where']};return db[_0xbac6('0x28')][_0xbac6('0x1a')](_0x2a147e)[_0xbac6('0x22')](function(_0x371754){_0x16b362[_0xbac6('0x1a')]=_0x371754;if(_0x128cc8[_0xbac6('0x2c')][_0xbac6('0x3b')]){_0x32fd1a[_0xbac6('0x3c')]=[{'all':!![]}];}return db[_0xbac6('0x28')]['findAll'](_0x32fd1a);})['then'](function(_0x264ab3){_0x16b362[_0xbac6('0x3d')]=_0x264ab3;return _0x16b362;})[_0xbac6('0x22')](respondWithFilteredResult(_0x51a989,_0x32fd1a))[_0xbac6('0x3e')](handleError(_0x51a989,null));};exports[_0xbac6('0x3f')]=function(_0x553d8a,_0x95dad8){var _0x468027={'raw':!![],'where':{'id':_0x553d8a[_0xbac6('0x40')]['id']}},_0x341aa1={};_0x341aa1[_0xbac6('0x30')]=_[_0xbac6('0x2d')](db[_0xbac6('0x28')][_0xbac6('0x41')]);_0x341aa1['query']=_['keys'](_0x553d8a[_0xbac6('0x2c')]);_0x341aa1[_0xbac6('0x2e')]=_[_0xbac6('0x2f')](_0x341aa1[_0xbac6('0x30')],_0x341aa1[_0xbac6('0x2c')]);_0x468027[_0xbac6('0x32')]=_['intersection'](_0x341aa1['model'],qs['fields'](_0x553d8a['query']['fields']));_0x468027[_0xbac6('0x32')]=_0x468027[_0xbac6('0x32')][_0xbac6('0x42')]?_0x468027[_0xbac6('0x32')]:_0x341aa1['model'];if(_0x553d8a[_0xbac6('0x2c')]['includeAll']){_0x468027[_0xbac6('0x3c')]=[{'all':!![]}];}_0x468027=_[_0xbac6('0x38')]({},_0x468027,_0x553d8a[_0xbac6('0x3a')]);return db[_0xbac6('0x28')][_0xbac6('0x43')](_0x468027)['then'](handleEntityNotFound(_0x95dad8,null))[_0xbac6('0x22')](respondWithResult(_0x95dad8,null))['catch'](handleError(_0x95dad8,null));};exports[_0xbac6('0x44')]=function(_0xe9a136,_0x4ae280){return db['CmHopperFinal'][_0xbac6('0x44')]()[_0xbac6('0x22')](respondWithResult(_0x4ae280,null))[_0xbac6('0x3e')](handleError(_0x4ae280,null));};exports[_0xbac6('0x21')]=function(_0x4b76bb,_0x4fe97e){if(_0x4b76bb[_0xbac6('0x45')]['uniqueid']){delete _0x4b76bb['body'][_0xbac6('0x46')];}return db[_0xbac6('0x28')][_0xbac6('0x43')]({'where':{'uniqueid':_0x4b76bb['params']['id']}})['then'](handleEntityNotFound(_0x4fe97e,null))[_0xbac6('0x22')](saveUpdates(_0x4b76bb['body'],null))[_0xbac6('0x22')](respondWithResult(_0x4fe97e,null))[_0xbac6('0x3e')](handleError(_0x4fe97e,null));};exports[_0xbac6('0x47')]=function(_0x473c75,_0x9f222c,_0x50898b){return db[_0xbac6('0x28')]['findAll']({'raw':![],'where':{'VoiceQueueId':_0x473c75['params']['id']},'attributes':[[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')]['literal'](_0xbac6('0x4a')))),_0xbac6('0x4b')],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db['sequelize']['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x4d')))),'noAnswerContacts'],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x4e')))),_0xbac6('0x4f')],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x50')))),_0xbac6('0x51')],[db[_0xbac6('0x48')]['fn']('COUNT',db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')]('`state`\x20=\x2010\x20,\x201,\x20null'))),'dropContacts'],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db['sequelize']['fn']('IF',db['sequelize'][_0xbac6('0x4c')](_0xbac6('0x52')))),_0xbac6('0x53')],[db['sequelize']['fn']('COUNT',db[_0xbac6('0x48')]['fn']('IF',db['sequelize'][_0xbac6('0x4c')]('`state`\x20=\x2022,\x201,\x20null'))),_0xbac6('0x54')],[db['sequelize']['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x55')))),_0xbac6('0x56')]]})['then'](handleEntityNotFound(_0x9f222c,null))[_0xbac6('0x22')](respondWithResult(_0x9f222c,null))['catch'](handleError(_0x9f222c,null));};exports[_0xbac6('0x57')]=function(_0x1334e1,_0x387add,_0x529aa9){return db[_0xbac6('0x28')][_0xbac6('0x58')]({'raw':![],'where':{'CampaignId':_0x1334e1[_0xbac6('0x40')]['id']},'attributes':[[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db['sequelize']['fn']('IF',db[_0xbac6('0x48')]['literal'](_0xbac6('0x4a')))),_0xbac6('0x4b')],[db['sequelize']['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')]['literal'](_0xbac6('0x4d')))),_0xbac6('0x59')],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db['sequelize'][_0xbac6('0x4c')]('`state`\x20=\x205,\x201,\x20null'))),_0xbac6('0x4f')],[db[_0xbac6('0x48')]['fn']('COUNT',db[_0xbac6('0x48')]['fn']('IF',db['sequelize']['literal'](_0xbac6('0x50')))),'congestionContacts'],[db['sequelize']['fn'](_0xbac6('0x49'),db['sequelize']['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x5a')))),_0xbac6('0x5b')],[db['sequelize']['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x52')))),_0xbac6('0x53')],[db[_0xbac6('0x48')]['fn']('COUNT',db[_0xbac6('0x48')]['fn']('IF',db['sequelize'][_0xbac6('0x4c')](_0xbac6('0x5c')))),'reCallContacts'],[db[_0xbac6('0x48')]['fn'](_0xbac6('0x49'),db[_0xbac6('0x48')]['fn']('IF',db[_0xbac6('0x48')][_0xbac6('0x4c')](_0xbac6('0x55')))),'answeringMachine']]})['then'](handleEntityNotFound(_0x387add,null))[_0xbac6('0x22')](respondWithResult(_0x387add,null))['catch'](handleError(_0x387add,null));};exports[_0xbac6('0x5d')]=function(_0x55ef50,_0x3f1b4d,_0x71cd68){return db['VoiceQueue'][_0xbac6('0x43')]({'where':{'id':_0x55ef50[_0xbac6('0x40')]['id']}})[_0xbac6('0x22')](handleEntityNotFound(_0x3f1b4d,null))[_0xbac6('0x22')](function(_0x3119da){var _0x5c24c9;if(_0x3119da){_0x5c24c9=squel['insert']()[_0xbac6('0x5e')](_0xbac6('0x5f'))[_0xbac6('0x60')]([_0xbac6('0x61'),_0xbac6('0x62'),'ContactId',_0xbac6('0x63'),_0xbac6('0x64'),_0xbac6('0x65'),_0xbac6('0x66')],squel['select']()[_0xbac6('0x67')](_0xbac6('0x68'),_0xbac6('0x61'))[_0xbac6('0x67')](_0xbac6('0x69'),'scheduledAt')[_0xbac6('0x67')]('ANY_VALUE(ContactId)','ContactId')[_0xbac6('0x67')]('ANY_VALUE(ListId)',_0xbac6('0x63'))[_0xbac6('0x67')]('ANY_VALUE(VoiceQueueId)',_0xbac6('0x64'))[_0xbac6('0x67')]('NOW()','createdAt')[_0xbac6('0x67')]('NOW()',_0xbac6('0x66'))['from'](_0xbac6('0x6a'))[_0xbac6('0x36')](_0xbac6('0x6b'),_0x55ef50[_0xbac6('0x40')]['id']['toString']())[_0xbac6('0x36')](_0xbac6('0x6c'),_0x55ef50['body']['state'][_0xbac6('0x6d')]())[_0xbac6('0x36')]('calleridnum\x20IS\x20NOT\x20NULL')[_0xbac6('0x36')](_0xbac6('0x6e'),squel[_0xbac6('0x6f')]()[_0xbac6('0x67')]('phone')[_0xbac6('0x70')](_0xbac6('0x5f'))['where'](_0xbac6('0x6b'),_0x55ef50['params']['id'][_0xbac6('0x6d')]()))[_0xbac6('0x36')](_0xbac6('0x6e'),squel[_0xbac6('0x6f')]()[_0xbac6('0x67')](_0xbac6('0x71'))[_0xbac6('0x70')](_0xbac6('0x6a'))[_0xbac6('0x36')]('VoiceQueueId\x20=\x20?',_0x55ef50[_0xbac6('0x40')]['id'][_0xbac6('0x6d')]())[_0xbac6('0x36')](_0xbac6('0x72')))[_0xbac6('0x73')](_0xbac6('0x74')))['toString']();return db[_0xbac6('0x48')][_0xbac6('0x2c')](_0x5c24c9);}return[];})[_0xbac6('0x22')](respondWithResult(_0x3f1b4d,null))[_0xbac6('0x3e')](handleError(_0x3f1b4d,null));};exports[_0xbac6('0x75')]=function(_0x1a9ccc,_0xbcf207,_0x105e5a){return db[_0xbac6('0x76')]['find']({'where':{'id':_0x1a9ccc['params']['id']}})['then'](handleEntityNotFound(_0xbcf207,null))['then'](function(_0x163e1f){var _0x283cf5;if(_0x163e1f){_0x283cf5=squel[_0xbac6('0x77')]()[_0xbac6('0x5e')](_0xbac6('0x5f'))[_0xbac6('0x60')]([_0xbac6('0x61'),_0xbac6('0x62'),_0xbac6('0x74'),'ListId','CampaignId',_0xbac6('0x65'),_0xbac6('0x66')],squel[_0xbac6('0x6f')]()[_0xbac6('0x67')](_0xbac6('0x68'),_0xbac6('0x61'))[_0xbac6('0x67')](_0xbac6('0x69'),_0xbac6('0x62'))['field'](_0xbac6('0x78'),_0xbac6('0x74'))[_0xbac6('0x67')](_0xbac6('0x79'),'ListId')[_0xbac6('0x67')]('ANY_VALUE(CampaignId)',_0xbac6('0x7a'))[_0xbac6('0x67')]('NOW()',_0xbac6('0x65'))[_0xbac6('0x67')]('NOW()',_0xbac6('0x66'))['from'](_0xbac6('0x6a'))[_0xbac6('0x36')](_0xbac6('0x7b'),_0x1a9ccc[_0xbac6('0x40')]['id'][_0xbac6('0x6d')]())[_0xbac6('0x36')](_0xbac6('0x6c'),_0x1a9ccc[_0xbac6('0x45')][_0xbac6('0x7c')][_0xbac6('0x6d')]())['where'](_0xbac6('0x7d'))['where'](_0xbac6('0x6e'),squel['select']()[_0xbac6('0x67')]('phone')[_0xbac6('0x70')](_0xbac6('0x5f'))[_0xbac6('0x36')]('CampaignId\x20=\x20?',_0x1a9ccc[_0xbac6('0x40')]['id'][_0xbac6('0x6d')]()))[_0xbac6('0x36')](_0xbac6('0x6e'),squel[_0xbac6('0x6f')]()[_0xbac6('0x67')]('calleridnum')[_0xbac6('0x70')]('cm_hopper_final')[_0xbac6('0x36')](_0xbac6('0x7b'),_0x1a9ccc['params']['id']['toString']())[_0xbac6('0x36')](_0xbac6('0x72')))[_0xbac6('0x73')](_0xbac6('0x74')))['toString']();return db['sequelize'][_0xbac6('0x2c')](_0x283cf5);}return[];})[_0xbac6('0x22')](respondWithResult(_0xbcf207,null))[_0xbac6('0x3e')](handleError(_0xbcf207,null));};exports[_0xbac6('0x7e')]=function(_0x4098d4,_0x39c08c,_0x2ed8fe){return db[_0xbac6('0x7f')][_0xbac6('0x80')]({'where':{'VoiceQueueId':_0x4098d4['body'][_0xbac6('0x64')],'CampaignId':_0x4098d4[_0xbac6('0x45')][_0xbac6('0x7a')],'ContactId':_0x4098d4[_0xbac6('0x45')]['ContactId']}})[_0xbac6('0x22')](handleEntityNotFound(_0x39c08c,null))[_0xbac6('0x22')](function(_0x5a9e51){if(_0x5a9e51){return _0x5a9e51;}return null;})[_0xbac6('0x22')](respondWithResult(_0x39c08c,null))['catch'](handleError(_0x39c08c,null));};