62d441fb585a441c2bdb49a828a90e5537d5a48f
[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 _0x5965=['getActions','options','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','reject','save','update','then','error','stack','name','index','map','Automation','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','nolimit','order','where','pick','filter','merge','VIRTUAL','count','includeAll','findAll','rows','catch','show','params','length','include','body','find','destroy','addConditions','Condition','omit','getConditions','findOne','sort','hasOwnProperty','Action','ids'];(function(_0x58b603,_0x450f6d){var _0xf76126=function(_0x5688da){while(--_0x5688da){_0x58b603['push'](_0x58b603['shift']());}};_0xf76126(++_0x450f6d);}(_0x5965,0x1b5));var _0x5596=function(_0x1abbbb,_0x234d69){_0x1abbbb=_0x1abbbb-0x0;var _0x439102=_0x5965[_0x1abbbb];return _0x439102;};'use strict';var emlformat=require(_0x5596('0x0'));var rimraf=require(_0x5596('0x1'));var zipdir=require(_0x5596('0x2'));var jsonpatch=require(_0x5596('0x3'));var rp=require(_0x5596('0x4'));var moment=require(_0x5596('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x5596('0x6'));var util=require(_0x5596('0x7'));var path=require(_0x5596('0x8'));var sox=require('sox');var csv=require(_0x5596('0x9'));var ejs=require(_0x5596('0xa'));var fs=require('fs');var fs_extra=require(_0x5596('0xb'));var _=require('lodash');var squel=require(_0x5596('0xc'));var crypto=require(_0x5596('0xd'));var jsforce=require(_0x5596('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x5596('0x9'));var querystring=require(_0x5596('0xf'));var Papa=require(_0x5596('0x10'));var Redis=require(_0x5596('0x11'));var authService=require(_0x5596('0x12'));var qs=require(_0x5596('0x13'));var as=require(_0x5596('0x14'));var hardwareService=require(_0x5596('0x15'));var logger=require(_0x5596('0x16'))(_0x5596('0x17'));var utils=require(_0x5596('0x18'));var config=require(_0x5596('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x5596('0x1a'))['db'];function respondWithStatusCode(_0x459581,_0x320074){_0x320074=_0x320074||0xcc;return function(_0x59ceaf){if(_0x59ceaf){return _0x459581[_0x5596('0x1b')](_0x320074);}return _0x459581[_0x5596('0x1c')](_0x320074)[_0x5596('0x1d')]();};}function respondWithResult(_0x2abe0a,_0x574d2a){_0x574d2a=_0x574d2a||0xc8;return function(_0x4f8807){if(_0x4f8807){return _0x2abe0a[_0x5596('0x1c')](_0x574d2a)[_0x5596('0x1e')](_0x4f8807);}};}function respondWithFilteredResult(_0x18ac92,_0x14ecc6){return function(_0x3989a2){if(_0x3989a2){var _0x5cae74=typeof _0x14ecc6[_0x5596('0x1f')]===_0x5596('0x20')&&typeof _0x14ecc6[_0x5596('0x21')]==='undefined';var _0x57bf1f=_0x3989a2['count'];var _0x5580fa=_0x5cae74?0x0:_0x14ecc6[_0x5596('0x1f')];var _0x32afc8=_0x5cae74?_0x3989a2['count']:_0x14ecc6[_0x5596('0x1f')]+_0x14ecc6[_0x5596('0x21')];var _0x5a4478;if(_0x32afc8>=_0x57bf1f){_0x32afc8=_0x57bf1f;_0x5a4478=0xc8;}else{_0x5a4478=0xce;}_0x18ac92[_0x5596('0x1c')](_0x5a4478);return _0x18ac92[_0x5596('0x22')](_0x5596('0x23'),_0x5580fa+'-'+_0x32afc8+'/'+_0x57bf1f)[_0x5596('0x1e')](_0x3989a2);}return null;};}function patchUpdates(_0x2d2aec){return function(_0x273f1c){try{jsonpatch['apply'](_0x273f1c,_0x2d2aec,!![]);}catch(_0x1ac973){return BPromise[_0x5596('0x24')](_0x1ac973);}return _0x273f1c[_0x5596('0x25')]();};}function saveUpdates(_0x25cd02,_0x5a4bfe){return function(_0x579bd3){if(_0x579bd3){return _0x579bd3[_0x5596('0x26')](_0x25cd02)['then'](function(_0x4e5d26){return _0x4e5d26;});}return null;};}function removeEntity(_0x1308e3,_0x44866c){return function(_0x503a7){if(_0x503a7){return _0x503a7['destroy']()[_0x5596('0x27')](function(){_0x1308e3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2eef27,_0x1ea1b4){return function(_0x31ecd8){if(!_0x31ecd8){_0x2eef27[_0x5596('0x1b')](0x194);}return _0x31ecd8;};}function handleError(_0x23fc69,_0x1a815e){_0x1a815e=_0x1a815e||0x1f4;return function(_0xf3fa7c){logger[_0x5596('0x28')](_0xf3fa7c[_0x5596('0x29')]);if(_0xf3fa7c['name']){delete _0xf3fa7c[_0x5596('0x2a')];}_0x23fc69['status'](_0x1a815e)['send'](_0xf3fa7c);};}exports[_0x5596('0x2b')]=function(_0x270b99,_0x11c392){var _0x145791={},_0xc7721f={},_0x20d0bf={'count':0x0,'rows':[]};var _0x3a0acf=_[_0x5596('0x2c')](db[_0x5596('0x2d')][_0x5596('0x2e')],function(_0x5cbffc){return{'name':_0x5cbffc[_0x5596('0x2f')],'type':_0x5cbffc[_0x5596('0x30')][_0x5596('0x31')]};});_0xc7721f[_0x5596('0x32')]=_['map'](_0x3a0acf,_0x5596('0x2a'));_0xc7721f['query']=_[_0x5596('0x33')](_0x270b99[_0x5596('0x34')]);_0xc7721f[_0x5596('0x35')]=_[_0x5596('0x36')](_0xc7721f['model'],_0xc7721f[_0x5596('0x34')]);_0x145791[_0x5596('0x37')]=_[_0x5596('0x36')](_0xc7721f[_0x5596('0x32')],qs[_0x5596('0x38')](_0x270b99[_0x5596('0x34')]['fields']));_0x145791[_0x5596('0x37')]=_0x145791[_0x5596('0x37')]['length']?_0x145791[_0x5596('0x37')]:_0xc7721f[_0x5596('0x32')];if(!_0x270b99['query']['hasOwnProperty'](_0x5596('0x39'))){_0x145791[_0x5596('0x21')]=qs['limit'](_0x270b99[_0x5596('0x34')][_0x5596('0x21')]);_0x145791['offset']=qs[_0x5596('0x1f')](_0x270b99['query'][_0x5596('0x1f')]);}_0x145791[_0x5596('0x3a')]=qs['sort'](_0x270b99[_0x5596('0x34')]['sort']);_0x145791[_0x5596('0x3b')]=qs[_0x5596('0x35')](_[_0x5596('0x3c')](_0x270b99[_0x5596('0x34')],_0xc7721f[_0x5596('0x35')]),_0x3a0acf);if(_0x270b99[_0x5596('0x34')][_0x5596('0x3d')]){_0x145791[_0x5596('0x3b')]=_[_0x5596('0x3e')](_0x145791[_0x5596('0x3b')],{'$or':_[_0x5596('0x2c')](_0x3a0acf,function(_0x4ae9f6){if(_0x4ae9f6['type']!==_0x5596('0x3f')){var _0x20b1d0={};_0x20b1d0[_0x4ae9f6[_0x5596('0x2a')]]={'$like':'%'+_0x270b99[_0x5596('0x34')][_0x5596('0x3d')]+'%'};return _0x20b1d0;}})});}_0x145791=_['merge']({},_0x145791,_0x270b99['options']);var _0x18cca5={'where':_0x145791['where']};return db['Automation'][_0x5596('0x40')](_0x18cca5)['then'](function(_0x24e03a){_0x20d0bf[_0x5596('0x40')]=_0x24e03a;if(_0x270b99[_0x5596('0x34')][_0x5596('0x41')]){_0x145791['include']=[{'all':!![]}];}return db[_0x5596('0x2d')][_0x5596('0x42')](_0x145791);})[_0x5596('0x27')](function(_0x1301b4){_0x20d0bf[_0x5596('0x43')]=_0x1301b4;return _0x20d0bf;})[_0x5596('0x27')](respondWithFilteredResult(_0x11c392,_0x145791))[_0x5596('0x44')](handleError(_0x11c392,null));};exports[_0x5596('0x45')]=function(_0x112025,_0x7d6e56){var _0x27313a={'raw':![],'where':{'id':_0x112025[_0x5596('0x46')]['id']}},_0x49552c={};_0x49552c[_0x5596('0x32')]=_[_0x5596('0x33')](db[_0x5596('0x2d')][_0x5596('0x2e')]);_0x49552c['query']=_[_0x5596('0x33')](_0x112025[_0x5596('0x34')]);_0x49552c['filters']=_['intersection'](_0x49552c[_0x5596('0x32')],_0x49552c[_0x5596('0x34')]);_0x27313a['attributes']=_['intersection'](_0x49552c[_0x5596('0x32')],qs['fields'](_0x112025[_0x5596('0x34')][_0x5596('0x38')]));_0x27313a[_0x5596('0x37')]=_0x27313a[_0x5596('0x37')][_0x5596('0x47')]?_0x27313a['attributes']:_0x49552c[_0x5596('0x32')];if(_0x112025['query'][_0x5596('0x41')]){_0x27313a[_0x5596('0x48')]=[{'all':!![]}];}_0x27313a=_['merge']({},_0x27313a,_0x112025['options']);return db[_0x5596('0x2d')]['find'](_0x27313a)[_0x5596('0x27')](handleEntityNotFound(_0x7d6e56,null))[_0x5596('0x27')](respondWithResult(_0x7d6e56,null))[_0x5596('0x44')](handleError(_0x7d6e56,null));};exports['create']=function(_0x211ad8,_0x356446){return db['Automation']['create'](_0x211ad8['body'],{})[_0x5596('0x27')](respondWithResult(_0x356446,0xc9))['catch'](handleError(_0x356446,null));};exports[_0x5596('0x26')]=function(_0x53f6d3,_0x511248){if(_0x53f6d3[_0x5596('0x49')]['id']){delete _0x53f6d3[_0x5596('0x49')]['id'];}return db[_0x5596('0x2d')][_0x5596('0x4a')]({'where':{'id':_0x53f6d3[_0x5596('0x46')]['id']}})[_0x5596('0x27')](handleEntityNotFound(_0x511248,null))[_0x5596('0x27')](saveUpdates(_0x53f6d3[_0x5596('0x49')],null))[_0x5596('0x27')](respondWithResult(_0x511248,null))[_0x5596('0x44')](handleError(_0x511248,null));};exports[_0x5596('0x4b')]=function(_0x1ed24a,_0x357c29){return db[_0x5596('0x2d')][_0x5596('0x4a')]({'where':{'id':_0x1ed24a[_0x5596('0x46')]['id']}})['then'](handleEntityNotFound(_0x357c29,null))[_0x5596('0x27')](removeEntity(_0x357c29,null))[_0x5596('0x44')](handleError(_0x357c29,null));};exports[_0x5596('0x4c')]=function(_0x1616a7,_0x41dc95,_0x4b524c){return db[_0x5596('0x4d')][_0x5596('0x4a')]({'where':{'id':_0x1616a7[_0x5596('0x46')]['id']}})['then'](handleEntityNotFound(_0x41dc95,null))[_0x5596('0x27')](function(_0x72f462){if(_0x72f462){return _0x72f462['addConditions'](_0x1616a7['body']['ids'],_[_0x5596('0x4e')](_0x1616a7[_0x5596('0x49')],['ids','id'])||{});}})['then'](respondWithResult(_0x41dc95,null))[_0x5596('0x44')](handleError(_0x41dc95,null));};exports[_0x5596('0x4f')]=function(_0x2a1ff6,_0x38b12c,_0x3ec75e){var _0x348be5={};var _0x26b5b8={};var _0xd56f65;var _0x3ce795;return db[_0x5596('0x2d')][_0x5596('0x50')]({'where':{'id':_0x2a1ff6['params']['id']}})[_0x5596('0x27')](handleEntityNotFound(_0x38b12c,null))[_0x5596('0x27')](function(_0x19a111){if(_0x19a111){_0xd56f65=_0x19a111;_0x26b5b8[_0x5596('0x32')]=_['keys'](db[_0x5596('0x4d')]['rawAttributes']);_0x26b5b8[_0x5596('0x34')]=_[_0x5596('0x33')](_0x2a1ff6[_0x5596('0x34')]);_0x26b5b8['filters']=_[_0x5596('0x36')](_0x26b5b8[_0x5596('0x32')],_0x26b5b8['query']);_0x348be5[_0x5596('0x37')]=_[_0x5596('0x36')](_0x26b5b8[_0x5596('0x32')],qs[_0x5596('0x38')](_0x2a1ff6['query']['fields']));_0x348be5[_0x5596('0x37')]=_0x348be5[_0x5596('0x37')][_0x5596('0x47')]?_0x348be5[_0x5596('0x37')]:_0x26b5b8['model'];_0x348be5[_0x5596('0x3a')]=qs[_0x5596('0x51')](_0x2a1ff6[_0x5596('0x34')][_0x5596('0x51')]);_0x348be5[_0x5596('0x3b')]=qs[_0x5596('0x35')](_[_0x5596('0x3c')](_0x2a1ff6[_0x5596('0x34')],_0x26b5b8[_0x5596('0x35')]));if(_0x2a1ff6[_0x5596('0x34')][_0x5596('0x3d')]){_0x348be5[_0x5596('0x3b')]=_[_0x5596('0x3e')](_0x348be5['where'],{'$or':_[_0x5596('0x2c')](_0x348be5[_0x5596('0x37')],function(_0x31af16){var _0x428b37={};_0x428b37[_0x31af16]={'$like':'%'+_0x2a1ff6[_0x5596('0x34')][_0x5596('0x3d')]+'%'};return _0x428b37;})});}_0x348be5=_[_0x5596('0x3e')]({},_0x348be5,_0x2a1ff6['options']);return _0xd56f65['getConditions'](_0x348be5);}})[_0x5596('0x27')](function(_0x368b66){if(_0x368b66){_0x3ce795=_0x368b66['length'];if(!_0x2a1ff6['query'][_0x5596('0x52')](_0x5596('0x39'))){_0x348be5[_0x5596('0x21')]=qs['limit'](_0x2a1ff6[_0x5596('0x34')][_0x5596('0x21')]);_0x348be5[_0x5596('0x1f')]=qs['offset'](_0x2a1ff6['query'][_0x5596('0x1f')]);}return _0xd56f65[_0x5596('0x4f')](_0x348be5);}})[_0x5596('0x27')](function(_0xc8e969){if(_0xc8e969){return _0xc8e969?{'count':_0x3ce795,'rows':_0xc8e969}:null;}})[_0x5596('0x27')](respondWithResult(_0x38b12c,null))[_0x5596('0x44')](handleError(_0x38b12c,null));};exports['addActions']=function(_0x2aa532,_0x2cb0e0,_0x5d4893){return db[_0x5596('0x53')]['find']({'where':{'id':_0x2aa532[_0x5596('0x46')]['id']}})['then'](handleEntityNotFound(_0x2cb0e0,null))[_0x5596('0x27')](function(_0xc9d1b2){if(_0xc9d1b2){return _0xc9d1b2['addActions'](_0x2aa532['body']['ids'],_[_0x5596('0x4e')](_0x2aa532[_0x5596('0x49')],[_0x5596('0x54'),'id'])||{});}})['then'](respondWithResult(_0x2cb0e0,null))[_0x5596('0x44')](handleError(_0x2cb0e0,null));};exports[_0x5596('0x55')]=function(_0x403926,_0x53e62a,_0x10a0ee){var _0x1947cd={};var _0x3bbcb4={};var _0x43f43d;var _0x53ab27;return db[_0x5596('0x2d')][_0x5596('0x50')]({'where':{'id':_0x403926['params']['id']}})['then'](handleEntityNotFound(_0x53e62a,null))['then'](function(_0x5a3ff7){if(_0x5a3ff7){_0x43f43d=_0x5a3ff7;_0x3bbcb4['model']=_[_0x5596('0x33')](db['Action']['rawAttributes']);_0x3bbcb4[_0x5596('0x34')]=_['keys'](_0x403926[_0x5596('0x34')]);_0x3bbcb4[_0x5596('0x35')]=_['intersection'](_0x3bbcb4[_0x5596('0x32')],_0x3bbcb4[_0x5596('0x34')]);_0x1947cd[_0x5596('0x37')]=_[_0x5596('0x36')](_0x3bbcb4[_0x5596('0x32')],qs['fields'](_0x403926[_0x5596('0x34')][_0x5596('0x38')]));_0x1947cd[_0x5596('0x37')]=_0x1947cd[_0x5596('0x37')][_0x5596('0x47')]?_0x1947cd[_0x5596('0x37')]:_0x3bbcb4[_0x5596('0x32')];_0x1947cd[_0x5596('0x3a')]=qs[_0x5596('0x51')](_0x403926[_0x5596('0x34')][_0x5596('0x51')]);_0x1947cd[_0x5596('0x3b')]=qs['filters'](_[_0x5596('0x3c')](_0x403926['query'],_0x3bbcb4['filters']));if(_0x403926['query'][_0x5596('0x3d')]){_0x1947cd['where']=_[_0x5596('0x3e')](_0x1947cd['where'],{'$or':_[_0x5596('0x2c')](_0x1947cd['attributes'],function(_0x154f3b){var _0x2ae98e={};_0x2ae98e[_0x154f3b]={'$like':'%'+_0x403926['query'][_0x5596('0x3d')]+'%'};return _0x2ae98e;})});}_0x1947cd=_[_0x5596('0x3e')]({},_0x1947cd,_0x403926[_0x5596('0x56')]);return _0x43f43d['getActions'](_0x1947cd);}})['then'](function(_0x286794){if(_0x286794){_0x53ab27=_0x286794[_0x5596('0x47')];if(!_0x403926[_0x5596('0x34')][_0x5596('0x52')](_0x5596('0x39'))){_0x1947cd[_0x5596('0x21')]=qs[_0x5596('0x21')](_0x403926[_0x5596('0x34')][_0x5596('0x21')]);_0x1947cd[_0x5596('0x1f')]=qs[_0x5596('0x1f')](_0x403926[_0x5596('0x34')][_0x5596('0x1f')]);}return _0x43f43d['getActions'](_0x1947cd);}})[_0x5596('0x27')](function(_0x2c220a){if(_0x2c220a){return _0x2c220a?{'count':_0x53ab27,'rows':_0x2c220a}:null;}})[_0x5596('0x27')](respondWithResult(_0x53e62a,null))[_0x5596('0x44')](handleError(_0x53e62a,null));};