Built motion from commit 85328c08.|2.5.50
[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 _0x00b9=['zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','save','update','then','destroy','error','stack','name','map','rawAttributes','type','key','model','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','Automation','includeAll','include','findAll','catch','show','keys','length','find','create','body','params','addConditions','Condition','ids','omit','getConditions','findOne','pick','addActions','Action','getActions','eml-format'];(function(_0x54616d,_0x3d34c0){var _0x322202=function(_0x3027f5){while(--_0x3027f5){_0x54616d['push'](_0x54616d['shift']());}};_0x322202(++_0x3d34c0);}(_0x00b9,0xef));var _0x900b=function(_0x2691c1,_0x584a6e){_0x2691c1=_0x2691c1-0x0;var _0x11a3ad=_0x00b9[_0x2691c1];return _0x11a3ad;};'use strict';var emlformat=require(_0x900b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x900b('0x1'));var jsonpatch=require(_0x900b('0x2'));var rp=require(_0x900b('0x3'));var moment=require(_0x900b('0x4'));var BPromise=require(_0x900b('0x5'));var Mustache=require('mustache');var util=require(_0x900b('0x6'));var path=require(_0x900b('0x7'));var sox=require(_0x900b('0x8'));var csv=require('to-csv');var ejs=require(_0x900b('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x900b('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x900b('0xb'));var toCsv=require(_0x900b('0xc'));var querystring=require(_0x900b('0xd'));var Papa=require(_0x900b('0xe'));var Redis=require('ioredis');var authService=require(_0x900b('0xf'));var qs=require(_0x900b('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x900b('0x11'));var logger=require(_0x900b('0x12'))(_0x900b('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x900b('0x14'));var db=require(_0x900b('0x15'))['db'];function respondWithStatusCode(_0x351d1a,_0x190341){_0x190341=_0x190341||0xcc;return function(_0x5cc64b){if(_0x5cc64b){return _0x351d1a[_0x900b('0x16')](_0x190341);}return _0x351d1a[_0x900b('0x17')](_0x190341)[_0x900b('0x18')]();};}function respondWithResult(_0x1d3e07,_0x13d5f7){_0x13d5f7=_0x13d5f7||0xc8;return function(_0x233b92){if(_0x233b92){return _0x1d3e07[_0x900b('0x17')](_0x13d5f7)[_0x900b('0x19')](_0x233b92);}};}function respondWithFilteredResult(_0x41019a,_0x2d3d06){return function(_0x106107){if(_0x106107){var _0x187404=typeof _0x2d3d06[_0x900b('0x1a')]===_0x900b('0x1b')&&typeof _0x2d3d06['limit']==='undefined';var _0x4a329a=_0x106107[_0x900b('0x1c')];var _0xd9fd07=_0x187404?0x0:_0x2d3d06[_0x900b('0x1a')];var _0x50b287=_0x187404?_0x106107[_0x900b('0x1c')]:_0x2d3d06[_0x900b('0x1a')]+_0x2d3d06[_0x900b('0x1d')];var _0x29ab8c;if(_0x50b287>=_0x4a329a){_0x50b287=_0x4a329a;_0x29ab8c=0xc8;}else{_0x29ab8c=0xce;}_0x41019a[_0x900b('0x17')](_0x29ab8c);return _0x41019a[_0x900b('0x1e')](_0x900b('0x1f'),_0xd9fd07+'-'+_0x50b287+'/'+_0x4a329a)[_0x900b('0x19')](_0x106107);}return null;};}function patchUpdates(_0x52d137){return function(_0x6cce25){try{jsonpatch['apply'](_0x6cce25,_0x52d137,!![]);}catch(_0x319311){return BPromise['reject'](_0x319311);}return _0x6cce25[_0x900b('0x20')]();};}function saveUpdates(_0xa5bb3c,_0x37b2eb){return function(_0x2c54ac){if(_0x2c54ac){return _0x2c54ac[_0x900b('0x21')](_0xa5bb3c)[_0x900b('0x22')](function(_0x3d827b){return _0x3d827b;});}return null;};}function removeEntity(_0x8fc94c,_0x4e1c1d){return function(_0xe232ac){if(_0xe232ac){return _0xe232ac[_0x900b('0x23')]()['then'](function(){_0x8fc94c[_0x900b('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c2ad6,_0x3e9b5e){return function(_0x154877){if(!_0x154877){_0x5c2ad6[_0x900b('0x16')](0x194);}return _0x154877;};}function handleError(_0x4cb61c,_0x4ee598){_0x4ee598=_0x4ee598||0x1f4;return function(_0x5342a4){logger[_0x900b('0x24')](_0x5342a4[_0x900b('0x25')]);if(_0x5342a4['name']){delete _0x5342a4[_0x900b('0x26')];}_0x4cb61c[_0x900b('0x17')](_0x4ee598)['send'](_0x5342a4);};}exports['index']=function(_0x832120,_0x462a4f){var _0x4ea7ea={},_0x41135d={},_0x369116={'count':0x0,'rows':[]};var _0x3e17e6=_[_0x900b('0x27')](db['Automation'][_0x900b('0x28')],function(_0x1af2ca){return{'name':_0x1af2ca['fieldName'],'type':_0x1af2ca[_0x900b('0x29')][_0x900b('0x2a')]};});_0x41135d[_0x900b('0x2b')]=_[_0x900b('0x27')](_0x3e17e6,_0x900b('0x26'));_0x41135d['query']=_['keys'](_0x832120['query']);_0x41135d['filters']=_[_0x900b('0x2c')](_0x41135d[_0x900b('0x2b')],_0x41135d[_0x900b('0x2d')]);_0x4ea7ea[_0x900b('0x2e')]=_[_0x900b('0x2c')](_0x41135d[_0x900b('0x2b')],qs['fields'](_0x832120[_0x900b('0x2d')][_0x900b('0x2f')]));_0x4ea7ea[_0x900b('0x2e')]=_0x4ea7ea[_0x900b('0x2e')]['length']?_0x4ea7ea[_0x900b('0x2e')]:_0x41135d[_0x900b('0x2b')];if(!_0x832120['query'][_0x900b('0x30')](_0x900b('0x31'))){_0x4ea7ea[_0x900b('0x1d')]=qs['limit'](_0x832120[_0x900b('0x2d')][_0x900b('0x1d')]);_0x4ea7ea[_0x900b('0x1a')]=qs[_0x900b('0x1a')](_0x832120[_0x900b('0x2d')][_0x900b('0x1a')]);}_0x4ea7ea[_0x900b('0x32')]=qs[_0x900b('0x33')](_0x832120[_0x900b('0x2d')][_0x900b('0x33')]);_0x4ea7ea[_0x900b('0x34')]=qs[_0x900b('0x35')](_['pick'](_0x832120[_0x900b('0x2d')],_0x41135d[_0x900b('0x35')]),_0x3e17e6);if(_0x832120[_0x900b('0x2d')][_0x900b('0x36')]){_0x4ea7ea['where']=_[_0x900b('0x37')](_0x4ea7ea[_0x900b('0x34')],{'$or':_[_0x900b('0x27')](_0x3e17e6,function(_0x516293){if(_0x516293[_0x900b('0x29')]!==_0x900b('0x38')){var _0x565501={};_0x565501[_0x516293[_0x900b('0x26')]]={'$like':'%'+_0x832120[_0x900b('0x2d')][_0x900b('0x36')]+'%'};return _0x565501;}})});}_0x4ea7ea=_[_0x900b('0x37')]({},_0x4ea7ea,_0x832120[_0x900b('0x39')]);var _0x1718a1={'where':_0x4ea7ea[_0x900b('0x34')]};return db[_0x900b('0x3a')][_0x900b('0x1c')](_0x1718a1)[_0x900b('0x22')](function(_0x3d94b6){_0x369116[_0x900b('0x1c')]=_0x3d94b6;if(_0x832120[_0x900b('0x2d')][_0x900b('0x3b')]){_0x4ea7ea[_0x900b('0x3c')]=[{'all':!![]}];}return db[_0x900b('0x3a')][_0x900b('0x3d')](_0x4ea7ea);})[_0x900b('0x22')](function(_0x59ef39){_0x369116['rows']=_0x59ef39;return _0x369116;})[_0x900b('0x22')](respondWithFilteredResult(_0x462a4f,_0x4ea7ea))[_0x900b('0x3e')](handleError(_0x462a4f,null));};exports[_0x900b('0x3f')]=function(_0x3f1a23,_0x37299e){var _0x98b90e={'raw':![],'where':{'id':_0x3f1a23['params']['id']}},_0x4a0639={};_0x4a0639[_0x900b('0x2b')]=_['keys'](db['Automation'][_0x900b('0x28')]);_0x4a0639[_0x900b('0x2d')]=_[_0x900b('0x40')](_0x3f1a23['query']);_0x4a0639[_0x900b('0x35')]=_[_0x900b('0x2c')](_0x4a0639['model'],_0x4a0639[_0x900b('0x2d')]);_0x98b90e[_0x900b('0x2e')]=_['intersection'](_0x4a0639[_0x900b('0x2b')],qs[_0x900b('0x2f')](_0x3f1a23[_0x900b('0x2d')][_0x900b('0x2f')]));_0x98b90e[_0x900b('0x2e')]=_0x98b90e['attributes'][_0x900b('0x41')]?_0x98b90e[_0x900b('0x2e')]:_0x4a0639['model'];if(_0x3f1a23[_0x900b('0x2d')][_0x900b('0x3b')]){_0x98b90e['include']=[{'all':!![]}];}_0x98b90e=_[_0x900b('0x37')]({},_0x98b90e,_0x3f1a23[_0x900b('0x39')]);return db[_0x900b('0x3a')][_0x900b('0x42')](_0x98b90e)[_0x900b('0x22')](handleEntityNotFound(_0x37299e,null))[_0x900b('0x22')](respondWithResult(_0x37299e,null))[_0x900b('0x3e')](handleError(_0x37299e,null));};exports[_0x900b('0x43')]=function(_0xe2eb45,_0x3cc22a){return db[_0x900b('0x3a')][_0x900b('0x43')](_0xe2eb45[_0x900b('0x44')],{})[_0x900b('0x22')](respondWithResult(_0x3cc22a,0xc9))[_0x900b('0x3e')](handleError(_0x3cc22a,null));};exports['update']=function(_0x583e0e,_0x447e74){if(_0x583e0e[_0x900b('0x44')]['id']){delete _0x583e0e[_0x900b('0x44')]['id'];}return db[_0x900b('0x3a')][_0x900b('0x42')]({'where':{'id':_0x583e0e[_0x900b('0x45')]['id']}})[_0x900b('0x22')](handleEntityNotFound(_0x447e74,null))[_0x900b('0x22')](saveUpdates(_0x583e0e[_0x900b('0x44')],null))[_0x900b('0x22')](respondWithResult(_0x447e74,null))[_0x900b('0x3e')](handleError(_0x447e74,null));};exports[_0x900b('0x23')]=function(_0x4ba0e0,_0x33a87c){return db[_0x900b('0x3a')]['find']({'where':{'id':_0x4ba0e0[_0x900b('0x45')]['id']}})[_0x900b('0x22')](handleEntityNotFound(_0x33a87c,null))[_0x900b('0x22')](removeEntity(_0x33a87c,null))[_0x900b('0x3e')](handleError(_0x33a87c,null));};exports[_0x900b('0x46')]=function(_0x2fd348,_0x3b8b04,_0x358155){return db[_0x900b('0x47')][_0x900b('0x42')]({'where':{'id':_0x2fd348[_0x900b('0x45')]['id']}})[_0x900b('0x22')](handleEntityNotFound(_0x3b8b04,null))[_0x900b('0x22')](function(_0x22e91f){if(_0x22e91f){return _0x22e91f[_0x900b('0x46')](_0x2fd348[_0x900b('0x44')][_0x900b('0x48')],_[_0x900b('0x49')](_0x2fd348[_0x900b('0x44')],[_0x900b('0x48'),'id'])||{});}})['then'](respondWithResult(_0x3b8b04,null))[_0x900b('0x3e')](handleError(_0x3b8b04,null));};exports[_0x900b('0x4a')]=function(_0x2fc901,_0x43505f,_0x117bea){var _0x1748e0={};var _0x5a7955={};var _0x491a6d;var _0x570714;return db[_0x900b('0x3a')][_0x900b('0x4b')]({'where':{'id':_0x2fc901[_0x900b('0x45')]['id']}})[_0x900b('0x22')](handleEntityNotFound(_0x43505f,null))[_0x900b('0x22')](function(_0x186ab0){if(_0x186ab0){_0x491a6d=_0x186ab0;_0x5a7955[_0x900b('0x2b')]=_[_0x900b('0x40')](db[_0x900b('0x47')][_0x900b('0x28')]);_0x5a7955[_0x900b('0x2d')]=_[_0x900b('0x40')](_0x2fc901['query']);_0x5a7955[_0x900b('0x35')]=_[_0x900b('0x2c')](_0x5a7955[_0x900b('0x2b')],_0x5a7955[_0x900b('0x2d')]);_0x1748e0[_0x900b('0x2e')]=_[_0x900b('0x2c')](_0x5a7955[_0x900b('0x2b')],qs[_0x900b('0x2f')](_0x2fc901['query'][_0x900b('0x2f')]));_0x1748e0[_0x900b('0x2e')]=_0x1748e0['attributes'][_0x900b('0x41')]?_0x1748e0[_0x900b('0x2e')]:_0x5a7955['model'];_0x1748e0[_0x900b('0x32')]=qs[_0x900b('0x33')](_0x2fc901['query'][_0x900b('0x33')]);_0x1748e0['where']=qs[_0x900b('0x35')](_[_0x900b('0x4c')](_0x2fc901[_0x900b('0x2d')],_0x5a7955[_0x900b('0x35')]));if(_0x2fc901[_0x900b('0x2d')][_0x900b('0x36')]){_0x1748e0['where']=_['merge'](_0x1748e0[_0x900b('0x34')],{'$or':_[_0x900b('0x27')](_0x1748e0[_0x900b('0x2e')],function(_0x288c1d){var _0x5a50dc={};_0x5a50dc[_0x288c1d]={'$like':'%'+_0x2fc901[_0x900b('0x2d')][_0x900b('0x36')]+'%'};return _0x5a50dc;})});}_0x1748e0=_['merge']({},_0x1748e0,_0x2fc901['options']);return _0x491a6d[_0x900b('0x4a')](_0x1748e0);}})['then'](function(_0x514754){if(_0x514754){_0x570714=_0x514754[_0x900b('0x41')];if(!_0x2fc901[_0x900b('0x2d')][_0x900b('0x30')](_0x900b('0x31'))){_0x1748e0[_0x900b('0x1d')]=qs[_0x900b('0x1d')](_0x2fc901[_0x900b('0x2d')][_0x900b('0x1d')]);_0x1748e0['offset']=qs[_0x900b('0x1a')](_0x2fc901[_0x900b('0x2d')][_0x900b('0x1a')]);}return _0x491a6d[_0x900b('0x4a')](_0x1748e0);}})[_0x900b('0x22')](function(_0x4ac47c){if(_0x4ac47c){return _0x4ac47c?{'count':_0x570714,'rows':_0x4ac47c}:null;}})[_0x900b('0x22')](respondWithResult(_0x43505f,null))[_0x900b('0x3e')](handleError(_0x43505f,null));};exports[_0x900b('0x4d')]=function(_0x311355,_0x2776dd,_0x3aa6f5){return db[_0x900b('0x4e')]['find']({'where':{'id':_0x311355[_0x900b('0x45')]['id']}})[_0x900b('0x22')](handleEntityNotFound(_0x2776dd,null))[_0x900b('0x22')](function(_0x4c4381){if(_0x4c4381){return _0x4c4381[_0x900b('0x4d')](_0x311355[_0x900b('0x44')][_0x900b('0x48')],_[_0x900b('0x49')](_0x311355['body'],[_0x900b('0x48'),'id'])||{});}})[_0x900b('0x22')](respondWithResult(_0x2776dd,null))[_0x900b('0x3e')](handleError(_0x2776dd,null));};exports['getActions']=function(_0x2f4265,_0x134f80,_0x330482){var _0x1af942={};var _0x4ce172={};var _0x333a29;var _0x40e0f1;return db[_0x900b('0x3a')][_0x900b('0x4b')]({'where':{'id':_0x2f4265[_0x900b('0x45')]['id']}})['then'](handleEntityNotFound(_0x134f80,null))[_0x900b('0x22')](function(_0x531981){if(_0x531981){_0x333a29=_0x531981;_0x4ce172['model']=_[_0x900b('0x40')](db[_0x900b('0x4e')][_0x900b('0x28')]);_0x4ce172[_0x900b('0x2d')]=_[_0x900b('0x40')](_0x2f4265[_0x900b('0x2d')]);_0x4ce172[_0x900b('0x35')]=_[_0x900b('0x2c')](_0x4ce172[_0x900b('0x2b')],_0x4ce172[_0x900b('0x2d')]);_0x1af942[_0x900b('0x2e')]=_[_0x900b('0x2c')](_0x4ce172[_0x900b('0x2b')],qs['fields'](_0x2f4265[_0x900b('0x2d')][_0x900b('0x2f')]));_0x1af942[_0x900b('0x2e')]=_0x1af942[_0x900b('0x2e')][_0x900b('0x41')]?_0x1af942[_0x900b('0x2e')]:_0x4ce172[_0x900b('0x2b')];_0x1af942[_0x900b('0x32')]=qs[_0x900b('0x33')](_0x2f4265[_0x900b('0x2d')][_0x900b('0x33')]);_0x1af942[_0x900b('0x34')]=qs[_0x900b('0x35')](_[_0x900b('0x4c')](_0x2f4265[_0x900b('0x2d')],_0x4ce172[_0x900b('0x35')]));if(_0x2f4265['query'][_0x900b('0x36')]){_0x1af942['where']=_[_0x900b('0x37')](_0x1af942[_0x900b('0x34')],{'$or':_['map'](_0x1af942[_0x900b('0x2e')],function(_0x3f13a3){var _0x339cb0={};_0x339cb0[_0x3f13a3]={'$like':'%'+_0x2f4265[_0x900b('0x2d')]['filter']+'%'};return _0x339cb0;})});}_0x1af942=_['merge']({},_0x1af942,_0x2f4265['options']);return _0x333a29[_0x900b('0x4f')](_0x1af942);}})[_0x900b('0x22')](function(_0x161bdb){if(_0x161bdb){_0x40e0f1=_0x161bdb[_0x900b('0x41')];if(!_0x2f4265[_0x900b('0x2d')]['hasOwnProperty']('nolimit')){_0x1af942['limit']=qs[_0x900b('0x1d')](_0x2f4265[_0x900b('0x2d')][_0x900b('0x1d')]);_0x1af942[_0x900b('0x1a')]=qs['offset'](_0x2f4265[_0x900b('0x2d')][_0x900b('0x1a')]);}return _0x333a29[_0x900b('0x4f')](_0x1af942);}})[_0x900b('0x22')](function(_0x3bc8d9){if(_0x3bc8d9){return _0x3bc8d9?{'count':_0x40e0f1,'rows':_0x3bc8d9}:null;}})[_0x900b('0x22')](respondWithResult(_0x134f80,null))[_0x900b('0x3e')](handleError(_0x134f80,null));};