Built motion from commit (unavailable).|2.5.22
[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 _0x702d=['merge','options','CmHopperFinal','includeAll','include','findAll','then','rows','catch','show','params','body','uniqueid','find','countContactsQueueCampaignHopperFinal','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2011\x20,\x201,\x20null','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','abandonedContacts','moveContactsQueueCampaignHopperFinal','VoiceQueue','insert','into','cm_hopper','fromQuery','scheduledAt','VoiceQueueId','updatedAt','select','field','ANY_VALUE(calleridnum)','phone','NOW()','ANY_VALUE(ContactId)','ContactId','ANY_VALUE(ListId)','ListId','ANY_VALUE(VoiceQueueId)','from','cm_hopper_final','VoiceQueueId\x20=\x20?','state\x20=\x20?','toString','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','group','Campaign','createdAt','ANY_VALUE(CampaignId)','CampaignId','CampaignId\x20=\x20?','state','checkContactHopper','CmHopper','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','Content-Range','apply','reject','update','error','stack','name','send','index','rawAttributes','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','pick','filter','where'];(function(_0x136de9,_0xc1a39c){var _0x31ff7b=function(_0x94c91a){while(--_0x94c91a){_0x136de9['push'](_0x136de9['shift']());}};_0x31ff7b(++_0xc1a39c);}(_0x702d,0x147));var _0xd702=function(_0x414830,_0x301e9b){_0x414830=_0x414830-0x0;var _0x294f94=_0x702d[_0x414830];return _0x294f94;};'use strict';var pdf=require(_0xd702('0x0'));var emlformat=require(_0xd702('0x1'));var rimraf=require(_0xd702('0x2'));var zipdir=require(_0xd702('0x3'));var jsonpatch=require(_0xd702('0x4'));var rp=require('request-promise');var moment=require(_0xd702('0x5'));var BPromise=require(_0xd702('0x6'));var Mustache=require(_0xd702('0x7'));var util=require(_0xd702('0x8'));var path=require('path');var sox=require(_0xd702('0x9'));var csv=require('to-csv');var ejs=require(_0xd702('0xa'));var fs=require('fs');var _=require(_0xd702('0xb'));var squel=require(_0xd702('0xc'));var crypto=require('crypto');var jsforce=require(_0xd702('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd702('0xe'));var querystring=require(_0xd702('0xf'));var Papa=require(_0xd702('0x10'));var Redis=require(_0xd702('0x11'));var authService=require(_0xd702('0x12'));var qs=require(_0xd702('0x13'));var as=require(_0xd702('0x14'));var hardwareService=require(_0xd702('0x15'));var logger=require(_0xd702('0x16'))(_0xd702('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xd702('0x18'));var db=require(_0xd702('0x19'))['db'];function respondWithStatusCode(_0x273577,_0x5c0dad){_0x5c0dad=_0x5c0dad||0xcc;return function(_0x13ee5a){if(_0x13ee5a){return _0x273577[_0xd702('0x1a')](_0x5c0dad);}return _0x273577[_0xd702('0x1b')](_0x5c0dad)[_0xd702('0x1c')]();};}function respondWithResult(_0x3948f8,_0x181ff2){_0x181ff2=_0x181ff2||0xc8;return function(_0x59dd33){if(_0x59dd33){return _0x3948f8[_0xd702('0x1b')](_0x181ff2)[_0xd702('0x1d')](_0x59dd33);}};}function respondWithFilteredResult(_0x5d7978,_0x707b9){return function(_0x4922f8){if(_0x4922f8){var _0x268c66=_0x4922f8[_0xd702('0x1e')],_0x210c32=_0x707b9[_0xd702('0x1f')],_0x55b93e=_0x707b9['offset']+_0x707b9['limit'],_0x2ba791;if(_0x55b93e>=_0x268c66){_0x55b93e=_0x268c66;_0x2ba791=0xc8;}else{_0x2ba791=0xce;}_0x5d7978[_0xd702('0x1b')](_0x2ba791);return _0x5d7978['set'](_0xd702('0x20'),_0x210c32+'-'+_0x55b93e+'/'+_0x268c66)[_0xd702('0x1d')](_0x4922f8);}return null;};}function patchUpdates(_0x37267c){return function(_0x265b1b){try{jsonpatch[_0xd702('0x21')](_0x265b1b,_0x37267c,!![]);}catch(_0x120e3f){return BPromise[_0xd702('0x22')](_0x120e3f);}return _0x265b1b['save']();};}function saveUpdates(_0x4be140,_0x536ca8){return function(_0x55516e){if(_0x55516e){return _0x55516e[_0xd702('0x23')](_0x4be140)['then'](function(_0x211200){return _0x211200;});}return null;};}function removeEntity(_0x5d91fd,_0xc4c246){return function(_0x5824ec){if(_0x5824ec){return _0x5824ec['destroy']()['then'](function(){_0x5d91fd[_0xd702('0x1b')](0xcc)[_0xd702('0x1c')]();});}};}function handleEntityNotFound(_0x459184,_0x49761c){return function(_0x1f0c44){if(!_0x1f0c44){_0x459184[_0xd702('0x1a')](0x194);}return _0x1f0c44;};}function handleError(_0x10599a,_0x2eaa03){_0x2eaa03=_0x2eaa03||0x1f4;return function(_0x1200ed){logger[_0xd702('0x24')](_0x1200ed[_0xd702('0x25')]);if(_0x1200ed[_0xd702('0x26')]){delete _0x1200ed[_0xd702('0x26')];}_0x10599a['status'](_0x2eaa03)[_0xd702('0x27')](_0x1200ed);};}exports[_0xd702('0x28')]=function(_0x25e96a,_0x335202){var _0xbe4518={},_0x38505d={},_0x797156={'count':0x0,'rows':[]};var _0x22441b=_['map'](db['CmHopperFinal'][_0xd702('0x29')],function(_0x43cd38){return{'name':_0x43cd38['fieldName'],'type':_0x43cd38[_0xd702('0x2a')][_0xd702('0x2b')]};});_0x38505d[_0xd702('0x2c')]=_[_0xd702('0x2d')](_0x22441b,'name');_0x38505d[_0xd702('0x2e')]=_[_0xd702('0x2f')](_0x25e96a[_0xd702('0x2e')]);_0x38505d[_0xd702('0x30')]=_[_0xd702('0x31')](_0x38505d['model'],_0x38505d[_0xd702('0x2e')]);_0xbe4518[_0xd702('0x32')]=_[_0xd702('0x31')](_0x38505d['model'],qs[_0xd702('0x33')](_0x25e96a['query']['fields']));_0xbe4518[_0xd702('0x32')]=_0xbe4518[_0xd702('0x32')][_0xd702('0x34')]?_0xbe4518['attributes']:_0x38505d[_0xd702('0x2c')];if(!_0x25e96a[_0xd702('0x2e')]['hasOwnProperty'](_0xd702('0x35'))){_0xbe4518[_0xd702('0x36')]=qs[_0xd702('0x36')](_0x25e96a[_0xd702('0x2e')][_0xd702('0x36')]);_0xbe4518[_0xd702('0x1f')]=qs[_0xd702('0x1f')](_0x25e96a[_0xd702('0x2e')][_0xd702('0x1f')]);}_0xbe4518[_0xd702('0x37')]=qs[_0xd702('0x38')](_0x25e96a[_0xd702('0x2e')][_0xd702('0x38')]);_0xbe4518['where']=qs[_0xd702('0x30')](_[_0xd702('0x39')](_0x25e96a[_0xd702('0x2e')],_0x38505d[_0xd702('0x30')]),_0x22441b);if(_0x25e96a[_0xd702('0x2e')][_0xd702('0x3a')]){_0xbe4518[_0xd702('0x3b')]=_['merge'](_0xbe4518['where'],{'$or':_[_0xd702('0x2d')](_0x22441b,function(_0x1810ee){if(_0x1810ee['type']!=='VIRTUAL'){var _0x3fbac9={};_0x3fbac9[_0x1810ee[_0xd702('0x26')]]={'$like':'%'+_0x25e96a['query'][_0xd702('0x3a')]+'%'};return _0x3fbac9;}})});}_0xbe4518=_[_0xd702('0x3c')]({},_0xbe4518,_0x25e96a[_0xd702('0x3d')]);var _0x4822d9={'where':_0xbe4518[_0xd702('0x3b')]};return db[_0xd702('0x3e')][_0xd702('0x1e')](_0x4822d9)['then'](function(_0x45acfc){_0x797156['count']=_0x45acfc;if(_0x25e96a[_0xd702('0x2e')][_0xd702('0x3f')]){_0xbe4518[_0xd702('0x40')]=[{'all':!![]}];}return db[_0xd702('0x3e')][_0xd702('0x41')](_0xbe4518);})[_0xd702('0x42')](function(_0x45e414){_0x797156[_0xd702('0x43')]=_0x45e414;return _0x797156;})['then'](respondWithFilteredResult(_0x335202,_0xbe4518))[_0xd702('0x44')](handleError(_0x335202,null));};exports[_0xd702('0x45')]=function(_0xf7542c,_0x3d703e){var _0x11cc81={'raw':!![],'where':{'id':_0xf7542c[_0xd702('0x46')]['id']}},_0x5ecb10={};_0x5ecb10[_0xd702('0x2c')]=_[_0xd702('0x2f')](db['CmHopperFinal'][_0xd702('0x29')]);_0x5ecb10[_0xd702('0x2e')]=_[_0xd702('0x2f')](_0xf7542c[_0xd702('0x2e')]);_0x5ecb10['filters']=_[_0xd702('0x31')](_0x5ecb10[_0xd702('0x2c')],_0x5ecb10[_0xd702('0x2e')]);_0x11cc81[_0xd702('0x32')]=_[_0xd702('0x31')](_0x5ecb10['model'],qs[_0xd702('0x33')](_0xf7542c[_0xd702('0x2e')]['fields']));_0x11cc81['attributes']=_0x11cc81[_0xd702('0x32')][_0xd702('0x34')]?_0x11cc81[_0xd702('0x32')]:_0x5ecb10[_0xd702('0x2c')];if(_0xf7542c[_0xd702('0x2e')][_0xd702('0x3f')]){_0x11cc81[_0xd702('0x40')]=[{'all':!![]}];}_0x11cc81=_[_0xd702('0x3c')]({},_0x11cc81,_0xf7542c[_0xd702('0x3d')]);return db['CmHopperFinal']['find'](_0x11cc81)[_0xd702('0x42')](handleEntityNotFound(_0x3d703e,null))['then'](respondWithResult(_0x3d703e,null))[_0xd702('0x44')](handleError(_0x3d703e,null));};exports['describe']=function(_0x40ea5f,_0x58a56f){return db[_0xd702('0x3e')]['describe']()[_0xd702('0x42')](respondWithResult(_0x58a56f,null))[_0xd702('0x44')](handleError(_0x58a56f,null));};exports['update']=function(_0x160f5e,_0x2d31d2){if(_0x160f5e[_0xd702('0x47')][_0xd702('0x48')]){delete _0x160f5e[_0xd702('0x47')]['uniqueid'];}return db[_0xd702('0x3e')][_0xd702('0x49')]({'where':{'uniqueid':_0x160f5e[_0xd702('0x46')]['id']}})['then'](handleEntityNotFound(_0x2d31d2,null))[_0xd702('0x42')](saveUpdates(_0x160f5e['body'],null))[_0xd702('0x42')](respondWithResult(_0x2d31d2,null))[_0xd702('0x44')](handleError(_0x2d31d2,null));};exports[_0xd702('0x4a')]=function(_0x55282d,_0x5a900d,_0x2e5a91){return db[_0xd702('0x3e')][_0xd702('0x41')]({'raw':![],'where':{'VoiceQueueId':_0x55282d[_0xd702('0x46')]['id']},'attributes':[[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x4e')))),'noSuchContacts'],[db['sequelize']['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')]['literal']('`state`\x20=\x203,\x201,\x20null'))),_0xd702('0x4f')],[db['sequelize']['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x50')))),_0xd702('0x51')],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db['sequelize'][_0xd702('0x4d')](_0xd702('0x52')))),_0xd702('0x53')],[db[_0xd702('0x4b')]['fn']('COUNT',db[_0xd702('0x4b')]['fn']('IF',db['sequelize'][_0xd702('0x4d')]('`state`\x20=\x2010\x20,\x201,\x20null'))),'dropContacts'],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x54')))),'abandonedContacts'],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db['sequelize']['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x55')))),_0xd702('0x56')],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db['sequelize']['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x57')))),_0xd702('0x58')]]})[_0xd702('0x42')](handleEntityNotFound(_0x5a900d,null))['then'](respondWithResult(_0x5a900d,null))['catch'](handleError(_0x5a900d,null));};exports[_0xd702('0x59')]=function(_0x5d09df,_0x5e0f26,_0x2fa2c7){return db['CmHopperFinal'][_0xd702('0x41')]({'raw':![],'where':{'CampaignId':_0x5d09df[_0xd702('0x46')]['id']},'attributes':[[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db['sequelize']['fn']('IF',db[_0xd702('0x4b')]['literal'](_0xd702('0x4e')))),'noSuchContacts'],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x5a')))),_0xd702('0x4f')],[db['sequelize']['fn']('COUNT',db[_0xd702('0x4b')]['fn']('IF',db['sequelize'][_0xd702('0x4d')](_0xd702('0x50')))),'busyContacts'],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db['sequelize']['fn']('IF',db[_0xd702('0x4b')]['literal'](_0xd702('0x52')))),_0xd702('0x53')],[db[_0xd702('0x4b')]['fn'](_0xd702('0x4c'),db['sequelize']['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x5b')))),_0xd702('0x5c')],[db[_0xd702('0x4b')]['fn']('COUNT',db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x54')))),_0xd702('0x5d')],[db[_0xd702('0x4b')]['fn']('COUNT',db[_0xd702('0x4b')]['fn']('IF',db['sequelize'][_0xd702('0x4d')](_0xd702('0x55')))),_0xd702('0x56')],[db[_0xd702('0x4b')]['fn']('COUNT',db[_0xd702('0x4b')]['fn']('IF',db[_0xd702('0x4b')][_0xd702('0x4d')](_0xd702('0x57')))),_0xd702('0x58')]]})['then'](handleEntityNotFound(_0x5e0f26,null))['then'](respondWithResult(_0x5e0f26,null))[_0xd702('0x44')](handleError(_0x5e0f26,null));};exports[_0xd702('0x5e')]=function(_0x2c3033,_0x339403,_0x3fb0b1){return db[_0xd702('0x5f')][_0xd702('0x49')]({'where':{'id':_0x2c3033[_0xd702('0x46')]['id']}})[_0xd702('0x42')](handleEntityNotFound(_0x339403,null))[_0xd702('0x42')](function(_0x123515){var _0x38fff6;if(_0x123515){_0x38fff6=squel[_0xd702('0x60')]()[_0xd702('0x61')](_0xd702('0x62'))[_0xd702('0x63')](['phone',_0xd702('0x64'),'ContactId','ListId',_0xd702('0x65'),'createdAt',_0xd702('0x66')],squel[_0xd702('0x67')]()[_0xd702('0x68')](_0xd702('0x69'),_0xd702('0x6a'))[_0xd702('0x68')](_0xd702('0x6b'),_0xd702('0x64'))[_0xd702('0x68')](_0xd702('0x6c'),_0xd702('0x6d'))[_0xd702('0x68')](_0xd702('0x6e'),_0xd702('0x6f'))[_0xd702('0x68')](_0xd702('0x70'),_0xd702('0x65'))[_0xd702('0x68')](_0xd702('0x6b'),'createdAt')[_0xd702('0x68')](_0xd702('0x6b'),_0xd702('0x66'))[_0xd702('0x71')](_0xd702('0x72'))['where'](_0xd702('0x73'),_0x2c3033[_0xd702('0x46')]['id']['toString']())[_0xd702('0x3b')](_0xd702('0x74'),_0x2c3033[_0xd702('0x47')]['state'][_0xd702('0x75')]())[_0xd702('0x3b')]('calleridnum\x20IS\x20NOT\x20NULL')[_0xd702('0x3b')](_0xd702('0x76'),squel[_0xd702('0x67')]()[_0xd702('0x68')](_0xd702('0x6a'))[_0xd702('0x71')](_0xd702('0x62'))[_0xd702('0x3b')](_0xd702('0x73'),_0x2c3033[_0xd702('0x46')]['id'][_0xd702('0x75')]()))['where'](_0xd702('0x76'),squel[_0xd702('0x67')]()['field'](_0xd702('0x77'))[_0xd702('0x71')](_0xd702('0x72'))[_0xd702('0x3b')](_0xd702('0x73'),_0x2c3033['params']['id']['toString']())[_0xd702('0x3b')]('state\x20=\x204'))[_0xd702('0x78')](_0xd702('0x6d')))[_0xd702('0x75')]();return db[_0xd702('0x4b')][_0xd702('0x2e')](_0x38fff6);}return[];})['then'](respondWithResult(_0x339403,null))[_0xd702('0x44')](handleError(_0x339403,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x12e796,_0x45ba8b,_0x42c4c0){return db[_0xd702('0x79')][_0xd702('0x49')]({'where':{'id':_0x12e796[_0xd702('0x46')]['id']}})['then'](handleEntityNotFound(_0x45ba8b,null))['then'](function(_0x337be0){var _0x2eab19;if(_0x337be0){_0x2eab19=squel['insert']()[_0xd702('0x61')](_0xd702('0x62'))['fromQuery'](['phone',_0xd702('0x64'),_0xd702('0x6d'),_0xd702('0x6f'),'CampaignId',_0xd702('0x7a'),_0xd702('0x66')],squel[_0xd702('0x67')]()[_0xd702('0x68')](_0xd702('0x69'),_0xd702('0x6a'))[_0xd702('0x68')](_0xd702('0x6b'),_0xd702('0x64'))[_0xd702('0x68')]('ANY_VALUE(ContactId)',_0xd702('0x6d'))[_0xd702('0x68')](_0xd702('0x6e'),_0xd702('0x6f'))['field'](_0xd702('0x7b'),_0xd702('0x7c'))[_0xd702('0x68')](_0xd702('0x6b'),_0xd702('0x7a'))['field']('NOW()','updatedAt')[_0xd702('0x71')](_0xd702('0x72'))[_0xd702('0x3b')](_0xd702('0x7d'),_0x12e796[_0xd702('0x46')]['id'][_0xd702('0x75')]())[_0xd702('0x3b')]('state\x20=\x20?',_0x12e796[_0xd702('0x47')][_0xd702('0x7e')][_0xd702('0x75')]())['where']('calleridnum\x20IS\x20NOT\x20NULL')[_0xd702('0x3b')]('calleridnum\x20NOT\x20IN\x20(?)',squel['select']()[_0xd702('0x68')]('phone')['from']('cm_hopper')[_0xd702('0x3b')](_0xd702('0x7d'),_0x12e796['params']['id'][_0xd702('0x75')]()))['where'](_0xd702('0x76'),squel[_0xd702('0x67')]()[_0xd702('0x68')]('calleridnum')['from'](_0xd702('0x72'))[_0xd702('0x3b')](_0xd702('0x7d'),_0x12e796['params']['id'][_0xd702('0x75')]())[_0xd702('0x3b')]('state\x20=\x204'))['group'](_0xd702('0x6d')))[_0xd702('0x75')]();return db[_0xd702('0x4b')][_0xd702('0x2e')](_0x2eab19);}return[];})['then'](respondWithResult(_0x45ba8b,null))[_0xd702('0x44')](handleError(_0x45ba8b,null));};exports[_0xd702('0x7f')]=function(_0x585c11,_0x30fee0,_0x1a4f4c){return db[_0xd702('0x80')]['findOne']({'where':{'VoiceQueueId':_0x585c11['body'][_0xd702('0x65')],'CampaignId':_0x585c11[_0xd702('0x47')]['CampaignId'],'ContactId':_0x585c11[_0xd702('0x47')][_0xd702('0x6d')]}})[_0xd702('0x42')](handleEntityNotFound(_0x30fee0,null))[_0xd702('0x42')](function(_0x17e3a4){if(_0x17e3a4){return _0x17e3a4;}return null;})[_0xd702('0x42')](respondWithResult(_0x30fee0,null))['catch'](handleError(_0x30fee0,null));};