8273bb6a699036227da6baba4e08295aff264536
[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 _0xac4a=['Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','merge','body','contact','message','agent','interaction','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','options','Automation','includeAll','include','findAll','rows','catch','show','params','find','create','addConditions','Condition','ids','omit','findOne','getConditions','nolimit','addActions','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','lodash','crypto','jsforce','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0xac4a,0x13f));var _0xaac4=function(_0x4bb3e8,_0x2d2e3d){_0x4bb3e8=_0x4bb3e8-0x0;var _0x9ccba=_0xac4a[_0x4bb3e8];return _0x9ccba;};'use strict';var emlformat=require(_0xaac4('0x0'));var rimraf=require(_0xaac4('0x1'));var zipdir=require(_0xaac4('0x2'));var jsonpatch=require(_0xaac4('0x3'));var rp=require(_0xaac4('0x4'));var moment=require(_0xaac4('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xaac4('0x6'));var path=require(_0xaac4('0x7'));var sox=require(_0xaac4('0x8'));var csv=require('to-csv');var ejs=require(_0xaac4('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaac4('0xa'));var squel=require('squel');var crypto=require(_0xaac4('0xb'));var jsforce=require(_0xaac4('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xaac4('0xd'));var Papa=require('papaparse');var Redis=require(_0xaac4('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaac4('0xf'));var hardwareService=require(_0xaac4('0x10'));var logger=require(_0xaac4('0x11'))(_0xaac4('0x12'));var utils=require(_0xaac4('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xaac4('0x14'))['db'];function respondWithStatusCode(_0x2e2d02,_0x45e512){_0x45e512=_0x45e512||0xcc;return function(_0x5a4801){if(_0x5a4801){return _0x2e2d02[_0xaac4('0x15')](_0x45e512);}return _0x2e2d02[_0xaac4('0x16')](_0x45e512)['end']();};}function respondWithResult(_0xf06b1d,_0x2b20d0){_0x2b20d0=_0x2b20d0||0xc8;return function(_0x46698d){if(_0x46698d){return _0xf06b1d[_0xaac4('0x16')](_0x2b20d0)[_0xaac4('0x17')](_0x46698d);}};}function respondWithFilteredResult(_0x2fbeb7,_0x31b7e5){return function(_0x1df9ae){if(_0x1df9ae){var _0x233278=typeof _0x31b7e5[_0xaac4('0x18')]===_0xaac4('0x19')&&typeof _0x31b7e5[_0xaac4('0x1a')]===_0xaac4('0x19');var _0x52686a=_0x1df9ae[_0xaac4('0x1b')];var _0x52085a=_0x233278?0x0:_0x31b7e5[_0xaac4('0x18')];var _0x5b6fd6=_0x233278?_0x1df9ae[_0xaac4('0x1b')]:_0x31b7e5[_0xaac4('0x18')]+_0x31b7e5[_0xaac4('0x1a')];var _0x271bcb;if(_0x5b6fd6>=_0x52686a){_0x5b6fd6=_0x52686a;_0x271bcb=0xc8;}else{_0x271bcb=0xce;}_0x2fbeb7[_0xaac4('0x16')](_0x271bcb);return _0x2fbeb7[_0xaac4('0x1c')](_0xaac4('0x1d'),_0x52085a+'-'+_0x5b6fd6+'/'+_0x52686a)[_0xaac4('0x17')](_0x1df9ae);}return null;};}function patchUpdates(_0x4166ee){return function(_0x480fb0){try{jsonpatch[_0xaac4('0x1e')](_0x480fb0,_0x4166ee,!![]);}catch(_0x4e1e89){return BPromise[_0xaac4('0x1f')](_0x4e1e89);}return _0x480fb0[_0xaac4('0x20')]();};}function saveUpdates(_0x43625c,_0x477b77){return function(_0x17140f){if(_0x17140f){return _0x17140f[_0xaac4('0x21')](_0x43625c)['then'](function(_0x43ccdc){return _0x43ccdc;});}return null;};}function removeEntity(_0x27a84d,_0x174860){return function(_0x4f10ec){if(_0x4f10ec){return _0x4f10ec[_0xaac4('0x22')]()[_0xaac4('0x23')](function(){_0x27a84d[_0xaac4('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24186b,_0x4f1b65){return function(_0x54203b){if(!_0x54203b){_0x24186b['sendStatus'](0x194);}return _0x54203b;};}function handleError(_0x5a0bb3,_0x22d5a6){_0x22d5a6=_0x22d5a6||0x1f4;return function(_0x17d25f){logger[_0xaac4('0x24')](_0x17d25f[_0xaac4('0x25')]);if(_0x17d25f[_0xaac4('0x26')]){delete _0x17d25f[_0xaac4('0x26')];}_0x5a0bb3[_0xaac4('0x16')](_0x22d5a6)[_0xaac4('0x27')](_0x17d25f);};}function getMustacheRender(_0x2f36ad,_0x386c9b){return Mustache['render'](_0x2f36ad,_[_0xaac4('0x28')](_0x386c9b[_0xaac4('0x29')],{'contact':_0x386c9b[_0xaac4('0x2a')],'message':_0x386c9b[_0xaac4('0x2b')],'agent':_0x386c9b[_0xaac4('0x2c')],'interaction':_0x386c9b[_0xaac4('0x2d')],'account':_0x386c9b['account']}))||'';}exports[_0xaac4('0x2e')]=function(_0x5d2c9a,_0x2df7e3){var _0xab5d04={},_0x182343={},_0x2aaa68={'count':0x0,'rows':[]};var _0x48bf50=_['map'](db['Automation'][_0xaac4('0x2f')],function(_0xee6aa9){return{'name':_0xee6aa9[_0xaac4('0x30')],'type':_0xee6aa9[_0xaac4('0x31')][_0xaac4('0x32')]};});_0x182343[_0xaac4('0x33')]=_[_0xaac4('0x34')](_0x48bf50,_0xaac4('0x26'));_0x182343[_0xaac4('0x35')]=_[_0xaac4('0x36')](_0x5d2c9a[_0xaac4('0x35')]);_0x182343[_0xaac4('0x37')]=_[_0xaac4('0x38')](_0x182343[_0xaac4('0x33')],_0x182343[_0xaac4('0x35')]);_0xab5d04['attributes']=_['intersection'](_0x182343[_0xaac4('0x33')],qs[_0xaac4('0x39')](_0x5d2c9a[_0xaac4('0x35')]['fields']));_0xab5d04[_0xaac4('0x3a')]=_0xab5d04[_0xaac4('0x3a')][_0xaac4('0x3b')]?_0xab5d04[_0xaac4('0x3a')]:_0x182343[_0xaac4('0x33')];if(!_0x5d2c9a[_0xaac4('0x35')][_0xaac4('0x3c')]('nolimit')){_0xab5d04[_0xaac4('0x1a')]=qs[_0xaac4('0x1a')](_0x5d2c9a[_0xaac4('0x35')]['limit']);_0xab5d04[_0xaac4('0x18')]=qs['offset'](_0x5d2c9a['query'][_0xaac4('0x18')]);}_0xab5d04[_0xaac4('0x3d')]=qs[_0xaac4('0x3e')](_0x5d2c9a['query']['sort']);_0xab5d04[_0xaac4('0x3f')]=qs[_0xaac4('0x37')](_[_0xaac4('0x40')](_0x5d2c9a[_0xaac4('0x35')],_0x182343[_0xaac4('0x37')]),_0x48bf50);if(_0x5d2c9a[_0xaac4('0x35')]['filter']){_0xab5d04['where']=_[_0xaac4('0x28')](_0xab5d04[_0xaac4('0x3f')],{'$or':_['map'](_0x48bf50,function(_0x416a5b){if(_0x416a5b[_0xaac4('0x31')]!==_0xaac4('0x41')){var _0x5af4b2={};_0x5af4b2[_0x416a5b[_0xaac4('0x26')]]={'$like':'%'+_0x5d2c9a[_0xaac4('0x35')][_0xaac4('0x42')]+'%'};return _0x5af4b2;}})});}_0xab5d04=_['merge']({},_0xab5d04,_0x5d2c9a[_0xaac4('0x43')]);var _0x2dad54={'where':_0xab5d04[_0xaac4('0x3f')]};return db[_0xaac4('0x44')]['count'](_0x2dad54)[_0xaac4('0x23')](function(_0x4a59a8){_0x2aaa68['count']=_0x4a59a8;if(_0x5d2c9a[_0xaac4('0x35')][_0xaac4('0x45')]){_0xab5d04[_0xaac4('0x46')]=[{'all':!![]}];}return db[_0xaac4('0x44')][_0xaac4('0x47')](_0xab5d04);})[_0xaac4('0x23')](function(_0x1f23cc){_0x2aaa68[_0xaac4('0x48')]=_0x1f23cc;return _0x2aaa68;})['then'](respondWithFilteredResult(_0x2df7e3,_0xab5d04))[_0xaac4('0x49')](handleError(_0x2df7e3,null));};exports[_0xaac4('0x4a')]=function(_0x1fea3d,_0x2bba0c){var _0x5a805f={'raw':![],'where':{'id':_0x1fea3d[_0xaac4('0x4b')]['id']}},_0x371d1d={};_0x371d1d[_0xaac4('0x33')]=_['keys'](db[_0xaac4('0x44')][_0xaac4('0x2f')]);_0x371d1d[_0xaac4('0x35')]=_[_0xaac4('0x36')](_0x1fea3d['query']);_0x371d1d[_0xaac4('0x37')]=_[_0xaac4('0x38')](_0x371d1d[_0xaac4('0x33')],_0x371d1d['query']);_0x5a805f[_0xaac4('0x3a')]=_[_0xaac4('0x38')](_0x371d1d[_0xaac4('0x33')],qs[_0xaac4('0x39')](_0x1fea3d[_0xaac4('0x35')][_0xaac4('0x39')]));_0x5a805f[_0xaac4('0x3a')]=_0x5a805f[_0xaac4('0x3a')][_0xaac4('0x3b')]?_0x5a805f['attributes']:_0x371d1d[_0xaac4('0x33')];if(_0x1fea3d[_0xaac4('0x35')][_0xaac4('0x45')]){_0x5a805f[_0xaac4('0x46')]=[{'all':!![]}];}_0x5a805f=_[_0xaac4('0x28')]({},_0x5a805f,_0x1fea3d['options']);return db['Automation'][_0xaac4('0x4c')](_0x5a805f)[_0xaac4('0x23')](handleEntityNotFound(_0x2bba0c,null))[_0xaac4('0x23')](respondWithResult(_0x2bba0c,null))[_0xaac4('0x49')](handleError(_0x2bba0c,null));};exports['create']=function(_0x283d51,_0x528f3f){return db[_0xaac4('0x44')][_0xaac4('0x4d')](_0x283d51['body'],{})[_0xaac4('0x23')](respondWithResult(_0x528f3f,0xc9))[_0xaac4('0x49')](handleError(_0x528f3f,null));};exports[_0xaac4('0x21')]=function(_0x5cbbdc,_0x517dac){if(_0x5cbbdc[_0xaac4('0x29')]['id']){delete _0x5cbbdc[_0xaac4('0x29')]['id'];}return db[_0xaac4('0x44')][_0xaac4('0x4c')]({'where':{'id':_0x5cbbdc[_0xaac4('0x4b')]['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x517dac,null))['then'](saveUpdates(_0x5cbbdc[_0xaac4('0x29')],null))[_0xaac4('0x23')](respondWithResult(_0x517dac,null))[_0xaac4('0x49')](handleError(_0x517dac,null));};exports[_0xaac4('0x22')]=function(_0x56201b,_0x3ca377){return db['Automation'][_0xaac4('0x4c')]({'where':{'id':_0x56201b[_0xaac4('0x4b')]['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x3ca377,null))[_0xaac4('0x23')](removeEntity(_0x3ca377,null))[_0xaac4('0x49')](handleError(_0x3ca377,null));};exports[_0xaac4('0x4e')]=function(_0x3d7720,_0x3aa764,_0x28aed5){return db[_0xaac4('0x4f')][_0xaac4('0x4c')]({'where':{'id':_0x3d7720[_0xaac4('0x4b')]['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x3aa764,null))[_0xaac4('0x23')](function(_0x4ede1e){if(_0x4ede1e){return _0x4ede1e[_0xaac4('0x4e')](_0x3d7720[_0xaac4('0x29')][_0xaac4('0x50')],_[_0xaac4('0x51')](_0x3d7720[_0xaac4('0x29')],[_0xaac4('0x50'),'id'])||{});}})[_0xaac4('0x23')](respondWithResult(_0x3aa764,null))[_0xaac4('0x49')](handleError(_0x3aa764,null));};exports['getConditions']=function(_0x3d7ccc,_0x501664,_0x15c7b4){var _0x4c9fec={};var _0x3762b5={};var _0x5d56ae;var _0x5155a4;return db[_0xaac4('0x44')][_0xaac4('0x52')]({'where':{'id':_0x3d7ccc['params']['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x501664,null))[_0xaac4('0x23')](function(_0xc93260){if(_0xc93260){_0x5d56ae=_0xc93260;_0x3762b5[_0xaac4('0x33')]=_[_0xaac4('0x36')](db[_0xaac4('0x4f')]['rawAttributes']);_0x3762b5[_0xaac4('0x35')]=_['keys'](_0x3d7ccc[_0xaac4('0x35')]);_0x3762b5['filters']=_['intersection'](_0x3762b5['model'],_0x3762b5[_0xaac4('0x35')]);_0x4c9fec[_0xaac4('0x3a')]=_[_0xaac4('0x38')](_0x3762b5[_0xaac4('0x33')],qs['fields'](_0x3d7ccc[_0xaac4('0x35')][_0xaac4('0x39')]));_0x4c9fec[_0xaac4('0x3a')]=_0x4c9fec['attributes'][_0xaac4('0x3b')]?_0x4c9fec[_0xaac4('0x3a')]:_0x3762b5[_0xaac4('0x33')];_0x4c9fec[_0xaac4('0x3d')]=qs[_0xaac4('0x3e')](_0x3d7ccc[_0xaac4('0x35')][_0xaac4('0x3e')]);_0x4c9fec['where']=qs['filters'](_[_0xaac4('0x40')](_0x3d7ccc['query'],_0x3762b5['filters']));if(_0x3d7ccc[_0xaac4('0x35')]['filter']){_0x4c9fec[_0xaac4('0x3f')]=_['merge'](_0x4c9fec[_0xaac4('0x3f')],{'$or':_[_0xaac4('0x34')](_0x4c9fec['attributes'],function(_0x5112d3){var _0x4e6de9={};_0x4e6de9[_0x5112d3]={'$like':'%'+_0x3d7ccc['query'][_0xaac4('0x42')]+'%'};return _0x4e6de9;})});}_0x4c9fec=_[_0xaac4('0x28')]({},_0x4c9fec,_0x3d7ccc[_0xaac4('0x43')]);return _0x5d56ae[_0xaac4('0x53')](_0x4c9fec);}})['then'](function(_0x1037e0){if(_0x1037e0){_0x5155a4=_0x1037e0[_0xaac4('0x3b')];if(!_0x3d7ccc[_0xaac4('0x35')][_0xaac4('0x3c')](_0xaac4('0x54'))){_0x4c9fec[_0xaac4('0x1a')]=qs[_0xaac4('0x1a')](_0x3d7ccc[_0xaac4('0x35')][_0xaac4('0x1a')]);_0x4c9fec[_0xaac4('0x18')]=qs[_0xaac4('0x18')](_0x3d7ccc['query']['offset']);}return _0x5d56ae[_0xaac4('0x53')](_0x4c9fec);}})['then'](function(_0x5eda2e){if(_0x5eda2e){return _0x5eda2e?{'count':_0x5155a4,'rows':_0x5eda2e}:null;}})[_0xaac4('0x23')](respondWithResult(_0x501664,null))['catch'](handleError(_0x501664,null));};exports[_0xaac4('0x55')]=function(_0x34b950,_0x26bae8,_0x2e643f){return db['Action'][_0xaac4('0x4c')]({'where':{'id':_0x34b950[_0xaac4('0x4b')]['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x26bae8,null))[_0xaac4('0x23')](function(_0x300b0e){if(_0x300b0e){return _0x300b0e[_0xaac4('0x55')](_0x34b950['body'][_0xaac4('0x50')],_[_0xaac4('0x51')](_0x34b950['body'],[_0xaac4('0x50'),'id'])||{});}})[_0xaac4('0x23')](respondWithResult(_0x26bae8,null))['catch'](handleError(_0x26bae8,null));};exports['getActions']=function(_0x334396,_0x3a2e77,_0x42f572){var _0x458a17={};var _0x65dfc2={};var _0x3e5ac9;var _0x13d691;return db[_0xaac4('0x44')]['findOne']({'where':{'id':_0x334396[_0xaac4('0x4b')]['id']}})[_0xaac4('0x23')](handleEntityNotFound(_0x3a2e77,null))[_0xaac4('0x23')](function(_0x254fb3){if(_0x254fb3){_0x3e5ac9=_0x254fb3;_0x65dfc2[_0xaac4('0x33')]=_[_0xaac4('0x36')](db['Action'][_0xaac4('0x2f')]);_0x65dfc2[_0xaac4('0x35')]=_['keys'](_0x334396['query']);_0x65dfc2['filters']=_[_0xaac4('0x38')](_0x65dfc2['model'],_0x65dfc2['query']);_0x458a17['attributes']=_['intersection'](_0x65dfc2['model'],qs[_0xaac4('0x39')](_0x334396[_0xaac4('0x35')][_0xaac4('0x39')]));_0x458a17[_0xaac4('0x3a')]=_0x458a17['attributes'][_0xaac4('0x3b')]?_0x458a17[_0xaac4('0x3a')]:_0x65dfc2[_0xaac4('0x33')];_0x458a17[_0xaac4('0x3d')]=qs[_0xaac4('0x3e')](_0x334396[_0xaac4('0x35')][_0xaac4('0x3e')]);_0x458a17['where']=qs[_0xaac4('0x37')](_['pick'](_0x334396['query'],_0x65dfc2[_0xaac4('0x37')]));if(_0x334396[_0xaac4('0x35')][_0xaac4('0x42')]){_0x458a17[_0xaac4('0x3f')]=_[_0xaac4('0x28')](_0x458a17[_0xaac4('0x3f')],{'$or':_[_0xaac4('0x34')](_0x458a17[_0xaac4('0x3a')],function(_0x185545){var _0x257955={};_0x257955[_0x185545]={'$like':'%'+_0x334396[_0xaac4('0x35')][_0xaac4('0x42')]+'%'};return _0x257955;})});}_0x458a17=_[_0xaac4('0x28')]({},_0x458a17,_0x334396[_0xaac4('0x43')]);return _0x3e5ac9[_0xaac4('0x56')](_0x458a17);}})[_0xaac4('0x23')](function(_0xfc870b){if(_0xfc870b){_0x13d691=_0xfc870b[_0xaac4('0x3b')];if(!_0x334396[_0xaac4('0x35')][_0xaac4('0x3c')](_0xaac4('0x54'))){_0x458a17[_0xaac4('0x1a')]=qs[_0xaac4('0x1a')](_0x334396[_0xaac4('0x35')][_0xaac4('0x1a')]);_0x458a17['offset']=qs[_0xaac4('0x18')](_0x334396[_0xaac4('0x35')][_0xaac4('0x18')]);}return _0x3e5ac9[_0xaac4('0x56')](_0x458a17);}})[_0xaac4('0x23')](function(_0x4a5d76){if(_0x4a5d76){return _0x4a5d76?{'count':_0x13d691,'rows':_0x4a5d76}:null;}})[_0xaac4('0x23')](respondWithResult(_0x3a2e77,null))[_0xaac4('0x49')](handleError(_0x3a2e77,null));};