fa01008ca1a9eff1e558d518ba6c90f0b507c666
[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 _0x4632=['../../config/utils','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','end','sendStatus','error','stack','name','send','index','map','Automation','fieldName','key','model','query','keys','filters','intersection','fields','length','attributes','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','show','params','rawAttributes','options','find','create','body','destroy','addConditions','Condition','ids','omit','getConditions','hasOwnProperty','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x263ec8,_0x49ae36){var _0x1c03c2=function(_0x1bf4d4){while(--_0x1bf4d4){_0x263ec8['push'](_0x263ec8['shift']());}};_0x1c03c2(++_0x49ae36);}(_0x4632,0xe8));var _0x2463=function(_0x5d4607,_0x6b5e7b){_0x5d4607=_0x5d4607-0x0;var _0x5e4a86=_0x4632[_0x5d4607];return _0x5e4a86;};'use strict';var emlformat=require(_0x2463('0x0'));var rimraf=require(_0x2463('0x1'));var zipdir=require(_0x2463('0x2'));var jsonpatch=require(_0x2463('0x3'));var rp=require(_0x2463('0x4'));var moment=require(_0x2463('0x5'));var BPromise=require(_0x2463('0x6'));var Mustache=require(_0x2463('0x7'));var util=require(_0x2463('0x8'));var path=require(_0x2463('0x9'));var sox=require(_0x2463('0xa'));var csv=require(_0x2463('0xb'));var ejs=require(_0x2463('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2463('0xd'));var squel=require(_0x2463('0xe'));var crypto=require(_0x2463('0xf'));var jsforce=require(_0x2463('0x10'));var deskjs=require(_0x2463('0x11'));var toCsv=require(_0x2463('0xb'));var querystring=require(_0x2463('0x12'));var Papa=require('papaparse');var Redis=require(_0x2463('0x13'));var authService=require(_0x2463('0x14'));var qs=require(_0x2463('0x15'));var as=require(_0x2463('0x16'));var hardwareService=require(_0x2463('0x17'));var logger=require(_0x2463('0x18'))(_0x2463('0x19'));var utils=require(_0x2463('0x1a'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2463('0x1b'))['db'];function respondWithStatusCode(_0x5a85ac,_0x46d879){_0x46d879=_0x46d879||0xcc;return function(_0x552d23){if(_0x552d23){return _0x5a85ac['sendStatus'](_0x46d879);}return _0x5a85ac['status'](_0x46d879)['end']();};}function respondWithResult(_0x43a35d,_0x1a3669){_0x1a3669=_0x1a3669||0xc8;return function(_0x5ef125){if(_0x5ef125){return _0x43a35d[_0x2463('0x1c')](_0x1a3669)[_0x2463('0x1d')](_0x5ef125);}};}function respondWithFilteredResult(_0x39545e,_0x14f198){return function(_0x458219){if(_0x458219){var _0x3b5d51=typeof _0x14f198[_0x2463('0x1e')]===_0x2463('0x1f')&&typeof _0x14f198[_0x2463('0x20')]===_0x2463('0x1f');var _0x12beb3=_0x458219[_0x2463('0x21')];var _0x371153=_0x3b5d51?0x0:_0x14f198[_0x2463('0x1e')];var _0x36a3c0=_0x3b5d51?_0x458219[_0x2463('0x21')]:_0x14f198[_0x2463('0x1e')]+_0x14f198[_0x2463('0x20')];var _0x5d644a;if(_0x36a3c0>=_0x12beb3){_0x36a3c0=_0x12beb3;_0x5d644a=0xc8;}else{_0x5d644a=0xce;}_0x39545e['status'](_0x5d644a);return _0x39545e[_0x2463('0x22')](_0x2463('0x23'),_0x371153+'-'+_0x36a3c0+'/'+_0x12beb3)['json'](_0x458219);}return null;};}function patchUpdates(_0x57be71){return function(_0x32e2bb){try{jsonpatch[_0x2463('0x24')](_0x32e2bb,_0x57be71,!![]);}catch(_0x5bbe06){return BPromise['reject'](_0x5bbe06);}return _0x32e2bb[_0x2463('0x25')]();};}function saveUpdates(_0xc146fe,_0x4a1196){return function(_0x38dcd1){if(_0x38dcd1){return _0x38dcd1[_0x2463('0x26')](_0xc146fe)['then'](function(_0x515122){return _0x515122;});}return null;};}function removeEntity(_0xcb98e,_0x5076b0){return function(_0x4095d3){if(_0x4095d3){return _0x4095d3['destroy']()[_0x2463('0x27')](function(){_0xcb98e[_0x2463('0x1c')](0xcc)[_0x2463('0x28')]();});}};}function handleEntityNotFound(_0x571b81,_0x2d142d){return function(_0x4d35b0){if(!_0x4d35b0){_0x571b81[_0x2463('0x29')](0x194);}return _0x4d35b0;};}function handleError(_0x4237da,_0x3c5089){_0x3c5089=_0x3c5089||0x1f4;return function(_0x37118a){logger[_0x2463('0x2a')](_0x37118a[_0x2463('0x2b')]);if(_0x37118a[_0x2463('0x2c')]){delete _0x37118a[_0x2463('0x2c')];}_0x4237da[_0x2463('0x1c')](_0x3c5089)[_0x2463('0x2d')](_0x37118a);};}exports[_0x2463('0x2e')]=function(_0x33a324,_0x34c438){var _0xc99a10={},_0x34c683={},_0x348b15={'count':0x0,'rows':[]};var _0x23b86f=_[_0x2463('0x2f')](db[_0x2463('0x30')]['rawAttributes'],function(_0x2d15f6){return{'name':_0x2d15f6[_0x2463('0x31')],'type':_0x2d15f6['type'][_0x2463('0x32')]};});_0x34c683[_0x2463('0x33')]=_['map'](_0x23b86f,_0x2463('0x2c'));_0x34c683[_0x2463('0x34')]=_[_0x2463('0x35')](_0x33a324[_0x2463('0x34')]);_0x34c683[_0x2463('0x36')]=_[_0x2463('0x37')](_0x34c683[_0x2463('0x33')],_0x34c683[_0x2463('0x34')]);_0xc99a10['attributes']=_[_0x2463('0x37')](_0x34c683[_0x2463('0x33')],qs[_0x2463('0x38')](_0x33a324[_0x2463('0x34')]['fields']));_0xc99a10['attributes']=_0xc99a10['attributes'][_0x2463('0x39')]?_0xc99a10[_0x2463('0x3a')]:_0x34c683['model'];if(!_0x33a324[_0x2463('0x34')]['hasOwnProperty'](_0x2463('0x3b'))){_0xc99a10[_0x2463('0x20')]=qs[_0x2463('0x20')](_0x33a324['query'][_0x2463('0x20')]);_0xc99a10['offset']=qs['offset'](_0x33a324[_0x2463('0x34')][_0x2463('0x1e')]);}_0xc99a10['order']=qs['sort'](_0x33a324['query'][_0x2463('0x3c')]);_0xc99a10[_0x2463('0x3d')]=qs[_0x2463('0x36')](_[_0x2463('0x3e')](_0x33a324['query'],_0x34c683[_0x2463('0x36')]),_0x23b86f);if(_0x33a324[_0x2463('0x34')][_0x2463('0x3f')]){_0xc99a10[_0x2463('0x3d')]=_[_0x2463('0x40')](_0xc99a10['where'],{'$or':_[_0x2463('0x2f')](_0x23b86f,function(_0x5ec61a){if(_0x5ec61a['type']!==_0x2463('0x41')){var _0x44c2f4={};_0x44c2f4[_0x5ec61a[_0x2463('0x2c')]]={'$like':'%'+_0x33a324[_0x2463('0x34')][_0x2463('0x3f')]+'%'};return _0x44c2f4;}})});}_0xc99a10=_['merge']({},_0xc99a10,_0x33a324['options']);var _0x440424={'where':_0xc99a10[_0x2463('0x3d')]};return db['Automation'][_0x2463('0x21')](_0x440424)[_0x2463('0x27')](function(_0x3b1256){_0x348b15[_0x2463('0x21')]=_0x3b1256;if(_0x33a324[_0x2463('0x34')][_0x2463('0x42')]){_0xc99a10['include']=[{'all':!![]}];}return db[_0x2463('0x30')][_0x2463('0x43')](_0xc99a10);})[_0x2463('0x27')](function(_0x10a40c){_0x348b15[_0x2463('0x44')]=_0x10a40c;return _0x348b15;})['then'](respondWithFilteredResult(_0x34c438,_0xc99a10))[_0x2463('0x45')](handleError(_0x34c438,null));};exports[_0x2463('0x46')]=function(_0x2128b1,_0x1a5924){var _0x9cacf={'raw':![],'where':{'id':_0x2128b1[_0x2463('0x47')]['id']}},_0x2ee26e={};_0x2ee26e[_0x2463('0x33')]=_['keys'](db[_0x2463('0x30')][_0x2463('0x48')]);_0x2ee26e[_0x2463('0x34')]=_[_0x2463('0x35')](_0x2128b1[_0x2463('0x34')]);_0x2ee26e[_0x2463('0x36')]=_[_0x2463('0x37')](_0x2ee26e[_0x2463('0x33')],_0x2ee26e[_0x2463('0x34')]);_0x9cacf[_0x2463('0x3a')]=_[_0x2463('0x37')](_0x2ee26e[_0x2463('0x33')],qs[_0x2463('0x38')](_0x2128b1[_0x2463('0x34')][_0x2463('0x38')]));_0x9cacf[_0x2463('0x3a')]=_0x9cacf[_0x2463('0x3a')][_0x2463('0x39')]?_0x9cacf['attributes']:_0x2ee26e[_0x2463('0x33')];if(_0x2128b1[_0x2463('0x34')][_0x2463('0x42')]){_0x9cacf['include']=[{'all':!![]}];}_0x9cacf=_[_0x2463('0x40')]({},_0x9cacf,_0x2128b1[_0x2463('0x49')]);return db[_0x2463('0x30')][_0x2463('0x4a')](_0x9cacf)[_0x2463('0x27')](handleEntityNotFound(_0x1a5924,null))[_0x2463('0x27')](respondWithResult(_0x1a5924,null))[_0x2463('0x45')](handleError(_0x1a5924,null));};exports[_0x2463('0x4b')]=function(_0x44cfc7,_0x2671f4){return db[_0x2463('0x30')][_0x2463('0x4b')](_0x44cfc7[_0x2463('0x4c')],{})[_0x2463('0x27')](respondWithResult(_0x2671f4,0xc9))[_0x2463('0x45')](handleError(_0x2671f4,null));};exports[_0x2463('0x26')]=function(_0x37eeab,_0x5df921){if(_0x37eeab[_0x2463('0x4c')]['id']){delete _0x37eeab[_0x2463('0x4c')]['id'];}return db[_0x2463('0x30')]['find']({'where':{'id':_0x37eeab[_0x2463('0x47')]['id']}})['then'](handleEntityNotFound(_0x5df921,null))[_0x2463('0x27')](saveUpdates(_0x37eeab['body'],null))[_0x2463('0x27')](respondWithResult(_0x5df921,null))[_0x2463('0x45')](handleError(_0x5df921,null));};exports[_0x2463('0x4d')]=function(_0x1d7cd7,_0xf1f53c){return db[_0x2463('0x30')][_0x2463('0x4a')]({'where':{'id':_0x1d7cd7[_0x2463('0x47')]['id']}})[_0x2463('0x27')](handleEntityNotFound(_0xf1f53c,null))[_0x2463('0x27')](removeEntity(_0xf1f53c,null))[_0x2463('0x45')](handleError(_0xf1f53c,null));};exports[_0x2463('0x4e')]=function(_0x314f4b,_0x34a835,_0x54d908){return db[_0x2463('0x4f')][_0x2463('0x4a')]({'where':{'id':_0x314f4b[_0x2463('0x47')]['id']}})['then'](handleEntityNotFound(_0x34a835,null))[_0x2463('0x27')](function(_0x11c75c){if(_0x11c75c){return _0x11c75c['addConditions'](_0x314f4b[_0x2463('0x4c')][_0x2463('0x50')],_[_0x2463('0x51')](_0x314f4b[_0x2463('0x4c')],[_0x2463('0x50'),'id'])||{});}})[_0x2463('0x27')](respondWithResult(_0x34a835,null))['catch'](handleError(_0x34a835,null));};exports[_0x2463('0x52')]=function(_0x417f55,_0x1268bf,_0x2d3af7){var _0x22cc7f={};var _0x18044d={};var _0xfab5d5;var _0xeac9c4;return db[_0x2463('0x30')]['findOne']({'where':{'id':_0x417f55[_0x2463('0x47')]['id']}})[_0x2463('0x27')](handleEntityNotFound(_0x1268bf,null))[_0x2463('0x27')](function(_0x4da56e){if(_0x4da56e){_0xfab5d5=_0x4da56e;_0x18044d[_0x2463('0x33')]=_['keys'](db[_0x2463('0x4f')][_0x2463('0x48')]);_0x18044d[_0x2463('0x34')]=_['keys'](_0x417f55[_0x2463('0x34')]);_0x18044d[_0x2463('0x36')]=_['intersection'](_0x18044d[_0x2463('0x33')],_0x18044d[_0x2463('0x34')]);_0x22cc7f[_0x2463('0x3a')]=_[_0x2463('0x37')](_0x18044d['model'],qs[_0x2463('0x38')](_0x417f55[_0x2463('0x34')][_0x2463('0x38')]));_0x22cc7f[_0x2463('0x3a')]=_0x22cc7f[_0x2463('0x3a')][_0x2463('0x39')]?_0x22cc7f[_0x2463('0x3a')]:_0x18044d[_0x2463('0x33')];_0x22cc7f['order']=qs['sort'](_0x417f55[_0x2463('0x34')]['sort']);_0x22cc7f[_0x2463('0x3d')]=qs[_0x2463('0x36')](_[_0x2463('0x3e')](_0x417f55[_0x2463('0x34')],_0x18044d[_0x2463('0x36')]));if(_0x417f55['query']['filter']){_0x22cc7f[_0x2463('0x3d')]=_[_0x2463('0x40')](_0x22cc7f[_0x2463('0x3d')],{'$or':_[_0x2463('0x2f')](_0x22cc7f[_0x2463('0x3a')],function(_0x2247e5){var _0x245c29={};_0x245c29[_0x2247e5]={'$like':'%'+_0x417f55[_0x2463('0x34')][_0x2463('0x3f')]+'%'};return _0x245c29;})});}_0x22cc7f=_[_0x2463('0x40')]({},_0x22cc7f,_0x417f55[_0x2463('0x49')]);return _0xfab5d5[_0x2463('0x52')](_0x22cc7f);}})[_0x2463('0x27')](function(_0x1a1c10){if(_0x1a1c10){_0xeac9c4=_0x1a1c10['length'];if(!_0x417f55[_0x2463('0x34')][_0x2463('0x53')](_0x2463('0x3b'))){_0x22cc7f[_0x2463('0x20')]=qs[_0x2463('0x20')](_0x417f55[_0x2463('0x34')][_0x2463('0x20')]);_0x22cc7f[_0x2463('0x1e')]=qs[_0x2463('0x1e')](_0x417f55[_0x2463('0x34')]['offset']);}return _0xfab5d5[_0x2463('0x52')](_0x22cc7f);}})[_0x2463('0x27')](function(_0x24c656){if(_0x24c656){return _0x24c656?{'count':_0xeac9c4,'rows':_0x24c656}:null;}})['then'](respondWithResult(_0x1268bf,null))[_0x2463('0x45')](handleError(_0x1268bf,null));};exports['addActions']=function(_0x404462,_0x5c0b8c,_0xbe650f){return db[_0x2463('0x54')][_0x2463('0x4a')]({'where':{'id':_0x404462[_0x2463('0x47')]['id']}})[_0x2463('0x27')](handleEntityNotFound(_0x5c0b8c,null))[_0x2463('0x27')](function(_0x281193){if(_0x281193){return _0x281193['addActions'](_0x404462[_0x2463('0x4c')][_0x2463('0x50')],_['omit'](_0x404462[_0x2463('0x4c')],[_0x2463('0x50'),'id'])||{});}})[_0x2463('0x27')](respondWithResult(_0x5c0b8c,null))[_0x2463('0x45')](handleError(_0x5c0b8c,null));};exports[_0x2463('0x55')]=function(_0x1ec7da,_0x906166,_0xd7becc){var _0x5225b7={};var _0x3a22e2={};var _0x370691;var _0x4d9a74;return db['Automation']['findOne']({'where':{'id':_0x1ec7da[_0x2463('0x47')]['id']}})[_0x2463('0x27')](handleEntityNotFound(_0x906166,null))[_0x2463('0x27')](function(_0x15c8fe){if(_0x15c8fe){_0x370691=_0x15c8fe;_0x3a22e2[_0x2463('0x33')]=_[_0x2463('0x35')](db['Action'][_0x2463('0x48')]);_0x3a22e2[_0x2463('0x34')]=_[_0x2463('0x35')](_0x1ec7da[_0x2463('0x34')]);_0x3a22e2['filters']=_[_0x2463('0x37')](_0x3a22e2[_0x2463('0x33')],_0x3a22e2[_0x2463('0x34')]);_0x5225b7['attributes']=_[_0x2463('0x37')](_0x3a22e2[_0x2463('0x33')],qs['fields'](_0x1ec7da['query'][_0x2463('0x38')]));_0x5225b7['attributes']=_0x5225b7[_0x2463('0x3a')][_0x2463('0x39')]?_0x5225b7[_0x2463('0x3a')]:_0x3a22e2['model'];_0x5225b7['order']=qs['sort'](_0x1ec7da['query'][_0x2463('0x3c')]);_0x5225b7[_0x2463('0x3d')]=qs[_0x2463('0x36')](_[_0x2463('0x3e')](_0x1ec7da[_0x2463('0x34')],_0x3a22e2['filters']));if(_0x1ec7da['query']['filter']){_0x5225b7['where']=_[_0x2463('0x40')](_0x5225b7[_0x2463('0x3d')],{'$or':_['map'](_0x5225b7[_0x2463('0x3a')],function(_0x3581f4){var _0x483869={};_0x483869[_0x3581f4]={'$like':'%'+_0x1ec7da['query'][_0x2463('0x3f')]+'%'};return _0x483869;})});}_0x5225b7=_[_0x2463('0x40')]({},_0x5225b7,_0x1ec7da[_0x2463('0x49')]);return _0x370691[_0x2463('0x55')](_0x5225b7);}})[_0x2463('0x27')](function(_0x46f29a){if(_0x46f29a){_0x4d9a74=_0x46f29a['length'];if(!_0x1ec7da['query'][_0x2463('0x53')](_0x2463('0x3b'))){_0x5225b7[_0x2463('0x20')]=qs[_0x2463('0x20')](_0x1ec7da['query'][_0x2463('0x20')]);_0x5225b7[_0x2463('0x1e')]=qs['offset'](_0x1ec7da['query']['offset']);}return _0x370691[_0x2463('0x55')](_0x5225b7);}})[_0x2463('0x27')](function(_0x2761ee){if(_0x2761ee){return _0x2761ee?{'count':_0x4d9a74,'rows':_0x2761ee}:null;}})[_0x2463('0x27')](respondWithResult(_0x906166,null))[_0x2463('0x45')](handleError(_0x906166,null));};