Built motion from commit f623a78c.|2.6.31
[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 _0x6042=['json','offset','count','limit','apply','reject','save','update','then','destroy','name','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','catch','show','params','filters','options','find','create','body','addConditions','Condition','ids','omit','getConditions','hasOwnProperty','addActions','Action','getActions','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end'];(function(_0x176807,_0x137e37){var _0x26cd57=function(_0x4d3f71){while(--_0x4d3f71){_0x176807['push'](_0x176807['shift']());}};_0x26cd57(++_0x137e37);}(_0x6042,0x179));var _0x2604=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x6042[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x2604('0x0'));var rimraf=require(_0x2604('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2604('0x2'));var rp=require(_0x2604('0x3'));var moment=require(_0x2604('0x4'));var BPromise=require(_0x2604('0x5'));var Mustache=require('mustache');var util=require(_0x2604('0x6'));var path=require('path');var sox=require(_0x2604('0x7'));var csv=require(_0x2604('0x8'));var ejs=require(_0x2604('0x9'));var fs=require('fs');var fs_extra=require(_0x2604('0xa'));var _=require(_0x2604('0xb'));var squel=require(_0x2604('0xc'));var crypto=require(_0x2604('0xd'));var jsforce=require(_0x2604('0xe'));var deskjs=require(_0x2604('0xf'));var toCsv=require(_0x2604('0x8'));var querystring=require(_0x2604('0x10'));var Papa=require('papaparse');var Redis=require(_0x2604('0x11'));var authService=require(_0x2604('0x12'));var qs=require(_0x2604('0x13'));var as=require(_0x2604('0x14'));var hardwareService=require(_0x2604('0x15'));var logger=require(_0x2604('0x16'))('api');var utils=require(_0x2604('0x17'));var config=require(_0x2604('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f6044,_0x9096df){_0x9096df=_0x9096df||0xcc;return function(_0x14db54){if(_0x14db54){return _0x2f6044[_0x2604('0x19')](_0x9096df);}return _0x2f6044[_0x2604('0x1a')](_0x9096df)[_0x2604('0x1b')]();};}function respondWithResult(_0x33e7fa,_0x429139){_0x429139=_0x429139||0xc8;return function(_0x59caea){if(_0x59caea){return _0x33e7fa[_0x2604('0x1a')](_0x429139)[_0x2604('0x1c')](_0x59caea);}};}function respondWithFilteredResult(_0x47b008,_0x28c755){return function(_0x3c04a2){if(_0x3c04a2){var _0x37264a=typeof _0x28c755[_0x2604('0x1d')]==='undefined'&&typeof _0x28c755['limit']==='undefined';var _0x2a438a=_0x3c04a2[_0x2604('0x1e')];var _0x2fbe92=_0x37264a?0x0:_0x28c755[_0x2604('0x1d')];var _0x56a0b7=_0x37264a?_0x3c04a2[_0x2604('0x1e')]:_0x28c755[_0x2604('0x1d')]+_0x28c755[_0x2604('0x1f')];var _0x583ba1;if(_0x56a0b7>=_0x2a438a){_0x56a0b7=_0x2a438a;_0x583ba1=0xc8;}else{_0x583ba1=0xce;}_0x47b008[_0x2604('0x1a')](_0x583ba1);return _0x47b008['set']('Content-Range',_0x2fbe92+'-'+_0x56a0b7+'/'+_0x2a438a)['json'](_0x3c04a2);}return null;};}function patchUpdates(_0x34e011){return function(_0x4966d2){try{jsonpatch[_0x2604('0x20')](_0x4966d2,_0x34e011,!![]);}catch(_0x510cea){return BPromise[_0x2604('0x21')](_0x510cea);}return _0x4966d2[_0x2604('0x22')]();};}function saveUpdates(_0x55a447,_0x2e35cd){return function(_0x2066f6){if(_0x2066f6){return _0x2066f6[_0x2604('0x23')](_0x55a447)[_0x2604('0x24')](function(_0x363514){return _0x363514;});}return null;};}function removeEntity(_0x3ac8da,_0x1ba0a3){return function(_0x136c5){if(_0x136c5){return _0x136c5[_0x2604('0x25')]()[_0x2604('0x24')](function(){_0x3ac8da[_0x2604('0x1a')](0xcc)[_0x2604('0x1b')]();});}};}function handleEntityNotFound(_0xf45045,_0x418d6f){return function(_0x539437){if(!_0x539437){_0xf45045[_0x2604('0x19')](0x194);}return _0x539437;};}function handleError(_0x3aabd1,_0x3404f8){_0x3404f8=_0x3404f8||0x1f4;return function(_0x31d9ba){logger['error'](_0x31d9ba['stack']);if(_0x31d9ba[_0x2604('0x26')]){delete _0x31d9ba[_0x2604('0x26')];}_0x3aabd1[_0x2604('0x1a')](_0x3404f8)['send'](_0x31d9ba);};}exports[_0x2604('0x27')]=function(_0x21c5dd,_0x4fcf5c){var _0x19ddd3={},_0x367900={},_0x5224dc={'count':0x0,'rows':[]};var _0x345938=_[_0x2604('0x28')](db[_0x2604('0x29')][_0x2604('0x2a')],function(_0x37d9bd){return{'name':_0x37d9bd[_0x2604('0x2b')],'type':_0x37d9bd[_0x2604('0x2c')]['key']};});_0x367900[_0x2604('0x2d')]=_[_0x2604('0x28')](_0x345938,_0x2604('0x26'));_0x367900[_0x2604('0x2e')]=_[_0x2604('0x2f')](_0x21c5dd['query']);_0x367900['filters']=_[_0x2604('0x30')](_0x367900[_0x2604('0x2d')],_0x367900[_0x2604('0x2e')]);_0x19ddd3['attributes']=_[_0x2604('0x30')](_0x367900[_0x2604('0x2d')],qs['fields'](_0x21c5dd['query'][_0x2604('0x31')]));_0x19ddd3['attributes']=_0x19ddd3[_0x2604('0x32')][_0x2604('0x33')]?_0x19ddd3[_0x2604('0x32')]:_0x367900['model'];if(!_0x21c5dd['query']['hasOwnProperty'](_0x2604('0x34'))){_0x19ddd3['limit']=qs[_0x2604('0x1f')](_0x21c5dd[_0x2604('0x2e')][_0x2604('0x1f')]);_0x19ddd3['offset']=qs[_0x2604('0x1d')](_0x21c5dd['query'][_0x2604('0x1d')]);}_0x19ddd3[_0x2604('0x35')]=qs[_0x2604('0x36')](_0x21c5dd[_0x2604('0x2e')][_0x2604('0x36')]);_0x19ddd3[_0x2604('0x37')]=qs['filters'](_[_0x2604('0x38')](_0x21c5dd[_0x2604('0x2e')],_0x367900['filters']),_0x345938);if(_0x21c5dd[_0x2604('0x2e')][_0x2604('0x39')]){_0x19ddd3[_0x2604('0x37')]=_[_0x2604('0x3a')](_0x19ddd3[_0x2604('0x37')],{'$or':_[_0x2604('0x28')](_0x345938,function(_0x20565b){if(_0x20565b[_0x2604('0x2c')]!==_0x2604('0x3b')){var _0x3b658e={};_0x3b658e[_0x20565b['name']]={'$like':'%'+_0x21c5dd[_0x2604('0x2e')]['filter']+'%'};return _0x3b658e;}})});}_0x19ddd3=_[_0x2604('0x3a')]({},_0x19ddd3,_0x21c5dd['options']);var _0xf45a13={'where':_0x19ddd3[_0x2604('0x37')]};return db[_0x2604('0x29')][_0x2604('0x1e')](_0xf45a13)['then'](function(_0x518ef6){_0x5224dc[_0x2604('0x1e')]=_0x518ef6;if(_0x21c5dd['query'][_0x2604('0x3c')]){_0x19ddd3[_0x2604('0x3d')]=[{'all':!![]}];}return db[_0x2604('0x29')]['findAll'](_0x19ddd3);})['then'](function(_0x17c623){_0x5224dc[_0x2604('0x3e')]=_0x17c623;return _0x5224dc;})['then'](respondWithFilteredResult(_0x4fcf5c,_0x19ddd3))[_0x2604('0x3f')](handleError(_0x4fcf5c,null));};exports[_0x2604('0x40')]=function(_0x596d98,_0x5b70e6){var _0x30547a={'raw':![],'where':{'id':_0x596d98[_0x2604('0x41')]['id']}},_0x4a8c41={};_0x4a8c41['model']=_[_0x2604('0x2f')](db[_0x2604('0x29')][_0x2604('0x2a')]);_0x4a8c41['query']=_[_0x2604('0x2f')](_0x596d98[_0x2604('0x2e')]);_0x4a8c41[_0x2604('0x42')]=_[_0x2604('0x30')](_0x4a8c41[_0x2604('0x2d')],_0x4a8c41['query']);_0x30547a[_0x2604('0x32')]=_['intersection'](_0x4a8c41['model'],qs[_0x2604('0x31')](_0x596d98[_0x2604('0x2e')]['fields']));_0x30547a['attributes']=_0x30547a[_0x2604('0x32')][_0x2604('0x33')]?_0x30547a[_0x2604('0x32')]:_0x4a8c41['model'];if(_0x596d98[_0x2604('0x2e')][_0x2604('0x3c')]){_0x30547a[_0x2604('0x3d')]=[{'all':!![]}];}_0x30547a=_[_0x2604('0x3a')]({},_0x30547a,_0x596d98[_0x2604('0x43')]);return db[_0x2604('0x29')][_0x2604('0x44')](_0x30547a)[_0x2604('0x24')](handleEntityNotFound(_0x5b70e6,null))[_0x2604('0x24')](respondWithResult(_0x5b70e6,null))[_0x2604('0x3f')](handleError(_0x5b70e6,null));};exports[_0x2604('0x45')]=function(_0x2eebfd,_0x26feda){return db[_0x2604('0x29')]['create'](_0x2eebfd['body'],{})[_0x2604('0x24')](respondWithResult(_0x26feda,0xc9))['catch'](handleError(_0x26feda,null));};exports[_0x2604('0x23')]=function(_0x1f5879,_0x84c774){if(_0x1f5879[_0x2604('0x46')]['id']){delete _0x1f5879[_0x2604('0x46')]['id'];}return db[_0x2604('0x29')][_0x2604('0x44')]({'where':{'id':_0x1f5879[_0x2604('0x41')]['id']}})[_0x2604('0x24')](handleEntityNotFound(_0x84c774,null))[_0x2604('0x24')](saveUpdates(_0x1f5879['body'],null))[_0x2604('0x24')](respondWithResult(_0x84c774,null))['catch'](handleError(_0x84c774,null));};exports[_0x2604('0x25')]=function(_0xcc2506,_0x1048d1){return db['Automation'][_0x2604('0x44')]({'where':{'id':_0xcc2506[_0x2604('0x41')]['id']}})[_0x2604('0x24')](handleEntityNotFound(_0x1048d1,null))[_0x2604('0x24')](removeEntity(_0x1048d1,null))[_0x2604('0x3f')](handleError(_0x1048d1,null));};exports[_0x2604('0x47')]=function(_0x3f2e39,_0x3409b3,_0x352c0d){return db[_0x2604('0x48')][_0x2604('0x44')]({'where':{'id':_0x3f2e39[_0x2604('0x41')]['id']}})['then'](handleEntityNotFound(_0x3409b3,null))['then'](function(_0x5c7698){if(_0x5c7698){return _0x5c7698['addConditions'](_0x3f2e39['body'][_0x2604('0x49')],_[_0x2604('0x4a')](_0x3f2e39[_0x2604('0x46')],[_0x2604('0x49'),'id'])||{});}})[_0x2604('0x24')](respondWithResult(_0x3409b3,null))[_0x2604('0x3f')](handleError(_0x3409b3,null));};exports[_0x2604('0x4b')]=function(_0x3447e5,_0x1211b8,_0x1d10c7){var _0x17dc27={};var _0xfdb9c8={};var _0x95c953;var _0x38036a;return db[_0x2604('0x29')]['findOne']({'where':{'id':_0x3447e5[_0x2604('0x41')]['id']}})['then'](handleEntityNotFound(_0x1211b8,null))['then'](function(_0x520976){if(_0x520976){_0x95c953=_0x520976;_0xfdb9c8['model']=_['keys'](db[_0x2604('0x48')][_0x2604('0x2a')]);_0xfdb9c8['query']=_[_0x2604('0x2f')](_0x3447e5['query']);_0xfdb9c8[_0x2604('0x42')]=_[_0x2604('0x30')](_0xfdb9c8[_0x2604('0x2d')],_0xfdb9c8[_0x2604('0x2e')]);_0x17dc27['attributes']=_[_0x2604('0x30')](_0xfdb9c8[_0x2604('0x2d')],qs[_0x2604('0x31')](_0x3447e5[_0x2604('0x2e')][_0x2604('0x31')]));_0x17dc27[_0x2604('0x32')]=_0x17dc27[_0x2604('0x32')][_0x2604('0x33')]?_0x17dc27[_0x2604('0x32')]:_0xfdb9c8[_0x2604('0x2d')];_0x17dc27[_0x2604('0x35')]=qs[_0x2604('0x36')](_0x3447e5[_0x2604('0x2e')][_0x2604('0x36')]);_0x17dc27[_0x2604('0x37')]=qs[_0x2604('0x42')](_['pick'](_0x3447e5[_0x2604('0x2e')],_0xfdb9c8[_0x2604('0x42')]));if(_0x3447e5[_0x2604('0x2e')][_0x2604('0x39')]){_0x17dc27[_0x2604('0x37')]=_[_0x2604('0x3a')](_0x17dc27[_0x2604('0x37')],{'$or':_['map'](_0x17dc27[_0x2604('0x32')],function(_0x332762){var _0x3406e1={};_0x3406e1[_0x332762]={'$like':'%'+_0x3447e5['query'][_0x2604('0x39')]+'%'};return _0x3406e1;})});}_0x17dc27=_['merge']({},_0x17dc27,_0x3447e5[_0x2604('0x43')]);return _0x95c953[_0x2604('0x4b')](_0x17dc27);}})['then'](function(_0xbf25c8){if(_0xbf25c8){_0x38036a=_0xbf25c8[_0x2604('0x33')];if(!_0x3447e5['query'][_0x2604('0x4c')](_0x2604('0x34'))){_0x17dc27[_0x2604('0x1f')]=qs['limit'](_0x3447e5[_0x2604('0x2e')][_0x2604('0x1f')]);_0x17dc27[_0x2604('0x1d')]=qs[_0x2604('0x1d')](_0x3447e5['query'][_0x2604('0x1d')]);}return _0x95c953['getConditions'](_0x17dc27);}})[_0x2604('0x24')](function(_0x1baa65){if(_0x1baa65){return _0x1baa65?{'count':_0x38036a,'rows':_0x1baa65}:null;}})[_0x2604('0x24')](respondWithResult(_0x1211b8,null))[_0x2604('0x3f')](handleError(_0x1211b8,null));};exports[_0x2604('0x4d')]=function(_0x2ed1f4,_0x44332c,_0x39dd24){return db[_0x2604('0x4e')][_0x2604('0x44')]({'where':{'id':_0x2ed1f4[_0x2604('0x41')]['id']}})[_0x2604('0x24')](handleEntityNotFound(_0x44332c,null))['then'](function(_0x4c44bc){if(_0x4c44bc){return _0x4c44bc['addActions'](_0x2ed1f4[_0x2604('0x46')][_0x2604('0x49')],_[_0x2604('0x4a')](_0x2ed1f4[_0x2604('0x46')],[_0x2604('0x49'),'id'])||{});}})[_0x2604('0x24')](respondWithResult(_0x44332c,null))[_0x2604('0x3f')](handleError(_0x44332c,null));};exports[_0x2604('0x4f')]=function(_0x353d82,_0x5453f1,_0x51ac82){var _0x52b060={};var _0x58b985={};var _0x14d064;var _0x5087fd;return db[_0x2604('0x29')][_0x2604('0x50')]({'where':{'id':_0x353d82[_0x2604('0x41')]['id']}})[_0x2604('0x24')](handleEntityNotFound(_0x5453f1,null))['then'](function(_0x4f3479){if(_0x4f3479){_0x14d064=_0x4f3479;_0x58b985[_0x2604('0x2d')]=_[_0x2604('0x2f')](db[_0x2604('0x4e')][_0x2604('0x2a')]);_0x58b985['query']=_[_0x2604('0x2f')](_0x353d82[_0x2604('0x2e')]);_0x58b985[_0x2604('0x42')]=_['intersection'](_0x58b985[_0x2604('0x2d')],_0x58b985['query']);_0x52b060[_0x2604('0x32')]=_[_0x2604('0x30')](_0x58b985[_0x2604('0x2d')],qs['fields'](_0x353d82[_0x2604('0x2e')][_0x2604('0x31')]));_0x52b060[_0x2604('0x32')]=_0x52b060[_0x2604('0x32')][_0x2604('0x33')]?_0x52b060[_0x2604('0x32')]:_0x58b985[_0x2604('0x2d')];_0x52b060['order']=qs[_0x2604('0x36')](_0x353d82[_0x2604('0x2e')]['sort']);_0x52b060[_0x2604('0x37')]=qs[_0x2604('0x42')](_['pick'](_0x353d82[_0x2604('0x2e')],_0x58b985[_0x2604('0x42')]));if(_0x353d82[_0x2604('0x2e')][_0x2604('0x39')]){_0x52b060[_0x2604('0x37')]=_[_0x2604('0x3a')](_0x52b060['where'],{'$or':_[_0x2604('0x28')](_0x52b060['attributes'],function(_0x29d273){var _0x5a9bbb={};_0x5a9bbb[_0x29d273]={'$like':'%'+_0x353d82[_0x2604('0x2e')]['filter']+'%'};return _0x5a9bbb;})});}_0x52b060=_[_0x2604('0x3a')]({},_0x52b060,_0x353d82['options']);return _0x14d064[_0x2604('0x4f')](_0x52b060);}})['then'](function(_0x504259){if(_0x504259){_0x5087fd=_0x504259[_0x2604('0x33')];if(!_0x353d82[_0x2604('0x2e')][_0x2604('0x4c')]('nolimit')){_0x52b060[_0x2604('0x1f')]=qs[_0x2604('0x1f')](_0x353d82[_0x2604('0x2e')][_0x2604('0x1f')]);_0x52b060[_0x2604('0x1d')]=qs[_0x2604('0x1d')](_0x353d82[_0x2604('0x2e')][_0x2604('0x1d')]);}return _0x14d064[_0x2604('0x4f')](_0x52b060);}})['then'](function(_0x3235bf){if(_0x3235bf){return _0x3235bf?{'count':_0x5087fd,'rows':_0x3235bf}:null;}})[_0x2604('0x24')](respondWithResult(_0x5453f1,null))[_0x2604('0x3f')](handleError(_0x5453f1,null));};