2adf13a97530877799523552811afc462db41c1b
[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 _0x684c=['fromQuery','phone','scheduledAt','VoiceQueueId','createdAt','updatedAt','field','NOW()','ANY_VALUE(ContactId)','ContactId','ANY_VALUE(VoiceQueueId)','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','select','calleridnum','state\x20=\x204','moveContactsIvrCampaignHopperFinal','Campaign','insert','ListId','ANY_VALUE(calleridnum)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId','CampaignId\x20=\x20?','group','checkContactHopper','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','limit','set','apply','reject','update','then','error','stack','name','send','index','map','CmHopperFinal','fieldName','type','key','model','query','intersection','fields','length','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','options','count','includeAll','rows','show','params','keys','include','find','catch','describe','uniqueid','body','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`state`\x20=\x203,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','answeringMachine','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','dropContacts','reCallContacts','moveContactsQueueCampaignHopperFinal','VoiceQueue','into','cm_hopper'];(function(_0x1969a7,_0x5a133a){var _0x3d665f=function(_0x39c64b){while(--_0x39c64b){_0x1969a7['push'](_0x1969a7['shift']());}};_0x3d665f(++_0x5a133a);}(_0x684c,0x1b3));var _0xc684=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x684c[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0xc684('0x0'));var emlformat=require(_0xc684('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xc684('0x2'));var jsonpatch=require(_0xc684('0x3'));var rp=require(_0xc684('0x4'));var moment=require(_0xc684('0x5'));var BPromise=require(_0xc684('0x6'));var Mustache=require('mustache');var util=require(_0xc684('0x7'));var path=require(_0xc684('0x8'));var sox=require(_0xc684('0x9'));var csv=require(_0xc684('0xa'));var ejs=require(_0xc684('0xb'));var fs=require('fs');var _=require(_0xc684('0xc'));var squel=require(_0xc684('0xd'));var crypto=require(_0xc684('0xe'));var jsforce=require(_0xc684('0xf'));var deskjs=require(_0xc684('0x10'));var toCsv=require(_0xc684('0xa'));var querystring=require(_0xc684('0x11'));var Papa=require(_0xc684('0x12'));var Redis=require(_0xc684('0x13'));var authService=require(_0xc684('0x14'));var qs=require(_0xc684('0x15'));var as=require(_0xc684('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc684('0x17'))(_0xc684('0x18'));var utils=require(_0xc684('0x19'));var config=require(_0xc684('0x1a'));var licenseUtil=require(_0xc684('0x1b'));var db=require(_0xc684('0x1c'))['db'];function respondWithStatusCode(_0x4f3ff9,_0x3004a6){_0x3004a6=_0x3004a6||0xcc;return function(_0x10cc25){if(_0x10cc25){return _0x4f3ff9['sendStatus'](_0x3004a6);}return _0x4f3ff9['status'](_0x3004a6)[_0xc684('0x1d')]();};}function respondWithResult(_0x34cfd7,_0x32d5da){_0x32d5da=_0x32d5da||0xc8;return function(_0x2ad4f1){if(_0x2ad4f1){return _0x34cfd7[_0xc684('0x1e')](_0x32d5da)[_0xc684('0x1f')](_0x2ad4f1);}};}function respondWithFilteredResult(_0x4f26f7,_0x56d76f){return function(_0x43235d){if(_0x43235d){var _0x599c93=_0x43235d['count'],_0x4f0ef9=_0x56d76f[_0xc684('0x20')],_0x51f0a8=_0x56d76f[_0xc684('0x20')]+_0x56d76f[_0xc684('0x21')],_0x47a8eb;if(_0x51f0a8>=_0x599c93){_0x51f0a8=_0x599c93;_0x47a8eb=0xc8;}else{_0x47a8eb=0xce;}_0x4f26f7[_0xc684('0x1e')](_0x47a8eb);return _0x4f26f7[_0xc684('0x22')]('Content-Range',_0x4f0ef9+'-'+_0x51f0a8+'/'+_0x599c93)[_0xc684('0x1f')](_0x43235d);}return null;};}function patchUpdates(_0x348d57){return function(_0x4afdd0){try{jsonpatch[_0xc684('0x23')](_0x4afdd0,_0x348d57,!![]);}catch(_0x35ea98){return BPromise[_0xc684('0x24')](_0x35ea98);}return _0x4afdd0['save']();};}function saveUpdates(_0x62c4e5,_0x11a159){return function(_0x1eddc7){if(_0x1eddc7){return _0x1eddc7[_0xc684('0x25')](_0x62c4e5)[_0xc684('0x26')](function(_0x4b7769){return _0x4b7769;});}return null;};}function removeEntity(_0x13d43f,_0x39f39a){return function(_0x1fb8b0){if(_0x1fb8b0){return _0x1fb8b0['destroy']()['then'](function(){_0x13d43f['status'](0xcc)[_0xc684('0x1d')]();});}};}function handleEntityNotFound(_0x15ce5d,_0xd2a943){return function(_0x4c6e46){if(!_0x4c6e46){_0x15ce5d['sendStatus'](0x194);}return _0x4c6e46;};}function handleError(_0x4e68e0,_0x501086){_0x501086=_0x501086||0x1f4;return function(_0x27c7cc){logger[_0xc684('0x27')](_0x27c7cc[_0xc684('0x28')]);if(_0x27c7cc['name']){delete _0x27c7cc[_0xc684('0x29')];}_0x4e68e0['status'](_0x501086)[_0xc684('0x2a')](_0x27c7cc);};}exports[_0xc684('0x2b')]=function(_0x13e09d,_0x49dad1){var _0x1f8e85={},_0x4d9094={},_0x279998={'count':0x0,'rows':[]};var _0x640ca1=_[_0xc684('0x2c')](db[_0xc684('0x2d')]['rawAttributes'],function(_0xc0f77b){return{'name':_0xc0f77b[_0xc684('0x2e')],'type':_0xc0f77b[_0xc684('0x2f')][_0xc684('0x30')]};});_0x4d9094[_0xc684('0x31')]=_[_0xc684('0x2c')](_0x640ca1,_0xc684('0x29'));_0x4d9094[_0xc684('0x32')]=_['keys'](_0x13e09d['query']);_0x4d9094['filters']=_[_0xc684('0x33')](_0x4d9094[_0xc684('0x31')],_0x4d9094['query']);_0x1f8e85['attributes']=_[_0xc684('0x33')](_0x4d9094['model'],qs[_0xc684('0x34')](_0x13e09d[_0xc684('0x32')][_0xc684('0x34')]));_0x1f8e85['attributes']=_0x1f8e85['attributes'][_0xc684('0x35')]?_0x1f8e85[_0xc684('0x36')]:_0x4d9094['model'];if(!_0x13e09d['query'][_0xc684('0x37')](_0xc684('0x38'))){_0x1f8e85[_0xc684('0x21')]=qs[_0xc684('0x21')](_0x13e09d[_0xc684('0x32')][_0xc684('0x21')]);_0x1f8e85['offset']=qs[_0xc684('0x20')](_0x13e09d['query']['offset']);}_0x1f8e85[_0xc684('0x39')]=qs[_0xc684('0x3a')](_0x13e09d['query']['sort']);_0x1f8e85[_0xc684('0x3b')]=qs[_0xc684('0x3c')](_[_0xc684('0x3d')](_0x13e09d[_0xc684('0x32')],_0x4d9094[_0xc684('0x3c')]),_0x640ca1);if(_0x13e09d['query'][_0xc684('0x3e')]){_0x1f8e85[_0xc684('0x3b')]=_['merge'](_0x1f8e85['where'],{'$or':_[_0xc684('0x2c')](_0x640ca1,function(_0x139972){if(_0x139972[_0xc684('0x2f')]!==_0xc684('0x3f')){var _0xd2f862={};_0xd2f862[_0x139972[_0xc684('0x29')]]={'$like':'%'+_0x13e09d[_0xc684('0x32')]['filter']+'%'};return _0xd2f862;}})});}_0x1f8e85=_['merge']({},_0x1f8e85,_0x13e09d[_0xc684('0x40')]);var _0x1a863f={'where':_0x1f8e85['where']};return db['CmHopperFinal']['count'](_0x1a863f)[_0xc684('0x26')](function(_0x4a9320){_0x279998[_0xc684('0x41')]=_0x4a9320;if(_0x13e09d[_0xc684('0x32')][_0xc684('0x42')]){_0x1f8e85['include']=[{'all':!![]}];}return db[_0xc684('0x2d')]['findAll'](_0x1f8e85);})[_0xc684('0x26')](function(_0x1cad26){_0x279998[_0xc684('0x43')]=_0x1cad26;return _0x279998;})[_0xc684('0x26')](respondWithFilteredResult(_0x49dad1,_0x1f8e85))['catch'](handleError(_0x49dad1,null));};exports[_0xc684('0x44')]=function(_0x448241,_0xd9eae7){var _0x232a86={'raw':!![],'where':{'id':_0x448241[_0xc684('0x45')]['id']}},_0x1497c2={};_0x1497c2['model']=_[_0xc684('0x46')](db['CmHopperFinal']['rawAttributes']);_0x1497c2[_0xc684('0x32')]=_[_0xc684('0x46')](_0x448241[_0xc684('0x32')]);_0x1497c2['filters']=_['intersection'](_0x1497c2['model'],_0x1497c2['query']);_0x232a86['attributes']=_[_0xc684('0x33')](_0x1497c2[_0xc684('0x31')],qs[_0xc684('0x34')](_0x448241['query'][_0xc684('0x34')]));_0x232a86['attributes']=_0x232a86[_0xc684('0x36')]['length']?_0x232a86[_0xc684('0x36')]:_0x1497c2[_0xc684('0x31')];if(_0x448241[_0xc684('0x32')][_0xc684('0x42')]){_0x232a86[_0xc684('0x47')]=[{'all':!![]}];}_0x232a86=_['merge']({},_0x232a86,_0x448241[_0xc684('0x40')]);return db[_0xc684('0x2d')][_0xc684('0x48')](_0x232a86)[_0xc684('0x26')](handleEntityNotFound(_0xd9eae7,null))[_0xc684('0x26')](respondWithResult(_0xd9eae7,null))[_0xc684('0x49')](handleError(_0xd9eae7,null));};exports[_0xc684('0x4a')]=function(_0x837f3e,_0x1bafa8){return db['CmHopperFinal'][_0xc684('0x4a')]()[_0xc684('0x26')](respondWithResult(_0x1bafa8,null))['catch'](handleError(_0x1bafa8,null));};exports[_0xc684('0x25')]=function(_0x4fb1d5,_0x357119){if(_0x4fb1d5['body'][_0xc684('0x4b')]){delete _0x4fb1d5[_0xc684('0x4c')][_0xc684('0x4b')];}return db[_0xc684('0x2d')][_0xc684('0x48')]({'where':{'uniqueid':_0x4fb1d5[_0xc684('0x45')]['id']}})[_0xc684('0x26')](handleEntityNotFound(_0x357119,null))[_0xc684('0x26')](saveUpdates(_0x4fb1d5[_0xc684('0x4c')],null))[_0xc684('0x26')](respondWithResult(_0x357119,null))['catch'](handleError(_0x357119,null));};exports[_0xc684('0x4d')]=function(_0x3c5a89,_0x5ca9da,_0x546c35){return db['CmHopperFinal'][_0xc684('0x4e')]({'raw':![],'where':{'VoiceQueueId':_0x3c5a89[_0xc684('0x45')]['id']},'attributes':[[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')]['literal'](_0xc684('0x51')))),_0xc684('0x52')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db['sequelize'][_0xc684('0x53')](_0xc684('0x54')))),'noAnswerContacts'],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')]('`state`\x20=\x205,\x201,\x20null'))),_0xc684('0x55')],[db['sequelize']['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x56')))),_0xc684('0x57')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db['sequelize']['literal'](_0xc684('0x58')))),'dropContacts'],[db[_0xc684('0x4f')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x59')))),_0xc684('0x5a')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db['sequelize']['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x5b')))),'reCallContacts'],[db[_0xc684('0x4f')]['fn']('COUNT',db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')]('`state`\x20=\x2019,\x201,\x20null'))),_0xc684('0x5c')]]})[_0xc684('0x26')](handleEntityNotFound(_0x5ca9da,null))['then'](respondWithResult(_0x5ca9da,null))[_0xc684('0x49')](handleError(_0x5ca9da,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x205f67,_0x6af821,_0x5e0367){return db[_0xc684('0x2d')]['findAll']({'raw':![],'where':{'CampaignId':_0x205f67[_0xc684('0x45')]['id']},'attributes':[[db['sequelize']['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x51')))),'noSuchContacts'],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x54')))),_0xc684('0x5d')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x5e')))),_0xc684('0x55')],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xc684('0x4f')]['literal'](_0xc684('0x56')))),_0xc684('0x57')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db['sequelize'][_0xc684('0x53')](_0xc684('0x58')))),_0xc684('0x5f')],[db['sequelize']['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')](_0xc684('0x5b')))),_0xc684('0x60')],[db[_0xc684('0x4f')]['fn'](_0xc684('0x50'),db[_0xc684('0x4f')]['fn']('IF',db[_0xc684('0x4f')][_0xc684('0x53')]('`state`\x20=\x2019,\x201,\x20null'))),_0xc684('0x5c')]]})['then'](handleEntityNotFound(_0x6af821,null))['then'](respondWithResult(_0x6af821,null))[_0xc684('0x49')](handleError(_0x6af821,null));};exports[_0xc684('0x61')]=function(_0x4f8a2c,_0x3b6ae9,_0x367639){return db[_0xc684('0x62')][_0xc684('0x48')]({'where':{'id':_0x4f8a2c[_0xc684('0x45')]['id']}})['then'](handleEntityNotFound(_0x3b6ae9,null))[_0xc684('0x26')](function(_0x4e9230){var _0x21e6f5;if(_0x4e9230){_0x21e6f5=squel['insert']()[_0xc684('0x63')](_0xc684('0x64'))[_0xc684('0x65')]([_0xc684('0x66'),_0xc684('0x67'),'ContactId','ListId',_0xc684('0x68'),_0xc684('0x69'),_0xc684('0x6a')],squel['select']()[_0xc684('0x6b')]('ANY_VALUE(calleridnum)',_0xc684('0x66'))[_0xc684('0x6b')](_0xc684('0x6c'),_0xc684('0x67'))['field'](_0xc684('0x6d'),_0xc684('0x6e'))['field']('ANY_VALUE(ListId)','ListId')[_0xc684('0x6b')](_0xc684('0x6f'),_0xc684('0x68'))['field']('NOW()',_0xc684('0x69'))[_0xc684('0x6b')](_0xc684('0x6c'),_0xc684('0x6a'))[_0xc684('0x70')](_0xc684('0x71'))['where'](_0xc684('0x72'),_0x4f8a2c[_0xc684('0x45')]['id'][_0xc684('0x73')]())[_0xc684('0x3b')](_0xc684('0x74'),_0x4f8a2c[_0xc684('0x4c')][_0xc684('0x75')]['toString']())[_0xc684('0x3b')](_0xc684('0x76'))[_0xc684('0x3b')](_0xc684('0x77'),squel[_0xc684('0x78')]()[_0xc684('0x6b')](_0xc684('0x66'))['from'](_0xc684('0x64'))['where']('VoiceQueueId\x20=\x20?',_0x4f8a2c[_0xc684('0x45')]['id']['toString']()))[_0xc684('0x3b')](_0xc684('0x77'),squel['select']()[_0xc684('0x6b')](_0xc684('0x79'))[_0xc684('0x70')](_0xc684('0x71'))['where'](_0xc684('0x72'),_0x4f8a2c[_0xc684('0x45')]['id'][_0xc684('0x73')]())[_0xc684('0x3b')](_0xc684('0x7a')))['group'](_0xc684('0x6e')))['toString']();return db[_0xc684('0x4f')][_0xc684('0x32')](_0x21e6f5);}return[];})['then'](respondWithResult(_0x3b6ae9,null))['catch'](handleError(_0x3b6ae9,null));};exports[_0xc684('0x7b')]=function(_0x157c46,_0x5678f0,_0x5d4d36){return db[_0xc684('0x7c')][_0xc684('0x48')]({'where':{'id':_0x157c46[_0xc684('0x45')]['id']}})['then'](handleEntityNotFound(_0x5678f0,null))[_0xc684('0x26')](function(_0x5383b2){var _0x180531;if(_0x5383b2){_0x180531=squel[_0xc684('0x7d')]()[_0xc684('0x63')](_0xc684('0x64'))[_0xc684('0x65')](['phone',_0xc684('0x67'),_0xc684('0x6e'),_0xc684('0x7e'),'CampaignId',_0xc684('0x69'),_0xc684('0x6a')],squel[_0xc684('0x78')]()[_0xc684('0x6b')](_0xc684('0x7f'),'phone')[_0xc684('0x6b')](_0xc684('0x6c'),_0xc684('0x67'))[_0xc684('0x6b')](_0xc684('0x6d'),_0xc684('0x6e'))[_0xc684('0x6b')](_0xc684('0x80'),_0xc684('0x7e'))['field'](_0xc684('0x81'),_0xc684('0x82'))[_0xc684('0x6b')](_0xc684('0x6c'),_0xc684('0x69'))[_0xc684('0x6b')](_0xc684('0x6c'),_0xc684('0x6a'))[_0xc684('0x70')](_0xc684('0x71'))['where'](_0xc684('0x83'),_0x157c46[_0xc684('0x45')]['id'][_0xc684('0x73')]())[_0xc684('0x3b')](_0xc684('0x74'),_0x157c46[_0xc684('0x4c')][_0xc684('0x75')]['toString']())['where'](_0xc684('0x76'))[_0xc684('0x3b')](_0xc684('0x77'),squel[_0xc684('0x78')]()[_0xc684('0x6b')]('phone')[_0xc684('0x70')](_0xc684('0x64'))[_0xc684('0x3b')]('CampaignId\x20=\x20?',_0x157c46[_0xc684('0x45')]['id'][_0xc684('0x73')]()))['where'](_0xc684('0x77'),squel[_0xc684('0x78')]()[_0xc684('0x6b')](_0xc684('0x79'))[_0xc684('0x70')]('cm_hopper_final')[_0xc684('0x3b')]('CampaignId\x20=\x20?',_0x157c46[_0xc684('0x45')]['id'][_0xc684('0x73')]())['where'](_0xc684('0x7a')))[_0xc684('0x84')](_0xc684('0x6e')))[_0xc684('0x73')]();return db[_0xc684('0x4f')][_0xc684('0x32')](_0x180531);}return[];})[_0xc684('0x26')](respondWithResult(_0x5678f0,null))[_0xc684('0x49')](handleError(_0x5678f0,null));};exports[_0xc684('0x85')]=function(_0x5c8fe7,_0x359e89,_0x57fc23){return db['CmHopper']['findOne']({'where':{'VoiceQueueId':_0x5c8fe7[_0xc684('0x4c')]['VoiceQueueId'],'CampaignId':_0x5c8fe7[_0xc684('0x4c')][_0xc684('0x82')],'ContactId':_0x5c8fe7['body'][_0xc684('0x6e')]}})['then'](handleEntityNotFound(_0x359e89,null))[_0xc684('0x26')](function(_0x3273a6){if(_0x3273a6){return _0x3273a6;}return null;})['then'](respondWithResult(_0x359e89,null))[_0xc684('0x49')](handleError(_0x359e89,null));};