f6121dfb93f181e3cf8ee485a63dac630aa6caea
[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 _0x2aba=['map','addActions','getActions','findOne','Action','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','offset','count','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','stack','name','index','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','Automation','includeAll','include','rows','catch','show','params','find','create','body','addConditions','Condition','ids','omit','getConditions'];(function(_0x36b5be,_0x25cbb9){var _0x186b09=function(_0x559d03){while(--_0x559d03){_0x36b5be['push'](_0x36b5be['shift']());}};_0x186b09(++_0x25cbb9);}(_0x2aba,0x151));var _0xa2ab=function(_0x335b1d,_0x4d5e1e){_0x335b1d=_0x335b1d-0x0;var _0x588161=_0x2aba[_0x335b1d];return _0x588161;};'use strict';var emlformat=require(_0xa2ab('0x0'));var rimraf=require(_0xa2ab('0x1'));var zipdir=require(_0xa2ab('0x2'));var jsonpatch=require(_0xa2ab('0x3'));var rp=require(_0xa2ab('0x4'));var moment=require('moment');var BPromise=require(_0xa2ab('0x5'));var Mustache=require(_0xa2ab('0x6'));var util=require(_0xa2ab('0x7'));var path=require('path');var sox=require(_0xa2ab('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa2ab('0x9'));var squel=require(_0xa2ab('0xa'));var crypto=require(_0xa2ab('0xb'));var jsforce=require(_0xa2ab('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa2ab('0xd'));var querystring=require(_0xa2ab('0xe'));var Papa=require(_0xa2ab('0xf'));var Redis=require(_0xa2ab('0x10'));var authService=require(_0xa2ab('0x11'));var qs=require(_0xa2ab('0x12'));var as=require(_0xa2ab('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa2ab('0x14'))(_0xa2ab('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xa2ab('0x16'));var db=require(_0xa2ab('0x17'))['db'];function respondWithStatusCode(_0x5f32e3,_0x1b8abe){_0x1b8abe=_0x1b8abe||0xcc;return function(_0x127350){if(_0x127350){return _0x5f32e3[_0xa2ab('0x18')](_0x1b8abe);}return _0x5f32e3[_0xa2ab('0x19')](_0x1b8abe)[_0xa2ab('0x1a')]();};}function respondWithResult(_0x4fb0cb,_0x505adb){_0x505adb=_0x505adb||0xc8;return function(_0x19ce04){if(_0x19ce04){return _0x4fb0cb['status'](_0x505adb)['json'](_0x19ce04);}};}function respondWithFilteredResult(_0x21a902,_0x1cfc17){return function(_0x5dfd9d){if(_0x5dfd9d){var _0x47e552=typeof _0x1cfc17['offset']===_0xa2ab('0x1b')&&typeof _0x1cfc17['limit']===_0xa2ab('0x1b');var _0x942ffd=_0x5dfd9d['count'];var _0x296f3a=_0x47e552?0x0:_0x1cfc17[_0xa2ab('0x1c')];var _0x208c4b=_0x47e552?_0x5dfd9d[_0xa2ab('0x1d')]:_0x1cfc17[_0xa2ab('0x1c')]+_0x1cfc17[_0xa2ab('0x1e')];var _0x460431;if(_0x208c4b>=_0x942ffd){_0x208c4b=_0x942ffd;_0x460431=0xc8;}else{_0x460431=0xce;}_0x21a902[_0xa2ab('0x19')](_0x460431);return _0x21a902[_0xa2ab('0x1f')](_0xa2ab('0x20'),_0x296f3a+'-'+_0x208c4b+'/'+_0x942ffd)[_0xa2ab('0x21')](_0x5dfd9d);}return null;};}function patchUpdates(_0x3a800b){return function(_0x182f16){try{jsonpatch[_0xa2ab('0x22')](_0x182f16,_0x3a800b,!![]);}catch(_0x27bfc7){return BPromise[_0xa2ab('0x23')](_0x27bfc7);}return _0x182f16[_0xa2ab('0x24')]();};}function saveUpdates(_0xf5025f,_0x473158){return function(_0x17c9de){if(_0x17c9de){return _0x17c9de[_0xa2ab('0x25')](_0xf5025f)[_0xa2ab('0x26')](function(_0x2c2fc4){return _0x2c2fc4;});}return null;};}function removeEntity(_0x55f6a2,_0x593c08){return function(_0x515659){if(_0x515659){return _0x515659[_0xa2ab('0x27')]()[_0xa2ab('0x26')](function(){_0x55f6a2[_0xa2ab('0x19')](0xcc)[_0xa2ab('0x1a')]();});}};}function handleEntityNotFound(_0x46d01b,_0x36b52c){return function(_0x245113){if(!_0x245113){_0x46d01b['sendStatus'](0x194);}return _0x245113;};}function handleError(_0x2f7644,_0x35603a){_0x35603a=_0x35603a||0x1f4;return function(_0x2df76d){logger['error'](_0x2df76d[_0xa2ab('0x28')]);if(_0x2df76d[_0xa2ab('0x29')]){delete _0x2df76d[_0xa2ab('0x29')];}_0x2f7644[_0xa2ab('0x19')](_0x35603a)['send'](_0x2df76d);};}exports[_0xa2ab('0x2a')]=function(_0x2e17b1,_0x38f9c1){var _0x33da9f={},_0x35d25f={},_0xa904b4={'count':0x0,'rows':[]};var _0x16ddfa=_['map'](db['Automation'][_0xa2ab('0x2b')],function(_0x414bbf){return{'name':_0x414bbf['fieldName'],'type':_0x414bbf[_0xa2ab('0x2c')][_0xa2ab('0x2d')]};});_0x35d25f[_0xa2ab('0x2e')]=_['map'](_0x16ddfa,_0xa2ab('0x29'));_0x35d25f[_0xa2ab('0x2f')]=_[_0xa2ab('0x30')](_0x2e17b1[_0xa2ab('0x2f')]);_0x35d25f[_0xa2ab('0x31')]=_[_0xa2ab('0x32')](_0x35d25f['model'],_0x35d25f[_0xa2ab('0x2f')]);_0x33da9f[_0xa2ab('0x33')]=_[_0xa2ab('0x32')](_0x35d25f[_0xa2ab('0x2e')],qs[_0xa2ab('0x34')](_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x34')]));_0x33da9f[_0xa2ab('0x33')]=_0x33da9f[_0xa2ab('0x33')][_0xa2ab('0x35')]?_0x33da9f[_0xa2ab('0x33')]:_0x35d25f[_0xa2ab('0x2e')];if(!_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x36')](_0xa2ab('0x37'))){_0x33da9f[_0xa2ab('0x1e')]=qs[_0xa2ab('0x1e')](_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x1e')]);_0x33da9f['offset']=qs[_0xa2ab('0x1c')](_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x1c')]);}_0x33da9f[_0xa2ab('0x38')]=qs['sort'](_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x39')]);_0x33da9f[_0xa2ab('0x3a')]=qs[_0xa2ab('0x31')](_[_0xa2ab('0x3b')](_0x2e17b1[_0xa2ab('0x2f')],_0x35d25f[_0xa2ab('0x31')]),_0x16ddfa);if(_0x2e17b1[_0xa2ab('0x2f')]['filter']){_0x33da9f[_0xa2ab('0x3a')]=_[_0xa2ab('0x3c')](_0x33da9f[_0xa2ab('0x3a')],{'$or':_['map'](_0x16ddfa,function(_0x40e297){if(_0x40e297['type']!=='VIRTUAL'){var _0x532144={};_0x532144[_0x40e297[_0xa2ab('0x29')]]={'$like':'%'+_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x3d')]+'%'};return _0x532144;}})});}_0x33da9f=_[_0xa2ab('0x3c')]({},_0x33da9f,_0x2e17b1[_0xa2ab('0x3e')]);var _0x392167={'where':_0x33da9f['where']};return db[_0xa2ab('0x3f')]['count'](_0x392167)[_0xa2ab('0x26')](function(_0x44093e){_0xa904b4[_0xa2ab('0x1d')]=_0x44093e;if(_0x2e17b1[_0xa2ab('0x2f')][_0xa2ab('0x40')]){_0x33da9f[_0xa2ab('0x41')]=[{'all':!![]}];}return db[_0xa2ab('0x3f')]['findAll'](_0x33da9f);})[_0xa2ab('0x26')](function(_0x19e374){_0xa904b4[_0xa2ab('0x42')]=_0x19e374;return _0xa904b4;})['then'](respondWithFilteredResult(_0x38f9c1,_0x33da9f))[_0xa2ab('0x43')](handleError(_0x38f9c1,null));};exports[_0xa2ab('0x44')]=function(_0x5253f3,_0x5a9a6a){var _0x46a5c7={'raw':![],'where':{'id':_0x5253f3[_0xa2ab('0x45')]['id']}},_0x3f7ba8={};_0x3f7ba8['model']=_['keys'](db[_0xa2ab('0x3f')][_0xa2ab('0x2b')]);_0x3f7ba8[_0xa2ab('0x2f')]=_[_0xa2ab('0x30')](_0x5253f3[_0xa2ab('0x2f')]);_0x3f7ba8[_0xa2ab('0x31')]=_[_0xa2ab('0x32')](_0x3f7ba8[_0xa2ab('0x2e')],_0x3f7ba8['query']);_0x46a5c7[_0xa2ab('0x33')]=_[_0xa2ab('0x32')](_0x3f7ba8['model'],qs['fields'](_0x5253f3[_0xa2ab('0x2f')][_0xa2ab('0x34')]));_0x46a5c7['attributes']=_0x46a5c7[_0xa2ab('0x33')][_0xa2ab('0x35')]?_0x46a5c7['attributes']:_0x3f7ba8[_0xa2ab('0x2e')];if(_0x5253f3[_0xa2ab('0x2f')][_0xa2ab('0x40')]){_0x46a5c7[_0xa2ab('0x41')]=[{'all':!![]}];}_0x46a5c7=_[_0xa2ab('0x3c')]({},_0x46a5c7,_0x5253f3[_0xa2ab('0x3e')]);return db[_0xa2ab('0x3f')][_0xa2ab('0x46')](_0x46a5c7)[_0xa2ab('0x26')](handleEntityNotFound(_0x5a9a6a,null))[_0xa2ab('0x26')](respondWithResult(_0x5a9a6a,null))[_0xa2ab('0x43')](handleError(_0x5a9a6a,null));};exports['create']=function(_0x35b699,_0x3bac97){return db['Automation'][_0xa2ab('0x47')](_0x35b699['body'],{})[_0xa2ab('0x26')](respondWithResult(_0x3bac97,0xc9))[_0xa2ab('0x43')](handleError(_0x3bac97,null));};exports[_0xa2ab('0x25')]=function(_0x2b894,_0x198380){if(_0x2b894[_0xa2ab('0x48')]['id']){delete _0x2b894[_0xa2ab('0x48')]['id'];}return db[_0xa2ab('0x3f')][_0xa2ab('0x46')]({'where':{'id':_0x2b894[_0xa2ab('0x45')]['id']}})['then'](handleEntityNotFound(_0x198380,null))['then'](saveUpdates(_0x2b894[_0xa2ab('0x48')],null))[_0xa2ab('0x26')](respondWithResult(_0x198380,null))[_0xa2ab('0x43')](handleError(_0x198380,null));};exports[_0xa2ab('0x27')]=function(_0x1a0488,_0x52633f){return db[_0xa2ab('0x3f')]['find']({'where':{'id':_0x1a0488[_0xa2ab('0x45')]['id']}})['then'](handleEntityNotFound(_0x52633f,null))[_0xa2ab('0x26')](removeEntity(_0x52633f,null))[_0xa2ab('0x43')](handleError(_0x52633f,null));};exports[_0xa2ab('0x49')]=function(_0x379579,_0x2b15e0,_0x115610){return db[_0xa2ab('0x4a')][_0xa2ab('0x46')]({'where':{'id':_0x379579[_0xa2ab('0x45')]['id']}})[_0xa2ab('0x26')](handleEntityNotFound(_0x2b15e0,null))[_0xa2ab('0x26')](function(_0x5e05ca){if(_0x5e05ca){return _0x5e05ca['addConditions'](_0x379579[_0xa2ab('0x48')][_0xa2ab('0x4b')],_[_0xa2ab('0x4c')](_0x379579[_0xa2ab('0x48')],[_0xa2ab('0x4b'),'id'])||{});}})[_0xa2ab('0x26')](respondWithResult(_0x2b15e0,null))[_0xa2ab('0x43')](handleError(_0x2b15e0,null));};exports[_0xa2ab('0x4d')]=function(_0x57b870,_0x27b352,_0x8c2b8b){var _0x341658={};var _0x478447={};var _0x28ba3c;var _0x12a6e1;return db[_0xa2ab('0x3f')]['findOne']({'where':{'id':_0x57b870[_0xa2ab('0x45')]['id']}})[_0xa2ab('0x26')](handleEntityNotFound(_0x27b352,null))[_0xa2ab('0x26')](function(_0x5c91e6){if(_0x5c91e6){_0x28ba3c=_0x5c91e6;_0x478447[_0xa2ab('0x2e')]=_[_0xa2ab('0x30')](db[_0xa2ab('0x4a')]['rawAttributes']);_0x478447[_0xa2ab('0x2f')]=_[_0xa2ab('0x30')](_0x57b870[_0xa2ab('0x2f')]);_0x478447[_0xa2ab('0x31')]=_[_0xa2ab('0x32')](_0x478447[_0xa2ab('0x2e')],_0x478447[_0xa2ab('0x2f')]);_0x341658[_0xa2ab('0x33')]=_[_0xa2ab('0x32')](_0x478447[_0xa2ab('0x2e')],qs[_0xa2ab('0x34')](_0x57b870[_0xa2ab('0x2f')]['fields']));_0x341658[_0xa2ab('0x33')]=_0x341658[_0xa2ab('0x33')][_0xa2ab('0x35')]?_0x341658[_0xa2ab('0x33')]:_0x478447[_0xa2ab('0x2e')];_0x341658[_0xa2ab('0x38')]=qs[_0xa2ab('0x39')](_0x57b870[_0xa2ab('0x2f')]['sort']);_0x341658[_0xa2ab('0x3a')]=qs[_0xa2ab('0x31')](_[_0xa2ab('0x3b')](_0x57b870[_0xa2ab('0x2f')],_0x478447[_0xa2ab('0x31')]));if(_0x57b870[_0xa2ab('0x2f')]['filter']){_0x341658['where']=_[_0xa2ab('0x3c')](_0x341658[_0xa2ab('0x3a')],{'$or':_[_0xa2ab('0x4e')](_0x341658[_0xa2ab('0x33')],function(_0x56ea74){var _0x19eb17={};_0x19eb17[_0x56ea74]={'$like':'%'+_0x57b870[_0xa2ab('0x2f')][_0xa2ab('0x3d')]+'%'};return _0x19eb17;})});}_0x341658=_[_0xa2ab('0x3c')]({},_0x341658,_0x57b870['options']);return _0x28ba3c[_0xa2ab('0x4d')](_0x341658);}})[_0xa2ab('0x26')](function(_0x439519){if(_0x439519){_0x12a6e1=_0x439519[_0xa2ab('0x35')];if(!_0x57b870[_0xa2ab('0x2f')]['hasOwnProperty'](_0xa2ab('0x37'))){_0x341658[_0xa2ab('0x1e')]=qs[_0xa2ab('0x1e')](_0x57b870[_0xa2ab('0x2f')]['limit']);_0x341658[_0xa2ab('0x1c')]=qs[_0xa2ab('0x1c')](_0x57b870[_0xa2ab('0x2f')][_0xa2ab('0x1c')]);}return _0x28ba3c[_0xa2ab('0x4d')](_0x341658);}})[_0xa2ab('0x26')](function(_0x3d304e){if(_0x3d304e){return _0x3d304e?{'count':_0x12a6e1,'rows':_0x3d304e}:null;}})[_0xa2ab('0x26')](respondWithResult(_0x27b352,null))['catch'](handleError(_0x27b352,null));};exports[_0xa2ab('0x4f')]=function(_0x146c01,_0x242192,_0x4d2857){return db['Action']['find']({'where':{'id':_0x146c01[_0xa2ab('0x45')]['id']}})[_0xa2ab('0x26')](handleEntityNotFound(_0x242192,null))[_0xa2ab('0x26')](function(_0x3e4f81){if(_0x3e4f81){return _0x3e4f81['addActions'](_0x146c01[_0xa2ab('0x48')][_0xa2ab('0x4b')],_[_0xa2ab('0x4c')](_0x146c01[_0xa2ab('0x48')],[_0xa2ab('0x4b'),'id'])||{});}})[_0xa2ab('0x26')](respondWithResult(_0x242192,null))[_0xa2ab('0x43')](handleError(_0x242192,null));};exports[_0xa2ab('0x50')]=function(_0x56d8dc,_0x4f707c,_0x392bc5){var _0x40a9e8={};var _0x34df09={};var _0x5e2abf;var _0x4d23a4;return db[_0xa2ab('0x3f')][_0xa2ab('0x51')]({'where':{'id':_0x56d8dc[_0xa2ab('0x45')]['id']}})[_0xa2ab('0x26')](handleEntityNotFound(_0x4f707c,null))[_0xa2ab('0x26')](function(_0x3235d5){if(_0x3235d5){_0x5e2abf=_0x3235d5;_0x34df09['model']=_[_0xa2ab('0x30')](db[_0xa2ab('0x52')][_0xa2ab('0x2b')]);_0x34df09['query']=_[_0xa2ab('0x30')](_0x56d8dc[_0xa2ab('0x2f')]);_0x34df09[_0xa2ab('0x31')]=_[_0xa2ab('0x32')](_0x34df09[_0xa2ab('0x2e')],_0x34df09[_0xa2ab('0x2f')]);_0x40a9e8['attributes']=_[_0xa2ab('0x32')](_0x34df09[_0xa2ab('0x2e')],qs['fields'](_0x56d8dc[_0xa2ab('0x2f')]['fields']));_0x40a9e8[_0xa2ab('0x33')]=_0x40a9e8['attributes'][_0xa2ab('0x35')]?_0x40a9e8['attributes']:_0x34df09[_0xa2ab('0x2e')];_0x40a9e8[_0xa2ab('0x38')]=qs['sort'](_0x56d8dc['query'][_0xa2ab('0x39')]);_0x40a9e8[_0xa2ab('0x3a')]=qs[_0xa2ab('0x31')](_['pick'](_0x56d8dc[_0xa2ab('0x2f')],_0x34df09['filters']));if(_0x56d8dc[_0xa2ab('0x2f')][_0xa2ab('0x3d')]){_0x40a9e8[_0xa2ab('0x3a')]=_[_0xa2ab('0x3c')](_0x40a9e8[_0xa2ab('0x3a')],{'$or':_[_0xa2ab('0x4e')](_0x40a9e8['attributes'],function(_0xe2ea0f){var _0x5c9ba8={};_0x5c9ba8[_0xe2ea0f]={'$like':'%'+_0x56d8dc['query'][_0xa2ab('0x3d')]+'%'};return _0x5c9ba8;})});}_0x40a9e8=_[_0xa2ab('0x3c')]({},_0x40a9e8,_0x56d8dc[_0xa2ab('0x3e')]);return _0x5e2abf[_0xa2ab('0x50')](_0x40a9e8);}})[_0xa2ab('0x26')](function(_0x3c6c1d){if(_0x3c6c1d){_0x4d23a4=_0x3c6c1d['length'];if(!_0x56d8dc['query'][_0xa2ab('0x36')](_0xa2ab('0x37'))){_0x40a9e8[_0xa2ab('0x1e')]=qs['limit'](_0x56d8dc['query'][_0xa2ab('0x1e')]);_0x40a9e8[_0xa2ab('0x1c')]=qs[_0xa2ab('0x1c')](_0x56d8dc['query'][_0xa2ab('0x1c')]);}return _0x5e2abf[_0xa2ab('0x50')](_0x40a9e8);}})[_0xa2ab('0x26')](function(_0x4afe95){if(_0x4afe95){return _0x4afe95?{'count':_0x4d23a4,'rows':_0x4afe95}:null;}})['then'](respondWithResult(_0x4f707c,null))[_0xa2ab('0x43')](handleError(_0x4f707c,null));};