Built motion from commit 00bf23f6.|2.6.16
[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 _0xa284=['keys','filters','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','findAll','rows','show','attributes','includeAll','include','catch','create','body','find','destroy','params','addConditions','Condition','findOne','getConditions','addActions','Action','omit','ids','getActions','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','save','then','name','Automation','rawAttributes','fieldName','type','model','map','query'];(function(_0x533bf7,_0x29485b){var _0x9e4c57=function(_0xe4211f){while(--_0xe4211f){_0x533bf7['push'](_0x533bf7['shift']());}};_0x9e4c57(++_0x29485b);}(_0xa284,0x1aa));var _0x4a28=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xa284[_0x57b54c];return _0x59cc19;};'use strict';var emlformat=require(_0x4a28('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4a28('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4a28('0x2'));var moment=require(_0x4a28('0x3'));var BPromise=require(_0x4a28('0x4'));var Mustache=require(_0x4a28('0x5'));var util=require('util');var path=require(_0x4a28('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4a28('0x7'));var _=require(_0x4a28('0x8'));var squel=require(_0x4a28('0x9'));var crypto=require(_0x4a28('0xa'));var jsforce=require(_0x4a28('0xb'));var deskjs=require(_0x4a28('0xc'));var toCsv=require(_0x4a28('0xd'));var querystring=require(_0x4a28('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x4a28('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x4a28('0x10'));var hardwareService=require(_0x4a28('0x11'));var logger=require(_0x4a28('0x12'))('api');var utils=require(_0x4a28('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x4a28('0x14'));var db=require(_0x4a28('0x15'))['db'];function respondWithStatusCode(_0xefb677,_0x7890b1){_0x7890b1=_0x7890b1||0xcc;return function(_0x2f6e20){if(_0x2f6e20){return _0xefb677[_0x4a28('0x16')](_0x7890b1);}return _0xefb677[_0x4a28('0x17')](_0x7890b1)['end']();};}function respondWithResult(_0x2536ee,_0x3146a1){_0x3146a1=_0x3146a1||0xc8;return function(_0x521577){if(_0x521577){return _0x2536ee[_0x4a28('0x17')](_0x3146a1)[_0x4a28('0x18')](_0x521577);}};}function respondWithFilteredResult(_0x119e6f,_0x5e08c2){return function(_0x49bf17){if(_0x49bf17){var _0x565c73=typeof _0x5e08c2[_0x4a28('0x19')]==='undefined'&&typeof _0x5e08c2[_0x4a28('0x1a')]==='undefined';var _0x5a3c64=_0x49bf17[_0x4a28('0x1b')];var _0x21d43d=_0x565c73?0x0:_0x5e08c2[_0x4a28('0x19')];var _0x3c4202=_0x565c73?_0x49bf17[_0x4a28('0x1b')]:_0x5e08c2[_0x4a28('0x19')]+_0x5e08c2['limit'];var _0x15e8f2;if(_0x3c4202>=_0x5a3c64){_0x3c4202=_0x5a3c64;_0x15e8f2=0xc8;}else{_0x15e8f2=0xce;}_0x119e6f['status'](_0x15e8f2);return _0x119e6f[_0x4a28('0x1c')](_0x4a28('0x1d'),_0x21d43d+'-'+_0x3c4202+'/'+_0x5a3c64)[_0x4a28('0x18')](_0x49bf17);}return null;};}function patchUpdates(_0x461ac2){return function(_0x49a3e4){try{jsonpatch[_0x4a28('0x1e')](_0x49a3e4,_0x461ac2,!![]);}catch(_0x4bf531){return BPromise[_0x4a28('0x1f')](_0x4bf531);}return _0x49a3e4[_0x4a28('0x20')]();};}function saveUpdates(_0x52316b,_0x1151a5){return function(_0x464174){if(_0x464174){return _0x464174['update'](_0x52316b)[_0x4a28('0x21')](function(_0x5dfd6b){return _0x5dfd6b;});}return null;};}function removeEntity(_0x4f62b4,_0x4c3ce6){return function(_0x47bcfd){if(_0x47bcfd){return _0x47bcfd['destroy']()[_0x4a28('0x21')](function(){_0x4f62b4[_0x4a28('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4cd2e2,_0x42b43b){return function(_0x58b300){if(!_0x58b300){_0x4cd2e2['sendStatus'](0x194);}return _0x58b300;};}function handleError(_0x565850,_0x58509c){_0x58509c=_0x58509c||0x1f4;return function(_0x186ba6){logger['error'](_0x186ba6['stack']);if(_0x186ba6[_0x4a28('0x22')]){delete _0x186ba6[_0x4a28('0x22')];}_0x565850[_0x4a28('0x17')](_0x58509c)['send'](_0x186ba6);};}exports['index']=function(_0x4b3343,_0x5d048e){var _0x21fbd4={},_0x14a9d2={},_0x3996ae={'count':0x0,'rows':[]};var _0x4a10c9=_['map'](db[_0x4a28('0x23')][_0x4a28('0x24')],function(_0x265f13){return{'name':_0x265f13[_0x4a28('0x25')],'type':_0x265f13[_0x4a28('0x26')]['key']};});_0x14a9d2[_0x4a28('0x27')]=_[_0x4a28('0x28')](_0x4a10c9,_0x4a28('0x22'));_0x14a9d2[_0x4a28('0x29')]=_[_0x4a28('0x2a')](_0x4b3343['query']);_0x14a9d2[_0x4a28('0x2b')]=_[_0x4a28('0x2c')](_0x14a9d2[_0x4a28('0x27')],_0x14a9d2[_0x4a28('0x29')]);_0x21fbd4['attributes']=_[_0x4a28('0x2c')](_0x14a9d2[_0x4a28('0x27')],qs[_0x4a28('0x2d')](_0x4b3343[_0x4a28('0x29')]['fields']));_0x21fbd4['attributes']=_0x21fbd4['attributes'][_0x4a28('0x2e')]?_0x21fbd4['attributes']:_0x14a9d2['model'];if(!_0x4b3343[_0x4a28('0x29')][_0x4a28('0x2f')](_0x4a28('0x30'))){_0x21fbd4[_0x4a28('0x1a')]=qs[_0x4a28('0x1a')](_0x4b3343[_0x4a28('0x29')][_0x4a28('0x1a')]);_0x21fbd4[_0x4a28('0x19')]=qs['offset'](_0x4b3343[_0x4a28('0x29')]['offset']);}_0x21fbd4[_0x4a28('0x31')]=qs['sort'](_0x4b3343[_0x4a28('0x29')][_0x4a28('0x32')]);_0x21fbd4['where']=qs[_0x4a28('0x2b')](_[_0x4a28('0x33')](_0x4b3343[_0x4a28('0x29')],_0x14a9d2[_0x4a28('0x2b')]),_0x4a10c9);if(_0x4b3343[_0x4a28('0x29')]['filter']){_0x21fbd4[_0x4a28('0x34')]=_[_0x4a28('0x35')](_0x21fbd4[_0x4a28('0x34')],{'$or':_['map'](_0x4a10c9,function(_0x2a6470){if(_0x2a6470[_0x4a28('0x26')]!==_0x4a28('0x36')){var _0x557aac={};_0x557aac[_0x2a6470['name']]={'$like':'%'+_0x4b3343[_0x4a28('0x29')][_0x4a28('0x37')]+'%'};return _0x557aac;}})});}_0x21fbd4=_['merge']({},_0x21fbd4,_0x4b3343[_0x4a28('0x38')]);var _0x4bab17={'where':_0x21fbd4[_0x4a28('0x34')]};return db[_0x4a28('0x23')][_0x4a28('0x1b')](_0x4bab17)['then'](function(_0x1d0fea){_0x3996ae['count']=_0x1d0fea;if(_0x4b3343[_0x4a28('0x29')]['includeAll']){_0x21fbd4['include']=[{'all':!![]}];}return db[_0x4a28('0x23')][_0x4a28('0x39')](_0x21fbd4);})[_0x4a28('0x21')](function(_0x3dde9d){_0x3996ae[_0x4a28('0x3a')]=_0x3dde9d;return _0x3996ae;})[_0x4a28('0x21')](respondWithFilteredResult(_0x5d048e,_0x21fbd4))['catch'](handleError(_0x5d048e,null));};exports[_0x4a28('0x3b')]=function(_0x57beb0,_0x25f0a5){var _0x185559={'raw':![],'where':{'id':_0x57beb0['params']['id']}},_0x2c8c4f={};_0x2c8c4f['model']=_[_0x4a28('0x2a')](db[_0x4a28('0x23')][_0x4a28('0x24')]);_0x2c8c4f[_0x4a28('0x29')]=_[_0x4a28('0x2a')](_0x57beb0[_0x4a28('0x29')]);_0x2c8c4f[_0x4a28('0x2b')]=_[_0x4a28('0x2c')](_0x2c8c4f['model'],_0x2c8c4f['query']);_0x185559[_0x4a28('0x3c')]=_[_0x4a28('0x2c')](_0x2c8c4f[_0x4a28('0x27')],qs['fields'](_0x57beb0[_0x4a28('0x29')][_0x4a28('0x2d')]));_0x185559[_0x4a28('0x3c')]=_0x185559[_0x4a28('0x3c')][_0x4a28('0x2e')]?_0x185559['attributes']:_0x2c8c4f[_0x4a28('0x27')];if(_0x57beb0[_0x4a28('0x29')][_0x4a28('0x3d')]){_0x185559[_0x4a28('0x3e')]=[{'all':!![]}];}_0x185559=_[_0x4a28('0x35')]({},_0x185559,_0x57beb0[_0x4a28('0x38')]);return db[_0x4a28('0x23')]['find'](_0x185559)['then'](handleEntityNotFound(_0x25f0a5,null))[_0x4a28('0x21')](respondWithResult(_0x25f0a5,null))[_0x4a28('0x3f')](handleError(_0x25f0a5,null));};exports[_0x4a28('0x40')]=function(_0x49a791,_0x549a80){return db[_0x4a28('0x23')][_0x4a28('0x40')](_0x49a791[_0x4a28('0x41')],{})[_0x4a28('0x21')](respondWithResult(_0x549a80,0xc9))['catch'](handleError(_0x549a80,null));};exports['update']=function(_0x43ff45,_0x199ddd){if(_0x43ff45[_0x4a28('0x41')]['id']){delete _0x43ff45['body']['id'];}return db[_0x4a28('0x23')][_0x4a28('0x42')]({'where':{'id':_0x43ff45['params']['id']}})[_0x4a28('0x21')](handleEntityNotFound(_0x199ddd,null))[_0x4a28('0x21')](saveUpdates(_0x43ff45[_0x4a28('0x41')],null))[_0x4a28('0x21')](respondWithResult(_0x199ddd,null))[_0x4a28('0x3f')](handleError(_0x199ddd,null));};exports[_0x4a28('0x43')]=function(_0x14fcea,_0x5570f1){return db[_0x4a28('0x23')]['find']({'where':{'id':_0x14fcea[_0x4a28('0x44')]['id']}})['then'](handleEntityNotFound(_0x5570f1,null))[_0x4a28('0x21')](removeEntity(_0x5570f1,null))[_0x4a28('0x3f')](handleError(_0x5570f1,null));};exports[_0x4a28('0x45')]=function(_0x232546,_0x318318,_0x2ae3cc){return db[_0x4a28('0x46')][_0x4a28('0x42')]({'where':{'id':_0x232546[_0x4a28('0x44')]['id']}})[_0x4a28('0x21')](handleEntityNotFound(_0x318318,null))[_0x4a28('0x21')](function(_0x856a70){if(_0x856a70){return _0x856a70[_0x4a28('0x45')](_0x232546[_0x4a28('0x41')]['ids'],_['omit'](_0x232546['body'],['ids','id'])||{});}})[_0x4a28('0x21')](respondWithResult(_0x318318,null))[_0x4a28('0x3f')](handleError(_0x318318,null));};exports['getConditions']=function(_0x202e3a,_0x4987f9,_0x35cafc){var _0x182699={};var _0x340778={};var _0x45f520;var _0x37eee3;return db[_0x4a28('0x23')][_0x4a28('0x47')]({'where':{'id':_0x202e3a['params']['id']}})[_0x4a28('0x21')](handleEntityNotFound(_0x4987f9,null))['then'](function(_0x2699ce){if(_0x2699ce){_0x45f520=_0x2699ce;_0x340778['model']=_['keys'](db[_0x4a28('0x46')][_0x4a28('0x24')]);_0x340778[_0x4a28('0x29')]=_['keys'](_0x202e3a[_0x4a28('0x29')]);_0x340778[_0x4a28('0x2b')]=_[_0x4a28('0x2c')](_0x340778[_0x4a28('0x27')],_0x340778[_0x4a28('0x29')]);_0x182699[_0x4a28('0x3c')]=_[_0x4a28('0x2c')](_0x340778[_0x4a28('0x27')],qs[_0x4a28('0x2d')](_0x202e3a[_0x4a28('0x29')][_0x4a28('0x2d')]));_0x182699[_0x4a28('0x3c')]=_0x182699[_0x4a28('0x3c')][_0x4a28('0x2e')]?_0x182699[_0x4a28('0x3c')]:_0x340778[_0x4a28('0x27')];_0x182699['order']=qs[_0x4a28('0x32')](_0x202e3a[_0x4a28('0x29')]['sort']);_0x182699[_0x4a28('0x34')]=qs[_0x4a28('0x2b')](_[_0x4a28('0x33')](_0x202e3a[_0x4a28('0x29')],_0x340778[_0x4a28('0x2b')]));if(_0x202e3a[_0x4a28('0x29')][_0x4a28('0x37')]){_0x182699[_0x4a28('0x34')]=_['merge'](_0x182699['where'],{'$or':_['map'](_0x182699[_0x4a28('0x3c')],function(_0x589d95){var _0xdc2a77={};_0xdc2a77[_0x589d95]={'$like':'%'+_0x202e3a[_0x4a28('0x29')][_0x4a28('0x37')]+'%'};return _0xdc2a77;})});}_0x182699=_[_0x4a28('0x35')]({},_0x182699,_0x202e3a[_0x4a28('0x38')]);return _0x45f520['getConditions'](_0x182699);}})[_0x4a28('0x21')](function(_0x4b1b9b){if(_0x4b1b9b){_0x37eee3=_0x4b1b9b[_0x4a28('0x2e')];if(!_0x202e3a[_0x4a28('0x29')][_0x4a28('0x2f')]('nolimit')){_0x182699[_0x4a28('0x1a')]=qs['limit'](_0x202e3a[_0x4a28('0x29')]['limit']);_0x182699[_0x4a28('0x19')]=qs[_0x4a28('0x19')](_0x202e3a[_0x4a28('0x29')][_0x4a28('0x19')]);}return _0x45f520[_0x4a28('0x48')](_0x182699);}})[_0x4a28('0x21')](function(_0x2f0919){if(_0x2f0919){return _0x2f0919?{'count':_0x37eee3,'rows':_0x2f0919}:null;}})['then'](respondWithResult(_0x4987f9,null))[_0x4a28('0x3f')](handleError(_0x4987f9,null));};exports[_0x4a28('0x49')]=function(_0x31189a,_0x3bd8f2,_0x5474c5){return db[_0x4a28('0x4a')]['find']({'where':{'id':_0x31189a[_0x4a28('0x44')]['id']}})['then'](handleEntityNotFound(_0x3bd8f2,null))[_0x4a28('0x21')](function(_0x3ae4ae){if(_0x3ae4ae){return _0x3ae4ae['addActions'](_0x31189a[_0x4a28('0x41')]['ids'],_[_0x4a28('0x4b')](_0x31189a[_0x4a28('0x41')],[_0x4a28('0x4c'),'id'])||{});}})[_0x4a28('0x21')](respondWithResult(_0x3bd8f2,null))[_0x4a28('0x3f')](handleError(_0x3bd8f2,null));};exports['getActions']=function(_0x463481,_0x5403fd,_0x5d9065){var _0x5e2e29={};var _0x8b873d={};var _0x4a6d1f;var _0x5bcaa2;return db['Automation'][_0x4a28('0x47')]({'where':{'id':_0x463481[_0x4a28('0x44')]['id']}})[_0x4a28('0x21')](handleEntityNotFound(_0x5403fd,null))['then'](function(_0x8cce3){if(_0x8cce3){_0x4a6d1f=_0x8cce3;_0x8b873d[_0x4a28('0x27')]=_['keys'](db[_0x4a28('0x4a')]['rawAttributes']);_0x8b873d[_0x4a28('0x29')]=_[_0x4a28('0x2a')](_0x463481['query']);_0x8b873d['filters']=_[_0x4a28('0x2c')](_0x8b873d[_0x4a28('0x27')],_0x8b873d[_0x4a28('0x29')]);_0x5e2e29[_0x4a28('0x3c')]=_[_0x4a28('0x2c')](_0x8b873d[_0x4a28('0x27')],qs[_0x4a28('0x2d')](_0x463481[_0x4a28('0x29')]['fields']));_0x5e2e29[_0x4a28('0x3c')]=_0x5e2e29[_0x4a28('0x3c')][_0x4a28('0x2e')]?_0x5e2e29[_0x4a28('0x3c')]:_0x8b873d[_0x4a28('0x27')];_0x5e2e29[_0x4a28('0x31')]=qs[_0x4a28('0x32')](_0x463481[_0x4a28('0x29')][_0x4a28('0x32')]);_0x5e2e29['where']=qs[_0x4a28('0x2b')](_['pick'](_0x463481[_0x4a28('0x29')],_0x8b873d['filters']));if(_0x463481['query']['filter']){_0x5e2e29[_0x4a28('0x34')]=_[_0x4a28('0x35')](_0x5e2e29[_0x4a28('0x34')],{'$or':_[_0x4a28('0x28')](_0x5e2e29['attributes'],function(_0x28b617){var _0xa686e7={};_0xa686e7[_0x28b617]={'$like':'%'+_0x463481['query'][_0x4a28('0x37')]+'%'};return _0xa686e7;})});}_0x5e2e29=_[_0x4a28('0x35')]({},_0x5e2e29,_0x463481[_0x4a28('0x38')]);return _0x4a6d1f[_0x4a28('0x4d')](_0x5e2e29);}})[_0x4a28('0x21')](function(_0x5e6098){if(_0x5e6098){_0x5bcaa2=_0x5e6098[_0x4a28('0x2e')];if(!_0x463481[_0x4a28('0x29')][_0x4a28('0x2f')](_0x4a28('0x30'))){_0x5e2e29[_0x4a28('0x1a')]=qs[_0x4a28('0x1a')](_0x463481[_0x4a28('0x29')][_0x4a28('0x1a')]);_0x5e2e29[_0x4a28('0x19')]=qs[_0x4a28('0x19')](_0x463481[_0x4a28('0x29')][_0x4a28('0x19')]);}return _0x4a6d1f['getActions'](_0x5e2e29);}})[_0x4a28('0x21')](function(_0x33a709){if(_0x33a709){return _0x33a709?{'count':_0x5bcaa2,'rows':_0x33a709}:null;}})[_0x4a28('0x21')](respondWithResult(_0x5403fd,null))['catch'](handleError(_0x5403fd,null));};