05686b7806c8e4f9982fea2d3a26d8a06b8933cf
[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 _0x3eed=['getConditions','order','addActions','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','undefined','limit','offset','json','apply','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','Automation','count','includeAll','findAll','catch','show','params','include','find','create','body','Condition','addConditions','ids','omit'];(function(_0x1b94ef,_0x2fafdc){var _0x13662a=function(_0x2ac3d7){while(--_0x2ac3d7){_0x1b94ef['push'](_0x1b94ef['shift']());}};_0x13662a(++_0x2fafdc);}(_0x3eed,0xac));var _0xd3ee=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x3eed[_0x2641f9];return _0x585741;};'use strict';var emlformat=require(_0xd3ee('0x0'));var rimraf=require(_0xd3ee('0x1'));var zipdir=require(_0xd3ee('0x2'));var jsonpatch=require(_0xd3ee('0x3'));var rp=require(_0xd3ee('0x4'));var moment=require(_0xd3ee('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xd3ee('0x6'));var util=require(_0xd3ee('0x7'));var path=require(_0xd3ee('0x8'));var sox=require('sox');var csv=require(_0xd3ee('0x9'));var ejs=require(_0xd3ee('0xa'));var fs=require('fs');var fs_extra=require(_0xd3ee('0xb'));var _=require(_0xd3ee('0xc'));var squel=require(_0xd3ee('0xd'));var crypto=require(_0xd3ee('0xe'));var jsforce=require(_0xd3ee('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd3ee('0x10'));var Papa=require('papaparse');var Redis=require(_0xd3ee('0x11'));var authService=require(_0xd3ee('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd3ee('0x13'));var hardwareService=require(_0xd3ee('0x14'));var logger=require('../../config/logger')(_0xd3ee('0x15'));var utils=require(_0xd3ee('0x16'));var config=require(_0xd3ee('0x17'));var licenseUtil=require(_0xd3ee('0x18'));var db=require(_0xd3ee('0x19'))['db'];function respondWithStatusCode(_0x561435,_0x3564e2){_0x3564e2=_0x3564e2||0xcc;return function(_0x36fb3b){if(_0x36fb3b){return _0x561435[_0xd3ee('0x1a')](_0x3564e2);}return _0x561435['status'](_0x3564e2)[_0xd3ee('0x1b')]();};}function respondWithResult(_0x59035e,_0x416433){_0x416433=_0x416433||0xc8;return function(_0x249e2b){if(_0x249e2b){return _0x59035e[_0xd3ee('0x1c')](_0x416433)['json'](_0x249e2b);}};}function respondWithFilteredResult(_0x4f989b,_0x379b05){return function(_0x5a9f42){if(_0x5a9f42){var _0x506b00=typeof _0x379b05['offset']===_0xd3ee('0x1d')&&typeof _0x379b05[_0xd3ee('0x1e')]===_0xd3ee('0x1d');var _0x2a10ef=_0x5a9f42['count'];var _0x2fa433=_0x506b00?0x0:_0x379b05['offset'];var _0x282f28=_0x506b00?_0x5a9f42['count']:_0x379b05[_0xd3ee('0x1f')]+_0x379b05[_0xd3ee('0x1e')];var _0x57c06e;if(_0x282f28>=_0x2a10ef){_0x282f28=_0x2a10ef;_0x57c06e=0xc8;}else{_0x57c06e=0xce;}_0x4f989b[_0xd3ee('0x1c')](_0x57c06e);return _0x4f989b['set']('Content-Range',_0x2fa433+'-'+_0x282f28+'/'+_0x2a10ef)[_0xd3ee('0x20')](_0x5a9f42);}return null;};}function patchUpdates(_0xe08ed9){return function(_0x27d4d9){try{jsonpatch[_0xd3ee('0x21')](_0x27d4d9,_0xe08ed9,!![]);}catch(_0x275283){return BPromise[_0xd3ee('0x22')](_0x275283);}return _0x27d4d9['save']();};}function saveUpdates(_0x52fa7c,_0x393624){return function(_0x27537b){if(_0x27537b){return _0x27537b[_0xd3ee('0x23')](_0x52fa7c)[_0xd3ee('0x24')](function(_0x46db68){return _0x46db68;});}return null;};}function removeEntity(_0x41953a,_0x40ad54){return function(_0x1e7a19){if(_0x1e7a19){return _0x1e7a19[_0xd3ee('0x25')]()['then'](function(){_0x41953a[_0xd3ee('0x1c')](0xcc)[_0xd3ee('0x1b')]();});}};}function handleEntityNotFound(_0x582445,_0x47e11a){return function(_0x589eae){if(!_0x589eae){_0x582445['sendStatus'](0x194);}return _0x589eae;};}function handleError(_0xa9759b,_0x32f06f){_0x32f06f=_0x32f06f||0x1f4;return function(_0x3cdd59){logger[_0xd3ee('0x26')](_0x3cdd59[_0xd3ee('0x27')]);if(_0x3cdd59[_0xd3ee('0x28')]){delete _0x3cdd59[_0xd3ee('0x28')];}_0xa9759b[_0xd3ee('0x1c')](_0x32f06f)[_0xd3ee('0x29')](_0x3cdd59);};}exports[_0xd3ee('0x2a')]=function(_0x4d99c0,_0x36735e){var _0x597e0b={},_0x5defb5={},_0x4e3794={'count':0x0,'rows':[]};var _0x28479e=_[_0xd3ee('0x2b')](db['Automation'][_0xd3ee('0x2c')],function(_0x216fc1){return{'name':_0x216fc1[_0xd3ee('0x2d')],'type':_0x216fc1[_0xd3ee('0x2e')][_0xd3ee('0x2f')]};});_0x5defb5['model']=_['map'](_0x28479e,_0xd3ee('0x28'));_0x5defb5[_0xd3ee('0x30')]=_[_0xd3ee('0x31')](_0x4d99c0['query']);_0x5defb5[_0xd3ee('0x32')]=_[_0xd3ee('0x33')](_0x5defb5[_0xd3ee('0x34')],_0x5defb5[_0xd3ee('0x30')]);_0x597e0b[_0xd3ee('0x35')]=_['intersection'](_0x5defb5[_0xd3ee('0x34')],qs[_0xd3ee('0x36')](_0x4d99c0[_0xd3ee('0x30')][_0xd3ee('0x36')]));_0x597e0b['attributes']=_0x597e0b[_0xd3ee('0x35')][_0xd3ee('0x37')]?_0x597e0b[_0xd3ee('0x35')]:_0x5defb5[_0xd3ee('0x34')];if(!_0x4d99c0['query'][_0xd3ee('0x38')](_0xd3ee('0x39'))){_0x597e0b[_0xd3ee('0x1e')]=qs[_0xd3ee('0x1e')](_0x4d99c0['query'][_0xd3ee('0x1e')]);_0x597e0b[_0xd3ee('0x1f')]=qs[_0xd3ee('0x1f')](_0x4d99c0['query']['offset']);}_0x597e0b['order']=qs['sort'](_0x4d99c0[_0xd3ee('0x30')][_0xd3ee('0x3a')]);_0x597e0b[_0xd3ee('0x3b')]=qs['filters'](_[_0xd3ee('0x3c')](_0x4d99c0[_0xd3ee('0x30')],_0x5defb5[_0xd3ee('0x32')]),_0x28479e);if(_0x4d99c0[_0xd3ee('0x30')][_0xd3ee('0x3d')]){_0x597e0b[_0xd3ee('0x3b')]=_[_0xd3ee('0x3e')](_0x597e0b[_0xd3ee('0x3b')],{'$or':_['map'](_0x28479e,function(_0x1d21bc){if(_0x1d21bc[_0xd3ee('0x2e')]!==_0xd3ee('0x3f')){var _0x4db388={};_0x4db388[_0x1d21bc[_0xd3ee('0x28')]]={'$like':'%'+_0x4d99c0[_0xd3ee('0x30')][_0xd3ee('0x3d')]+'%'};return _0x4db388;}})});}_0x597e0b=_[_0xd3ee('0x3e')]({},_0x597e0b,_0x4d99c0[_0xd3ee('0x40')]);var _0x2dbfed={'where':_0x597e0b[_0xd3ee('0x3b')]};return db[_0xd3ee('0x41')][_0xd3ee('0x42')](_0x2dbfed)[_0xd3ee('0x24')](function(_0x2e1a9a){_0x4e3794[_0xd3ee('0x42')]=_0x2e1a9a;if(_0x4d99c0[_0xd3ee('0x30')][_0xd3ee('0x43')]){_0x597e0b['include']=[{'all':!![]}];}return db[_0xd3ee('0x41')][_0xd3ee('0x44')](_0x597e0b);})[_0xd3ee('0x24')](function(_0x2649a2){_0x4e3794['rows']=_0x2649a2;return _0x4e3794;})[_0xd3ee('0x24')](respondWithFilteredResult(_0x36735e,_0x597e0b))[_0xd3ee('0x45')](handleError(_0x36735e,null));};exports[_0xd3ee('0x46')]=function(_0x3c6e40,_0x539abb){var _0x50f055={'raw':![],'where':{'id':_0x3c6e40[_0xd3ee('0x47')]['id']}},_0x42640a={};_0x42640a[_0xd3ee('0x34')]=_[_0xd3ee('0x31')](db[_0xd3ee('0x41')][_0xd3ee('0x2c')]);_0x42640a[_0xd3ee('0x30')]=_[_0xd3ee('0x31')](_0x3c6e40[_0xd3ee('0x30')]);_0x42640a[_0xd3ee('0x32')]=_[_0xd3ee('0x33')](_0x42640a[_0xd3ee('0x34')],_0x42640a[_0xd3ee('0x30')]);_0x50f055['attributes']=_[_0xd3ee('0x33')](_0x42640a[_0xd3ee('0x34')],qs['fields'](_0x3c6e40[_0xd3ee('0x30')][_0xd3ee('0x36')]));_0x50f055[_0xd3ee('0x35')]=_0x50f055[_0xd3ee('0x35')][_0xd3ee('0x37')]?_0x50f055[_0xd3ee('0x35')]:_0x42640a['model'];if(_0x3c6e40[_0xd3ee('0x30')]['includeAll']){_0x50f055[_0xd3ee('0x48')]=[{'all':!![]}];}_0x50f055=_[_0xd3ee('0x3e')]({},_0x50f055,_0x3c6e40['options']);return db['Automation'][_0xd3ee('0x49')](_0x50f055)['then'](handleEntityNotFound(_0x539abb,null))['then'](respondWithResult(_0x539abb,null))[_0xd3ee('0x45')](handleError(_0x539abb,null));};exports[_0xd3ee('0x4a')]=function(_0xa7fb22,_0x38e6be){return db[_0xd3ee('0x41')][_0xd3ee('0x4a')](_0xa7fb22[_0xd3ee('0x4b')],{})['then'](respondWithResult(_0x38e6be,0xc9))['catch'](handleError(_0x38e6be,null));};exports['update']=function(_0x336e0e,_0x438369){if(_0x336e0e[_0xd3ee('0x4b')]['id']){delete _0x336e0e[_0xd3ee('0x4b')]['id'];}return db[_0xd3ee('0x41')][_0xd3ee('0x49')]({'where':{'id':_0x336e0e[_0xd3ee('0x47')]['id']}})[_0xd3ee('0x24')](handleEntityNotFound(_0x438369,null))[_0xd3ee('0x24')](saveUpdates(_0x336e0e[_0xd3ee('0x4b')],null))[_0xd3ee('0x24')](respondWithResult(_0x438369,null))[_0xd3ee('0x45')](handleError(_0x438369,null));};exports[_0xd3ee('0x25')]=function(_0xcd421b,_0x2e97a0){return db[_0xd3ee('0x41')][_0xd3ee('0x49')]({'where':{'id':_0xcd421b[_0xd3ee('0x47')]['id']}})[_0xd3ee('0x24')](handleEntityNotFound(_0x2e97a0,null))['then'](removeEntity(_0x2e97a0,null))[_0xd3ee('0x45')](handleError(_0x2e97a0,null));};exports['addConditions']=function(_0x31bc64,_0x4b31ac,_0x2c40e0){return db[_0xd3ee('0x4c')][_0xd3ee('0x49')]({'where':{'id':_0x31bc64['params']['id']}})['then'](handleEntityNotFound(_0x4b31ac,null))[_0xd3ee('0x24')](function(_0x8c17fe){if(_0x8c17fe){return _0x8c17fe[_0xd3ee('0x4d')](_0x31bc64['body'][_0xd3ee('0x4e')],_[_0xd3ee('0x4f')](_0x31bc64[_0xd3ee('0x4b')],[_0xd3ee('0x4e'),'id'])||{});}})[_0xd3ee('0x24')](respondWithResult(_0x4b31ac,null))[_0xd3ee('0x45')](handleError(_0x4b31ac,null));};exports[_0xd3ee('0x50')]=function(_0x44450f,_0x301ac1,_0x2265d3){var _0x418f93={};var _0x10cea2={};var _0x309c22;var _0x5d6ac0;return db[_0xd3ee('0x41')]['findOne']({'where':{'id':_0x44450f[_0xd3ee('0x47')]['id']}})[_0xd3ee('0x24')](handleEntityNotFound(_0x301ac1,null))[_0xd3ee('0x24')](function(_0x30089d){if(_0x30089d){_0x309c22=_0x30089d;_0x10cea2['model']=_[_0xd3ee('0x31')](db[_0xd3ee('0x4c')][_0xd3ee('0x2c')]);_0x10cea2[_0xd3ee('0x30')]=_[_0xd3ee('0x31')](_0x44450f['query']);_0x10cea2[_0xd3ee('0x32')]=_['intersection'](_0x10cea2[_0xd3ee('0x34')],_0x10cea2[_0xd3ee('0x30')]);_0x418f93[_0xd3ee('0x35')]=_[_0xd3ee('0x33')](_0x10cea2['model'],qs[_0xd3ee('0x36')](_0x44450f['query'][_0xd3ee('0x36')]));_0x418f93[_0xd3ee('0x35')]=_0x418f93[_0xd3ee('0x35')][_0xd3ee('0x37')]?_0x418f93[_0xd3ee('0x35')]:_0x10cea2[_0xd3ee('0x34')];_0x418f93[_0xd3ee('0x51')]=qs['sort'](_0x44450f[_0xd3ee('0x30')]['sort']);_0x418f93['where']=qs[_0xd3ee('0x32')](_[_0xd3ee('0x3c')](_0x44450f[_0xd3ee('0x30')],_0x10cea2['filters']));if(_0x44450f[_0xd3ee('0x30')][_0xd3ee('0x3d')]){_0x418f93[_0xd3ee('0x3b')]=_['merge'](_0x418f93[_0xd3ee('0x3b')],{'$or':_[_0xd3ee('0x2b')](_0x418f93['attributes'],function(_0x1cc1dd){var _0x42ed92={};_0x42ed92[_0x1cc1dd]={'$like':'%'+_0x44450f[_0xd3ee('0x30')][_0xd3ee('0x3d')]+'%'};return _0x42ed92;})});}_0x418f93=_[_0xd3ee('0x3e')]({},_0x418f93,_0x44450f['options']);return _0x309c22[_0xd3ee('0x50')](_0x418f93);}})['then'](function(_0x50d7dc){if(_0x50d7dc){_0x5d6ac0=_0x50d7dc[_0xd3ee('0x37')];if(!_0x44450f[_0xd3ee('0x30')]['hasOwnProperty']('nolimit')){_0x418f93[_0xd3ee('0x1e')]=qs[_0xd3ee('0x1e')](_0x44450f['query'][_0xd3ee('0x1e')]);_0x418f93[_0xd3ee('0x1f')]=qs['offset'](_0x44450f[_0xd3ee('0x30')]['offset']);}return _0x309c22[_0xd3ee('0x50')](_0x418f93);}})[_0xd3ee('0x24')](function(_0x448173){if(_0x448173){return _0x448173?{'count':_0x5d6ac0,'rows':_0x448173}:null;}})[_0xd3ee('0x24')](respondWithResult(_0x301ac1,null))[_0xd3ee('0x45')](handleError(_0x301ac1,null));};exports['addActions']=function(_0x3bf032,_0x20555e,_0xafd733){return db['Action'][_0xd3ee('0x49')]({'where':{'id':_0x3bf032['params']['id']}})[_0xd3ee('0x24')](handleEntityNotFound(_0x20555e,null))[_0xd3ee('0x24')](function(_0x1e1b9a){if(_0x1e1b9a){return _0x1e1b9a[_0xd3ee('0x52')](_0x3bf032['body']['ids'],_[_0xd3ee('0x4f')](_0x3bf032[_0xd3ee('0x4b')],[_0xd3ee('0x4e'),'id'])||{});}})[_0xd3ee('0x24')](respondWithResult(_0x20555e,null))[_0xd3ee('0x45')](handleError(_0x20555e,null));};exports[_0xd3ee('0x53')]=function(_0x5a8e77,_0x3dd260,_0x645b51){var _0x5cb070={};var _0x31be2a={};var _0x51fedc;var _0x5a11f2;return db[_0xd3ee('0x41')]['findOne']({'where':{'id':_0x5a8e77[_0xd3ee('0x47')]['id']}})[_0xd3ee('0x24')](handleEntityNotFound(_0x3dd260,null))[_0xd3ee('0x24')](function(_0x337409){if(_0x337409){_0x51fedc=_0x337409;_0x31be2a[_0xd3ee('0x34')]=_[_0xd3ee('0x31')](db['Action'][_0xd3ee('0x2c')]);_0x31be2a[_0xd3ee('0x30')]=_[_0xd3ee('0x31')](_0x5a8e77['query']);_0x31be2a[_0xd3ee('0x32')]=_[_0xd3ee('0x33')](_0x31be2a[_0xd3ee('0x34')],_0x31be2a['query']);_0x5cb070['attributes']=_[_0xd3ee('0x33')](_0x31be2a[_0xd3ee('0x34')],qs[_0xd3ee('0x36')](_0x5a8e77['query']['fields']));_0x5cb070['attributes']=_0x5cb070[_0xd3ee('0x35')][_0xd3ee('0x37')]?_0x5cb070[_0xd3ee('0x35')]:_0x31be2a[_0xd3ee('0x34')];_0x5cb070[_0xd3ee('0x51')]=qs['sort'](_0x5a8e77[_0xd3ee('0x30')]['sort']);_0x5cb070['where']=qs['filters'](_[_0xd3ee('0x3c')](_0x5a8e77['query'],_0x31be2a[_0xd3ee('0x32')]));if(_0x5a8e77[_0xd3ee('0x30')][_0xd3ee('0x3d')]){_0x5cb070['where']=_[_0xd3ee('0x3e')](_0x5cb070[_0xd3ee('0x3b')],{'$or':_[_0xd3ee('0x2b')](_0x5cb070[_0xd3ee('0x35')],function(_0x29bba1){var _0x3f04b8={};_0x3f04b8[_0x29bba1]={'$like':'%'+_0x5a8e77[_0xd3ee('0x30')][_0xd3ee('0x3d')]+'%'};return _0x3f04b8;})});}_0x5cb070=_[_0xd3ee('0x3e')]({},_0x5cb070,_0x5a8e77['options']);return _0x51fedc[_0xd3ee('0x53')](_0x5cb070);}})[_0xd3ee('0x24')](function(_0x5692ac){if(_0x5692ac){_0x5a11f2=_0x5692ac['length'];if(!_0x5a8e77['query'][_0xd3ee('0x38')](_0xd3ee('0x39'))){_0x5cb070[_0xd3ee('0x1e')]=qs['limit'](_0x5a8e77[_0xd3ee('0x30')][_0xd3ee('0x1e')]);_0x5cb070[_0xd3ee('0x1f')]=qs[_0xd3ee('0x1f')](_0x5a8e77['query'][_0xd3ee('0x1f')]);}return _0x51fedc['getActions'](_0x5cb070);}})['then'](function(_0x17dc05){if(_0x17dc05){return _0x17dc05?{'count':_0x5a11f2,'rows':_0x17dc05}:null;}})[_0xd3ee('0x24')](respondWithResult(_0x3dd260,null))['catch'](handleError(_0x3dd260,null));};