Built motion from commit b0a9a629.|2.6.33
[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 _0xcc46=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','send','index','map','Automation','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','fields','find','create','body','addConditions','Condition','ids','omit','getConditions','findOne','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api'];(function(_0x3d40a8,_0x423416){var _0x576d1f=function(_0x5326e4){while(--_0x5326e4){_0x3d40a8['push'](_0x3d40a8['shift']());}};_0x576d1f(++_0x423416);}(_0xcc46,0x13f));var _0x6cc4=function(_0x2977bd,_0x516984){_0x2977bd=_0x2977bd-0x0;var _0x458df2=_0xcc46[_0x2977bd];return _0x458df2;};'use strict';var emlformat=require(_0x6cc4('0x0'));var rimraf=require(_0x6cc4('0x1'));var zipdir=require(_0x6cc4('0x2'));var jsonpatch=require(_0x6cc4('0x3'));var rp=require(_0x6cc4('0x4'));var moment=require(_0x6cc4('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6cc4('0x6'));var util=require(_0x6cc4('0x7'));var path=require('path');var sox=require(_0x6cc4('0x8'));var csv=require(_0x6cc4('0x9'));var ejs=require(_0x6cc4('0xa'));var fs=require('fs');var fs_extra=require(_0x6cc4('0xb'));var _=require('lodash');var squel=require(_0x6cc4('0xc'));var crypto=require(_0x6cc4('0xd'));var jsforce=require(_0x6cc4('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x6cc4('0x9'));var querystring=require(_0x6cc4('0xf'));var Papa=require(_0x6cc4('0x10'));var Redis=require('ioredis');var authService=require(_0x6cc4('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x6cc4('0x12'));var hardwareService=require(_0x6cc4('0x13'));var logger=require('../../config/logger')(_0x6cc4('0x14'));var utils=require('../../config/utils');var config=require(_0x6cc4('0x15'));var licenseUtil=require(_0x6cc4('0x16'));var db=require(_0x6cc4('0x17'))['db'];function respondWithStatusCode(_0x2c68fe,_0x50c2d7){_0x50c2d7=_0x50c2d7||0xcc;return function(_0x44292b){if(_0x44292b){return _0x2c68fe[_0x6cc4('0x18')](_0x50c2d7);}return _0x2c68fe[_0x6cc4('0x19')](_0x50c2d7)[_0x6cc4('0x1a')]();};}function respondWithResult(_0x1624ef,_0x416d0f){_0x416d0f=_0x416d0f||0xc8;return function(_0x5a95ef){if(_0x5a95ef){return _0x1624ef[_0x6cc4('0x19')](_0x416d0f)[_0x6cc4('0x1b')](_0x5a95ef);}};}function respondWithFilteredResult(_0x2ca37d,_0x43f699){return function(_0x1c6881){if(_0x1c6881){var _0x2ad0ce=typeof _0x43f699[_0x6cc4('0x1c')]===_0x6cc4('0x1d')&&typeof _0x43f699[_0x6cc4('0x1e')]===_0x6cc4('0x1d');var _0x5622ea=_0x1c6881['count'];var _0x121867=_0x2ad0ce?0x0:_0x43f699[_0x6cc4('0x1c')];var _0x5c7ba0=_0x2ad0ce?_0x1c6881[_0x6cc4('0x1f')]:_0x43f699[_0x6cc4('0x1c')]+_0x43f699[_0x6cc4('0x1e')];var _0x5400a3;if(_0x5c7ba0>=_0x5622ea){_0x5c7ba0=_0x5622ea;_0x5400a3=0xc8;}else{_0x5400a3=0xce;}_0x2ca37d[_0x6cc4('0x19')](_0x5400a3);return _0x2ca37d[_0x6cc4('0x20')](_0x6cc4('0x21'),_0x121867+'-'+_0x5c7ba0+'/'+_0x5622ea)['json'](_0x1c6881);}return null;};}function patchUpdates(_0x566208){return function(_0x5c6b5e){try{jsonpatch['apply'](_0x5c6b5e,_0x566208,!![]);}catch(_0x4480b1){return BPromise[_0x6cc4('0x22')](_0x4480b1);}return _0x5c6b5e[_0x6cc4('0x23')]();};}function saveUpdates(_0x4a972b,_0x48e914){return function(_0x3a986f){if(_0x3a986f){return _0x3a986f[_0x6cc4('0x24')](_0x4a972b)[_0x6cc4('0x25')](function(_0x339e13){return _0x339e13;});}return null;};}function removeEntity(_0x23579b,_0x116cdc){return function(_0x3349db){if(_0x3349db){return _0x3349db[_0x6cc4('0x26')]()[_0x6cc4('0x25')](function(){_0x23579b[_0x6cc4('0x19')](0xcc)[_0x6cc4('0x1a')]();});}};}function handleEntityNotFound(_0x306898,_0x46e837){return function(_0x377928){if(!_0x377928){_0x306898[_0x6cc4('0x18')](0x194);}return _0x377928;};}function handleError(_0x4add8b,_0xc39d7a){_0xc39d7a=_0xc39d7a||0x1f4;return function(_0x8e8b22){logger['error'](_0x8e8b22[_0x6cc4('0x27')]);if(_0x8e8b22['name']){delete _0x8e8b22[_0x6cc4('0x28')];}_0x4add8b[_0x6cc4('0x19')](_0xc39d7a)[_0x6cc4('0x29')](_0x8e8b22);};}exports[_0x6cc4('0x2a')]=function(_0xce60ab,_0x333d83){var _0x19f968={},_0x5a2982={},_0x26554e={'count':0x0,'rows':[]};var _0x39d54a=_[_0x6cc4('0x2b')](db[_0x6cc4('0x2c')][_0x6cc4('0x2d')],function(_0x530b5c){return{'name':_0x530b5c['fieldName'],'type':_0x530b5c[_0x6cc4('0x2e')][_0x6cc4('0x2f')]};});_0x5a2982[_0x6cc4('0x30')]=_[_0x6cc4('0x2b')](_0x39d54a,'name');_0x5a2982['query']=_[_0x6cc4('0x31')](_0xce60ab[_0x6cc4('0x32')]);_0x5a2982[_0x6cc4('0x33')]=_[_0x6cc4('0x34')](_0x5a2982[_0x6cc4('0x30')],_0x5a2982[_0x6cc4('0x32')]);_0x19f968[_0x6cc4('0x35')]=_[_0x6cc4('0x34')](_0x5a2982[_0x6cc4('0x30')],qs['fields'](_0xce60ab[_0x6cc4('0x32')]['fields']));_0x19f968[_0x6cc4('0x35')]=_0x19f968[_0x6cc4('0x35')][_0x6cc4('0x36')]?_0x19f968[_0x6cc4('0x35')]:_0x5a2982[_0x6cc4('0x30')];if(!_0xce60ab[_0x6cc4('0x32')][_0x6cc4('0x37')](_0x6cc4('0x38'))){_0x19f968[_0x6cc4('0x1e')]=qs['limit'](_0xce60ab[_0x6cc4('0x32')][_0x6cc4('0x1e')]);_0x19f968[_0x6cc4('0x1c')]=qs[_0x6cc4('0x1c')](_0xce60ab[_0x6cc4('0x32')][_0x6cc4('0x1c')]);}_0x19f968[_0x6cc4('0x39')]=qs['sort'](_0xce60ab[_0x6cc4('0x32')][_0x6cc4('0x3a')]);_0x19f968[_0x6cc4('0x3b')]=qs[_0x6cc4('0x33')](_[_0x6cc4('0x3c')](_0xce60ab[_0x6cc4('0x32')],_0x5a2982[_0x6cc4('0x33')]),_0x39d54a);if(_0xce60ab['query'][_0x6cc4('0x3d')]){_0x19f968[_0x6cc4('0x3b')]=_[_0x6cc4('0x3e')](_0x19f968[_0x6cc4('0x3b')],{'$or':_[_0x6cc4('0x2b')](_0x39d54a,function(_0x51d3f0){if(_0x51d3f0[_0x6cc4('0x2e')]!==_0x6cc4('0x3f')){var _0x4ddcf0={};_0x4ddcf0[_0x51d3f0[_0x6cc4('0x28')]]={'$like':'%'+_0xce60ab['query'][_0x6cc4('0x3d')]+'%'};return _0x4ddcf0;}})});}_0x19f968=_[_0x6cc4('0x3e')]({},_0x19f968,_0xce60ab[_0x6cc4('0x40')]);var _0x18b788={'where':_0x19f968['where']};return db[_0x6cc4('0x2c')][_0x6cc4('0x1f')](_0x18b788)[_0x6cc4('0x25')](function(_0x9d94a1){_0x26554e['count']=_0x9d94a1;if(_0xce60ab[_0x6cc4('0x32')][_0x6cc4('0x41')]){_0x19f968[_0x6cc4('0x42')]=[{'all':!![]}];}return db[_0x6cc4('0x2c')][_0x6cc4('0x43')](_0x19f968);})[_0x6cc4('0x25')](function(_0x18618c){_0x26554e[_0x6cc4('0x44')]=_0x18618c;return _0x26554e;})['then'](respondWithFilteredResult(_0x333d83,_0x19f968))[_0x6cc4('0x45')](handleError(_0x333d83,null));};exports[_0x6cc4('0x46')]=function(_0x1d860e,_0x4a72df){var _0xe4c482={'raw':![],'where':{'id':_0x1d860e[_0x6cc4('0x47')]['id']}},_0xb5b5c8={};_0xb5b5c8[_0x6cc4('0x30')]=_[_0x6cc4('0x31')](db[_0x6cc4('0x2c')][_0x6cc4('0x2d')]);_0xb5b5c8[_0x6cc4('0x32')]=_[_0x6cc4('0x31')](_0x1d860e['query']);_0xb5b5c8[_0x6cc4('0x33')]=_['intersection'](_0xb5b5c8[_0x6cc4('0x30')],_0xb5b5c8[_0x6cc4('0x32')]);_0xe4c482[_0x6cc4('0x35')]=_['intersection'](_0xb5b5c8[_0x6cc4('0x30')],qs[_0x6cc4('0x48')](_0x1d860e[_0x6cc4('0x32')][_0x6cc4('0x48')]));_0xe4c482['attributes']=_0xe4c482[_0x6cc4('0x35')][_0x6cc4('0x36')]?_0xe4c482['attributes']:_0xb5b5c8['model'];if(_0x1d860e[_0x6cc4('0x32')][_0x6cc4('0x41')]){_0xe4c482['include']=[{'all':!![]}];}_0xe4c482=_[_0x6cc4('0x3e')]({},_0xe4c482,_0x1d860e['options']);return db[_0x6cc4('0x2c')][_0x6cc4('0x49')](_0xe4c482)['then'](handleEntityNotFound(_0x4a72df,null))['then'](respondWithResult(_0x4a72df,null))[_0x6cc4('0x45')](handleError(_0x4a72df,null));};exports[_0x6cc4('0x4a')]=function(_0x5b71ee,_0x10b9cb){return db[_0x6cc4('0x2c')][_0x6cc4('0x4a')](_0x5b71ee['body'],{})['then'](respondWithResult(_0x10b9cb,0xc9))[_0x6cc4('0x45')](handleError(_0x10b9cb,null));};exports[_0x6cc4('0x24')]=function(_0xe6293d,_0x368dd2){if(_0xe6293d[_0x6cc4('0x4b')]['id']){delete _0xe6293d['body']['id'];}return db[_0x6cc4('0x2c')][_0x6cc4('0x49')]({'where':{'id':_0xe6293d[_0x6cc4('0x47')]['id']}})['then'](handleEntityNotFound(_0x368dd2,null))['then'](saveUpdates(_0xe6293d[_0x6cc4('0x4b')],null))['then'](respondWithResult(_0x368dd2,null))[_0x6cc4('0x45')](handleError(_0x368dd2,null));};exports[_0x6cc4('0x26')]=function(_0x427c78,_0xb083b1){return db['Automation']['find']({'where':{'id':_0x427c78[_0x6cc4('0x47')]['id']}})[_0x6cc4('0x25')](handleEntityNotFound(_0xb083b1,null))['then'](removeEntity(_0xb083b1,null))['catch'](handleError(_0xb083b1,null));};exports[_0x6cc4('0x4c')]=function(_0x1ebeb2,_0x323fc4,_0x40d244){return db[_0x6cc4('0x4d')][_0x6cc4('0x49')]({'where':{'id':_0x1ebeb2[_0x6cc4('0x47')]['id']}})['then'](handleEntityNotFound(_0x323fc4,null))[_0x6cc4('0x25')](function(_0x10220f){if(_0x10220f){return _0x10220f[_0x6cc4('0x4c')](_0x1ebeb2[_0x6cc4('0x4b')][_0x6cc4('0x4e')],_[_0x6cc4('0x4f')](_0x1ebeb2[_0x6cc4('0x4b')],['ids','id'])||{});}})['then'](respondWithResult(_0x323fc4,null))[_0x6cc4('0x45')](handleError(_0x323fc4,null));};exports[_0x6cc4('0x50')]=function(_0x45881b,_0xe3c917,_0x1e0a4a){var _0xdcdff1={};var _0x90e842={};var _0x495d27;var _0x421d57;return db['Automation'][_0x6cc4('0x51')]({'where':{'id':_0x45881b['params']['id']}})[_0x6cc4('0x25')](handleEntityNotFound(_0xe3c917,null))[_0x6cc4('0x25')](function(_0x355f42){if(_0x355f42){_0x495d27=_0x355f42;_0x90e842[_0x6cc4('0x30')]=_[_0x6cc4('0x31')](db[_0x6cc4('0x4d')][_0x6cc4('0x2d')]);_0x90e842[_0x6cc4('0x32')]=_[_0x6cc4('0x31')](_0x45881b[_0x6cc4('0x32')]);_0x90e842[_0x6cc4('0x33')]=_['intersection'](_0x90e842[_0x6cc4('0x30')],_0x90e842[_0x6cc4('0x32')]);_0xdcdff1['attributes']=_[_0x6cc4('0x34')](_0x90e842['model'],qs[_0x6cc4('0x48')](_0x45881b[_0x6cc4('0x32')]['fields']));_0xdcdff1[_0x6cc4('0x35')]=_0xdcdff1[_0x6cc4('0x35')][_0x6cc4('0x36')]?_0xdcdff1[_0x6cc4('0x35')]:_0x90e842[_0x6cc4('0x30')];_0xdcdff1[_0x6cc4('0x39')]=qs[_0x6cc4('0x3a')](_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x3a')]);_0xdcdff1[_0x6cc4('0x3b')]=qs[_0x6cc4('0x33')](_['pick'](_0x45881b[_0x6cc4('0x32')],_0x90e842[_0x6cc4('0x33')]));if(_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x3d')]){_0xdcdff1[_0x6cc4('0x3b')]=_[_0x6cc4('0x3e')](_0xdcdff1[_0x6cc4('0x3b')],{'$or':_[_0x6cc4('0x2b')](_0xdcdff1[_0x6cc4('0x35')],function(_0x2b77cf){var _0xb72574={};_0xb72574[_0x2b77cf]={'$like':'%'+_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x3d')]+'%'};return _0xb72574;})});}_0xdcdff1=_['merge']({},_0xdcdff1,_0x45881b[_0x6cc4('0x40')]);return _0x495d27[_0x6cc4('0x50')](_0xdcdff1);}})[_0x6cc4('0x25')](function(_0x108e6c){if(_0x108e6c){_0x421d57=_0x108e6c['length'];if(!_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x37')](_0x6cc4('0x38'))){_0xdcdff1[_0x6cc4('0x1e')]=qs[_0x6cc4('0x1e')](_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x1e')]);_0xdcdff1[_0x6cc4('0x1c')]=qs[_0x6cc4('0x1c')](_0x45881b[_0x6cc4('0x32')][_0x6cc4('0x1c')]);}return _0x495d27[_0x6cc4('0x50')](_0xdcdff1);}})[_0x6cc4('0x25')](function(_0xd0df38){if(_0xd0df38){return _0xd0df38?{'count':_0x421d57,'rows':_0xd0df38}:null;}})['then'](respondWithResult(_0xe3c917,null))['catch'](handleError(_0xe3c917,null));};exports[_0x6cc4('0x52')]=function(_0x383481,_0x5b2581,_0x28caa4){return db[_0x6cc4('0x53')]['find']({'where':{'id':_0x383481[_0x6cc4('0x47')]['id']}})[_0x6cc4('0x25')](handleEntityNotFound(_0x5b2581,null))['then'](function(_0xb1978b){if(_0xb1978b){return _0xb1978b['addActions'](_0x383481[_0x6cc4('0x4b')]['ids'],_['omit'](_0x383481['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x5b2581,null))['catch'](handleError(_0x5b2581,null));};exports[_0x6cc4('0x54')]=function(_0x638d6e,_0x5d0656,_0x14efde){var _0x2f7ead={};var _0x1959b7={};var _0x4324c4;var _0x3bbfb6;return db[_0x6cc4('0x2c')]['findOne']({'where':{'id':_0x638d6e[_0x6cc4('0x47')]['id']}})['then'](handleEntityNotFound(_0x5d0656,null))[_0x6cc4('0x25')](function(_0x3e7b03){if(_0x3e7b03){_0x4324c4=_0x3e7b03;_0x1959b7[_0x6cc4('0x30')]=_[_0x6cc4('0x31')](db['Action'][_0x6cc4('0x2d')]);_0x1959b7[_0x6cc4('0x32')]=_['keys'](_0x638d6e['query']);_0x1959b7['filters']=_[_0x6cc4('0x34')](_0x1959b7['model'],_0x1959b7['query']);_0x2f7ead[_0x6cc4('0x35')]=_[_0x6cc4('0x34')](_0x1959b7[_0x6cc4('0x30')],qs[_0x6cc4('0x48')](_0x638d6e['query'][_0x6cc4('0x48')]));_0x2f7ead[_0x6cc4('0x35')]=_0x2f7ead[_0x6cc4('0x35')][_0x6cc4('0x36')]?_0x2f7ead['attributes']:_0x1959b7[_0x6cc4('0x30')];_0x2f7ead[_0x6cc4('0x39')]=qs[_0x6cc4('0x3a')](_0x638d6e[_0x6cc4('0x32')]['sort']);_0x2f7ead[_0x6cc4('0x3b')]=qs['filters'](_[_0x6cc4('0x3c')](_0x638d6e[_0x6cc4('0x32')],_0x1959b7[_0x6cc4('0x33')]));if(_0x638d6e[_0x6cc4('0x32')][_0x6cc4('0x3d')]){_0x2f7ead[_0x6cc4('0x3b')]=_[_0x6cc4('0x3e')](_0x2f7ead[_0x6cc4('0x3b')],{'$or':_[_0x6cc4('0x2b')](_0x2f7ead[_0x6cc4('0x35')],function(_0x178fe3){var _0x49aae6={};_0x49aae6[_0x178fe3]={'$like':'%'+_0x638d6e[_0x6cc4('0x32')][_0x6cc4('0x3d')]+'%'};return _0x49aae6;})});}_0x2f7ead=_[_0x6cc4('0x3e')]({},_0x2f7ead,_0x638d6e['options']);return _0x4324c4[_0x6cc4('0x54')](_0x2f7ead);}})[_0x6cc4('0x25')](function(_0x4ca51c){if(_0x4ca51c){_0x3bbfb6=_0x4ca51c['length'];if(!_0x638d6e[_0x6cc4('0x32')]['hasOwnProperty']('nolimit')){_0x2f7ead[_0x6cc4('0x1e')]=qs[_0x6cc4('0x1e')](_0x638d6e[_0x6cc4('0x32')][_0x6cc4('0x1e')]);_0x2f7ead['offset']=qs[_0x6cc4('0x1c')](_0x638d6e[_0x6cc4('0x32')]['offset']);}return _0x4324c4[_0x6cc4('0x54')](_0x2f7ead);}})[_0x6cc4('0x25')](function(_0x2a1ec0){if(_0x2a1ec0){return _0x2a1ec0?{'count':_0x3bbfb6,'rows':_0x2a1ec0}:null;}})[_0x6cc4('0x25')](respondWithResult(_0x5d0656,null))[_0x6cc4('0x45')](handleError(_0x5d0656,null));};