8e226970ece9125201edf751ed8c88a890d240fd
[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 _0xf694=['offset','undefined','count','limit','Content-Range','apply','reject','update','then','error','name','send','index','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Automation','includeAll','rows','catch','show','params','rawAttributes','include','find','create','body','addConditions','ids','omit','getConditions','Condition','addActions','getActions','findOne','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json'];(function(_0x5c3ccd,_0x4b45af){var _0x1733dd=function(_0x107fc2){while(--_0x107fc2){_0x5c3ccd['push'](_0x5c3ccd['shift']());}};_0x1733dd(++_0x4b45af);}(_0xf694,0x8c));var _0x4f69=function(_0x2b7329,_0x218d8e){_0x2b7329=_0x2b7329-0x0;var _0x4b779b=_0xf694[_0x2b7329];return _0x4b779b;};'use strict';var emlformat=require(_0x4f69('0x0'));var rimraf=require(_0x4f69('0x1'));var zipdir=require(_0x4f69('0x2'));var jsonpatch=require(_0x4f69('0x3'));var rp=require(_0x4f69('0x4'));var moment=require(_0x4f69('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4f69('0x6'));var path=require('path');var sox=require(_0x4f69('0x7'));var csv=require('to-csv');var ejs=require(_0x4f69('0x8'));var fs=require('fs');var fs_extra=require(_0x4f69('0x9'));var _=require(_0x4f69('0xa'));var squel=require(_0x4f69('0xb'));var crypto=require(_0x4f69('0xc'));var jsforce=require(_0x4f69('0xd'));var deskjs=require(_0x4f69('0xe'));var toCsv=require(_0x4f69('0xf'));var querystring=require(_0x4f69('0x10'));var Papa=require(_0x4f69('0x11'));var Redis=require(_0x4f69('0x12'));var authService=require(_0x4f69('0x13'));var qs=require(_0x4f69('0x14'));var as=require(_0x4f69('0x15'));var hardwareService=require(_0x4f69('0x16'));var logger=require(_0x4f69('0x17'))(_0x4f69('0x18'));var utils=require(_0x4f69('0x19'));var config=require(_0x4f69('0x1a'));var licenseUtil=require(_0x4f69('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x430017,_0x56fe7a){_0x56fe7a=_0x56fe7a||0xcc;return function(_0x33c262){if(_0x33c262){return _0x430017[_0x4f69('0x1c')](_0x56fe7a);}return _0x430017[_0x4f69('0x1d')](_0x56fe7a)[_0x4f69('0x1e')]();};}function respondWithResult(_0x10e247,_0x3fdbf9){_0x3fdbf9=_0x3fdbf9||0xc8;return function(_0x5b2b24){if(_0x5b2b24){return _0x10e247[_0x4f69('0x1d')](_0x3fdbf9)[_0x4f69('0x1f')](_0x5b2b24);}};}function respondWithFilteredResult(_0x2f87f2,_0x46f0ec){return function(_0x17047b){if(_0x17047b){var _0x936002=typeof _0x46f0ec[_0x4f69('0x20')]===_0x4f69('0x21')&&typeof _0x46f0ec['limit']===_0x4f69('0x21');var _0x4b6ebd=_0x17047b[_0x4f69('0x22')];var _0x25604d=_0x936002?0x0:_0x46f0ec[_0x4f69('0x20')];var _0x567bb2=_0x936002?_0x17047b[_0x4f69('0x22')]:_0x46f0ec[_0x4f69('0x20')]+_0x46f0ec[_0x4f69('0x23')];var _0x5eba52;if(_0x567bb2>=_0x4b6ebd){_0x567bb2=_0x4b6ebd;_0x5eba52=0xc8;}else{_0x5eba52=0xce;}_0x2f87f2[_0x4f69('0x1d')](_0x5eba52);return _0x2f87f2['set'](_0x4f69('0x24'),_0x25604d+'-'+_0x567bb2+'/'+_0x4b6ebd)[_0x4f69('0x1f')](_0x17047b);}return null;};}function patchUpdates(_0x148d2f){return function(_0x340cba){try{jsonpatch[_0x4f69('0x25')](_0x340cba,_0x148d2f,!![]);}catch(_0x753c7e){return BPromise[_0x4f69('0x26')](_0x753c7e);}return _0x340cba['save']();};}function saveUpdates(_0x5dcd96,_0x169bc4){return function(_0x5d4bd8){if(_0x5d4bd8){return _0x5d4bd8[_0x4f69('0x27')](_0x5dcd96)[_0x4f69('0x28')](function(_0x77acda){return _0x77acda;});}return null;};}function removeEntity(_0x56c094,_0x2f5e90){return function(_0x47d463){if(_0x47d463){return _0x47d463['destroy']()[_0x4f69('0x28')](function(){_0x56c094[_0x4f69('0x1d')](0xcc)[_0x4f69('0x1e')]();});}};}function handleEntityNotFound(_0x586348,_0xc3a6a2){return function(_0x5b3b7b){if(!_0x5b3b7b){_0x586348[_0x4f69('0x1c')](0x194);}return _0x5b3b7b;};}function handleError(_0x16b9ed,_0x2e7e70){_0x2e7e70=_0x2e7e70||0x1f4;return function(_0x311740){logger[_0x4f69('0x29')](_0x311740['stack']);if(_0x311740[_0x4f69('0x2a')]){delete _0x311740[_0x4f69('0x2a')];}_0x16b9ed[_0x4f69('0x1d')](_0x2e7e70)[_0x4f69('0x2b')](_0x311740);};}exports[_0x4f69('0x2c')]=function(_0x1503a4,_0x2d1136){var _0x55d933={},_0x477e26={},_0x457995={'count':0x0,'rows':[]};var _0x2455bf=_[_0x4f69('0x2d')](db['Automation']['rawAttributes'],function(_0x56e4e0){return{'name':_0x56e4e0[_0x4f69('0x2e')],'type':_0x56e4e0[_0x4f69('0x2f')][_0x4f69('0x30')]};});_0x477e26[_0x4f69('0x31')]=_['map'](_0x2455bf,_0x4f69('0x2a'));_0x477e26['query']=_[_0x4f69('0x32')](_0x1503a4[_0x4f69('0x33')]);_0x477e26[_0x4f69('0x34')]=_[_0x4f69('0x35')](_0x477e26[_0x4f69('0x31')],_0x477e26['query']);_0x55d933[_0x4f69('0x36')]=_[_0x4f69('0x35')](_0x477e26[_0x4f69('0x31')],qs[_0x4f69('0x37')](_0x1503a4[_0x4f69('0x33')][_0x4f69('0x37')]));_0x55d933['attributes']=_0x55d933[_0x4f69('0x36')][_0x4f69('0x38')]?_0x55d933['attributes']:_0x477e26['model'];if(!_0x1503a4['query'][_0x4f69('0x39')](_0x4f69('0x3a'))){_0x55d933[_0x4f69('0x23')]=qs['limit'](_0x1503a4['query'][_0x4f69('0x23')]);_0x55d933['offset']=qs[_0x4f69('0x20')](_0x1503a4[_0x4f69('0x33')][_0x4f69('0x20')]);}_0x55d933[_0x4f69('0x3b')]=qs[_0x4f69('0x3c')](_0x1503a4[_0x4f69('0x33')][_0x4f69('0x3c')]);_0x55d933[_0x4f69('0x3d')]=qs[_0x4f69('0x34')](_[_0x4f69('0x3e')](_0x1503a4['query'],_0x477e26[_0x4f69('0x34')]),_0x2455bf);if(_0x1503a4[_0x4f69('0x33')][_0x4f69('0x3f')]){_0x55d933[_0x4f69('0x3d')]=_[_0x4f69('0x40')](_0x55d933[_0x4f69('0x3d')],{'$or':_[_0x4f69('0x2d')](_0x2455bf,function(_0x3b5a9a){if(_0x3b5a9a[_0x4f69('0x2f')]!==_0x4f69('0x41')){var _0x418114={};_0x418114[_0x3b5a9a['name']]={'$like':'%'+_0x1503a4[_0x4f69('0x33')]['filter']+'%'};return _0x418114;}})});}_0x55d933=_[_0x4f69('0x40')]({},_0x55d933,_0x1503a4[_0x4f69('0x42')]);var _0xf41d5b={'where':_0x55d933[_0x4f69('0x3d')]};return db[_0x4f69('0x43')][_0x4f69('0x22')](_0xf41d5b)[_0x4f69('0x28')](function(_0x100786){_0x457995['count']=_0x100786;if(_0x1503a4[_0x4f69('0x33')][_0x4f69('0x44')]){_0x55d933['include']=[{'all':!![]}];}return db['Automation']['findAll'](_0x55d933);})['then'](function(_0xb046f9){_0x457995[_0x4f69('0x45')]=_0xb046f9;return _0x457995;})[_0x4f69('0x28')](respondWithFilteredResult(_0x2d1136,_0x55d933))[_0x4f69('0x46')](handleError(_0x2d1136,null));};exports[_0x4f69('0x47')]=function(_0x561c43,_0xbcca24){var _0x1d5690={'raw':![],'where':{'id':_0x561c43[_0x4f69('0x48')]['id']}},_0x336915={};_0x336915['model']=_[_0x4f69('0x32')](db[_0x4f69('0x43')][_0x4f69('0x49')]);_0x336915[_0x4f69('0x33')]=_[_0x4f69('0x32')](_0x561c43[_0x4f69('0x33')]);_0x336915[_0x4f69('0x34')]=_['intersection'](_0x336915[_0x4f69('0x31')],_0x336915[_0x4f69('0x33')]);_0x1d5690[_0x4f69('0x36')]=_['intersection'](_0x336915[_0x4f69('0x31')],qs[_0x4f69('0x37')](_0x561c43[_0x4f69('0x33')][_0x4f69('0x37')]));_0x1d5690[_0x4f69('0x36')]=_0x1d5690[_0x4f69('0x36')][_0x4f69('0x38')]?_0x1d5690[_0x4f69('0x36')]:_0x336915[_0x4f69('0x31')];if(_0x561c43['query'][_0x4f69('0x44')]){_0x1d5690[_0x4f69('0x4a')]=[{'all':!![]}];}_0x1d5690=_[_0x4f69('0x40')]({},_0x1d5690,_0x561c43[_0x4f69('0x42')]);return db[_0x4f69('0x43')][_0x4f69('0x4b')](_0x1d5690)[_0x4f69('0x28')](handleEntityNotFound(_0xbcca24,null))[_0x4f69('0x28')](respondWithResult(_0xbcca24,null))[_0x4f69('0x46')](handleError(_0xbcca24,null));};exports[_0x4f69('0x4c')]=function(_0x425832,_0x3aa3e8){return db['Automation'][_0x4f69('0x4c')](_0x425832[_0x4f69('0x4d')],{})[_0x4f69('0x28')](respondWithResult(_0x3aa3e8,0xc9))[_0x4f69('0x46')](handleError(_0x3aa3e8,null));};exports[_0x4f69('0x27')]=function(_0x3a6ed5,_0x2dcec7){if(_0x3a6ed5[_0x4f69('0x4d')]['id']){delete _0x3a6ed5['body']['id'];}return db[_0x4f69('0x43')][_0x4f69('0x4b')]({'where':{'id':_0x3a6ed5[_0x4f69('0x48')]['id']}})[_0x4f69('0x28')](handleEntityNotFound(_0x2dcec7,null))[_0x4f69('0x28')](saveUpdates(_0x3a6ed5['body'],null))['then'](respondWithResult(_0x2dcec7,null))[_0x4f69('0x46')](handleError(_0x2dcec7,null));};exports['destroy']=function(_0x5e867b,_0x8a14f6){return db['Automation'][_0x4f69('0x4b')]({'where':{'id':_0x5e867b[_0x4f69('0x48')]['id']}})['then'](handleEntityNotFound(_0x8a14f6,null))['then'](removeEntity(_0x8a14f6,null))[_0x4f69('0x46')](handleError(_0x8a14f6,null));};exports[_0x4f69('0x4e')]=function(_0x561830,_0x3adbf6,_0x3348e3){return db['Condition'][_0x4f69('0x4b')]({'where':{'id':_0x561830[_0x4f69('0x48')]['id']}})[_0x4f69('0x28')](handleEntityNotFound(_0x3adbf6,null))[_0x4f69('0x28')](function(_0x2cabfa){if(_0x2cabfa){return _0x2cabfa[_0x4f69('0x4e')](_0x561830[_0x4f69('0x4d')][_0x4f69('0x4f')],_[_0x4f69('0x50')](_0x561830[_0x4f69('0x4d')],['ids','id'])||{});}})[_0x4f69('0x28')](respondWithResult(_0x3adbf6,null))[_0x4f69('0x46')](handleError(_0x3adbf6,null));};exports[_0x4f69('0x51')]=function(_0x31d399,_0x531bc6,_0x48c632){var _0x8e8ff4={};var _0x1ec4d0={};var _0x1dfafd;var _0x4c2f76;return db[_0x4f69('0x43')]['findOne']({'where':{'id':_0x31d399[_0x4f69('0x48')]['id']}})[_0x4f69('0x28')](handleEntityNotFound(_0x531bc6,null))[_0x4f69('0x28')](function(_0x19cd4b){if(_0x19cd4b){_0x1dfafd=_0x19cd4b;_0x1ec4d0[_0x4f69('0x31')]=_[_0x4f69('0x32')](db[_0x4f69('0x52')][_0x4f69('0x49')]);_0x1ec4d0['query']=_['keys'](_0x31d399[_0x4f69('0x33')]);_0x1ec4d0[_0x4f69('0x34')]=_[_0x4f69('0x35')](_0x1ec4d0['model'],_0x1ec4d0['query']);_0x8e8ff4[_0x4f69('0x36')]=_['intersection'](_0x1ec4d0['model'],qs[_0x4f69('0x37')](_0x31d399['query'][_0x4f69('0x37')]));_0x8e8ff4[_0x4f69('0x36')]=_0x8e8ff4[_0x4f69('0x36')][_0x4f69('0x38')]?_0x8e8ff4['attributes']:_0x1ec4d0[_0x4f69('0x31')];_0x8e8ff4[_0x4f69('0x3b')]=qs['sort'](_0x31d399[_0x4f69('0x33')][_0x4f69('0x3c')]);_0x8e8ff4['where']=qs[_0x4f69('0x34')](_['pick'](_0x31d399[_0x4f69('0x33')],_0x1ec4d0[_0x4f69('0x34')]));if(_0x31d399[_0x4f69('0x33')][_0x4f69('0x3f')]){_0x8e8ff4['where']=_[_0x4f69('0x40')](_0x8e8ff4[_0x4f69('0x3d')],{'$or':_['map'](_0x8e8ff4[_0x4f69('0x36')],function(_0x25739e){var _0x1ba611={};_0x1ba611[_0x25739e]={'$like':'%'+_0x31d399[_0x4f69('0x33')][_0x4f69('0x3f')]+'%'};return _0x1ba611;})});}_0x8e8ff4=_[_0x4f69('0x40')]({},_0x8e8ff4,_0x31d399[_0x4f69('0x42')]);return _0x1dfafd[_0x4f69('0x51')](_0x8e8ff4);}})['then'](function(_0x5c1b8e){if(_0x5c1b8e){_0x4c2f76=_0x5c1b8e[_0x4f69('0x38')];if(!_0x31d399[_0x4f69('0x33')][_0x4f69('0x39')](_0x4f69('0x3a'))){_0x8e8ff4[_0x4f69('0x23')]=qs[_0x4f69('0x23')](_0x31d399[_0x4f69('0x33')][_0x4f69('0x23')]);_0x8e8ff4['offset']=qs[_0x4f69('0x20')](_0x31d399[_0x4f69('0x33')][_0x4f69('0x20')]);}return _0x1dfafd[_0x4f69('0x51')](_0x8e8ff4);}})['then'](function(_0x3e7984){if(_0x3e7984){return _0x3e7984?{'count':_0x4c2f76,'rows':_0x3e7984}:null;}})[_0x4f69('0x28')](respondWithResult(_0x531bc6,null))[_0x4f69('0x46')](handleError(_0x531bc6,null));};exports[_0x4f69('0x53')]=function(_0x4236db,_0x4509d7,_0xb867b5){return db['Action'][_0x4f69('0x4b')]({'where':{'id':_0x4236db[_0x4f69('0x48')]['id']}})[_0x4f69('0x28')](handleEntityNotFound(_0x4509d7,null))[_0x4f69('0x28')](function(_0x3e698f){if(_0x3e698f){return _0x3e698f['addActions'](_0x4236db[_0x4f69('0x4d')]['ids'],_[_0x4f69('0x50')](_0x4236db[_0x4f69('0x4d')],['ids','id'])||{});}})[_0x4f69('0x28')](respondWithResult(_0x4509d7,null))[_0x4f69('0x46')](handleError(_0x4509d7,null));};exports[_0x4f69('0x54')]=function(_0x210461,_0x17fc3e,_0x5e5358){var _0x2e995d={};var _0x345524={};var _0x110a22;var _0x130a31;return db[_0x4f69('0x43')][_0x4f69('0x55')]({'where':{'id':_0x210461[_0x4f69('0x48')]['id']}})['then'](handleEntityNotFound(_0x17fc3e,null))['then'](function(_0x36ac98){if(_0x36ac98){_0x110a22=_0x36ac98;_0x345524[_0x4f69('0x31')]=_[_0x4f69('0x32')](db['Action'][_0x4f69('0x49')]);_0x345524[_0x4f69('0x33')]=_[_0x4f69('0x32')](_0x210461[_0x4f69('0x33')]);_0x345524[_0x4f69('0x34')]=_[_0x4f69('0x35')](_0x345524[_0x4f69('0x31')],_0x345524[_0x4f69('0x33')]);_0x2e995d[_0x4f69('0x36')]=_[_0x4f69('0x35')](_0x345524['model'],qs[_0x4f69('0x37')](_0x210461[_0x4f69('0x33')][_0x4f69('0x37')]));_0x2e995d[_0x4f69('0x36')]=_0x2e995d[_0x4f69('0x36')][_0x4f69('0x38')]?_0x2e995d[_0x4f69('0x36')]:_0x345524['model'];_0x2e995d[_0x4f69('0x3b')]=qs['sort'](_0x210461['query']['sort']);_0x2e995d['where']=qs['filters'](_[_0x4f69('0x3e')](_0x210461[_0x4f69('0x33')],_0x345524['filters']));if(_0x210461[_0x4f69('0x33')][_0x4f69('0x3f')]){_0x2e995d['where']=_[_0x4f69('0x40')](_0x2e995d[_0x4f69('0x3d')],{'$or':_[_0x4f69('0x2d')](_0x2e995d['attributes'],function(_0xf73ee7){var _0x1f3786={};_0x1f3786[_0xf73ee7]={'$like':'%'+_0x210461[_0x4f69('0x33')][_0x4f69('0x3f')]+'%'};return _0x1f3786;})});}_0x2e995d=_[_0x4f69('0x40')]({},_0x2e995d,_0x210461[_0x4f69('0x42')]);return _0x110a22[_0x4f69('0x54')](_0x2e995d);}})[_0x4f69('0x28')](function(_0x76bb29){if(_0x76bb29){_0x130a31=_0x76bb29['length'];if(!_0x210461[_0x4f69('0x33')][_0x4f69('0x39')](_0x4f69('0x3a'))){_0x2e995d[_0x4f69('0x23')]=qs[_0x4f69('0x23')](_0x210461[_0x4f69('0x33')]['limit']);_0x2e995d['offset']=qs['offset'](_0x210461['query'][_0x4f69('0x20')]);}return _0x110a22[_0x4f69('0x54')](_0x2e995d);}})[_0x4f69('0x28')](function(_0x24d845){if(_0x24d845){return _0x24d845?{'count':_0x130a31,'rows':_0x24d845}:null;}})['then'](respondWithResult(_0x17fc3e,null))[_0x4f69('0x46')](handleError(_0x17fc3e,null));};