Built motion from commit cf5ff673.|2.5.41
[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 _0xbac1=['status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','error','name','send','Automation','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','map','type','VIRTUAL','merge','options','includeAll','include','findAll','show','params','rawAttributes','find','catch','create','body','Condition','addConditions','ids','omit','getConditions','findOne','filter','addActions','Action','getActions','order','pick','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x2e801a,_0xf45ebe){var _0x44b1be=function(_0x78c305){while(--_0x78c305){_0x2e801a['push'](_0x2e801a['shift']());}};_0x44b1be(++_0xf45ebe);}(_0xbac1,0x1e4));var _0x1bac=function(_0x2d9e97,_0x1b0171){_0x2d9e97=_0x2d9e97-0x0;var _0x3b8e72=_0xbac1[_0x2d9e97];return _0x3b8e72;};'use strict';var emlformat=require(_0x1bac('0x0'));var rimraf=require(_0x1bac('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1bac('0x2'));var rp=require(_0x1bac('0x3'));var moment=require('moment');var BPromise=require(_0x1bac('0x4'));var Mustache=require(_0x1bac('0x5'));var util=require(_0x1bac('0x6'));var path=require(_0x1bac('0x7'));var sox=require(_0x1bac('0x8'));var csv=require(_0x1bac('0x9'));var ejs=require(_0x1bac('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1bac('0xb'));var squel=require(_0x1bac('0xc'));var crypto=require(_0x1bac('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1bac('0xe'));var Papa=require(_0x1bac('0xf'));var Redis=require(_0x1bac('0x10'));var authService=require(_0x1bac('0x11'));var qs=require(_0x1bac('0x12'));var as=require(_0x1bac('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1bac('0x14'));var utils=require(_0x1bac('0x15'));var config=require(_0x1bac('0x16'));var licenseUtil=require(_0x1bac('0x17'));var db=require(_0x1bac('0x18'))['db'];function respondWithStatusCode(_0x1afc71,_0x3f0a7f){_0x3f0a7f=_0x3f0a7f||0xcc;return function(_0x5550a4){if(_0x5550a4){return _0x1afc71[_0x1bac('0x19')](_0x3f0a7f);}return _0x1afc71[_0x1bac('0x1a')](_0x3f0a7f)[_0x1bac('0x1b')]();};}function respondWithResult(_0x23492b,_0xb15d5d){_0xb15d5d=_0xb15d5d||0xc8;return function(_0xffe288){if(_0xffe288){return _0x23492b[_0x1bac('0x1a')](_0xb15d5d)[_0x1bac('0x1c')](_0xffe288);}};}function respondWithFilteredResult(_0x1d40d7,_0x57f207){return function(_0xac2c18){if(_0xac2c18){var _0x8ad77b=typeof _0x57f207['offset']==='undefined'&&typeof _0x57f207['limit']===_0x1bac('0x1d');var _0x5577b3=_0xac2c18[_0x1bac('0x1e')];var _0x15cc66=_0x8ad77b?0x0:_0x57f207['offset'];var _0x3137b5=_0x8ad77b?_0xac2c18['count']:_0x57f207[_0x1bac('0x1f')]+_0x57f207[_0x1bac('0x20')];var _0x99fe1c;if(_0x3137b5>=_0x5577b3){_0x3137b5=_0x5577b3;_0x99fe1c=0xc8;}else{_0x99fe1c=0xce;}_0x1d40d7[_0x1bac('0x1a')](_0x99fe1c);return _0x1d40d7['set'](_0x1bac('0x21'),_0x15cc66+'-'+_0x3137b5+'/'+_0x5577b3)[_0x1bac('0x1c')](_0xac2c18);}return null;};}function patchUpdates(_0x394e29){return function(_0x225702){try{jsonpatch[_0x1bac('0x22')](_0x225702,_0x394e29,!![]);}catch(_0x4a0101){return BPromise[_0x1bac('0x23')](_0x4a0101);}return _0x225702[_0x1bac('0x24')]();};}function saveUpdates(_0x28dada,_0x315326){return function(_0x58d162){if(_0x58d162){return _0x58d162[_0x1bac('0x25')](_0x28dada)[_0x1bac('0x26')](function(_0x509364){return _0x509364;});}return null;};}function removeEntity(_0x207c8a,_0x2a7bfd){return function(_0x2f64e0){if(_0x2f64e0){return _0x2f64e0[_0x1bac('0x27')]()[_0x1bac('0x26')](function(){_0x207c8a['status'](0xcc)[_0x1bac('0x1b')]();});}};}function handleEntityNotFound(_0x3b5ea5,_0x4e3f46){return function(_0x2bd105){if(!_0x2bd105){_0x3b5ea5[_0x1bac('0x19')](0x194);}return _0x2bd105;};}function handleError(_0x5fbdf7,_0x835302){_0x835302=_0x835302||0x1f4;return function(_0x2719a1){logger[_0x1bac('0x28')](_0x2719a1['stack']);if(_0x2719a1[_0x1bac('0x29')]){delete _0x2719a1[_0x1bac('0x29')];}_0x5fbdf7[_0x1bac('0x1a')](_0x835302)[_0x1bac('0x2a')](_0x2719a1);};}exports['index']=function(_0x322dfb,_0x4a8c59){var _0x2ae880={},_0x398eab={},_0x4f14df={'count':0x0,'rows':[]};var _0x6d7a69=_['map'](db[_0x1bac('0x2b')]['rawAttributes'],function(_0x4fbd25){return{'name':_0x4fbd25[_0x1bac('0x2c')],'type':_0x4fbd25['type'][_0x1bac('0x2d')]};});_0x398eab[_0x1bac('0x2e')]=_['map'](_0x6d7a69,_0x1bac('0x29'));_0x398eab[_0x1bac('0x2f')]=_[_0x1bac('0x30')](_0x322dfb['query']);_0x398eab[_0x1bac('0x31')]=_[_0x1bac('0x32')](_0x398eab[_0x1bac('0x2e')],_0x398eab[_0x1bac('0x2f')]);_0x2ae880['attributes']=_['intersection'](_0x398eab[_0x1bac('0x2e')],qs[_0x1bac('0x33')](_0x322dfb[_0x1bac('0x2f')][_0x1bac('0x33')]));_0x2ae880[_0x1bac('0x34')]=_0x2ae880[_0x1bac('0x34')][_0x1bac('0x35')]?_0x2ae880[_0x1bac('0x34')]:_0x398eab[_0x1bac('0x2e')];if(!_0x322dfb[_0x1bac('0x2f')][_0x1bac('0x36')](_0x1bac('0x37'))){_0x2ae880[_0x1bac('0x20')]=qs['limit'](_0x322dfb[_0x1bac('0x2f')]['limit']);_0x2ae880[_0x1bac('0x1f')]=qs['offset'](_0x322dfb[_0x1bac('0x2f')][_0x1bac('0x1f')]);}_0x2ae880['order']=qs[_0x1bac('0x38')](_0x322dfb['query'][_0x1bac('0x38')]);_0x2ae880['where']=qs[_0x1bac('0x31')](_['pick'](_0x322dfb[_0x1bac('0x2f')],_0x398eab[_0x1bac('0x31')]),_0x6d7a69);if(_0x322dfb[_0x1bac('0x2f')]['filter']){_0x2ae880[_0x1bac('0x39')]=_['merge'](_0x2ae880[_0x1bac('0x39')],{'$or':_[_0x1bac('0x3a')](_0x6d7a69,function(_0x48c5bc){if(_0x48c5bc[_0x1bac('0x3b')]!==_0x1bac('0x3c')){var _0x197809={};_0x197809[_0x48c5bc[_0x1bac('0x29')]]={'$like':'%'+_0x322dfb[_0x1bac('0x2f')]['filter']+'%'};return _0x197809;}})});}_0x2ae880=_[_0x1bac('0x3d')]({},_0x2ae880,_0x322dfb[_0x1bac('0x3e')]);var _0x4028e8={'where':_0x2ae880[_0x1bac('0x39')]};return db['Automation'][_0x1bac('0x1e')](_0x4028e8)[_0x1bac('0x26')](function(_0x5ccd11){_0x4f14df[_0x1bac('0x1e')]=_0x5ccd11;if(_0x322dfb['query'][_0x1bac('0x3f')]){_0x2ae880[_0x1bac('0x40')]=[{'all':!![]}];}return db[_0x1bac('0x2b')][_0x1bac('0x41')](_0x2ae880);})['then'](function(_0x148908){_0x4f14df['rows']=_0x148908;return _0x4f14df;})[_0x1bac('0x26')](respondWithFilteredResult(_0x4a8c59,_0x2ae880))['catch'](handleError(_0x4a8c59,null));};exports[_0x1bac('0x42')]=function(_0x4c9117,_0x5a716f){var _0x15c6af={'raw':![],'where':{'id':_0x4c9117[_0x1bac('0x43')]['id']}},_0x3fb5ec={};_0x3fb5ec[_0x1bac('0x2e')]=_['keys'](db[_0x1bac('0x2b')][_0x1bac('0x44')]);_0x3fb5ec[_0x1bac('0x2f')]=_[_0x1bac('0x30')](_0x4c9117[_0x1bac('0x2f')]);_0x3fb5ec[_0x1bac('0x31')]=_[_0x1bac('0x32')](_0x3fb5ec[_0x1bac('0x2e')],_0x3fb5ec[_0x1bac('0x2f')]);_0x15c6af[_0x1bac('0x34')]=_['intersection'](_0x3fb5ec[_0x1bac('0x2e')],qs[_0x1bac('0x33')](_0x4c9117[_0x1bac('0x2f')]['fields']));_0x15c6af['attributes']=_0x15c6af[_0x1bac('0x34')]['length']?_0x15c6af['attributes']:_0x3fb5ec['model'];if(_0x4c9117[_0x1bac('0x2f')][_0x1bac('0x3f')]){_0x15c6af[_0x1bac('0x40')]=[{'all':!![]}];}_0x15c6af=_['merge']({},_0x15c6af,_0x4c9117[_0x1bac('0x3e')]);return db[_0x1bac('0x2b')][_0x1bac('0x45')](_0x15c6af)[_0x1bac('0x26')](handleEntityNotFound(_0x5a716f,null))[_0x1bac('0x26')](respondWithResult(_0x5a716f,null))[_0x1bac('0x46')](handleError(_0x5a716f,null));};exports[_0x1bac('0x47')]=function(_0x2609fe,_0x391e6b){return db[_0x1bac('0x2b')][_0x1bac('0x47')](_0x2609fe[_0x1bac('0x48')],{})[_0x1bac('0x26')](respondWithResult(_0x391e6b,0xc9))['catch'](handleError(_0x391e6b,null));};exports[_0x1bac('0x25')]=function(_0x579463,_0x5448dd){if(_0x579463[_0x1bac('0x48')]['id']){delete _0x579463['body']['id'];}return db['Automation'][_0x1bac('0x45')]({'where':{'id':_0x579463[_0x1bac('0x43')]['id']}})[_0x1bac('0x26')](handleEntityNotFound(_0x5448dd,null))[_0x1bac('0x26')](saveUpdates(_0x579463[_0x1bac('0x48')],null))['then'](respondWithResult(_0x5448dd,null))['catch'](handleError(_0x5448dd,null));};exports['destroy']=function(_0x25d4a1,_0xcc3dbf){return db[_0x1bac('0x2b')][_0x1bac('0x45')]({'where':{'id':_0x25d4a1[_0x1bac('0x43')]['id']}})[_0x1bac('0x26')](handleEntityNotFound(_0xcc3dbf,null))[_0x1bac('0x26')](removeEntity(_0xcc3dbf,null))[_0x1bac('0x46')](handleError(_0xcc3dbf,null));};exports['addConditions']=function(_0x4311f5,_0x1320ea,_0xccb299){return db[_0x1bac('0x49')]['find']({'where':{'id':_0x4311f5[_0x1bac('0x43')]['id']}})[_0x1bac('0x26')](handleEntityNotFound(_0x1320ea,null))[_0x1bac('0x26')](function(_0x26c5f6){if(_0x26c5f6){return _0x26c5f6[_0x1bac('0x4a')](_0x4311f5[_0x1bac('0x48')][_0x1bac('0x4b')],_[_0x1bac('0x4c')](_0x4311f5[_0x1bac('0x48')],[_0x1bac('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x1320ea,null))[_0x1bac('0x46')](handleError(_0x1320ea,null));};exports[_0x1bac('0x4d')]=function(_0x29e413,_0x2585df,_0x45f0a4){var _0x31083c={};var _0x3fb84d={};var _0x59e31f;var _0x4ba6ea;return db[_0x1bac('0x2b')][_0x1bac('0x4e')]({'where':{'id':_0x29e413[_0x1bac('0x43')]['id']}})['then'](handleEntityNotFound(_0x2585df,null))[_0x1bac('0x26')](function(_0x56716c){if(_0x56716c){_0x59e31f=_0x56716c;_0x3fb84d[_0x1bac('0x2e')]=_['keys'](db[_0x1bac('0x49')][_0x1bac('0x44')]);_0x3fb84d[_0x1bac('0x2f')]=_['keys'](_0x29e413[_0x1bac('0x2f')]);_0x3fb84d[_0x1bac('0x31')]=_[_0x1bac('0x32')](_0x3fb84d[_0x1bac('0x2e')],_0x3fb84d[_0x1bac('0x2f')]);_0x31083c[_0x1bac('0x34')]=_['intersection'](_0x3fb84d[_0x1bac('0x2e')],qs['fields'](_0x29e413[_0x1bac('0x2f')][_0x1bac('0x33')]));_0x31083c[_0x1bac('0x34')]=_0x31083c[_0x1bac('0x34')]['length']?_0x31083c['attributes']:_0x3fb84d[_0x1bac('0x2e')];_0x31083c['order']=qs[_0x1bac('0x38')](_0x29e413['query']['sort']);_0x31083c[_0x1bac('0x39')]=qs[_0x1bac('0x31')](_['pick'](_0x29e413[_0x1bac('0x2f')],_0x3fb84d['filters']));if(_0x29e413[_0x1bac('0x2f')][_0x1bac('0x4f')]){_0x31083c[_0x1bac('0x39')]=_[_0x1bac('0x3d')](_0x31083c[_0x1bac('0x39')],{'$or':_['map'](_0x31083c[_0x1bac('0x34')],function(_0x20776c){var _0x188d80={};_0x188d80[_0x20776c]={'$like':'%'+_0x29e413['query'][_0x1bac('0x4f')]+'%'};return _0x188d80;})});}_0x31083c=_[_0x1bac('0x3d')]({},_0x31083c,_0x29e413['options']);return _0x59e31f[_0x1bac('0x4d')](_0x31083c);}})[_0x1bac('0x26')](function(_0x392728){if(_0x392728){_0x4ba6ea=_0x392728[_0x1bac('0x35')];if(!_0x29e413[_0x1bac('0x2f')][_0x1bac('0x36')](_0x1bac('0x37'))){_0x31083c[_0x1bac('0x20')]=qs[_0x1bac('0x20')](_0x29e413['query'][_0x1bac('0x20')]);_0x31083c[_0x1bac('0x1f')]=qs[_0x1bac('0x1f')](_0x29e413['query'][_0x1bac('0x1f')]);}return _0x59e31f[_0x1bac('0x4d')](_0x31083c);}})[_0x1bac('0x26')](function(_0x44789e){if(_0x44789e){return _0x44789e?{'count':_0x4ba6ea,'rows':_0x44789e}:null;}})[_0x1bac('0x26')](respondWithResult(_0x2585df,null))['catch'](handleError(_0x2585df,null));};exports[_0x1bac('0x50')]=function(_0x24b1c3,_0x437088,_0x2d7f9d){return db[_0x1bac('0x51')]['find']({'where':{'id':_0x24b1c3[_0x1bac('0x43')]['id']}})[_0x1bac('0x26')](handleEntityNotFound(_0x437088,null))['then'](function(_0x2695dc){if(_0x2695dc){return _0x2695dc[_0x1bac('0x50')](_0x24b1c3['body'][_0x1bac('0x4b')],_['omit'](_0x24b1c3[_0x1bac('0x48')],[_0x1bac('0x4b'),'id'])||{});}})[_0x1bac('0x26')](respondWithResult(_0x437088,null))[_0x1bac('0x46')](handleError(_0x437088,null));};exports[_0x1bac('0x52')]=function(_0x160fea,_0x42fbd6,_0x5acc6c){var _0x467f15={};var _0x2d1e52={};var _0x370e27;var _0x2068a1;return db['Automation'][_0x1bac('0x4e')]({'where':{'id':_0x160fea[_0x1bac('0x43')]['id']}})['then'](handleEntityNotFound(_0x42fbd6,null))[_0x1bac('0x26')](function(_0x3b88da){if(_0x3b88da){_0x370e27=_0x3b88da;_0x2d1e52[_0x1bac('0x2e')]=_[_0x1bac('0x30')](db[_0x1bac('0x51')][_0x1bac('0x44')]);_0x2d1e52[_0x1bac('0x2f')]=_[_0x1bac('0x30')](_0x160fea[_0x1bac('0x2f')]);_0x2d1e52[_0x1bac('0x31')]=_['intersection'](_0x2d1e52[_0x1bac('0x2e')],_0x2d1e52[_0x1bac('0x2f')]);_0x467f15['attributes']=_[_0x1bac('0x32')](_0x2d1e52[_0x1bac('0x2e')],qs[_0x1bac('0x33')](_0x160fea[_0x1bac('0x2f')][_0x1bac('0x33')]));_0x467f15[_0x1bac('0x34')]=_0x467f15['attributes'][_0x1bac('0x35')]?_0x467f15[_0x1bac('0x34')]:_0x2d1e52[_0x1bac('0x2e')];_0x467f15[_0x1bac('0x53')]=qs[_0x1bac('0x38')](_0x160fea[_0x1bac('0x2f')]['sort']);_0x467f15[_0x1bac('0x39')]=qs['filters'](_[_0x1bac('0x54')](_0x160fea[_0x1bac('0x2f')],_0x2d1e52[_0x1bac('0x31')]));if(_0x160fea[_0x1bac('0x2f')]['filter']){_0x467f15[_0x1bac('0x39')]=_[_0x1bac('0x3d')](_0x467f15[_0x1bac('0x39')],{'$or':_[_0x1bac('0x3a')](_0x467f15[_0x1bac('0x34')],function(_0x23734b){var _0x569a47={};_0x569a47[_0x23734b]={'$like':'%'+_0x160fea[_0x1bac('0x2f')][_0x1bac('0x4f')]+'%'};return _0x569a47;})});}_0x467f15=_[_0x1bac('0x3d')]({},_0x467f15,_0x160fea[_0x1bac('0x3e')]);return _0x370e27[_0x1bac('0x52')](_0x467f15);}})[_0x1bac('0x26')](function(_0x4bec14){if(_0x4bec14){_0x2068a1=_0x4bec14[_0x1bac('0x35')];if(!_0x160fea[_0x1bac('0x2f')][_0x1bac('0x36')]('nolimit')){_0x467f15['limit']=qs[_0x1bac('0x20')](_0x160fea[_0x1bac('0x2f')][_0x1bac('0x20')]);_0x467f15[_0x1bac('0x1f')]=qs[_0x1bac('0x1f')](_0x160fea[_0x1bac('0x2f')][_0x1bac('0x1f')]);}return _0x370e27[_0x1bac('0x52')](_0x467f15);}})[_0x1bac('0x26')](function(_0x2f7374){if(_0x2f7374){return _0x2f7374?{'count':_0x2068a1,'rows':_0x2f7374}:null;}})['then'](respondWithResult(_0x42fbd6,null))[_0x1bac('0x46')](handleError(_0x42fbd6,null));};