9658988f95883908f686629d856734d768862ed7
[motion2.git] / server / api / automation / automation.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 _0xde8c=['index','map','Automation','rawAttributes','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','find','create','body','params','addConditions','Condition','ids','omit','getConditions','findOne','order','addActions','Action','getActions','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','Content-Range','save','update','then','destroy','error','name','send'];(function(_0x27fb4c,_0x2141d1){var _0x339a57=function(_0x4539e0){while(--_0x4539e0){_0x27fb4c['push'](_0x27fb4c['shift']());}};_0x339a57(++_0x2141d1);}(_0xde8c,0x7e));var _0xcde8=function(_0x4cbf20,_0x1bfa66){_0x4cbf20=_0x4cbf20-0x0;var _0x582ae4=_0xde8c[_0x4cbf20];return _0x582ae4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcde8('0x0'));var zipdir=require(_0xcde8('0x1'));var jsonpatch=require(_0xcde8('0x2'));var rp=require('request-promise');var moment=require(_0xcde8('0x3'));var BPromise=require(_0xcde8('0x4'));var Mustache=require(_0xcde8('0x5'));var util=require(_0xcde8('0x6'));var path=require(_0xcde8('0x7'));var sox=require('sox');var csv=require(_0xcde8('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcde8('0x9'));var _=require(_0xcde8('0xa'));var squel=require(_0xcde8('0xb'));var crypto=require(_0xcde8('0xc'));var jsforce=require(_0xcde8('0xd'));var deskjs=require(_0xcde8('0xe'));var toCsv=require(_0xcde8('0x8'));var querystring=require(_0xcde8('0xf'));var Papa=require(_0xcde8('0x10'));var Redis=require(_0xcde8('0x11'));var authService=require(_0xcde8('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xcde8('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcde8('0x14'))(_0xcde8('0x15'));var utils=require(_0xcde8('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xcde8('0x17'));var db=require(_0xcde8('0x18'))['db'];function respondWithStatusCode(_0x54deb8,_0x33bd3c){_0x33bd3c=_0x33bd3c||0xcc;return function(_0x501058){if(_0x501058){return _0x54deb8[_0xcde8('0x19')](_0x33bd3c);}return _0x54deb8[_0xcde8('0x1a')](_0x33bd3c)['end']();};}function respondWithResult(_0x3547b5,_0x791435){_0x791435=_0x791435||0xc8;return function(_0x3172a7){if(_0x3172a7){return _0x3547b5[_0xcde8('0x1a')](_0x791435)[_0xcde8('0x1b')](_0x3172a7);}};}function respondWithFilteredResult(_0x1ae18f,_0x78961e){return function(_0x2b56ea){if(_0x2b56ea){var _0x201954=typeof _0x78961e[_0xcde8('0x1c')]===_0xcde8('0x1d')&&typeof _0x78961e[_0xcde8('0x1e')]==='undefined';var _0x9201ad=_0x2b56ea['count'];var _0x229c9d=_0x201954?0x0:_0x78961e[_0xcde8('0x1c')];var _0xffde44=_0x201954?_0x2b56ea['count']:_0x78961e[_0xcde8('0x1c')]+_0x78961e[_0xcde8('0x1e')];var _0x26ed3e;if(_0xffde44>=_0x9201ad){_0xffde44=_0x9201ad;_0x26ed3e=0xc8;}else{_0x26ed3e=0xce;}_0x1ae18f['status'](_0x26ed3e);return _0x1ae18f[_0xcde8('0x1f')](_0xcde8('0x20'),_0x229c9d+'-'+_0xffde44+'/'+_0x9201ad)['json'](_0x2b56ea);}return null;};}function patchUpdates(_0x24e5e9){return function(_0x2abc30){try{jsonpatch['apply'](_0x2abc30,_0x24e5e9,!![]);}catch(_0x36d9b7){return BPromise['reject'](_0x36d9b7);}return _0x2abc30[_0xcde8('0x21')]();};}function saveUpdates(_0x6c9b19,_0x50bb6){return function(_0x484f9a){if(_0x484f9a){return _0x484f9a[_0xcde8('0x22')](_0x6c9b19)[_0xcde8('0x23')](function(_0x442085){return _0x442085;});}return null;};}function removeEntity(_0x4df207,_0x1f56ff){return function(_0x53964c){if(_0x53964c){return _0x53964c[_0xcde8('0x24')]()['then'](function(){_0x4df207[_0xcde8('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39d4c2,_0x12d3a){return function(_0x5d86ab){if(!_0x5d86ab){_0x39d4c2['sendStatus'](0x194);}return _0x5d86ab;};}function handleError(_0x5d8fcc,_0x4f6b68){_0x4f6b68=_0x4f6b68||0x1f4;return function(_0x173ade){logger[_0xcde8('0x25')](_0x173ade['stack']);if(_0x173ade[_0xcde8('0x26')]){delete _0x173ade[_0xcde8('0x26')];}_0x5d8fcc['status'](_0x4f6b68)[_0xcde8('0x27')](_0x173ade);};}exports[_0xcde8('0x28')]=function(_0x22943e,_0x52920e){var _0x55d897={},_0x4a0ba2={},_0x4fff13={'count':0x0,'rows':[]};var _0x169511=_[_0xcde8('0x29')](db[_0xcde8('0x2a')][_0xcde8('0x2b')],function(_0x4fc646){return{'name':_0x4fc646['fieldName'],'type':_0x4fc646['type'][_0xcde8('0x2c')]};});_0x4a0ba2['model']=_[_0xcde8('0x29')](_0x169511,_0xcde8('0x26'));_0x4a0ba2[_0xcde8('0x2d')]=_[_0xcde8('0x2e')](_0x22943e['query']);_0x4a0ba2[_0xcde8('0x2f')]=_[_0xcde8('0x30')](_0x4a0ba2['model'],_0x4a0ba2[_0xcde8('0x2d')]);_0x55d897[_0xcde8('0x31')]=_[_0xcde8('0x30')](_0x4a0ba2[_0xcde8('0x32')],qs['fields'](_0x22943e[_0xcde8('0x2d')][_0xcde8('0x33')]));_0x55d897[_0xcde8('0x31')]=_0x55d897[_0xcde8('0x31')][_0xcde8('0x34')]?_0x55d897[_0xcde8('0x31')]:_0x4a0ba2[_0xcde8('0x32')];if(!_0x22943e[_0xcde8('0x2d')][_0xcde8('0x35')](_0xcde8('0x36'))){_0x55d897[_0xcde8('0x1e')]=qs[_0xcde8('0x1e')](_0x22943e[_0xcde8('0x2d')][_0xcde8('0x1e')]);_0x55d897['offset']=qs[_0xcde8('0x1c')](_0x22943e[_0xcde8('0x2d')][_0xcde8('0x1c')]);}_0x55d897['order']=qs[_0xcde8('0x37')](_0x22943e[_0xcde8('0x2d')][_0xcde8('0x37')]);_0x55d897[_0xcde8('0x38')]=qs[_0xcde8('0x2f')](_[_0xcde8('0x39')](_0x22943e[_0xcde8('0x2d')],_0x4a0ba2[_0xcde8('0x2f')]),_0x169511);if(_0x22943e[_0xcde8('0x2d')][_0xcde8('0x3a')]){_0x55d897[_0xcde8('0x38')]=_[_0xcde8('0x3b')](_0x55d897[_0xcde8('0x38')],{'$or':_[_0xcde8('0x29')](_0x169511,function(_0x52750c){if(_0x52750c['type']!==_0xcde8('0x3c')){var _0x5f05a6={};_0x5f05a6[_0x52750c['name']]={'$like':'%'+_0x22943e[_0xcde8('0x2d')][_0xcde8('0x3a')]+'%'};return _0x5f05a6;}})});}_0x55d897=_['merge']({},_0x55d897,_0x22943e[_0xcde8('0x3d')]);var _0x405f8f={'where':_0x55d897[_0xcde8('0x38')]};return db[_0xcde8('0x2a')]['count'](_0x405f8f)['then'](function(_0x5a5426){_0x4fff13[_0xcde8('0x3e')]=_0x5a5426;if(_0x22943e['query'][_0xcde8('0x3f')]){_0x55d897[_0xcde8('0x40')]=[{'all':!![]}];}return db[_0xcde8('0x2a')][_0xcde8('0x41')](_0x55d897);})['then'](function(_0x4fb3eb){_0x4fff13[_0xcde8('0x42')]=_0x4fb3eb;return _0x4fff13;})[_0xcde8('0x23')](respondWithFilteredResult(_0x52920e,_0x55d897))[_0xcde8('0x43')](handleError(_0x52920e,null));};exports[_0xcde8('0x44')]=function(_0x35088c,_0x54dc7a){var _0x594f45={'raw':![],'where':{'id':_0x35088c['params']['id']}},_0xa40cd7={};_0xa40cd7[_0xcde8('0x32')]=_['keys'](db[_0xcde8('0x2a')]['rawAttributes']);_0xa40cd7[_0xcde8('0x2d')]=_['keys'](_0x35088c[_0xcde8('0x2d')]);_0xa40cd7[_0xcde8('0x2f')]=_[_0xcde8('0x30')](_0xa40cd7[_0xcde8('0x32')],_0xa40cd7[_0xcde8('0x2d')]);_0x594f45[_0xcde8('0x31')]=_[_0xcde8('0x30')](_0xa40cd7[_0xcde8('0x32')],qs[_0xcde8('0x33')](_0x35088c['query'][_0xcde8('0x33')]));_0x594f45[_0xcde8('0x31')]=_0x594f45[_0xcde8('0x31')][_0xcde8('0x34')]?_0x594f45[_0xcde8('0x31')]:_0xa40cd7[_0xcde8('0x32')];if(_0x35088c[_0xcde8('0x2d')][_0xcde8('0x3f')]){_0x594f45['include']=[{'all':!![]}];}_0x594f45=_[_0xcde8('0x3b')]({},_0x594f45,_0x35088c[_0xcde8('0x3d')]);return db[_0xcde8('0x2a')][_0xcde8('0x45')](_0x594f45)[_0xcde8('0x23')](handleEntityNotFound(_0x54dc7a,null))['then'](respondWithResult(_0x54dc7a,null))[_0xcde8('0x43')](handleError(_0x54dc7a,null));};exports[_0xcde8('0x46')]=function(_0x464263,_0x5ac0bf){return db['Automation'][_0xcde8('0x46')](_0x464263[_0xcde8('0x47')],{})[_0xcde8('0x23')](respondWithResult(_0x5ac0bf,0xc9))['catch'](handleError(_0x5ac0bf,null));};exports['update']=function(_0x205805,_0x1268e8){if(_0x205805['body']['id']){delete _0x205805[_0xcde8('0x47')]['id'];}return db[_0xcde8('0x2a')]['find']({'where':{'id':_0x205805[_0xcde8('0x48')]['id']}})['then'](handleEntityNotFound(_0x1268e8,null))[_0xcde8('0x23')](saveUpdates(_0x205805['body'],null))['then'](respondWithResult(_0x1268e8,null))[_0xcde8('0x43')](handleError(_0x1268e8,null));};exports[_0xcde8('0x24')]=function(_0x1bcf82,_0xd2878c){return db['Automation'][_0xcde8('0x45')]({'where':{'id':_0x1bcf82['params']['id']}})[_0xcde8('0x23')](handleEntityNotFound(_0xd2878c,null))[_0xcde8('0x23')](removeEntity(_0xd2878c,null))[_0xcde8('0x43')](handleError(_0xd2878c,null));};exports[_0xcde8('0x49')]=function(_0x48f19f,_0x467ab4,_0x37f448){return db[_0xcde8('0x4a')][_0xcde8('0x45')]({'where':{'id':_0x48f19f[_0xcde8('0x48')]['id']}})['then'](handleEntityNotFound(_0x467ab4,null))[_0xcde8('0x23')](function(_0x3abeaf){if(_0x3abeaf){return _0x3abeaf[_0xcde8('0x49')](_0x48f19f[_0xcde8('0x47')][_0xcde8('0x4b')],_[_0xcde8('0x4c')](_0x48f19f[_0xcde8('0x47')],[_0xcde8('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x467ab4,null))['catch'](handleError(_0x467ab4,null));};exports[_0xcde8('0x4d')]=function(_0x2ce2b6,_0x3996e8,_0x4a4728){var _0x11311d={};var _0x38b9c1={};var _0x56b541;var _0x320123;return db['Automation'][_0xcde8('0x4e')]({'where':{'id':_0x2ce2b6[_0xcde8('0x48')]['id']}})['then'](handleEntityNotFound(_0x3996e8,null))[_0xcde8('0x23')](function(_0x134d3f){if(_0x134d3f){_0x56b541=_0x134d3f;_0x38b9c1[_0xcde8('0x32')]=_[_0xcde8('0x2e')](db[_0xcde8('0x4a')][_0xcde8('0x2b')]);_0x38b9c1[_0xcde8('0x2d')]=_[_0xcde8('0x2e')](_0x2ce2b6[_0xcde8('0x2d')]);_0x38b9c1[_0xcde8('0x2f')]=_[_0xcde8('0x30')](_0x38b9c1[_0xcde8('0x32')],_0x38b9c1['query']);_0x11311d[_0xcde8('0x31')]=_[_0xcde8('0x30')](_0x38b9c1['model'],qs[_0xcde8('0x33')](_0x2ce2b6[_0xcde8('0x2d')]['fields']));_0x11311d[_0xcde8('0x31')]=_0x11311d['attributes'][_0xcde8('0x34')]?_0x11311d[_0xcde8('0x31')]:_0x38b9c1[_0xcde8('0x32')];_0x11311d[_0xcde8('0x4f')]=qs[_0xcde8('0x37')](_0x2ce2b6[_0xcde8('0x2d')][_0xcde8('0x37')]);_0x11311d[_0xcde8('0x38')]=qs[_0xcde8('0x2f')](_['pick'](_0x2ce2b6[_0xcde8('0x2d')],_0x38b9c1[_0xcde8('0x2f')]));if(_0x2ce2b6[_0xcde8('0x2d')][_0xcde8('0x3a')]){_0x11311d[_0xcde8('0x38')]=_[_0xcde8('0x3b')](_0x11311d[_0xcde8('0x38')],{'$or':_[_0xcde8('0x29')](_0x11311d[_0xcde8('0x31')],function(_0x3c7620){var _0x2a0b8e={};_0x2a0b8e[_0x3c7620]={'$like':'%'+_0x2ce2b6[_0xcde8('0x2d')]['filter']+'%'};return _0x2a0b8e;})});}_0x11311d=_['merge']({},_0x11311d,_0x2ce2b6[_0xcde8('0x3d')]);return _0x56b541[_0xcde8('0x4d')](_0x11311d);}})[_0xcde8('0x23')](function(_0x31ed13){if(_0x31ed13){_0x320123=_0x31ed13[_0xcde8('0x34')];if(!_0x2ce2b6[_0xcde8('0x2d')][_0xcde8('0x35')](_0xcde8('0x36'))){_0x11311d[_0xcde8('0x1e')]=qs[_0xcde8('0x1e')](_0x2ce2b6[_0xcde8('0x2d')][_0xcde8('0x1e')]);_0x11311d[_0xcde8('0x1c')]=qs['offset'](_0x2ce2b6[_0xcde8('0x2d')][_0xcde8('0x1c')]);}return _0x56b541['getConditions'](_0x11311d);}})['then'](function(_0x407257){if(_0x407257){return _0x407257?{'count':_0x320123,'rows':_0x407257}:null;}})[_0xcde8('0x23')](respondWithResult(_0x3996e8,null))[_0xcde8('0x43')](handleError(_0x3996e8,null));};exports[_0xcde8('0x50')]=function(_0x592518,_0x5eab8d,_0x55f8f2){return db['Action'][_0xcde8('0x45')]({'where':{'id':_0x592518[_0xcde8('0x48')]['id']}})[_0xcde8('0x23')](handleEntityNotFound(_0x5eab8d,null))[_0xcde8('0x23')](function(_0x335d83){if(_0x335d83){return _0x335d83[_0xcde8('0x50')](_0x592518[_0xcde8('0x47')][_0xcde8('0x4b')],_[_0xcde8('0x4c')](_0x592518[_0xcde8('0x47')],[_0xcde8('0x4b'),'id'])||{});}})[_0xcde8('0x23')](respondWithResult(_0x5eab8d,null))[_0xcde8('0x43')](handleError(_0x5eab8d,null));};exports['getActions']=function(_0x2f9090,_0x5355c1,_0x5cf801){var _0x105041={};var _0x1a5d7f={};var _0x34512b;var _0x34e54c;return db['Automation'][_0xcde8('0x4e')]({'where':{'id':_0x2f9090[_0xcde8('0x48')]['id']}})['then'](handleEntityNotFound(_0x5355c1,null))[_0xcde8('0x23')](function(_0x43cc42){if(_0x43cc42){_0x34512b=_0x43cc42;_0x1a5d7f['model']=_[_0xcde8('0x2e')](db[_0xcde8('0x51')][_0xcde8('0x2b')]);_0x1a5d7f[_0xcde8('0x2d')]=_[_0xcde8('0x2e')](_0x2f9090['query']);_0x1a5d7f[_0xcde8('0x2f')]=_[_0xcde8('0x30')](_0x1a5d7f[_0xcde8('0x32')],_0x1a5d7f[_0xcde8('0x2d')]);_0x105041[_0xcde8('0x31')]=_[_0xcde8('0x30')](_0x1a5d7f['model'],qs[_0xcde8('0x33')](_0x2f9090[_0xcde8('0x2d')][_0xcde8('0x33')]));_0x105041[_0xcde8('0x31')]=_0x105041[_0xcde8('0x31')]['length']?_0x105041[_0xcde8('0x31')]:_0x1a5d7f[_0xcde8('0x32')];_0x105041['order']=qs[_0xcde8('0x37')](_0x2f9090[_0xcde8('0x2d')]['sort']);_0x105041['where']=qs['filters'](_['pick'](_0x2f9090[_0xcde8('0x2d')],_0x1a5d7f['filters']));if(_0x2f9090['query']['filter']){_0x105041[_0xcde8('0x38')]=_[_0xcde8('0x3b')](_0x105041['where'],{'$or':_[_0xcde8('0x29')](_0x105041[_0xcde8('0x31')],function(_0x16bb25){var _0x16948c={};_0x16948c[_0x16bb25]={'$like':'%'+_0x2f9090[_0xcde8('0x2d')][_0xcde8('0x3a')]+'%'};return _0x16948c;})});}_0x105041=_[_0xcde8('0x3b')]({},_0x105041,_0x2f9090[_0xcde8('0x3d')]);return _0x34512b[_0xcde8('0x52')](_0x105041);}})['then'](function(_0x227a3b){if(_0x227a3b){_0x34e54c=_0x227a3b[_0xcde8('0x34')];if(!_0x2f9090[_0xcde8('0x2d')][_0xcde8('0x35')](_0xcde8('0x36'))){_0x105041[_0xcde8('0x1e')]=qs['limit'](_0x2f9090['query']['limit']);_0x105041['offset']=qs[_0xcde8('0x1c')](_0x2f9090[_0xcde8('0x2d')]['offset']);}return _0x34512b[_0xcde8('0x52')](_0x105041);}})['then'](function(_0xd15739){if(_0xd15739){return _0xd15739?{'count':_0x34e54c,'rows':_0xd15739}:null;}})[_0xcde8('0x23')](respondWithResult(_0x5355c1,null))['catch'](handleError(_0x5355c1,null));};