Built motion from commit 19a84241.|2.5.34
[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 _0x00d7=['eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','apply','reject','update','then','end','error','stack','name','send','map','Automation','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','filters','find','create','body','params','destroy','addConditions','ids','omit','getConditions','hasOwnProperty','addActions','Action','getActions','findOne'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x00d7,0x14c));var _0x700d=function(_0x751ca7,_0x4f2526){_0x751ca7=_0x751ca7-0x0;var _0x4db6c7=_0x00d7[_0x751ca7];return _0x4db6c7;};'use strict';var emlformat=require(_0x700d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x700d('0x1'));var jsonpatch=require(_0x700d('0x2'));var rp=require(_0x700d('0x3'));var moment=require(_0x700d('0x4'));var BPromise=require(_0x700d('0x5'));var Mustache=require(_0x700d('0x6'));var util=require(_0x700d('0x7'));var path=require('path');var sox=require(_0x700d('0x8'));var csv=require(_0x700d('0x9'));var ejs=require(_0x700d('0xa'));var fs=require('fs');var fs_extra=require(_0x700d('0xb'));var _=require(_0x700d('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x700d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x700d('0x9'));var querystring=require('querystring');var Papa=require(_0x700d('0xe'));var Redis=require(_0x700d('0xf'));var authService=require(_0x700d('0x10'));var qs=require(_0x700d('0x11'));var as=require(_0x700d('0x12'));var hardwareService=require(_0x700d('0x13'));var logger=require('../../config/logger')(_0x700d('0x14'));var utils=require(_0x700d('0x15'));var config=require(_0x700d('0x16'));var licenseUtil=require(_0x700d('0x17'));var db=require(_0x700d('0x18'))['db'];function respondWithStatusCode(_0x32c13f,_0x398647){_0x398647=_0x398647||0xcc;return function(_0x29ab5c){if(_0x29ab5c){return _0x32c13f[_0x700d('0x19')](_0x398647);}return _0x32c13f[_0x700d('0x1a')](_0x398647)['end']();};}function respondWithResult(_0x2309c6,_0x50b4b1){_0x50b4b1=_0x50b4b1||0xc8;return function(_0x38aedc){if(_0x38aedc){return _0x2309c6[_0x700d('0x1a')](_0x50b4b1)[_0x700d('0x1b')](_0x38aedc);}};}function respondWithFilteredResult(_0x8a25e4,_0xcd377d){return function(_0x12fbef){if(_0x12fbef){var _0x4f5378=typeof _0xcd377d[_0x700d('0x1c')]===_0x700d('0x1d')&&typeof _0xcd377d[_0x700d('0x1e')]===_0x700d('0x1d');var _0x592941=_0x12fbef[_0x700d('0x1f')];var _0x33b51a=_0x4f5378?0x0:_0xcd377d[_0x700d('0x1c')];var _0x43468e=_0x4f5378?_0x12fbef['count']:_0xcd377d['offset']+_0xcd377d[_0x700d('0x1e')];var _0xb994b7;if(_0x43468e>=_0x592941){_0x43468e=_0x592941;_0xb994b7=0xc8;}else{_0xb994b7=0xce;}_0x8a25e4[_0x700d('0x1a')](_0xb994b7);return _0x8a25e4['set']('Content-Range',_0x33b51a+'-'+_0x43468e+'/'+_0x592941)[_0x700d('0x1b')](_0x12fbef);}return null;};}function patchUpdates(_0x4914ad){return function(_0x201503){try{jsonpatch[_0x700d('0x20')](_0x201503,_0x4914ad,!![]);}catch(_0x966787){return BPromise[_0x700d('0x21')](_0x966787);}return _0x201503['save']();};}function saveUpdates(_0x46a35b,_0x45f764){return function(_0x461618){if(_0x461618){return _0x461618[_0x700d('0x22')](_0x46a35b)['then'](function(_0x134d32){return _0x134d32;});}return null;};}function removeEntity(_0x28a3a8,_0x5e4576){return function(_0x3adb58){if(_0x3adb58){return _0x3adb58['destroy']()[_0x700d('0x23')](function(){_0x28a3a8['status'](0xcc)[_0x700d('0x24')]();});}};}function handleEntityNotFound(_0x419403,_0x907679){return function(_0x2ce5ef){if(!_0x2ce5ef){_0x419403['sendStatus'](0x194);}return _0x2ce5ef;};}function handleError(_0x34d756,_0xb427c7){_0xb427c7=_0xb427c7||0x1f4;return function(_0xe34308){logger[_0x700d('0x25')](_0xe34308[_0x700d('0x26')]);if(_0xe34308['name']){delete _0xe34308[_0x700d('0x27')];}_0x34d756['status'](_0xb427c7)[_0x700d('0x28')](_0xe34308);};}exports['index']=function(_0x327ad3,_0x360ae5){var _0xbfc0c4={},_0xc6bcc0={},_0x4d098a={'count':0x0,'rows':[]};var _0xbceb5f=_[_0x700d('0x29')](db[_0x700d('0x2a')][_0x700d('0x2b')],function(_0x9a714b){return{'name':_0x9a714b[_0x700d('0x2c')],'type':_0x9a714b[_0x700d('0x2d')][_0x700d('0x2e')]};});_0xc6bcc0[_0x700d('0x2f')]=_[_0x700d('0x29')](_0xbceb5f,'name');_0xc6bcc0['query']=_[_0x700d('0x30')](_0x327ad3[_0x700d('0x31')]);_0xc6bcc0['filters']=_[_0x700d('0x32')](_0xc6bcc0['model'],_0xc6bcc0[_0x700d('0x31')]);_0xbfc0c4[_0x700d('0x33')]=_[_0x700d('0x32')](_0xc6bcc0[_0x700d('0x2f')],qs[_0x700d('0x34')](_0x327ad3['query'][_0x700d('0x34')]));_0xbfc0c4['attributes']=_0xbfc0c4[_0x700d('0x33')][_0x700d('0x35')]?_0xbfc0c4[_0x700d('0x33')]:_0xc6bcc0[_0x700d('0x2f')];if(!_0x327ad3[_0x700d('0x31')]['hasOwnProperty'](_0x700d('0x36'))){_0xbfc0c4['limit']=qs[_0x700d('0x1e')](_0x327ad3[_0x700d('0x31')][_0x700d('0x1e')]);_0xbfc0c4[_0x700d('0x1c')]=qs['offset'](_0x327ad3['query']['offset']);}_0xbfc0c4[_0x700d('0x37')]=qs[_0x700d('0x38')](_0x327ad3['query'][_0x700d('0x38')]);_0xbfc0c4[_0x700d('0x39')]=qs['filters'](_[_0x700d('0x3a')](_0x327ad3['query'],_0xc6bcc0['filters']),_0xbceb5f);if(_0x327ad3[_0x700d('0x31')][_0x700d('0x3b')]){_0xbfc0c4[_0x700d('0x39')]=_[_0x700d('0x3c')](_0xbfc0c4[_0x700d('0x39')],{'$or':_[_0x700d('0x29')](_0xbceb5f,function(_0x329124){if(_0x329124['type']!==_0x700d('0x3d')){var _0x1a31e6={};_0x1a31e6[_0x329124[_0x700d('0x27')]]={'$like':'%'+_0x327ad3[_0x700d('0x31')][_0x700d('0x3b')]+'%'};return _0x1a31e6;}})});}_0xbfc0c4=_[_0x700d('0x3c')]({},_0xbfc0c4,_0x327ad3[_0x700d('0x3e')]);var _0x26c94c={'where':_0xbfc0c4[_0x700d('0x39')]};return db[_0x700d('0x2a')][_0x700d('0x1f')](_0x26c94c)['then'](function(_0x1677cc){_0x4d098a['count']=_0x1677cc;if(_0x327ad3['query'][_0x700d('0x3f')]){_0xbfc0c4[_0x700d('0x40')]=[{'all':!![]}];}return db[_0x700d('0x2a')][_0x700d('0x41')](_0xbfc0c4);})[_0x700d('0x23')](function(_0x216608){_0x4d098a[_0x700d('0x42')]=_0x216608;return _0x4d098a;})[_0x700d('0x23')](respondWithFilteredResult(_0x360ae5,_0xbfc0c4))[_0x700d('0x43')](handleError(_0x360ae5,null));};exports['show']=function(_0x24aca9,_0x4c28a5){var _0x46a006={'raw':![],'where':{'id':_0x24aca9['params']['id']}},_0x29c582={};_0x29c582[_0x700d('0x2f')]=_[_0x700d('0x30')](db['Automation'][_0x700d('0x2b')]);_0x29c582[_0x700d('0x31')]=_[_0x700d('0x30')](_0x24aca9[_0x700d('0x31')]);_0x29c582[_0x700d('0x44')]=_[_0x700d('0x32')](_0x29c582[_0x700d('0x2f')],_0x29c582['query']);_0x46a006[_0x700d('0x33')]=_[_0x700d('0x32')](_0x29c582[_0x700d('0x2f')],qs[_0x700d('0x34')](_0x24aca9[_0x700d('0x31')][_0x700d('0x34')]));_0x46a006[_0x700d('0x33')]=_0x46a006['attributes']['length']?_0x46a006['attributes']:_0x29c582[_0x700d('0x2f')];if(_0x24aca9[_0x700d('0x31')][_0x700d('0x3f')]){_0x46a006['include']=[{'all':!![]}];}_0x46a006=_[_0x700d('0x3c')]({},_0x46a006,_0x24aca9['options']);return db[_0x700d('0x2a')][_0x700d('0x45')](_0x46a006)[_0x700d('0x23')](handleEntityNotFound(_0x4c28a5,null))[_0x700d('0x23')](respondWithResult(_0x4c28a5,null))[_0x700d('0x43')](handleError(_0x4c28a5,null));};exports[_0x700d('0x46')]=function(_0x160301,_0x5b4e61){return db[_0x700d('0x2a')][_0x700d('0x46')](_0x160301[_0x700d('0x47')],{})['then'](respondWithResult(_0x5b4e61,0xc9))[_0x700d('0x43')](handleError(_0x5b4e61,null));};exports[_0x700d('0x22')]=function(_0x55c4f8,_0x12d499){if(_0x55c4f8[_0x700d('0x47')]['id']){delete _0x55c4f8[_0x700d('0x47')]['id'];}return db[_0x700d('0x2a')]['find']({'where':{'id':_0x55c4f8[_0x700d('0x48')]['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x12d499,null))[_0x700d('0x23')](saveUpdates(_0x55c4f8[_0x700d('0x47')],null))[_0x700d('0x23')](respondWithResult(_0x12d499,null))[_0x700d('0x43')](handleError(_0x12d499,null));};exports[_0x700d('0x49')]=function(_0x2b981f,_0x9b41c0){return db[_0x700d('0x2a')][_0x700d('0x45')]({'where':{'id':_0x2b981f['params']['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x9b41c0,null))['then'](removeEntity(_0x9b41c0,null))[_0x700d('0x43')](handleError(_0x9b41c0,null));};exports[_0x700d('0x4a')]=function(_0x586c54,_0x170c80,_0x30bb09){return db['Condition']['find']({'where':{'id':_0x586c54[_0x700d('0x48')]['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x170c80,null))[_0x700d('0x23')](function(_0x1ee2ee){if(_0x1ee2ee){return _0x1ee2ee[_0x700d('0x4a')](_0x586c54[_0x700d('0x47')][_0x700d('0x4b')],_[_0x700d('0x4c')](_0x586c54[_0x700d('0x47')],[_0x700d('0x4b'),'id'])||{});}})[_0x700d('0x23')](respondWithResult(_0x170c80,null))['catch'](handleError(_0x170c80,null));};exports[_0x700d('0x4d')]=function(_0x138e43,_0x328d66,_0x53afe6){var _0x25d39c={};var _0x37856b={};var _0x309f55;var _0x2018fb;return db[_0x700d('0x2a')]['findOne']({'where':{'id':_0x138e43[_0x700d('0x48')]['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x328d66,null))[_0x700d('0x23')](function(_0x2d065c){if(_0x2d065c){_0x309f55=_0x2d065c;_0x37856b[_0x700d('0x2f')]=_[_0x700d('0x30')](db['Condition']['rawAttributes']);_0x37856b['query']=_[_0x700d('0x30')](_0x138e43[_0x700d('0x31')]);_0x37856b[_0x700d('0x44')]=_[_0x700d('0x32')](_0x37856b['model'],_0x37856b[_0x700d('0x31')]);_0x25d39c[_0x700d('0x33')]=_[_0x700d('0x32')](_0x37856b[_0x700d('0x2f')],qs[_0x700d('0x34')](_0x138e43['query'][_0x700d('0x34')]));_0x25d39c[_0x700d('0x33')]=_0x25d39c[_0x700d('0x33')][_0x700d('0x35')]?_0x25d39c[_0x700d('0x33')]:_0x37856b[_0x700d('0x2f')];_0x25d39c[_0x700d('0x37')]=qs[_0x700d('0x38')](_0x138e43[_0x700d('0x31')][_0x700d('0x38')]);_0x25d39c[_0x700d('0x39')]=qs[_0x700d('0x44')](_[_0x700d('0x3a')](_0x138e43['query'],_0x37856b[_0x700d('0x44')]));if(_0x138e43['query'][_0x700d('0x3b')]){_0x25d39c[_0x700d('0x39')]=_[_0x700d('0x3c')](_0x25d39c['where'],{'$or':_[_0x700d('0x29')](_0x25d39c['attributes'],function(_0x4e9414){var _0x3e3615={};_0x3e3615[_0x4e9414]={'$like':'%'+_0x138e43[_0x700d('0x31')][_0x700d('0x3b')]+'%'};return _0x3e3615;})});}_0x25d39c=_['merge']({},_0x25d39c,_0x138e43[_0x700d('0x3e')]);return _0x309f55[_0x700d('0x4d')](_0x25d39c);}})[_0x700d('0x23')](function(_0x2c5ca2){if(_0x2c5ca2){_0x2018fb=_0x2c5ca2[_0x700d('0x35')];if(!_0x138e43[_0x700d('0x31')][_0x700d('0x4e')]('nolimit')){_0x25d39c[_0x700d('0x1e')]=qs[_0x700d('0x1e')](_0x138e43['query'][_0x700d('0x1e')]);_0x25d39c['offset']=qs['offset'](_0x138e43[_0x700d('0x31')][_0x700d('0x1c')]);}return _0x309f55[_0x700d('0x4d')](_0x25d39c);}})[_0x700d('0x23')](function(_0x548b75){if(_0x548b75){return _0x548b75?{'count':_0x2018fb,'rows':_0x548b75}:null;}})[_0x700d('0x23')](respondWithResult(_0x328d66,null))['catch'](handleError(_0x328d66,null));};exports[_0x700d('0x4f')]=function(_0x5d1706,_0x9406d6,_0x209355){return db[_0x700d('0x50')][_0x700d('0x45')]({'where':{'id':_0x5d1706[_0x700d('0x48')]['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x9406d6,null))['then'](function(_0x20ee6c){if(_0x20ee6c){return _0x20ee6c['addActions'](_0x5d1706['body'][_0x700d('0x4b')],_[_0x700d('0x4c')](_0x5d1706[_0x700d('0x47')],[_0x700d('0x4b'),'id'])||{});}})[_0x700d('0x23')](respondWithResult(_0x9406d6,null))[_0x700d('0x43')](handleError(_0x9406d6,null));};exports[_0x700d('0x51')]=function(_0x5137a7,_0x1d01d1,_0x9fb67b){var _0x2594ad={};var _0x19f9ab={};var _0x3796cb;var _0x1ae914;return db[_0x700d('0x2a')][_0x700d('0x52')]({'where':{'id':_0x5137a7[_0x700d('0x48')]['id']}})[_0x700d('0x23')](handleEntityNotFound(_0x1d01d1,null))[_0x700d('0x23')](function(_0x8ce1a3){if(_0x8ce1a3){_0x3796cb=_0x8ce1a3;_0x19f9ab['model']=_[_0x700d('0x30')](db[_0x700d('0x50')][_0x700d('0x2b')]);_0x19f9ab[_0x700d('0x31')]=_[_0x700d('0x30')](_0x5137a7['query']);_0x19f9ab[_0x700d('0x44')]=_[_0x700d('0x32')](_0x19f9ab[_0x700d('0x2f')],_0x19f9ab[_0x700d('0x31')]);_0x2594ad[_0x700d('0x33')]=_[_0x700d('0x32')](_0x19f9ab[_0x700d('0x2f')],qs[_0x700d('0x34')](_0x5137a7[_0x700d('0x31')]['fields']));_0x2594ad[_0x700d('0x33')]=_0x2594ad['attributes']['length']?_0x2594ad['attributes']:_0x19f9ab[_0x700d('0x2f')];_0x2594ad[_0x700d('0x37')]=qs[_0x700d('0x38')](_0x5137a7[_0x700d('0x31')][_0x700d('0x38')]);_0x2594ad[_0x700d('0x39')]=qs[_0x700d('0x44')](_[_0x700d('0x3a')](_0x5137a7['query'],_0x19f9ab[_0x700d('0x44')]));if(_0x5137a7['query'][_0x700d('0x3b')]){_0x2594ad['where']=_[_0x700d('0x3c')](_0x2594ad[_0x700d('0x39')],{'$or':_[_0x700d('0x29')](_0x2594ad[_0x700d('0x33')],function(_0x44abc5){var _0x8d4a7c={};_0x8d4a7c[_0x44abc5]={'$like':'%'+_0x5137a7['query'][_0x700d('0x3b')]+'%'};return _0x8d4a7c;})});}_0x2594ad=_[_0x700d('0x3c')]({},_0x2594ad,_0x5137a7[_0x700d('0x3e')]);return _0x3796cb['getActions'](_0x2594ad);}})[_0x700d('0x23')](function(_0x144d9b){if(_0x144d9b){_0x1ae914=_0x144d9b[_0x700d('0x35')];if(!_0x5137a7[_0x700d('0x31')][_0x700d('0x4e')]('nolimit')){_0x2594ad[_0x700d('0x1e')]=qs[_0x700d('0x1e')](_0x5137a7['query'][_0x700d('0x1e')]);_0x2594ad[_0x700d('0x1c')]=qs['offset'](_0x5137a7[_0x700d('0x31')]['offset']);}return _0x3796cb[_0x700d('0x51')](_0x2594ad);}})['then'](function(_0x3e740f){if(_0x3e740f){return _0x3e740f?{'count':_0x1ae914,'rows':_0x3e740f}:null;}})[_0x700d('0x23')](respondWithResult(_0x1d01d1,null))['catch'](handleError(_0x1d01d1,null));};