Built motion from commit 43538d75.|2.5.35
[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 _0x1bc2=['../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','update','destroy','then','sendStatus','error','stack','name','index','map','Automation','rawAttributes','fieldName','key','query','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','intersection','options','create','body','find','addConditions','ids','getConditions','findOne','Condition','addActions','Action','omit','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x32a767,_0x4e3e76){var _0x2b4e6d=function(_0x5e0702){while(--_0x5e0702){_0x32a767['push'](_0x32a767['shift']());}};_0x2b4e6d(++_0x4e3e76);}(_0x1bc2,0x199));var _0x21bc=function(_0x5c1098,_0x2400a5){_0x5c1098=_0x5c1098-0x0;var _0x2d9090=_0x1bc2[_0x5c1098];return _0x2d9090;};'use strict';var emlformat=require(_0x21bc('0x0'));var rimraf=require(_0x21bc('0x1'));var zipdir=require(_0x21bc('0x2'));var jsonpatch=require(_0x21bc('0x3'));var rp=require(_0x21bc('0x4'));var moment=require(_0x21bc('0x5'));var BPromise=require(_0x21bc('0x6'));var Mustache=require(_0x21bc('0x7'));var util=require(_0x21bc('0x8'));var path=require(_0x21bc('0x9'));var sox=require(_0x21bc('0xa'));var csv=require(_0x21bc('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x21bc('0xc'));var _=require(_0x21bc('0xd'));var squel=require('squel');var crypto=require(_0x21bc('0xe'));var jsforce=require(_0x21bc('0xf'));var deskjs=require(_0x21bc('0x10'));var toCsv=require(_0x21bc('0xb'));var querystring=require('querystring');var Papa=require(_0x21bc('0x11'));var Redis=require(_0x21bc('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x21bc('0x13'));var as=require(_0x21bc('0x14'));var hardwareService=require(_0x21bc('0x15'));var logger=require(_0x21bc('0x16'))('api');var utils=require(_0x21bc('0x17'));var config=require(_0x21bc('0x18'));var licenseUtil=require(_0x21bc('0x19'));var db=require(_0x21bc('0x1a'))['db'];function respondWithStatusCode(_0xe31938,_0x261702){_0x261702=_0x261702||0xcc;return function(_0x416359){if(_0x416359){return _0xe31938['sendStatus'](_0x261702);}return _0xe31938[_0x21bc('0x1b')](_0x261702)[_0x21bc('0x1c')]();};}function respondWithResult(_0x304f02,_0x424c6b){_0x424c6b=_0x424c6b||0xc8;return function(_0x32a761){if(_0x32a761){return _0x304f02[_0x21bc('0x1b')](_0x424c6b)[_0x21bc('0x1d')](_0x32a761);}};}function respondWithFilteredResult(_0x3fe7f3,_0xa0d2ca){return function(_0x322979){if(_0x322979){var _0x3785e4=typeof _0xa0d2ca[_0x21bc('0x1e')]===_0x21bc('0x1f')&&typeof _0xa0d2ca[_0x21bc('0x20')]==='undefined';var _0x562a5e=_0x322979[_0x21bc('0x21')];var _0x183e65=_0x3785e4?0x0:_0xa0d2ca['offset'];var _0x19181b=_0x3785e4?_0x322979[_0x21bc('0x21')]:_0xa0d2ca[_0x21bc('0x1e')]+_0xa0d2ca[_0x21bc('0x20')];var _0x4020c2;if(_0x19181b>=_0x562a5e){_0x19181b=_0x562a5e;_0x4020c2=0xc8;}else{_0x4020c2=0xce;}_0x3fe7f3[_0x21bc('0x1b')](_0x4020c2);return _0x3fe7f3[_0x21bc('0x22')]('Content-Range',_0x183e65+'-'+_0x19181b+'/'+_0x562a5e)[_0x21bc('0x1d')](_0x322979);}return null;};}function patchUpdates(_0x18149f){return function(_0x722551){try{jsonpatch[_0x21bc('0x23')](_0x722551,_0x18149f,!![]);}catch(_0x5df380){return BPromise[_0x21bc('0x24')](_0x5df380);}return _0x722551['save']();};}function saveUpdates(_0x2a6af5,_0x51d74c){return function(_0x529c33){if(_0x529c33){return _0x529c33[_0x21bc('0x25')](_0x2a6af5)['then'](function(_0x3f05dd){return _0x3f05dd;});}return null;};}function removeEntity(_0x4b7c1b,_0x406fe6){return function(_0x5ed2da){if(_0x5ed2da){return _0x5ed2da[_0x21bc('0x26')]()[_0x21bc('0x27')](function(){_0x4b7c1b[_0x21bc('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x7b7f97,_0x424ab2){return function(_0x396708){if(!_0x396708){_0x7b7f97[_0x21bc('0x28')](0x194);}return _0x396708;};}function handleError(_0xce95cd,_0x13fe7b){_0x13fe7b=_0x13fe7b||0x1f4;return function(_0x1fc0eb){logger[_0x21bc('0x29')](_0x1fc0eb[_0x21bc('0x2a')]);if(_0x1fc0eb[_0x21bc('0x2b')]){delete _0x1fc0eb[_0x21bc('0x2b')];}_0xce95cd[_0x21bc('0x1b')](_0x13fe7b)['send'](_0x1fc0eb);};}exports[_0x21bc('0x2c')]=function(_0x455f1a,_0x1249b2){var _0x57f937={},_0x34e1c3={},_0x270090={'count':0x0,'rows':[]};var _0x2e2a51=_[_0x21bc('0x2d')](db[_0x21bc('0x2e')][_0x21bc('0x2f')],function(_0x3db661){return{'name':_0x3db661[_0x21bc('0x30')],'type':_0x3db661['type'][_0x21bc('0x31')]};});_0x34e1c3['model']=_[_0x21bc('0x2d')](_0x2e2a51,'name');_0x34e1c3[_0x21bc('0x32')]=_['keys'](_0x455f1a[_0x21bc('0x32')]);_0x34e1c3[_0x21bc('0x33')]=_['intersection'](_0x34e1c3[_0x21bc('0x34')],_0x34e1c3[_0x21bc('0x32')]);_0x57f937[_0x21bc('0x35')]=_['intersection'](_0x34e1c3[_0x21bc('0x34')],qs[_0x21bc('0x36')](_0x455f1a[_0x21bc('0x32')][_0x21bc('0x36')]));_0x57f937[_0x21bc('0x35')]=_0x57f937['attributes'][_0x21bc('0x37')]?_0x57f937[_0x21bc('0x35')]:_0x34e1c3[_0x21bc('0x34')];if(!_0x455f1a['query'][_0x21bc('0x38')](_0x21bc('0x39'))){_0x57f937[_0x21bc('0x20')]=qs['limit'](_0x455f1a[_0x21bc('0x32')][_0x21bc('0x20')]);_0x57f937[_0x21bc('0x1e')]=qs[_0x21bc('0x1e')](_0x455f1a[_0x21bc('0x32')][_0x21bc('0x1e')]);}_0x57f937[_0x21bc('0x3a')]=qs[_0x21bc('0x3b')](_0x455f1a[_0x21bc('0x32')][_0x21bc('0x3b')]);_0x57f937[_0x21bc('0x3c')]=qs[_0x21bc('0x33')](_[_0x21bc('0x3d')](_0x455f1a['query'],_0x34e1c3[_0x21bc('0x33')]),_0x2e2a51);if(_0x455f1a[_0x21bc('0x32')][_0x21bc('0x3e')]){_0x57f937[_0x21bc('0x3c')]=_[_0x21bc('0x3f')](_0x57f937[_0x21bc('0x3c')],{'$or':_[_0x21bc('0x2d')](_0x2e2a51,function(_0x2ec525){if(_0x2ec525['type']!==_0x21bc('0x40')){var _0x397955={};_0x397955[_0x2ec525[_0x21bc('0x2b')]]={'$like':'%'+_0x455f1a['query'][_0x21bc('0x3e')]+'%'};return _0x397955;}})});}_0x57f937=_[_0x21bc('0x3f')]({},_0x57f937,_0x455f1a['options']);var _0x3d3928={'where':_0x57f937[_0x21bc('0x3c')]};return db[_0x21bc('0x2e')][_0x21bc('0x21')](_0x3d3928)[_0x21bc('0x27')](function(_0x247f65){_0x270090[_0x21bc('0x21')]=_0x247f65;if(_0x455f1a[_0x21bc('0x32')][_0x21bc('0x41')]){_0x57f937[_0x21bc('0x42')]=[{'all':!![]}];}return db[_0x21bc('0x2e')][_0x21bc('0x43')](_0x57f937);})[_0x21bc('0x27')](function(_0x14adc9){_0x270090[_0x21bc('0x44')]=_0x14adc9;return _0x270090;})[_0x21bc('0x27')](respondWithFilteredResult(_0x1249b2,_0x57f937))[_0x21bc('0x45')](handleError(_0x1249b2,null));};exports[_0x21bc('0x46')]=function(_0x21e73a,_0x3d86a2){var _0x4b42cf={'raw':![],'where':{'id':_0x21e73a[_0x21bc('0x47')]['id']}},_0x45490e={};_0x45490e[_0x21bc('0x34')]=_[_0x21bc('0x48')](db[_0x21bc('0x2e')][_0x21bc('0x2f')]);_0x45490e[_0x21bc('0x32')]=_[_0x21bc('0x48')](_0x21e73a['query']);_0x45490e['filters']=_[_0x21bc('0x49')](_0x45490e[_0x21bc('0x34')],_0x45490e[_0x21bc('0x32')]);_0x4b42cf[_0x21bc('0x35')]=_[_0x21bc('0x49')](_0x45490e['model'],qs[_0x21bc('0x36')](_0x21e73a[_0x21bc('0x32')][_0x21bc('0x36')]));_0x4b42cf['attributes']=_0x4b42cf[_0x21bc('0x35')]['length']?_0x4b42cf[_0x21bc('0x35')]:_0x45490e['model'];if(_0x21e73a[_0x21bc('0x32')][_0x21bc('0x41')]){_0x4b42cf['include']=[{'all':!![]}];}_0x4b42cf=_['merge']({},_0x4b42cf,_0x21e73a[_0x21bc('0x4a')]);return db[_0x21bc('0x2e')]['find'](_0x4b42cf)[_0x21bc('0x27')](handleEntityNotFound(_0x3d86a2,null))[_0x21bc('0x27')](respondWithResult(_0x3d86a2,null))['catch'](handleError(_0x3d86a2,null));};exports[_0x21bc('0x4b')]=function(_0x252e0e,_0x528fcb){return db[_0x21bc('0x2e')][_0x21bc('0x4b')](_0x252e0e['body'],{})[_0x21bc('0x27')](respondWithResult(_0x528fcb,0xc9))[_0x21bc('0x45')](handleError(_0x528fcb,null));};exports[_0x21bc('0x25')]=function(_0x5d41b4,_0x565ed9){if(_0x5d41b4[_0x21bc('0x4c')]['id']){delete _0x5d41b4[_0x21bc('0x4c')]['id'];}return db['Automation'][_0x21bc('0x4d')]({'where':{'id':_0x5d41b4[_0x21bc('0x47')]['id']}})[_0x21bc('0x27')](handleEntityNotFound(_0x565ed9,null))['then'](saveUpdates(_0x5d41b4[_0x21bc('0x4c')],null))[_0x21bc('0x27')](respondWithResult(_0x565ed9,null))['catch'](handleError(_0x565ed9,null));};exports[_0x21bc('0x26')]=function(_0x18abdd,_0x319595){return db['Automation'][_0x21bc('0x4d')]({'where':{'id':_0x18abdd[_0x21bc('0x47')]['id']}})['then'](handleEntityNotFound(_0x319595,null))['then'](removeEntity(_0x319595,null))[_0x21bc('0x45')](handleError(_0x319595,null));};exports[_0x21bc('0x4e')]=function(_0x37bcd4,_0x499879,_0x528402){return db['Condition']['find']({'where':{'id':_0x37bcd4[_0x21bc('0x47')]['id']}})[_0x21bc('0x27')](handleEntityNotFound(_0x499879,null))[_0x21bc('0x27')](function(_0xf6afea){if(_0xf6afea){return _0xf6afea[_0x21bc('0x4e')](_0x37bcd4['body'][_0x21bc('0x4f')],_['omit'](_0x37bcd4[_0x21bc('0x4c')],['ids','id'])||{});}})[_0x21bc('0x27')](respondWithResult(_0x499879,null))['catch'](handleError(_0x499879,null));};exports[_0x21bc('0x50')]=function(_0xd949ef,_0x3f27e1,_0x23494e){var _0x3577c2={};var _0x59c639={};var _0x2267d8;var _0x33054d;return db['Automation'][_0x21bc('0x51')]({'where':{'id':_0xd949ef[_0x21bc('0x47')]['id']}})[_0x21bc('0x27')](handleEntityNotFound(_0x3f27e1,null))[_0x21bc('0x27')](function(_0x3da7a8){if(_0x3da7a8){_0x2267d8=_0x3da7a8;_0x59c639[_0x21bc('0x34')]=_[_0x21bc('0x48')](db[_0x21bc('0x52')][_0x21bc('0x2f')]);_0x59c639[_0x21bc('0x32')]=_[_0x21bc('0x48')](_0xd949ef[_0x21bc('0x32')]);_0x59c639[_0x21bc('0x33')]=_['intersection'](_0x59c639[_0x21bc('0x34')],_0x59c639[_0x21bc('0x32')]);_0x3577c2[_0x21bc('0x35')]=_[_0x21bc('0x49')](_0x59c639[_0x21bc('0x34')],qs[_0x21bc('0x36')](_0xd949ef[_0x21bc('0x32')][_0x21bc('0x36')]));_0x3577c2[_0x21bc('0x35')]=_0x3577c2[_0x21bc('0x35')][_0x21bc('0x37')]?_0x3577c2[_0x21bc('0x35')]:_0x59c639[_0x21bc('0x34')];_0x3577c2[_0x21bc('0x3a')]=qs[_0x21bc('0x3b')](_0xd949ef[_0x21bc('0x32')][_0x21bc('0x3b')]);_0x3577c2[_0x21bc('0x3c')]=qs['filters'](_[_0x21bc('0x3d')](_0xd949ef[_0x21bc('0x32')],_0x59c639[_0x21bc('0x33')]));if(_0xd949ef[_0x21bc('0x32')][_0x21bc('0x3e')]){_0x3577c2[_0x21bc('0x3c')]=_[_0x21bc('0x3f')](_0x3577c2['where'],{'$or':_[_0x21bc('0x2d')](_0x3577c2[_0x21bc('0x35')],function(_0x464939){var _0x49a6ee={};_0x49a6ee[_0x464939]={'$like':'%'+_0xd949ef[_0x21bc('0x32')][_0x21bc('0x3e')]+'%'};return _0x49a6ee;})});}_0x3577c2=_[_0x21bc('0x3f')]({},_0x3577c2,_0xd949ef[_0x21bc('0x4a')]);return _0x2267d8[_0x21bc('0x50')](_0x3577c2);}})[_0x21bc('0x27')](function(_0x51f48a){if(_0x51f48a){_0x33054d=_0x51f48a[_0x21bc('0x37')];if(!_0xd949ef[_0x21bc('0x32')][_0x21bc('0x38')](_0x21bc('0x39'))){_0x3577c2[_0x21bc('0x20')]=qs[_0x21bc('0x20')](_0xd949ef[_0x21bc('0x32')][_0x21bc('0x20')]);_0x3577c2[_0x21bc('0x1e')]=qs[_0x21bc('0x1e')](_0xd949ef[_0x21bc('0x32')]['offset']);}return _0x2267d8[_0x21bc('0x50')](_0x3577c2);}})[_0x21bc('0x27')](function(_0x5139f4){if(_0x5139f4){return _0x5139f4?{'count':_0x33054d,'rows':_0x5139f4}:null;}})[_0x21bc('0x27')](respondWithResult(_0x3f27e1,null))[_0x21bc('0x45')](handleError(_0x3f27e1,null));};exports[_0x21bc('0x53')]=function(_0x1bbaff,_0x1a0435,_0x52bb08){return db[_0x21bc('0x54')][_0x21bc('0x4d')]({'where':{'id':_0x1bbaff[_0x21bc('0x47')]['id']}})['then'](handleEntityNotFound(_0x1a0435,null))[_0x21bc('0x27')](function(_0x5d5cd1){if(_0x5d5cd1){return _0x5d5cd1[_0x21bc('0x53')](_0x1bbaff[_0x21bc('0x4c')]['ids'],_[_0x21bc('0x55')](_0x1bbaff[_0x21bc('0x4c')],[_0x21bc('0x4f'),'id'])||{});}})[_0x21bc('0x27')](respondWithResult(_0x1a0435,null))[_0x21bc('0x45')](handleError(_0x1a0435,null));};exports[_0x21bc('0x56')]=function(_0x5231f4,_0x3a0538,_0x57a601){var _0x194c11={};var _0x46dcfc={};var _0x48119b;var _0xc44cbc;return db[_0x21bc('0x2e')]['findOne']({'where':{'id':_0x5231f4[_0x21bc('0x47')]['id']}})[_0x21bc('0x27')](handleEntityNotFound(_0x3a0538,null))['then'](function(_0x17461b){if(_0x17461b){_0x48119b=_0x17461b;_0x46dcfc['model']=_['keys'](db['Action'][_0x21bc('0x2f')]);_0x46dcfc[_0x21bc('0x32')]=_[_0x21bc('0x48')](_0x5231f4[_0x21bc('0x32')]);_0x46dcfc[_0x21bc('0x33')]=_[_0x21bc('0x49')](_0x46dcfc[_0x21bc('0x34')],_0x46dcfc[_0x21bc('0x32')]);_0x194c11[_0x21bc('0x35')]=_[_0x21bc('0x49')](_0x46dcfc[_0x21bc('0x34')],qs[_0x21bc('0x36')](_0x5231f4['query'][_0x21bc('0x36')]));_0x194c11[_0x21bc('0x35')]=_0x194c11[_0x21bc('0x35')][_0x21bc('0x37')]?_0x194c11[_0x21bc('0x35')]:_0x46dcfc[_0x21bc('0x34')];_0x194c11['order']=qs['sort'](_0x5231f4[_0x21bc('0x32')][_0x21bc('0x3b')]);_0x194c11[_0x21bc('0x3c')]=qs[_0x21bc('0x33')](_['pick'](_0x5231f4[_0x21bc('0x32')],_0x46dcfc[_0x21bc('0x33')]));if(_0x5231f4['query']['filter']){_0x194c11['where']=_['merge'](_0x194c11[_0x21bc('0x3c')],{'$or':_['map'](_0x194c11[_0x21bc('0x35')],function(_0x553c61){var _0x4ee199={};_0x4ee199[_0x553c61]={'$like':'%'+_0x5231f4[_0x21bc('0x32')][_0x21bc('0x3e')]+'%'};return _0x4ee199;})});}_0x194c11=_[_0x21bc('0x3f')]({},_0x194c11,_0x5231f4[_0x21bc('0x4a')]);return _0x48119b['getActions'](_0x194c11);}})['then'](function(_0xa18827){if(_0xa18827){_0xc44cbc=_0xa18827[_0x21bc('0x37')];if(!_0x5231f4['query']['hasOwnProperty'](_0x21bc('0x39'))){_0x194c11[_0x21bc('0x20')]=qs[_0x21bc('0x20')](_0x5231f4[_0x21bc('0x32')][_0x21bc('0x20')]);_0x194c11[_0x21bc('0x1e')]=qs[_0x21bc('0x1e')](_0x5231f4[_0x21bc('0x32')]['offset']);}return _0x48119b[_0x21bc('0x56')](_0x194c11);}})[_0x21bc('0x27')](function(_0x34b026){if(_0x34b026){return _0x34b026?{'count':_0xc44cbc,'rows':_0x34b026}:null;}})['then'](respondWithResult(_0x3a0538,null))[_0x21bc('0x45')](handleError(_0x3a0538,null));};