f54bcbe3aec398b7fbe6dda55e84e3a3a7c63232
[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 _0xd00d=['moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','reject','then','stack','name','send','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','include','catch','show','params','update','body','find','addConditions','omit','ids','getConditions','findOne','Condition','nolimit','addActions','Action','getActions','eml-format','rimraf'];(function(_0x44f4c5,_0x60cd8b){var _0x35cf6a=function(_0x43a904){while(--_0x43a904){_0x44f4c5['push'](_0x44f4c5['shift']());}};_0x35cf6a(++_0x60cd8b);}(_0xd00d,0x136));var _0xdd00=function(_0x20fdc1,_0xde1296){_0x20fdc1=_0x20fdc1-0x0;var _0x25397c=_0xd00d[_0x20fdc1];return _0x25397c;};'use strict';var emlformat=require(_0xdd00('0x0'));var rimraf=require(_0xdd00('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xdd00('0x2'));var BPromise=require(_0xdd00('0x3'));var Mustache=require(_0xdd00('0x4'));var util=require(_0xdd00('0x5'));var path=require(_0xdd00('0x6'));var sox=require(_0xdd00('0x7'));var csv=require('to-csv');var ejs=require(_0xdd00('0x8'));var fs=require('fs');var fs_extra=require(_0xdd00('0x9'));var _=require(_0xdd00('0xa'));var squel=require(_0xdd00('0xb'));var crypto=require('crypto');var jsforce=require(_0xdd00('0xc'));var deskjs=require(_0xdd00('0xd'));var toCsv=require(_0xdd00('0xe'));var querystring=require(_0xdd00('0xf'));var Papa=require(_0xdd00('0x10'));var Redis=require(_0xdd00('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xdd00('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdd00('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xdd00('0x14'));var db=require(_0xdd00('0x15'))['db'];function respondWithStatusCode(_0x14b237,_0x4a24ca){_0x4a24ca=_0x4a24ca||0xcc;return function(_0x5108c4){if(_0x5108c4){return _0x14b237[_0xdd00('0x16')](_0x4a24ca);}return _0x14b237[_0xdd00('0x17')](_0x4a24ca)[_0xdd00('0x18')]();};}function respondWithResult(_0xba51f1,_0x4da188){_0x4da188=_0x4da188||0xc8;return function(_0x1b4efb){if(_0x1b4efb){return _0xba51f1[_0xdd00('0x17')](_0x4da188)['json'](_0x1b4efb);}};}function respondWithFilteredResult(_0x3be55b,_0x1479f6){return function(_0x1f21cb){if(_0x1f21cb){var _0x1352c5=typeof _0x1479f6[_0xdd00('0x19')]==='undefined'&&typeof _0x1479f6[_0xdd00('0x1a')]===_0xdd00('0x1b');var _0x5cb767=_0x1f21cb[_0xdd00('0x1c')];var _0x2d903c=_0x1352c5?0x0:_0x1479f6[_0xdd00('0x19')];var _0x405042=_0x1352c5?_0x1f21cb[_0xdd00('0x1c')]:_0x1479f6[_0xdd00('0x19')]+_0x1479f6[_0xdd00('0x1a')];var _0x6083c;if(_0x405042>=_0x5cb767){_0x405042=_0x5cb767;_0x6083c=0xc8;}else{_0x6083c=0xce;}_0x3be55b[_0xdd00('0x17')](_0x6083c);return _0x3be55b[_0xdd00('0x1d')](_0xdd00('0x1e'),_0x2d903c+'-'+_0x405042+'/'+_0x5cb767)[_0xdd00('0x1f')](_0x1f21cb);}return null;};}function patchUpdates(_0x17422d){return function(_0x155baa){try{jsonpatch['apply'](_0x155baa,_0x17422d,!![]);}catch(_0x17d89f){return BPromise[_0xdd00('0x20')](_0x17d89f);}return _0x155baa['save']();};}function saveUpdates(_0x985b00,_0x436a97){return function(_0xcf11a5){if(_0xcf11a5){return _0xcf11a5['update'](_0x985b00)[_0xdd00('0x21')](function(_0x4cf7e3){return _0x4cf7e3;});}return null;};}function removeEntity(_0x1a834f,_0x2c46d0){return function(_0x3a1164){if(_0x3a1164){return _0x3a1164['destroy']()['then'](function(){_0x1a834f[_0xdd00('0x17')](0xcc)[_0xdd00('0x18')]();});}};}function handleEntityNotFound(_0x2da68d,_0x17cf2d){return function(_0x3558bf){if(!_0x3558bf){_0x2da68d[_0xdd00('0x16')](0x194);}return _0x3558bf;};}function handleError(_0x44baa5,_0x2947e6){_0x2947e6=_0x2947e6||0x1f4;return function(_0xc996e2){logger['error'](_0xc996e2[_0xdd00('0x22')]);if(_0xc996e2[_0xdd00('0x23')]){delete _0xc996e2['name'];}_0x44baa5[_0xdd00('0x17')](_0x2947e6)[_0xdd00('0x24')](_0xc996e2);};}exports[_0xdd00('0x25')]=function(_0x353c9f,_0x170809){var _0x405e85={},_0xdf0af6={},_0x1cb903={'count':0x0,'rows':[]};var _0x338ab3=_[_0xdd00('0x26')](db[_0xdd00('0x27')][_0xdd00('0x28')],function(_0x25d95c){return{'name':_0x25d95c[_0xdd00('0x29')],'type':_0x25d95c[_0xdd00('0x2a')]['key']};});_0xdf0af6[_0xdd00('0x2b')]=_[_0xdd00('0x26')](_0x338ab3,_0xdd00('0x23'));_0xdf0af6[_0xdd00('0x2c')]=_[_0xdd00('0x2d')](_0x353c9f[_0xdd00('0x2c')]);_0xdf0af6['filters']=_['intersection'](_0xdf0af6[_0xdd00('0x2b')],_0xdf0af6['query']);_0x405e85['attributes']=_[_0xdd00('0x2e')](_0xdf0af6[_0xdd00('0x2b')],qs[_0xdd00('0x2f')](_0x353c9f[_0xdd00('0x2c')]['fields']));_0x405e85['attributes']=_0x405e85[_0xdd00('0x30')][_0xdd00('0x31')]?_0x405e85[_0xdd00('0x30')]:_0xdf0af6[_0xdd00('0x2b')];if(!_0x353c9f[_0xdd00('0x2c')][_0xdd00('0x32')]('nolimit')){_0x405e85[_0xdd00('0x1a')]=qs[_0xdd00('0x1a')](_0x353c9f[_0xdd00('0x2c')][_0xdd00('0x1a')]);_0x405e85[_0xdd00('0x19')]=qs[_0xdd00('0x19')](_0x353c9f['query'][_0xdd00('0x19')]);}_0x405e85[_0xdd00('0x33')]=qs[_0xdd00('0x34')](_0x353c9f[_0xdd00('0x2c')][_0xdd00('0x34')]);_0x405e85[_0xdd00('0x35')]=qs[_0xdd00('0x36')](_[_0xdd00('0x37')](_0x353c9f['query'],_0xdf0af6[_0xdd00('0x36')]),_0x338ab3);if(_0x353c9f['query']['filter']){_0x405e85[_0xdd00('0x35')]=_['merge'](_0x405e85[_0xdd00('0x35')],{'$or':_[_0xdd00('0x26')](_0x338ab3,function(_0x5d8abb){if(_0x5d8abb['type']!==_0xdd00('0x38')){var _0x4e6de7={};_0x4e6de7[_0x5d8abb[_0xdd00('0x23')]]={'$like':'%'+_0x353c9f[_0xdd00('0x2c')][_0xdd00('0x39')]+'%'};return _0x4e6de7;}})});}_0x405e85=_[_0xdd00('0x3a')]({},_0x405e85,_0x353c9f[_0xdd00('0x3b')]);var _0x567331={'where':_0x405e85[_0xdd00('0x35')]};return db[_0xdd00('0x27')][_0xdd00('0x1c')](_0x567331)[_0xdd00('0x21')](function(_0x150785){_0x1cb903[_0xdd00('0x1c')]=_0x150785;if(_0x353c9f[_0xdd00('0x2c')][_0xdd00('0x3c')]){_0x405e85[_0xdd00('0x3d')]=[{'all':!![]}];}return db[_0xdd00('0x27')]['findAll'](_0x405e85);})[_0xdd00('0x21')](function(_0x3d21de){_0x1cb903['rows']=_0x3d21de;return _0x1cb903;})[_0xdd00('0x21')](respondWithFilteredResult(_0x170809,_0x405e85))[_0xdd00('0x3e')](handleError(_0x170809,null));};exports[_0xdd00('0x3f')]=function(_0x455e4b,_0xf81924){var _0x58a10c={'raw':![],'where':{'id':_0x455e4b[_0xdd00('0x40')]['id']}},_0x7f0c4b={};_0x7f0c4b[_0xdd00('0x2b')]=_[_0xdd00('0x2d')](db[_0xdd00('0x27')][_0xdd00('0x28')]);_0x7f0c4b[_0xdd00('0x2c')]=_[_0xdd00('0x2d')](_0x455e4b[_0xdd00('0x2c')]);_0x7f0c4b[_0xdd00('0x36')]=_['intersection'](_0x7f0c4b[_0xdd00('0x2b')],_0x7f0c4b['query']);_0x58a10c[_0xdd00('0x30')]=_[_0xdd00('0x2e')](_0x7f0c4b[_0xdd00('0x2b')],qs[_0xdd00('0x2f')](_0x455e4b[_0xdd00('0x2c')][_0xdd00('0x2f')]));_0x58a10c['attributes']=_0x58a10c[_0xdd00('0x30')][_0xdd00('0x31')]?_0x58a10c['attributes']:_0x7f0c4b['model'];if(_0x455e4b[_0xdd00('0x2c')][_0xdd00('0x3c')]){_0x58a10c[_0xdd00('0x3d')]=[{'all':!![]}];}_0x58a10c=_['merge']({},_0x58a10c,_0x455e4b[_0xdd00('0x3b')]);return db['Automation']['find'](_0x58a10c)[_0xdd00('0x21')](handleEntityNotFound(_0xf81924,null))['then'](respondWithResult(_0xf81924,null))['catch'](handleError(_0xf81924,null));};exports['create']=function(_0x4967ec,_0x4fbe7b){return db[_0xdd00('0x27')]['create'](_0x4967ec['body'],{})[_0xdd00('0x21')](respondWithResult(_0x4fbe7b,0xc9))[_0xdd00('0x3e')](handleError(_0x4fbe7b,null));};exports[_0xdd00('0x41')]=function(_0x4b403b,_0x129cc1){if(_0x4b403b[_0xdd00('0x42')]['id']){delete _0x4b403b[_0xdd00('0x42')]['id'];}return db[_0xdd00('0x27')][_0xdd00('0x43')]({'where':{'id':_0x4b403b[_0xdd00('0x40')]['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0x129cc1,null))[_0xdd00('0x21')](saveUpdates(_0x4b403b[_0xdd00('0x42')],null))[_0xdd00('0x21')](respondWithResult(_0x129cc1,null))[_0xdd00('0x3e')](handleError(_0x129cc1,null));};exports['destroy']=function(_0x3057f0,_0x360a2e){return db['Automation'][_0xdd00('0x43')]({'where':{'id':_0x3057f0[_0xdd00('0x40')]['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0x360a2e,null))['then'](removeEntity(_0x360a2e,null))[_0xdd00('0x3e')](handleError(_0x360a2e,null));};exports[_0xdd00('0x44')]=function(_0x202874,_0x41b30c,_0x159a8e){return db['Condition'][_0xdd00('0x43')]({'where':{'id':_0x202874['params']['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0x41b30c,null))['then'](function(_0x40f0b9){if(_0x40f0b9){return _0x40f0b9[_0xdd00('0x44')](_0x202874['body']['ids'],_[_0xdd00('0x45')](_0x202874['body'],[_0xdd00('0x46'),'id'])||{});}})[_0xdd00('0x21')](respondWithResult(_0x41b30c,null))['catch'](handleError(_0x41b30c,null));};exports[_0xdd00('0x47')]=function(_0x59fb7d,_0x274430,_0x114ff4){var _0xa54d01={};var _0x11d3ee={};var _0x40b661;var _0x533859;return db['Automation'][_0xdd00('0x48')]({'where':{'id':_0x59fb7d[_0xdd00('0x40')]['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0x274430,null))['then'](function(_0x455073){if(_0x455073){_0x40b661=_0x455073;_0x11d3ee[_0xdd00('0x2b')]=_[_0xdd00('0x2d')](db[_0xdd00('0x49')][_0xdd00('0x28')]);_0x11d3ee['query']=_[_0xdd00('0x2d')](_0x59fb7d['query']);_0x11d3ee[_0xdd00('0x36')]=_[_0xdd00('0x2e')](_0x11d3ee[_0xdd00('0x2b')],_0x11d3ee[_0xdd00('0x2c')]);_0xa54d01[_0xdd00('0x30')]=_['intersection'](_0x11d3ee[_0xdd00('0x2b')],qs[_0xdd00('0x2f')](_0x59fb7d[_0xdd00('0x2c')][_0xdd00('0x2f')]));_0xa54d01[_0xdd00('0x30')]=_0xa54d01[_0xdd00('0x30')][_0xdd00('0x31')]?_0xa54d01[_0xdd00('0x30')]:_0x11d3ee[_0xdd00('0x2b')];_0xa54d01[_0xdd00('0x33')]=qs[_0xdd00('0x34')](_0x59fb7d[_0xdd00('0x2c')]['sort']);_0xa54d01[_0xdd00('0x35')]=qs[_0xdd00('0x36')](_[_0xdd00('0x37')](_0x59fb7d['query'],_0x11d3ee[_0xdd00('0x36')]));if(_0x59fb7d[_0xdd00('0x2c')][_0xdd00('0x39')]){_0xa54d01[_0xdd00('0x35')]=_[_0xdd00('0x3a')](_0xa54d01[_0xdd00('0x35')],{'$or':_[_0xdd00('0x26')](_0xa54d01[_0xdd00('0x30')],function(_0x30b599){var _0x4ac7ff={};_0x4ac7ff[_0x30b599]={'$like':'%'+_0x59fb7d[_0xdd00('0x2c')][_0xdd00('0x39')]+'%'};return _0x4ac7ff;})});}_0xa54d01=_[_0xdd00('0x3a')]({},_0xa54d01,_0x59fb7d[_0xdd00('0x3b')]);return _0x40b661[_0xdd00('0x47')](_0xa54d01);}})['then'](function(_0x4ca574){if(_0x4ca574){_0x533859=_0x4ca574[_0xdd00('0x31')];if(!_0x59fb7d[_0xdd00('0x2c')][_0xdd00('0x32')](_0xdd00('0x4a'))){_0xa54d01[_0xdd00('0x1a')]=qs['limit'](_0x59fb7d['query'][_0xdd00('0x1a')]);_0xa54d01[_0xdd00('0x19')]=qs[_0xdd00('0x19')](_0x59fb7d[_0xdd00('0x2c')]['offset']);}return _0x40b661[_0xdd00('0x47')](_0xa54d01);}})[_0xdd00('0x21')](function(_0x4c9d97){if(_0x4c9d97){return _0x4c9d97?{'count':_0x533859,'rows':_0x4c9d97}:null;}})[_0xdd00('0x21')](respondWithResult(_0x274430,null))[_0xdd00('0x3e')](handleError(_0x274430,null));};exports[_0xdd00('0x4b')]=function(_0x567d2b,_0x18c0fe,_0x45d18c){return db[_0xdd00('0x4c')][_0xdd00('0x43')]({'where':{'id':_0x567d2b[_0xdd00('0x40')]['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0x18c0fe,null))['then'](function(_0x8b1653){if(_0x8b1653){return _0x8b1653[_0xdd00('0x4b')](_0x567d2b['body'][_0xdd00('0x46')],_[_0xdd00('0x45')](_0x567d2b[_0xdd00('0x42')],['ids','id'])||{});}})[_0xdd00('0x21')](respondWithResult(_0x18c0fe,null))['catch'](handleError(_0x18c0fe,null));};exports[_0xdd00('0x4d')]=function(_0x2cab4a,_0xefb761,_0x4cc81d){var _0x4cfb43={};var _0x369c87={};var _0x1c8616;var _0x243420;return db[_0xdd00('0x27')][_0xdd00('0x48')]({'where':{'id':_0x2cab4a['params']['id']}})[_0xdd00('0x21')](handleEntityNotFound(_0xefb761,null))[_0xdd00('0x21')](function(_0x368bbe){if(_0x368bbe){_0x1c8616=_0x368bbe;_0x369c87['model']=_[_0xdd00('0x2d')](db[_0xdd00('0x4c')][_0xdd00('0x28')]);_0x369c87[_0xdd00('0x2c')]=_[_0xdd00('0x2d')](_0x2cab4a[_0xdd00('0x2c')]);_0x369c87[_0xdd00('0x36')]=_[_0xdd00('0x2e')](_0x369c87[_0xdd00('0x2b')],_0x369c87[_0xdd00('0x2c')]);_0x4cfb43[_0xdd00('0x30')]=_[_0xdd00('0x2e')](_0x369c87[_0xdd00('0x2b')],qs[_0xdd00('0x2f')](_0x2cab4a[_0xdd00('0x2c')]['fields']));_0x4cfb43[_0xdd00('0x30')]=_0x4cfb43[_0xdd00('0x30')][_0xdd00('0x31')]?_0x4cfb43[_0xdd00('0x30')]:_0x369c87[_0xdd00('0x2b')];_0x4cfb43[_0xdd00('0x33')]=qs[_0xdd00('0x34')](_0x2cab4a['query'][_0xdd00('0x34')]);_0x4cfb43[_0xdd00('0x35')]=qs[_0xdd00('0x36')](_[_0xdd00('0x37')](_0x2cab4a[_0xdd00('0x2c')],_0x369c87[_0xdd00('0x36')]));if(_0x2cab4a['query'][_0xdd00('0x39')]){_0x4cfb43[_0xdd00('0x35')]=_['merge'](_0x4cfb43[_0xdd00('0x35')],{'$or':_[_0xdd00('0x26')](_0x4cfb43[_0xdd00('0x30')],function(_0x2918b9){var _0x4ae1e1={};_0x4ae1e1[_0x2918b9]={'$like':'%'+_0x2cab4a[_0xdd00('0x2c')][_0xdd00('0x39')]+'%'};return _0x4ae1e1;})});}_0x4cfb43=_[_0xdd00('0x3a')]({},_0x4cfb43,_0x2cab4a[_0xdd00('0x3b')]);return _0x1c8616['getActions'](_0x4cfb43);}})['then'](function(_0x54c2e6){if(_0x54c2e6){_0x243420=_0x54c2e6['length'];if(!_0x2cab4a[_0xdd00('0x2c')][_0xdd00('0x32')](_0xdd00('0x4a'))){_0x4cfb43[_0xdd00('0x1a')]=qs[_0xdd00('0x1a')](_0x2cab4a[_0xdd00('0x2c')][_0xdd00('0x1a')]);_0x4cfb43[_0xdd00('0x19')]=qs[_0xdd00('0x19')](_0x2cab4a[_0xdd00('0x2c')]['offset']);}return _0x1c8616[_0xdd00('0x4d')](_0x4cfb43);}})[_0xdd00('0x21')](function(_0x1c0530){if(_0x1c0530){return _0x1c0530?{'count':_0x243420,'rows':_0x1c0530}:null;}})[_0xdd00('0x21')](respondWithResult(_0xefb761,null))[_0xdd00('0x3e')](handleError(_0xefb761,null));};