Built motion from commit 753c950e.|2.5.42
[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 _0xf1ae=['util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','json','then','sendStatus','name','index','Automation','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','destroy','addConditions','ids','omit','getConditions','findOne','Condition','order','addActions','Action','getActions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0xf1ae,0xf5));var _0xef1a=function(_0x4ad10b,_0xc0529e){_0x4ad10b=_0x4ad10b-0x0;var _0xfc602f=_0xf1ae[_0x4ad10b];return _0xfc602f;};'use strict';var emlformat=require(_0xef1a('0x0'));var rimraf=require(_0xef1a('0x1'));var zipdir=require(_0xef1a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xef1a('0x3'));var moment=require(_0xef1a('0x4'));var BPromise=require(_0xef1a('0x5'));var Mustache=require(_0xef1a('0x6'));var util=require(_0xef1a('0x7'));var path=require(_0xef1a('0x8'));var sox=require(_0xef1a('0x9'));var csv=require(_0xef1a('0xa'));var ejs=require(_0xef1a('0xb'));var fs=require('fs');var fs_extra=require(_0xef1a('0xc'));var _=require(_0xef1a('0xd'));var squel=require(_0xef1a('0xe'));var crypto=require(_0xef1a('0xf'));var jsforce=require(_0xef1a('0x10'));var deskjs=require(_0xef1a('0x11'));var toCsv=require(_0xef1a('0xa'));var querystring=require(_0xef1a('0x12'));var Papa=require(_0xef1a('0x13'));var Redis=require(_0xef1a('0x14'));var authService=require(_0xef1a('0x15'));var qs=require(_0xef1a('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xef1a('0x17'));var logger=require('../../config/logger')('api');var utils=require(_0xef1a('0x18'));var config=require(_0xef1a('0x19'));var licenseUtil=require(_0xef1a('0x1a'));var db=require(_0xef1a('0x1b'))['db'];function respondWithStatusCode(_0x4bc3fa,_0x178113){_0x178113=_0x178113||0xcc;return function(_0x24af37){if(_0x24af37){return _0x4bc3fa['sendStatus'](_0x178113);}return _0x4bc3fa[_0xef1a('0x1c')](_0x178113)[_0xef1a('0x1d')]();};}function respondWithResult(_0x2af15c,_0x5ea391){_0x5ea391=_0x5ea391||0xc8;return function(_0x29b2a1){if(_0x29b2a1){return _0x2af15c[_0xef1a('0x1c')](_0x5ea391)['json'](_0x29b2a1);}};}function respondWithFilteredResult(_0x18e776,_0x469669){return function(_0x1f430d){if(_0x1f430d){var _0xe79a4f=typeof _0x469669[_0xef1a('0x1e')]===_0xef1a('0x1f')&&typeof _0x469669[_0xef1a('0x20')]===_0xef1a('0x1f');var _0x3537ff=_0x1f430d[_0xef1a('0x21')];var _0x2abb6e=_0xe79a4f?0x0:_0x469669[_0xef1a('0x1e')];var _0x480677=_0xe79a4f?_0x1f430d[_0xef1a('0x21')]:_0x469669[_0xef1a('0x1e')]+_0x469669[_0xef1a('0x20')];var _0x42c526;if(_0x480677>=_0x3537ff){_0x480677=_0x3537ff;_0x42c526=0xc8;}else{_0x42c526=0xce;}_0x18e776[_0xef1a('0x1c')](_0x42c526);return _0x18e776['set']('Content-Range',_0x2abb6e+'-'+_0x480677+'/'+_0x3537ff)[_0xef1a('0x22')](_0x1f430d);}return null;};}function patchUpdates(_0xfbbfca){return function(_0x380134){try{jsonpatch['apply'](_0x380134,_0xfbbfca,!![]);}catch(_0x36ed0a){return BPromise['reject'](_0x36ed0a);}return _0x380134['save']();};}function saveUpdates(_0x4989e4,_0x1173d0){return function(_0x3a2a93){if(_0x3a2a93){return _0x3a2a93['update'](_0x4989e4)['then'](function(_0x37216d){return _0x37216d;});}return null;};}function removeEntity(_0x1b8b7a,_0x323288){return function(_0x2f453d){if(_0x2f453d){return _0x2f453d['destroy']()[_0xef1a('0x23')](function(){_0x1b8b7a[_0xef1a('0x1c')](0xcc)[_0xef1a('0x1d')]();});}};}function handleEntityNotFound(_0x42dccd,_0x99e072){return function(_0x440add){if(!_0x440add){_0x42dccd[_0xef1a('0x24')](0x194);}return _0x440add;};}function handleError(_0x5e600c,_0x2fc22e){_0x2fc22e=_0x2fc22e||0x1f4;return function(_0x402c5a){logger['error'](_0x402c5a['stack']);if(_0x402c5a[_0xef1a('0x25')]){delete _0x402c5a[_0xef1a('0x25')];}_0x5e600c[_0xef1a('0x1c')](_0x2fc22e)['send'](_0x402c5a);};}exports[_0xef1a('0x26')]=function(_0x4e0745,_0x4cf150){var _0x4724f5={},_0x1b2978={},_0x369002={'count':0x0,'rows':[]};var _0x58c978=_['map'](db[_0xef1a('0x27')][_0xef1a('0x28')],function(_0x2d3932){return{'name':_0x2d3932[_0xef1a('0x29')],'type':_0x2d3932[_0xef1a('0x2a')][_0xef1a('0x2b')]};});_0x1b2978[_0xef1a('0x2c')]=_[_0xef1a('0x2d')](_0x58c978,_0xef1a('0x25'));_0x1b2978[_0xef1a('0x2e')]=_[_0xef1a('0x2f')](_0x4e0745['query']);_0x1b2978[_0xef1a('0x30')]=_[_0xef1a('0x31')](_0x1b2978[_0xef1a('0x2c')],_0x1b2978[_0xef1a('0x2e')]);_0x4724f5['attributes']=_[_0xef1a('0x31')](_0x1b2978['model'],qs['fields'](_0x4e0745[_0xef1a('0x2e')][_0xef1a('0x32')]));_0x4724f5[_0xef1a('0x33')]=_0x4724f5[_0xef1a('0x33')][_0xef1a('0x34')]?_0x4724f5['attributes']:_0x1b2978[_0xef1a('0x2c')];if(!_0x4e0745[_0xef1a('0x2e')][_0xef1a('0x35')](_0xef1a('0x36'))){_0x4724f5[_0xef1a('0x20')]=qs['limit'](_0x4e0745['query'][_0xef1a('0x20')]);_0x4724f5['offset']=qs[_0xef1a('0x1e')](_0x4e0745['query'][_0xef1a('0x1e')]);}_0x4724f5['order']=qs[_0xef1a('0x37')](_0x4e0745[_0xef1a('0x2e')]['sort']);_0x4724f5[_0xef1a('0x38')]=qs[_0xef1a('0x30')](_[_0xef1a('0x39')](_0x4e0745[_0xef1a('0x2e')],_0x1b2978['filters']),_0x58c978);if(_0x4e0745[_0xef1a('0x2e')][_0xef1a('0x3a')]){_0x4724f5[_0xef1a('0x38')]=_[_0xef1a('0x3b')](_0x4724f5[_0xef1a('0x38')],{'$or':_[_0xef1a('0x2d')](_0x58c978,function(_0x5d1fdf){if(_0x5d1fdf['type']!==_0xef1a('0x3c')){var _0x51db45={};_0x51db45[_0x5d1fdf[_0xef1a('0x25')]]={'$like':'%'+_0x4e0745[_0xef1a('0x2e')][_0xef1a('0x3a')]+'%'};return _0x51db45;}})});}_0x4724f5=_[_0xef1a('0x3b')]({},_0x4724f5,_0x4e0745[_0xef1a('0x3d')]);var _0x58c2dd={'where':_0x4724f5[_0xef1a('0x38')]};return db[_0xef1a('0x27')][_0xef1a('0x21')](_0x58c2dd)[_0xef1a('0x23')](function(_0x5de6a8){_0x369002[_0xef1a('0x21')]=_0x5de6a8;if(_0x4e0745[_0xef1a('0x2e')][_0xef1a('0x3e')]){_0x4724f5[_0xef1a('0x3f')]=[{'all':!![]}];}return db[_0xef1a('0x27')][_0xef1a('0x40')](_0x4724f5);})['then'](function(_0x257454){_0x369002[_0xef1a('0x41')]=_0x257454;return _0x369002;})['then'](respondWithFilteredResult(_0x4cf150,_0x4724f5))[_0xef1a('0x42')](handleError(_0x4cf150,null));};exports[_0xef1a('0x43')]=function(_0x16aee2,_0x5c4b66){var _0x1b962d={'raw':![],'where':{'id':_0x16aee2[_0xef1a('0x44')]['id']}},_0x475c8e={};_0x475c8e[_0xef1a('0x2c')]=_[_0xef1a('0x2f')](db['Automation'][_0xef1a('0x28')]);_0x475c8e[_0xef1a('0x2e')]=_[_0xef1a('0x2f')](_0x16aee2['query']);_0x475c8e['filters']=_[_0xef1a('0x31')](_0x475c8e['model'],_0x475c8e['query']);_0x1b962d[_0xef1a('0x33')]=_[_0xef1a('0x31')](_0x475c8e[_0xef1a('0x2c')],qs[_0xef1a('0x32')](_0x16aee2[_0xef1a('0x2e')]['fields']));_0x1b962d[_0xef1a('0x33')]=_0x1b962d[_0xef1a('0x33')][_0xef1a('0x34')]?_0x1b962d[_0xef1a('0x33')]:_0x475c8e['model'];if(_0x16aee2[_0xef1a('0x2e')][_0xef1a('0x3e')]){_0x1b962d[_0xef1a('0x3f')]=[{'all':!![]}];}_0x1b962d=_[_0xef1a('0x3b')]({},_0x1b962d,_0x16aee2[_0xef1a('0x3d')]);return db['Automation'][_0xef1a('0x45')](_0x1b962d)[_0xef1a('0x23')](handleEntityNotFound(_0x5c4b66,null))['then'](respondWithResult(_0x5c4b66,null))['catch'](handleError(_0x5c4b66,null));};exports[_0xef1a('0x46')]=function(_0x1d1892,_0x51f446){return db[_0xef1a('0x27')][_0xef1a('0x46')](_0x1d1892[_0xef1a('0x47')],{})[_0xef1a('0x23')](respondWithResult(_0x51f446,0xc9))['catch'](handleError(_0x51f446,null));};exports[_0xef1a('0x48')]=function(_0x33669e,_0x4c5d42){if(_0x33669e['body']['id']){delete _0x33669e[_0xef1a('0x47')]['id'];}return db['Automation'][_0xef1a('0x45')]({'where':{'id':_0x33669e[_0xef1a('0x44')]['id']}})['then'](handleEntityNotFound(_0x4c5d42,null))[_0xef1a('0x23')](saveUpdates(_0x33669e[_0xef1a('0x47')],null))['then'](respondWithResult(_0x4c5d42,null))[_0xef1a('0x42')](handleError(_0x4c5d42,null));};exports[_0xef1a('0x49')]=function(_0x502888,_0x2a9f8f){return db[_0xef1a('0x27')]['find']({'where':{'id':_0x502888['params']['id']}})[_0xef1a('0x23')](handleEntityNotFound(_0x2a9f8f,null))[_0xef1a('0x23')](removeEntity(_0x2a9f8f,null))['catch'](handleError(_0x2a9f8f,null));};exports[_0xef1a('0x4a')]=function(_0x51982e,_0x21ddcb,_0x582c11){return db['Condition'][_0xef1a('0x45')]({'where':{'id':_0x51982e[_0xef1a('0x44')]['id']}})[_0xef1a('0x23')](handleEntityNotFound(_0x21ddcb,null))['then'](function(_0x1fb8e2){if(_0x1fb8e2){return _0x1fb8e2[_0xef1a('0x4a')](_0x51982e[_0xef1a('0x47')][_0xef1a('0x4b')],_[_0xef1a('0x4c')](_0x51982e[_0xef1a('0x47')],[_0xef1a('0x4b'),'id'])||{});}})[_0xef1a('0x23')](respondWithResult(_0x21ddcb,null))[_0xef1a('0x42')](handleError(_0x21ddcb,null));};exports[_0xef1a('0x4d')]=function(_0x59a802,_0x2a1cd6,_0x31ccbd){var _0x20c1f9={};var _0x16ae7c={};var _0x109bf2;var _0x525353;return db[_0xef1a('0x27')][_0xef1a('0x4e')]({'where':{'id':_0x59a802[_0xef1a('0x44')]['id']}})[_0xef1a('0x23')](handleEntityNotFound(_0x2a1cd6,null))[_0xef1a('0x23')](function(_0x3d1f5d){if(_0x3d1f5d){_0x109bf2=_0x3d1f5d;_0x16ae7c[_0xef1a('0x2c')]=_['keys'](db[_0xef1a('0x4f')][_0xef1a('0x28')]);_0x16ae7c[_0xef1a('0x2e')]=_['keys'](_0x59a802[_0xef1a('0x2e')]);_0x16ae7c[_0xef1a('0x30')]=_[_0xef1a('0x31')](_0x16ae7c[_0xef1a('0x2c')],_0x16ae7c['query']);_0x20c1f9[_0xef1a('0x33')]=_[_0xef1a('0x31')](_0x16ae7c[_0xef1a('0x2c')],qs[_0xef1a('0x32')](_0x59a802[_0xef1a('0x2e')][_0xef1a('0x32')]));_0x20c1f9[_0xef1a('0x33')]=_0x20c1f9[_0xef1a('0x33')]['length']?_0x20c1f9[_0xef1a('0x33')]:_0x16ae7c[_0xef1a('0x2c')];_0x20c1f9[_0xef1a('0x50')]=qs['sort'](_0x59a802['query'][_0xef1a('0x37')]);_0x20c1f9[_0xef1a('0x38')]=qs['filters'](_[_0xef1a('0x39')](_0x59a802[_0xef1a('0x2e')],_0x16ae7c[_0xef1a('0x30')]));if(_0x59a802[_0xef1a('0x2e')][_0xef1a('0x3a')]){_0x20c1f9[_0xef1a('0x38')]=_[_0xef1a('0x3b')](_0x20c1f9[_0xef1a('0x38')],{'$or':_['map'](_0x20c1f9['attributes'],function(_0x5f1a9e){var _0x47bfb4={};_0x47bfb4[_0x5f1a9e]={'$like':'%'+_0x59a802[_0xef1a('0x2e')]['filter']+'%'};return _0x47bfb4;})});}_0x20c1f9=_[_0xef1a('0x3b')]({},_0x20c1f9,_0x59a802[_0xef1a('0x3d')]);return _0x109bf2[_0xef1a('0x4d')](_0x20c1f9);}})[_0xef1a('0x23')](function(_0x127752){if(_0x127752){_0x525353=_0x127752['length'];if(!_0x59a802[_0xef1a('0x2e')]['hasOwnProperty']('nolimit')){_0x20c1f9[_0xef1a('0x20')]=qs['limit'](_0x59a802[_0xef1a('0x2e')][_0xef1a('0x20')]);_0x20c1f9[_0xef1a('0x1e')]=qs[_0xef1a('0x1e')](_0x59a802['query']['offset']);}return _0x109bf2[_0xef1a('0x4d')](_0x20c1f9);}})['then'](function(_0x5dffcc){if(_0x5dffcc){return _0x5dffcc?{'count':_0x525353,'rows':_0x5dffcc}:null;}})['then'](respondWithResult(_0x2a1cd6,null))[_0xef1a('0x42')](handleError(_0x2a1cd6,null));};exports[_0xef1a('0x51')]=function(_0x3101bd,_0x363fed,_0x439ce8){return db[_0xef1a('0x52')][_0xef1a('0x45')]({'where':{'id':_0x3101bd['params']['id']}})[_0xef1a('0x23')](handleEntityNotFound(_0x363fed,null))[_0xef1a('0x23')](function(_0x288ac2){if(_0x288ac2){return _0x288ac2['addActions'](_0x3101bd[_0xef1a('0x47')]['ids'],_[_0xef1a('0x4c')](_0x3101bd[_0xef1a('0x47')],['ids','id'])||{});}})[_0xef1a('0x23')](respondWithResult(_0x363fed,null))[_0xef1a('0x42')](handleError(_0x363fed,null));};exports[_0xef1a('0x53')]=function(_0xa7c94f,_0x58382f,_0x3866bf){var _0xf6f9c2={};var _0x333b74={};var _0x51e3f6;var _0x12ff9a;return db[_0xef1a('0x27')][_0xef1a('0x4e')]({'where':{'id':_0xa7c94f[_0xef1a('0x44')]['id']}})[_0xef1a('0x23')](handleEntityNotFound(_0x58382f,null))['then'](function(_0xff605a){if(_0xff605a){_0x51e3f6=_0xff605a;_0x333b74[_0xef1a('0x2c')]=_[_0xef1a('0x2f')](db[_0xef1a('0x52')][_0xef1a('0x28')]);_0x333b74[_0xef1a('0x2e')]=_['keys'](_0xa7c94f[_0xef1a('0x2e')]);_0x333b74[_0xef1a('0x30')]=_[_0xef1a('0x31')](_0x333b74[_0xef1a('0x2c')],_0x333b74[_0xef1a('0x2e')]);_0xf6f9c2[_0xef1a('0x33')]=_[_0xef1a('0x31')](_0x333b74[_0xef1a('0x2c')],qs[_0xef1a('0x32')](_0xa7c94f[_0xef1a('0x2e')]['fields']));_0xf6f9c2['attributes']=_0xf6f9c2[_0xef1a('0x33')][_0xef1a('0x34')]?_0xf6f9c2['attributes']:_0x333b74[_0xef1a('0x2c')];_0xf6f9c2[_0xef1a('0x50')]=qs[_0xef1a('0x37')](_0xa7c94f['query']['sort']);_0xf6f9c2[_0xef1a('0x38')]=qs['filters'](_['pick'](_0xa7c94f[_0xef1a('0x2e')],_0x333b74[_0xef1a('0x30')]));if(_0xa7c94f[_0xef1a('0x2e')][_0xef1a('0x3a')]){_0xf6f9c2[_0xef1a('0x38')]=_[_0xef1a('0x3b')](_0xf6f9c2[_0xef1a('0x38')],{'$or':_[_0xef1a('0x2d')](_0xf6f9c2[_0xef1a('0x33')],function(_0x29a8ae){var _0x23ebb4={};_0x23ebb4[_0x29a8ae]={'$like':'%'+_0xa7c94f['query'][_0xef1a('0x3a')]+'%'};return _0x23ebb4;})});}_0xf6f9c2=_['merge']({},_0xf6f9c2,_0xa7c94f['options']);return _0x51e3f6[_0xef1a('0x53')](_0xf6f9c2);}})[_0xef1a('0x23')](function(_0x5f01ed){if(_0x5f01ed){_0x12ff9a=_0x5f01ed[_0xef1a('0x34')];if(!_0xa7c94f[_0xef1a('0x2e')][_0xef1a('0x35')](_0xef1a('0x36'))){_0xf6f9c2[_0xef1a('0x20')]=qs[_0xef1a('0x20')](_0xa7c94f[_0xef1a('0x2e')][_0xef1a('0x20')]);_0xf6f9c2[_0xef1a('0x1e')]=qs[_0xef1a('0x1e')](_0xa7c94f['query'][_0xef1a('0x1e')]);}return _0x51e3f6['getActions'](_0xf6f9c2);}})[_0xef1a('0x23')](function(_0x598b38){if(_0x598b38){return _0x598b38?{'count':_0x12ff9a,'rows':_0x598b38}:null;}})[_0xef1a('0x23')](respondWithResult(_0x58382f,null))[_0xef1a('0x42')](handleError(_0x58382f,null));};