36114c4f4e31ab6fd4a78768f1e9d832a0f9a815
[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 _0x0625=['eml-format','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','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','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','map','Automation','rawAttributes','type','key','model','name','query','filters','intersection','fields','attributes','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','keys','length','find','create','body','addConditions','Condition','omit','ids','getConditions','hasOwnProperty','nolimit','addActions','getActions','Action'];(function(_0x5718e8,_0x4c6bc4){var _0x571a62=function(_0x267d1e){while(--_0x267d1e){_0x5718e8['push'](_0x5718e8['shift']());}};_0x571a62(++_0x4c6bc4);}(_0x0625,0x1a9));var _0x5062=function(_0x310dfa,_0x40b97e){_0x310dfa=_0x310dfa-0x0;var _0xf6a6da=_0x0625[_0x310dfa];return _0xf6a6da;};'use strict';var emlformat=require(_0x5062('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x5062('0x1'));var rp=require('request-promise');var moment=require(_0x5062('0x2'));var BPromise=require(_0x5062('0x3'));var Mustache=require(_0x5062('0x4'));var util=require(_0x5062('0x5'));var path=require(_0x5062('0x6'));var sox=require(_0x5062('0x7'));var csv=require(_0x5062('0x8'));var ejs=require(_0x5062('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5062('0xa'));var squel=require(_0x5062('0xb'));var crypto=require(_0x5062('0xc'));var jsforce=require(_0x5062('0xd'));var deskjs=require(_0x5062('0xe'));var toCsv=require('to-csv');var querystring=require(_0x5062('0xf'));var Papa=require('papaparse');var Redis=require(_0x5062('0x10'));var authService=require(_0x5062('0x11'));var qs=require(_0x5062('0x12'));var as=require(_0x5062('0x13'));var hardwareService=require(_0x5062('0x14'));var logger=require(_0x5062('0x15'))('api');var utils=require(_0x5062('0x16'));var config=require(_0x5062('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x5062('0x18'))['db'];function respondWithStatusCode(_0x2dbb6e,_0x4fb49a){_0x4fb49a=_0x4fb49a||0xcc;return function(_0x5c69ac){if(_0x5c69ac){return _0x2dbb6e[_0x5062('0x19')](_0x4fb49a);}return _0x2dbb6e[_0x5062('0x1a')](_0x4fb49a)[_0x5062('0x1b')]();};}function respondWithResult(_0x171199,_0x1833dc){_0x1833dc=_0x1833dc||0xc8;return function(_0x58e309){if(_0x58e309){return _0x171199[_0x5062('0x1a')](_0x1833dc)[_0x5062('0x1c')](_0x58e309);}};}function respondWithFilteredResult(_0x3a5d88,_0x69e0a0){return function(_0x3fafc3){if(_0x3fafc3){var _0x1d1fae=typeof _0x69e0a0['offset']===_0x5062('0x1d')&&typeof _0x69e0a0[_0x5062('0x1e')]===_0x5062('0x1d');var _0xd98c70=_0x3fafc3[_0x5062('0x1f')];var _0x181678=_0x1d1fae?0x0:_0x69e0a0[_0x5062('0x20')];var _0x2b493e=_0x1d1fae?_0x3fafc3[_0x5062('0x1f')]:_0x69e0a0['offset']+_0x69e0a0[_0x5062('0x1e')];var _0x2c6d5f;if(_0x2b493e>=_0xd98c70){_0x2b493e=_0xd98c70;_0x2c6d5f=0xc8;}else{_0x2c6d5f=0xce;}_0x3a5d88[_0x5062('0x1a')](_0x2c6d5f);return _0x3a5d88[_0x5062('0x21')](_0x5062('0x22'),_0x181678+'-'+_0x2b493e+'/'+_0xd98c70)[_0x5062('0x1c')](_0x3fafc3);}return null;};}function patchUpdates(_0x3e4298){return function(_0x3625a6){try{jsonpatch[_0x5062('0x23')](_0x3625a6,_0x3e4298,!![]);}catch(_0x52bf4b){return BPromise[_0x5062('0x24')](_0x52bf4b);}return _0x3625a6[_0x5062('0x25')]();};}function saveUpdates(_0x36f89d,_0x57af54){return function(_0x4bd44c){if(_0x4bd44c){return _0x4bd44c[_0x5062('0x26')](_0x36f89d)[_0x5062('0x27')](function(_0x389366){return _0x389366;});}return null;};}function removeEntity(_0x3ed457,_0x3c118f){return function(_0x291805){if(_0x291805){return _0x291805[_0x5062('0x28')]()[_0x5062('0x27')](function(){_0x3ed457[_0x5062('0x1a')](0xcc)[_0x5062('0x1b')]();});}};}function handleEntityNotFound(_0x452272,_0x32619b){return function(_0x4f01bf){if(!_0x4f01bf){_0x452272[_0x5062('0x19')](0x194);}return _0x4f01bf;};}function handleError(_0x3df06e,_0x6be395){_0x6be395=_0x6be395||0x1f4;return function(_0x14a239){logger[_0x5062('0x29')](_0x14a239[_0x5062('0x2a')]);if(_0x14a239['name']){delete _0x14a239['name'];}_0x3df06e[_0x5062('0x1a')](_0x6be395)[_0x5062('0x2b')](_0x14a239);};}exports['index']=function(_0x301008,_0x465c4e){var _0xf75e4c={},_0x199681={},_0x428be6={'count':0x0,'rows':[]};var _0x4e9cc5=_[_0x5062('0x2c')](db[_0x5062('0x2d')][_0x5062('0x2e')],function(_0xd78f03){return{'name':_0xd78f03['fieldName'],'type':_0xd78f03[_0x5062('0x2f')][_0x5062('0x30')]};});_0x199681[_0x5062('0x31')]=_['map'](_0x4e9cc5,_0x5062('0x32'));_0x199681[_0x5062('0x33')]=_['keys'](_0x301008[_0x5062('0x33')]);_0x199681[_0x5062('0x34')]=_[_0x5062('0x35')](_0x199681[_0x5062('0x31')],_0x199681[_0x5062('0x33')]);_0xf75e4c['attributes']=_[_0x5062('0x35')](_0x199681['model'],qs[_0x5062('0x36')](_0x301008[_0x5062('0x33')][_0x5062('0x36')]));_0xf75e4c[_0x5062('0x37')]=_0xf75e4c[_0x5062('0x37')]['length']?_0xf75e4c[_0x5062('0x37')]:_0x199681['model'];if(!_0x301008[_0x5062('0x33')]['hasOwnProperty']('nolimit')){_0xf75e4c['limit']=qs['limit'](_0x301008[_0x5062('0x33')][_0x5062('0x1e')]);_0xf75e4c['offset']=qs['offset'](_0x301008[_0x5062('0x33')][_0x5062('0x20')]);}_0xf75e4c[_0x5062('0x38')]=qs[_0x5062('0x39')](_0x301008['query'][_0x5062('0x39')]);_0xf75e4c[_0x5062('0x3a')]=qs[_0x5062('0x34')](_[_0x5062('0x3b')](_0x301008[_0x5062('0x33')],_0x199681[_0x5062('0x34')]),_0x4e9cc5);if(_0x301008[_0x5062('0x33')][_0x5062('0x3c')]){_0xf75e4c[_0x5062('0x3a')]=_[_0x5062('0x3d')](_0xf75e4c[_0x5062('0x3a')],{'$or':_[_0x5062('0x2c')](_0x4e9cc5,function(_0x4d4cf6){if(_0x4d4cf6[_0x5062('0x2f')]!==_0x5062('0x3e')){var _0x4ed422={};_0x4ed422[_0x4d4cf6[_0x5062('0x32')]]={'$like':'%'+_0x301008[_0x5062('0x33')][_0x5062('0x3c')]+'%'};return _0x4ed422;}})});}_0xf75e4c=_['merge']({},_0xf75e4c,_0x301008[_0x5062('0x3f')]);var _0x83afae={'where':_0xf75e4c[_0x5062('0x3a')]};return db[_0x5062('0x2d')][_0x5062('0x1f')](_0x83afae)[_0x5062('0x27')](function(_0x8f62eb){_0x428be6[_0x5062('0x1f')]=_0x8f62eb;if(_0x301008['query'][_0x5062('0x40')]){_0xf75e4c[_0x5062('0x41')]=[{'all':!![]}];}return db[_0x5062('0x2d')]['findAll'](_0xf75e4c);})['then'](function(_0x1b2247){_0x428be6[_0x5062('0x42')]=_0x1b2247;return _0x428be6;})[_0x5062('0x27')](respondWithFilteredResult(_0x465c4e,_0xf75e4c))[_0x5062('0x43')](handleError(_0x465c4e,null));};exports[_0x5062('0x44')]=function(_0x53baee,_0x4a9e34){var _0x2c00f3={'raw':![],'where':{'id':_0x53baee[_0x5062('0x45')]['id']}},_0x12eadf={};_0x12eadf['model']=_[_0x5062('0x46')](db[_0x5062('0x2d')][_0x5062('0x2e')]);_0x12eadf[_0x5062('0x33')]=_[_0x5062('0x46')](_0x53baee[_0x5062('0x33')]);_0x12eadf[_0x5062('0x34')]=_['intersection'](_0x12eadf[_0x5062('0x31')],_0x12eadf[_0x5062('0x33')]);_0x2c00f3['attributes']=_[_0x5062('0x35')](_0x12eadf[_0x5062('0x31')],qs['fields'](_0x53baee[_0x5062('0x33')][_0x5062('0x36')]));_0x2c00f3[_0x5062('0x37')]=_0x2c00f3['attributes'][_0x5062('0x47')]?_0x2c00f3[_0x5062('0x37')]:_0x12eadf['model'];if(_0x53baee[_0x5062('0x33')][_0x5062('0x40')]){_0x2c00f3[_0x5062('0x41')]=[{'all':!![]}];}_0x2c00f3=_[_0x5062('0x3d')]({},_0x2c00f3,_0x53baee[_0x5062('0x3f')]);return db[_0x5062('0x2d')][_0x5062('0x48')](_0x2c00f3)['then'](handleEntityNotFound(_0x4a9e34,null))[_0x5062('0x27')](respondWithResult(_0x4a9e34,null))['catch'](handleError(_0x4a9e34,null));};exports[_0x5062('0x49')]=function(_0x28fcdd,_0x5148a7){return db[_0x5062('0x2d')][_0x5062('0x49')](_0x28fcdd['body'],{})[_0x5062('0x27')](respondWithResult(_0x5148a7,0xc9))[_0x5062('0x43')](handleError(_0x5148a7,null));};exports[_0x5062('0x26')]=function(_0xbd01,_0x30db96){if(_0xbd01[_0x5062('0x4a')]['id']){delete _0xbd01[_0x5062('0x4a')]['id'];}return db[_0x5062('0x2d')][_0x5062('0x48')]({'where':{'id':_0xbd01[_0x5062('0x45')]['id']}})['then'](handleEntityNotFound(_0x30db96,null))[_0x5062('0x27')](saveUpdates(_0xbd01[_0x5062('0x4a')],null))['then'](respondWithResult(_0x30db96,null))[_0x5062('0x43')](handleError(_0x30db96,null));};exports[_0x5062('0x28')]=function(_0x1befde,_0x157280){return db[_0x5062('0x2d')][_0x5062('0x48')]({'where':{'id':_0x1befde[_0x5062('0x45')]['id']}})[_0x5062('0x27')](handleEntityNotFound(_0x157280,null))['then'](removeEntity(_0x157280,null))['catch'](handleError(_0x157280,null));};exports[_0x5062('0x4b')]=function(_0x57157c,_0x4c8f54,_0x571c3c){return db[_0x5062('0x4c')][_0x5062('0x48')]({'where':{'id':_0x57157c[_0x5062('0x45')]['id']}})[_0x5062('0x27')](handleEntityNotFound(_0x4c8f54,null))['then'](function(_0x5b3efb){if(_0x5b3efb){return _0x5b3efb['addConditions'](_0x57157c[_0x5062('0x4a')]['ids'],_[_0x5062('0x4d')](_0x57157c[_0x5062('0x4a')],[_0x5062('0x4e'),'id'])||{});}})['then'](respondWithResult(_0x4c8f54,null))[_0x5062('0x43')](handleError(_0x4c8f54,null));};exports['getConditions']=function(_0x1211cc,_0x58b931,_0x2a2e19){var _0x2fbce4={};var _0x3c5aa9={};var _0x52645f;var _0x108b95;return db[_0x5062('0x2d')]['findOne']({'where':{'id':_0x1211cc[_0x5062('0x45')]['id']}})[_0x5062('0x27')](handleEntityNotFound(_0x58b931,null))[_0x5062('0x27')](function(_0x236617){if(_0x236617){_0x52645f=_0x236617;_0x3c5aa9[_0x5062('0x31')]=_[_0x5062('0x46')](db[_0x5062('0x4c')]['rawAttributes']);_0x3c5aa9[_0x5062('0x33')]=_[_0x5062('0x46')](_0x1211cc[_0x5062('0x33')]);_0x3c5aa9[_0x5062('0x34')]=_[_0x5062('0x35')](_0x3c5aa9[_0x5062('0x31')],_0x3c5aa9[_0x5062('0x33')]);_0x2fbce4[_0x5062('0x37')]=_[_0x5062('0x35')](_0x3c5aa9[_0x5062('0x31')],qs['fields'](_0x1211cc[_0x5062('0x33')][_0x5062('0x36')]));_0x2fbce4[_0x5062('0x37')]=_0x2fbce4[_0x5062('0x37')][_0x5062('0x47')]?_0x2fbce4[_0x5062('0x37')]:_0x3c5aa9[_0x5062('0x31')];_0x2fbce4[_0x5062('0x38')]=qs[_0x5062('0x39')](_0x1211cc['query'][_0x5062('0x39')]);_0x2fbce4['where']=qs[_0x5062('0x34')](_[_0x5062('0x3b')](_0x1211cc[_0x5062('0x33')],_0x3c5aa9[_0x5062('0x34')]));if(_0x1211cc[_0x5062('0x33')]['filter']){_0x2fbce4[_0x5062('0x3a')]=_[_0x5062('0x3d')](_0x2fbce4[_0x5062('0x3a')],{'$or':_['map'](_0x2fbce4[_0x5062('0x37')],function(_0x7bbcb2){var _0x1f0153={};_0x1f0153[_0x7bbcb2]={'$like':'%'+_0x1211cc[_0x5062('0x33')][_0x5062('0x3c')]+'%'};return _0x1f0153;})});}_0x2fbce4=_[_0x5062('0x3d')]({},_0x2fbce4,_0x1211cc[_0x5062('0x3f')]);return _0x52645f[_0x5062('0x4f')](_0x2fbce4);}})[_0x5062('0x27')](function(_0x47db2c){if(_0x47db2c){_0x108b95=_0x47db2c[_0x5062('0x47')];if(!_0x1211cc[_0x5062('0x33')][_0x5062('0x50')](_0x5062('0x51'))){_0x2fbce4[_0x5062('0x1e')]=qs[_0x5062('0x1e')](_0x1211cc[_0x5062('0x33')][_0x5062('0x1e')]);_0x2fbce4['offset']=qs[_0x5062('0x20')](_0x1211cc['query'][_0x5062('0x20')]);}return _0x52645f[_0x5062('0x4f')](_0x2fbce4);}})[_0x5062('0x27')](function(_0x377fa2){if(_0x377fa2){return _0x377fa2?{'count':_0x108b95,'rows':_0x377fa2}:null;}})[_0x5062('0x27')](respondWithResult(_0x58b931,null))[_0x5062('0x43')](handleError(_0x58b931,null));};exports[_0x5062('0x52')]=function(_0xb93fb2,_0xb752ef,_0x5ee0f5){return db['Action'][_0x5062('0x48')]({'where':{'id':_0xb93fb2['params']['id']}})[_0x5062('0x27')](handleEntityNotFound(_0xb752ef,null))[_0x5062('0x27')](function(_0x5afd0f){if(_0x5afd0f){return _0x5afd0f[_0x5062('0x52')](_0xb93fb2[_0x5062('0x4a')][_0x5062('0x4e')],_['omit'](_0xb93fb2[_0x5062('0x4a')],['ids','id'])||{});}})[_0x5062('0x27')](respondWithResult(_0xb752ef,null))['catch'](handleError(_0xb752ef,null));};exports[_0x5062('0x53')]=function(_0x3bc92a,_0x654144,_0x4b0ed5){var _0x24e0c4={};var _0x5cf396={};var _0x3c878a;var _0x36c04e;return db['Automation']['findOne']({'where':{'id':_0x3bc92a[_0x5062('0x45')]['id']}})[_0x5062('0x27')](handleEntityNotFound(_0x654144,null))['then'](function(_0x946f95){if(_0x946f95){_0x3c878a=_0x946f95;_0x5cf396[_0x5062('0x31')]=_[_0x5062('0x46')](db[_0x5062('0x54')]['rawAttributes']);_0x5cf396['query']=_['keys'](_0x3bc92a['query']);_0x5cf396[_0x5062('0x34')]=_[_0x5062('0x35')](_0x5cf396[_0x5062('0x31')],_0x5cf396[_0x5062('0x33')]);_0x24e0c4[_0x5062('0x37')]=_[_0x5062('0x35')](_0x5cf396['model'],qs[_0x5062('0x36')](_0x3bc92a['query']['fields']));_0x24e0c4[_0x5062('0x37')]=_0x24e0c4[_0x5062('0x37')][_0x5062('0x47')]?_0x24e0c4[_0x5062('0x37')]:_0x5cf396[_0x5062('0x31')];_0x24e0c4['order']=qs[_0x5062('0x39')](_0x3bc92a['query']['sort']);_0x24e0c4[_0x5062('0x3a')]=qs[_0x5062('0x34')](_['pick'](_0x3bc92a['query'],_0x5cf396[_0x5062('0x34')]));if(_0x3bc92a[_0x5062('0x33')][_0x5062('0x3c')]){_0x24e0c4[_0x5062('0x3a')]=_[_0x5062('0x3d')](_0x24e0c4[_0x5062('0x3a')],{'$or':_[_0x5062('0x2c')](_0x24e0c4[_0x5062('0x37')],function(_0x37e84e){var _0x145f27={};_0x145f27[_0x37e84e]={'$like':'%'+_0x3bc92a['query'][_0x5062('0x3c')]+'%'};return _0x145f27;})});}_0x24e0c4=_[_0x5062('0x3d')]({},_0x24e0c4,_0x3bc92a['options']);return _0x3c878a['getActions'](_0x24e0c4);}})[_0x5062('0x27')](function(_0x280f2d){if(_0x280f2d){_0x36c04e=_0x280f2d['length'];if(!_0x3bc92a[_0x5062('0x33')]['hasOwnProperty'](_0x5062('0x51'))){_0x24e0c4[_0x5062('0x1e')]=qs[_0x5062('0x1e')](_0x3bc92a[_0x5062('0x33')]['limit']);_0x24e0c4['offset']=qs[_0x5062('0x20')](_0x3bc92a[_0x5062('0x33')][_0x5062('0x20')]);}return _0x3c878a[_0x5062('0x53')](_0x24e0c4);}})['then'](function(_0x44d8e8){if(_0x44d8e8){return _0x44d8e8?{'count':_0x36c04e,'rows':_0x44d8e8}:null;}})[_0x5062('0x27')](respondWithResult(_0x654144,null))[_0x5062('0x43')](handleError(_0x654144,null));};