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 _0xaf80=['to-csv','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','CmHopperFinal','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','count','include','show','catch','describe','body','uniqueid','find','params','countContactsQueueCampaignHopperFinal','findAll','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','noSuchContacts','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','reCallContacts','moveContactsQueueCampaignHopperFinal','insert','cm_hopper','fromQuery','phone','scheduledAt','ContactId','ListId','VoiceQueueId','createdAt','select','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','updatedAt','from','cm_hopper_final','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','VoiceQueueId\x20=\x20?','state\x20=\x204','group','toString','moveContactsIvrCampaignHopperFinal','into','CampaignId','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','state','CmHopper','findOne','html-pdf','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox'];(function(_0x269ee8,_0x477226){var _0x4d98bd=function(_0x20d4c4){while(--_0x20d4c4){_0x269ee8['push'](_0x269ee8['shift']());}};_0x4d98bd(++_0x477226);}(_0xaf80,0x1ef));var _0x0af8=function(_0x3fe83a,_0x1bfedb){_0x3fe83a=_0x3fe83a-0x0;var _0x1dcf80=_0xaf80[_0x3fe83a];return _0x1dcf80;};'use strict';var pdf=require(_0x0af8('0x0'));var emlformat=require(_0x0af8('0x1'));var rimraf=require(_0x0af8('0x2'));var zipdir=require(_0x0af8('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0af8('0x4'));var Mustache=require(_0x0af8('0x5'));var util=require(_0x0af8('0x6'));var path=require(_0x0af8('0x7'));var sox=require(_0x0af8('0x8'));var csv=require(_0x0af8('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x0af8('0xa'));var crypto=require('crypto');var jsforce=require(_0x0af8('0xb'));var deskjs=require(_0x0af8('0xc'));var toCsv=require(_0x0af8('0x9'));var querystring=require('querystring');var Papa=require(_0x0af8('0xd'));var Redis=require(_0x0af8('0xe'));var authService=require(_0x0af8('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0af8('0x10'));var logger=require(_0x0af8('0x11'))(_0x0af8('0x12'));var utils=require(_0x0af8('0x13'));var config=require(_0x0af8('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x0af8('0x15'))['db'];function respondWithStatusCode(_0x2d5892,_0x465135){_0x465135=_0x465135||0xcc;return function(_0x31d390){if(_0x31d390){return _0x2d5892[_0x0af8('0x16')](_0x465135);}return _0x2d5892[_0x0af8('0x17')](_0x465135)[_0x0af8('0x18')]();};}function respondWithResult(_0x58a9a8,_0x58ef18){_0x58ef18=_0x58ef18||0xc8;return function(_0x420432){if(_0x420432){return _0x58a9a8[_0x0af8('0x17')](_0x58ef18)[_0x0af8('0x19')](_0x420432);}};}function respondWithFilteredResult(_0x216f0b,_0x2a42a4){return function(_0x1997b8){if(_0x1997b8){var _0x4755cb=_0x1997b8['count'],_0x325b4c=_0x2a42a4[_0x0af8('0x1a')],_0x50d5ba=_0x2a42a4[_0x0af8('0x1a')]+_0x2a42a4['limit'],_0x5f4275;if(_0x50d5ba>=_0x4755cb){_0x50d5ba=_0x4755cb;_0x5f4275=0xc8;}else{_0x5f4275=0xce;}_0x216f0b[_0x0af8('0x17')](_0x5f4275);return _0x216f0b[_0x0af8('0x1b')](_0x0af8('0x1c'),_0x325b4c+'-'+_0x50d5ba+'/'+_0x4755cb)['json'](_0x1997b8);}return null;};}function patchUpdates(_0x5b5d71){return function(_0x50b8fa){try{jsonpatch[_0x0af8('0x1d')](_0x50b8fa,_0x5b5d71,!![]);}catch(_0x1eb805){return BPromise['reject'](_0x1eb805);}return _0x50b8fa[_0x0af8('0x1e')]();};}function saveUpdates(_0x4891e6,_0x5cbf28){return function(_0x40384f){if(_0x40384f){return _0x40384f[_0x0af8('0x1f')](_0x4891e6)[_0x0af8('0x20')](function(_0x5c0dd1){return _0x5c0dd1;});}return null;};}function removeEntity(_0x162e95,_0x52778f){return function(_0x592523){if(_0x592523){return _0x592523[_0x0af8('0x21')]()[_0x0af8('0x20')](function(){_0x162e95[_0x0af8('0x17')](0xcc)[_0x0af8('0x18')]();});}};}function handleEntityNotFound(_0x320d0c,_0x404b25){return function(_0x1b046b){if(!_0x1b046b){_0x320d0c[_0x0af8('0x16')](0x194);}return _0x1b046b;};}function handleError(_0x57e0a9,_0x55e1ee){_0x55e1ee=_0x55e1ee||0x1f4;return function(_0x1c6306){logger[_0x0af8('0x22')](_0x1c6306[_0x0af8('0x23')]);if(_0x1c6306[_0x0af8('0x24')]){delete _0x1c6306['name'];}_0x57e0a9['status'](_0x55e1ee)[_0x0af8('0x25')](_0x1c6306);};}exports[_0x0af8('0x26')]=function(_0x23a102,_0x140104){var _0x2e8853={},_0x410216={},_0x318476={'count':0x0,'rows':[]};var _0x4c1b0b=_[_0x0af8('0x27')](db[_0x0af8('0x28')][_0x0af8('0x29')],function(_0x20eab4){return{'name':_0x20eab4[_0x0af8('0x2a')],'type':_0x20eab4[_0x0af8('0x2b')][_0x0af8('0x2c')]};});_0x410216[_0x0af8('0x2d')]=_[_0x0af8('0x27')](_0x4c1b0b,_0x0af8('0x24'));_0x410216[_0x0af8('0x2e')]=_['keys'](_0x23a102[_0x0af8('0x2e')]);_0x410216['filters']=_[_0x0af8('0x2f')](_0x410216['model'],_0x410216[_0x0af8('0x2e')]);_0x2e8853[_0x0af8('0x30')]=_['intersection'](_0x410216[_0x0af8('0x2d')],qs[_0x0af8('0x31')](_0x23a102[_0x0af8('0x2e')]['fields']));_0x2e8853[_0x0af8('0x30')]=_0x2e8853[_0x0af8('0x30')][_0x0af8('0x32')]?_0x2e8853['attributes']:_0x410216[_0x0af8('0x2d')];if(!_0x23a102[_0x0af8('0x2e')][_0x0af8('0x33')](_0x0af8('0x34'))){_0x2e8853[_0x0af8('0x35')]=qs[_0x0af8('0x35')](_0x23a102['query'][_0x0af8('0x35')]);_0x2e8853[_0x0af8('0x1a')]=qs[_0x0af8('0x1a')](_0x23a102[_0x0af8('0x2e')][_0x0af8('0x1a')]);}_0x2e8853[_0x0af8('0x36')]=qs[_0x0af8('0x37')](_0x23a102[_0x0af8('0x2e')][_0x0af8('0x37')]);_0x2e8853[_0x0af8('0x38')]=qs[_0x0af8('0x39')](_[_0x0af8('0x3a')](_0x23a102['query'],_0x410216[_0x0af8('0x39')]),_0x4c1b0b);if(_0x23a102[_0x0af8('0x2e')][_0x0af8('0x3b')]){_0x2e8853[_0x0af8('0x38')]=_[_0x0af8('0x3c')](_0x2e8853[_0x0af8('0x38')],{'$or':_[_0x0af8('0x27')](_0x4c1b0b,function(_0x5e971f){if(_0x5e971f[_0x0af8('0x2b')]!==_0x0af8('0x3d')){var _0x268a31={};_0x268a31[_0x5e971f['name']]={'$like':'%'+_0x23a102[_0x0af8('0x2e')][_0x0af8('0x3b')]+'%'};return _0x268a31;}})});}_0x2e8853=_[_0x0af8('0x3c')]({},_0x2e8853,_0x23a102['options']);var _0x6781fe={'where':_0x2e8853[_0x0af8('0x38')]};return db[_0x0af8('0x28')][_0x0af8('0x3e')](_0x6781fe)[_0x0af8('0x20')](function(_0x2cc173){_0x318476[_0x0af8('0x3e')]=_0x2cc173;if(_0x23a102['query']['includeAll']){_0x2e8853[_0x0af8('0x3f')]=[{'all':!![]}];}return db[_0x0af8('0x28')]['findAll'](_0x2e8853);})[_0x0af8('0x20')](function(_0x4486b8){_0x318476['rows']=_0x4486b8;return _0x318476;})[_0x0af8('0x20')](respondWithFilteredResult(_0x140104,_0x2e8853))['catch'](handleError(_0x140104,null));};exports[_0x0af8('0x40')]=function(_0x92e031,_0x510bec){var _0x36c2fa={'raw':!![],'where':{'id':_0x92e031['params']['id']}},_0x3fefbc={};_0x3fefbc[_0x0af8('0x2d')]=_['keys'](db[_0x0af8('0x28')][_0x0af8('0x29')]);_0x3fefbc[_0x0af8('0x2e')]=_['keys'](_0x92e031['query']);_0x3fefbc[_0x0af8('0x39')]=_[_0x0af8('0x2f')](_0x3fefbc[_0x0af8('0x2d')],_0x3fefbc[_0x0af8('0x2e')]);_0x36c2fa['attributes']=_[_0x0af8('0x2f')](_0x3fefbc[_0x0af8('0x2d')],qs[_0x0af8('0x31')](_0x92e031['query'][_0x0af8('0x31')]));_0x36c2fa[_0x0af8('0x30')]=_0x36c2fa['attributes'][_0x0af8('0x32')]?_0x36c2fa['attributes']:_0x3fefbc[_0x0af8('0x2d')];if(_0x92e031['query']['includeAll']){_0x36c2fa['include']=[{'all':!![]}];}_0x36c2fa=_[_0x0af8('0x3c')]({},_0x36c2fa,_0x92e031['options']);return db[_0x0af8('0x28')]['find'](_0x36c2fa)[_0x0af8('0x20')](handleEntityNotFound(_0x510bec,null))[_0x0af8('0x20')](respondWithResult(_0x510bec,null))[_0x0af8('0x41')](handleError(_0x510bec,null));};exports[_0x0af8('0x42')]=function(_0x22192b,_0x562f09){return db['CmHopperFinal'][_0x0af8('0x42')]()[_0x0af8('0x20')](respondWithResult(_0x562f09,null))[_0x0af8('0x41')](handleError(_0x562f09,null));};exports[_0x0af8('0x1f')]=function(_0x3d86e2,_0x1b352e){if(_0x3d86e2[_0x0af8('0x43')]['uniqueid']){delete _0x3d86e2['body'][_0x0af8('0x44')];}return db[_0x0af8('0x28')][_0x0af8('0x45')]({'where':{'uniqueid':_0x3d86e2[_0x0af8('0x46')]['id']}})['then'](handleEntityNotFound(_0x1b352e,null))[_0x0af8('0x20')](saveUpdates(_0x3d86e2[_0x0af8('0x43')],null))[_0x0af8('0x20')](respondWithResult(_0x1b352e,null))[_0x0af8('0x41')](handleError(_0x1b352e,null));};exports[_0x0af8('0x47')]=function(_0x4678f8,_0x4e7d6e,_0x2b7ada){return db['CmHopperFinal'][_0x0af8('0x48')]({'raw':![],'where':{'VoiceQueueId':_0x4678f8['params']['id']},'attributes':[[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db['sequelize'][_0x0af8('0x4b')](_0x0af8('0x4c')))),'noSuchContacts'],[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x4d')))),_0x0af8('0x4e')],[db['sequelize']['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db['sequelize']['literal'](_0x0af8('0x4f')))),_0x0af8('0x50')],[db['sequelize']['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db['sequelize'][_0x0af8('0x4b')]('`state`\x20=\x208,\x201,\x20null'))),'congestionContacts'],[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db['sequelize']['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x0af8('0x51')],[db['sequelize']['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db['sequelize']['literal'](_0x0af8('0x52')))),_0x0af8('0x53')],[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db['sequelize']['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x54')))),'reCallContacts'],[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db['sequelize']['fn']('IF',db['sequelize'][_0x0af8('0x4b')](_0x0af8('0x55')))),_0x0af8('0x56')]]})['then'](handleEntityNotFound(_0x4e7d6e,null))[_0x0af8('0x20')](respondWithResult(_0x4e7d6e,null))[_0x0af8('0x41')](handleError(_0x4e7d6e,null));};exports[_0x0af8('0x57')]=function(_0x1922a0,_0x109e4c,_0x5c3ab9){return db[_0x0af8('0x28')]['findAll']({'raw':![],'where':{'CampaignId':_0x1922a0[_0x0af8('0x46')]['id']},'attributes':[[db['sequelize']['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x4c')))),_0x0af8('0x58')],[db[_0x0af8('0x49')]['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db['sequelize'][_0x0af8('0x4b')](_0x0af8('0x4d')))),_0x0af8('0x4e')],[db['sequelize']['fn']('COUNT',db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x4f')))),_0x0af8('0x50')],[db[_0x0af8('0x49')]['fn']('COUNT',db[_0x0af8('0x49')]['fn']('IF',db['sequelize'][_0x0af8('0x4b')](_0x0af8('0x59')))),'congestionContacts'],[db['sequelize']['fn']('COUNT',db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x5a')))),_0x0af8('0x51')],[db[_0x0af8('0x49')]['fn']('COUNT',db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x0af8('0x53')],[db[_0x0af8('0x49')]['fn']('COUNT',db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')](_0x0af8('0x54')))),_0x0af8('0x5b')],[db['sequelize']['fn'](_0x0af8('0x4a'),db[_0x0af8('0x49')]['fn']('IF',db[_0x0af8('0x49')][_0x0af8('0x4b')]('`state`\x20=\x2019,\x201,\x20null'))),'answeringMachine']]})['then'](handleEntityNotFound(_0x109e4c,null))['then'](respondWithResult(_0x109e4c,null))[_0x0af8('0x41')](handleError(_0x109e4c,null));};exports[_0x0af8('0x5c')]=function(_0x2c2dcb,_0x4d183f,_0x5a1cc1){return db['VoiceQueue']['find']({'where':{'id':_0x2c2dcb[_0x0af8('0x46')]['id']}})['then'](handleEntityNotFound(_0x4d183f,null))[_0x0af8('0x20')](function(_0x2a0a73){var _0x12069a;if(_0x2a0a73){_0x12069a=squel[_0x0af8('0x5d')]()['into'](_0x0af8('0x5e'))[_0x0af8('0x5f')]([_0x0af8('0x60'),_0x0af8('0x61'),_0x0af8('0x62'),_0x0af8('0x63'),_0x0af8('0x64'),_0x0af8('0x65'),'updatedAt'],squel[_0x0af8('0x66')]()[_0x0af8('0x67')](_0x0af8('0x68'),_0x0af8('0x60'))['field'](_0x0af8('0x69'),_0x0af8('0x61'))[_0x0af8('0x67')](_0x0af8('0x6a'),'ContactId')['field'](_0x0af8('0x6b'),_0x0af8('0x63'))[_0x0af8('0x67')](_0x0af8('0x6c'),_0x0af8('0x64'))[_0x0af8('0x67')](_0x0af8('0x69'),_0x0af8('0x65'))[_0x0af8('0x67')](_0x0af8('0x69'),_0x0af8('0x6d'))[_0x0af8('0x6e')](_0x0af8('0x6f'))[_0x0af8('0x38')]('VoiceQueueId\x20=\x20?',_0x2c2dcb[_0x0af8('0x46')]['id']['toString']())['where']('state\x20=\x20?',_0x2c2dcb[_0x0af8('0x43')]['state']['toString']())['where'](_0x0af8('0x70'))[_0x0af8('0x38')](_0x0af8('0x71'),squel[_0x0af8('0x66')]()[_0x0af8('0x67')](_0x0af8('0x60'))['from'](_0x0af8('0x5e'))['where'](_0x0af8('0x72'),_0x2c2dcb[_0x0af8('0x46')]['id']['toString']()))['where'](_0x0af8('0x71'),squel[_0x0af8('0x66')]()[_0x0af8('0x67')]('calleridnum')['from']('cm_hopper_final')['where'](_0x0af8('0x72'),_0x2c2dcb[_0x0af8('0x46')]['id']['toString']())[_0x0af8('0x38')](_0x0af8('0x73')))[_0x0af8('0x74')]('ContactId'))[_0x0af8('0x75')]();return db[_0x0af8('0x49')][_0x0af8('0x2e')](_0x12069a);}return[];})[_0x0af8('0x20')](respondWithResult(_0x4d183f,null))[_0x0af8('0x41')](handleError(_0x4d183f,null));};exports[_0x0af8('0x76')]=function(_0x342dc8,_0x49e606,_0x22976b){return db['Campaign']['find']({'where':{'id':_0x342dc8[_0x0af8('0x46')]['id']}})[_0x0af8('0x20')](handleEntityNotFound(_0x49e606,null))[_0x0af8('0x20')](function(_0x32b480){var _0x29a8ed;if(_0x32b480){_0x29a8ed=squel[_0x0af8('0x5d')]()[_0x0af8('0x77')](_0x0af8('0x5e'))[_0x0af8('0x5f')]([_0x0af8('0x60'),'scheduledAt',_0x0af8('0x62'),_0x0af8('0x63'),_0x0af8('0x78'),_0x0af8('0x65'),_0x0af8('0x6d')],squel['select']()[_0x0af8('0x67')](_0x0af8('0x68'),_0x0af8('0x60'))[_0x0af8('0x67')](_0x0af8('0x69'),_0x0af8('0x61'))['field'](_0x0af8('0x6a'),_0x0af8('0x62'))[_0x0af8('0x67')](_0x0af8('0x6b'),_0x0af8('0x63'))[_0x0af8('0x67')](_0x0af8('0x79'),'CampaignId')[_0x0af8('0x67')]('NOW()',_0x0af8('0x65'))[_0x0af8('0x67')](_0x0af8('0x69'),_0x0af8('0x6d'))[_0x0af8('0x6e')](_0x0af8('0x6f'))[_0x0af8('0x38')](_0x0af8('0x7a'),_0x342dc8['params']['id']['toString']())[_0x0af8('0x38')]('state\x20=\x20?',_0x342dc8[_0x0af8('0x43')][_0x0af8('0x7b')][_0x0af8('0x75')]())[_0x0af8('0x38')](_0x0af8('0x70'))[_0x0af8('0x38')](_0x0af8('0x71'),squel['select']()[_0x0af8('0x67')](_0x0af8('0x60'))[_0x0af8('0x6e')]('cm_hopper')[_0x0af8('0x38')](_0x0af8('0x7a'),_0x342dc8[_0x0af8('0x46')]['id']['toString']()))[_0x0af8('0x38')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x0af8('0x66')]()[_0x0af8('0x67')]('calleridnum')['from'](_0x0af8('0x6f'))['where'](_0x0af8('0x7a'),_0x342dc8['params']['id']['toString']())['where'](_0x0af8('0x73')))[_0x0af8('0x74')](_0x0af8('0x62')))['toString']();return db[_0x0af8('0x49')][_0x0af8('0x2e')](_0x29a8ed);}return[];})[_0x0af8('0x20')](respondWithResult(_0x49e606,null))[_0x0af8('0x41')](handleError(_0x49e606,null));};exports['checkContactHopper']=function(_0x53182a,_0x31dee8,_0x6f90df){return db[_0x0af8('0x7c')][_0x0af8('0x7d')]({'where':{'VoiceQueueId':_0x53182a[_0x0af8('0x43')][_0x0af8('0x64')],'CampaignId':_0x53182a[_0x0af8('0x43')][_0x0af8('0x78')],'ContactId':_0x53182a[_0x0af8('0x43')][_0x0af8('0x62')]}})[_0x0af8('0x20')](handleEntityNotFound(_0x31dee8,null))[_0x0af8('0x20')](function(_0x250b7b){if(_0x250b7b){return _0x250b7b;}return null;})[_0x0af8('0x20')](respondWithResult(_0x31dee8,null))[_0x0af8('0x41')](handleError(_0x31dee8,null));};