Built motion from commit 9d1906d1.|2.5.40
[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 _0x44c9=['then','sendStatus','error','stack','name','send','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','VIRTUAL','merge','options','includeAll','include','catch','params','create','body','update','find','addConditions','Condition','omit','ids','getConditions','findOne','order','pick','filter','hasOwnProperty','Action','addActions','getActions','eml-format','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','status','end','offset','limit','undefined','count','set','Content-Range','reject','save','destroy'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x44c9,0x80));var _0x944c=function(_0x5ace25,_0x536239){_0x5ace25=_0x5ace25-0x0;var _0x4ba17a=_0x44c9[_0x5ace25];return _0x4ba17a;};'use strict';var emlformat=require(_0x944c('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x944c('0x1'));var moment=require(_0x944c('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x944c('0x3'));var util=require(_0x944c('0x4'));var path=require(_0x944c('0x5'));var sox=require(_0x944c('0x6'));var csv=require('to-csv');var ejs=require(_0x944c('0x7'));var fs=require('fs');var fs_extra=require(_0x944c('0x8'));var _=require(_0x944c('0x9'));var squel=require(_0x944c('0xa'));var crypto=require(_0x944c('0xb'));var jsforce=require(_0x944c('0xc'));var deskjs=require(_0x944c('0xd'));var toCsv=require('to-csv');var querystring=require(_0x944c('0xe'));var Papa=require(_0x944c('0xf'));var Redis=require('ioredis');var authService=require(_0x944c('0x10'));var qs=require(_0x944c('0x11'));var as=require(_0x944c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x944c('0x13'))(_0x944c('0x14'));var utils=require(_0x944c('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x944c('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4d253a,_0x3900f3){_0x3900f3=_0x3900f3||0xcc;return function(_0x4c75ca){if(_0x4c75ca){return _0x4d253a['sendStatus'](_0x3900f3);}return _0x4d253a[_0x944c('0x17')](_0x3900f3)[_0x944c('0x18')]();};}function respondWithResult(_0x878510,_0x4583de){_0x4583de=_0x4583de||0xc8;return function(_0x4378ad){if(_0x4378ad){return _0x878510[_0x944c('0x17')](_0x4583de)['json'](_0x4378ad);}};}function respondWithFilteredResult(_0x388deb,_0x59ff12){return function(_0x5724e5){if(_0x5724e5){var _0x35918c=typeof _0x59ff12[_0x944c('0x19')]==='undefined'&&typeof _0x59ff12[_0x944c('0x1a')]===_0x944c('0x1b');var _0x57632b=_0x5724e5[_0x944c('0x1c')];var _0x5b74cd=_0x35918c?0x0:_0x59ff12[_0x944c('0x19')];var _0xd31609=_0x35918c?_0x5724e5[_0x944c('0x1c')]:_0x59ff12['offset']+_0x59ff12[_0x944c('0x1a')];var _0x4f1cdd;if(_0xd31609>=_0x57632b){_0xd31609=_0x57632b;_0x4f1cdd=0xc8;}else{_0x4f1cdd=0xce;}_0x388deb[_0x944c('0x17')](_0x4f1cdd);return _0x388deb[_0x944c('0x1d')](_0x944c('0x1e'),_0x5b74cd+'-'+_0xd31609+'/'+_0x57632b)['json'](_0x5724e5);}return null;};}function patchUpdates(_0x339082){return function(_0x16b7c5){try{jsonpatch['apply'](_0x16b7c5,_0x339082,!![]);}catch(_0x1feaf8){return BPromise[_0x944c('0x1f')](_0x1feaf8);}return _0x16b7c5[_0x944c('0x20')]();};}function saveUpdates(_0x30045c,_0xa94ab3){return function(_0xb5515f){if(_0xb5515f){return _0xb5515f['update'](_0x30045c)['then'](function(_0x3bd170){return _0x3bd170;});}return null;};}function removeEntity(_0x4e731f,_0x1dc2af){return function(_0x1cff97){if(_0x1cff97){return _0x1cff97[_0x944c('0x21')]()[_0x944c('0x22')](function(){_0x4e731f[_0x944c('0x17')](0xcc)[_0x944c('0x18')]();});}};}function handleEntityNotFound(_0x4ddf76,_0x2bb3ab){return function(_0x9e8f1a){if(!_0x9e8f1a){_0x4ddf76[_0x944c('0x23')](0x194);}return _0x9e8f1a;};}function handleError(_0x2daa3b,_0x4a95ef){_0x4a95ef=_0x4a95ef||0x1f4;return function(_0x2afe1a){logger[_0x944c('0x24')](_0x2afe1a[_0x944c('0x25')]);if(_0x2afe1a[_0x944c('0x26')]){delete _0x2afe1a['name'];}_0x2daa3b[_0x944c('0x17')](_0x4a95ef)[_0x944c('0x27')](_0x2afe1a);};}exports[_0x944c('0x28')]=function(_0x30b173,_0x5b96ab){var _0x4f53d5={},_0x147037={},_0x2bd172={'count':0x0,'rows':[]};var _0x6e421f=_[_0x944c('0x29')](db[_0x944c('0x2a')][_0x944c('0x2b')],function(_0x35389b){return{'name':_0x35389b[_0x944c('0x2c')],'type':_0x35389b[_0x944c('0x2d')]['key']};});_0x147037[_0x944c('0x2e')]=_[_0x944c('0x29')](_0x6e421f,'name');_0x147037[_0x944c('0x2f')]=_[_0x944c('0x30')](_0x30b173[_0x944c('0x2f')]);_0x147037[_0x944c('0x31')]=_[_0x944c('0x32')](_0x147037[_0x944c('0x2e')],_0x147037[_0x944c('0x2f')]);_0x4f53d5[_0x944c('0x33')]=_[_0x944c('0x32')](_0x147037[_0x944c('0x2e')],qs[_0x944c('0x34')](_0x30b173[_0x944c('0x2f')][_0x944c('0x34')]));_0x4f53d5[_0x944c('0x33')]=_0x4f53d5['attributes'][_0x944c('0x35')]?_0x4f53d5['attributes']:_0x147037[_0x944c('0x2e')];if(!_0x30b173['query']['hasOwnProperty'](_0x944c('0x36'))){_0x4f53d5['limit']=qs[_0x944c('0x1a')](_0x30b173[_0x944c('0x2f')][_0x944c('0x1a')]);_0x4f53d5['offset']=qs[_0x944c('0x19')](_0x30b173[_0x944c('0x2f')][_0x944c('0x19')]);}_0x4f53d5['order']=qs[_0x944c('0x37')](_0x30b173['query'][_0x944c('0x37')]);_0x4f53d5[_0x944c('0x38')]=qs[_0x944c('0x31')](_['pick'](_0x30b173['query'],_0x147037[_0x944c('0x31')]),_0x6e421f);if(_0x30b173['query']['filter']){_0x4f53d5[_0x944c('0x38')]=_['merge'](_0x4f53d5['where'],{'$or':_[_0x944c('0x29')](_0x6e421f,function(_0x37cd9d){if(_0x37cd9d[_0x944c('0x2d')]!==_0x944c('0x39')){var _0x561108={};_0x561108[_0x37cd9d[_0x944c('0x26')]]={'$like':'%'+_0x30b173[_0x944c('0x2f')]['filter']+'%'};return _0x561108;}})});}_0x4f53d5=_[_0x944c('0x3a')]({},_0x4f53d5,_0x30b173[_0x944c('0x3b')]);var _0x30df4c={'where':_0x4f53d5[_0x944c('0x38')]};return db[_0x944c('0x2a')][_0x944c('0x1c')](_0x30df4c)[_0x944c('0x22')](function(_0x31c561){_0x2bd172[_0x944c('0x1c')]=_0x31c561;if(_0x30b173['query'][_0x944c('0x3c')]){_0x4f53d5[_0x944c('0x3d')]=[{'all':!![]}];}return db['Automation']['findAll'](_0x4f53d5);})[_0x944c('0x22')](function(_0x243dab){_0x2bd172['rows']=_0x243dab;return _0x2bd172;})[_0x944c('0x22')](respondWithFilteredResult(_0x5b96ab,_0x4f53d5))[_0x944c('0x3e')](handleError(_0x5b96ab,null));};exports['show']=function(_0x343cf4,_0x5f1dbf){var _0x3f3dec={'raw':![],'where':{'id':_0x343cf4[_0x944c('0x3f')]['id']}},_0x540fd7={};_0x540fd7['model']=_[_0x944c('0x30')](db['Automation'][_0x944c('0x2b')]);_0x540fd7[_0x944c('0x2f')]=_[_0x944c('0x30')](_0x343cf4[_0x944c('0x2f')]);_0x540fd7['filters']=_[_0x944c('0x32')](_0x540fd7['model'],_0x540fd7[_0x944c('0x2f')]);_0x3f3dec[_0x944c('0x33')]=_[_0x944c('0x32')](_0x540fd7[_0x944c('0x2e')],qs['fields'](_0x343cf4[_0x944c('0x2f')]['fields']));_0x3f3dec[_0x944c('0x33')]=_0x3f3dec[_0x944c('0x33')][_0x944c('0x35')]?_0x3f3dec[_0x944c('0x33')]:_0x540fd7[_0x944c('0x2e')];if(_0x343cf4['query'][_0x944c('0x3c')]){_0x3f3dec[_0x944c('0x3d')]=[{'all':!![]}];}_0x3f3dec=_['merge']({},_0x3f3dec,_0x343cf4['options']);return db[_0x944c('0x2a')]['find'](_0x3f3dec)[_0x944c('0x22')](handleEntityNotFound(_0x5f1dbf,null))['then'](respondWithResult(_0x5f1dbf,null))[_0x944c('0x3e')](handleError(_0x5f1dbf,null));};exports['create']=function(_0x585868,_0x208ee9){return db[_0x944c('0x2a')][_0x944c('0x40')](_0x585868[_0x944c('0x41')],{})['then'](respondWithResult(_0x208ee9,0xc9))[_0x944c('0x3e')](handleError(_0x208ee9,null));};exports[_0x944c('0x42')]=function(_0x523a0c,_0x9a1a5d){if(_0x523a0c[_0x944c('0x41')]['id']){delete _0x523a0c['body']['id'];}return db[_0x944c('0x2a')][_0x944c('0x43')]({'where':{'id':_0x523a0c[_0x944c('0x3f')]['id']}})[_0x944c('0x22')](handleEntityNotFound(_0x9a1a5d,null))[_0x944c('0x22')](saveUpdates(_0x523a0c[_0x944c('0x41')],null))[_0x944c('0x22')](respondWithResult(_0x9a1a5d,null))[_0x944c('0x3e')](handleError(_0x9a1a5d,null));};exports[_0x944c('0x21')]=function(_0x21b703,_0x5145c5){return db[_0x944c('0x2a')]['find']({'where':{'id':_0x21b703[_0x944c('0x3f')]['id']}})['then'](handleEntityNotFound(_0x5145c5,null))['then'](removeEntity(_0x5145c5,null))[_0x944c('0x3e')](handleError(_0x5145c5,null));};exports[_0x944c('0x44')]=function(_0x56b274,_0x5e89de,_0x341034){return db[_0x944c('0x45')][_0x944c('0x43')]({'where':{'id':_0x56b274[_0x944c('0x3f')]['id']}})['then'](handleEntityNotFound(_0x5e89de,null))[_0x944c('0x22')](function(_0x280021){if(_0x280021){return _0x280021[_0x944c('0x44')](_0x56b274['body']['ids'],_[_0x944c('0x46')](_0x56b274[_0x944c('0x41')],[_0x944c('0x47'),'id'])||{});}})['then'](respondWithResult(_0x5e89de,null))[_0x944c('0x3e')](handleError(_0x5e89de,null));};exports[_0x944c('0x48')]=function(_0x55b035,_0x34c757,_0x4c528d){var _0x465600={};var _0x22d321={};var _0x2ce719;var _0x814a9;return db[_0x944c('0x2a')][_0x944c('0x49')]({'where':{'id':_0x55b035[_0x944c('0x3f')]['id']}})[_0x944c('0x22')](handleEntityNotFound(_0x34c757,null))[_0x944c('0x22')](function(_0x55785a){if(_0x55785a){_0x2ce719=_0x55785a;_0x22d321[_0x944c('0x2e')]=_[_0x944c('0x30')](db[_0x944c('0x45')][_0x944c('0x2b')]);_0x22d321[_0x944c('0x2f')]=_[_0x944c('0x30')](_0x55b035[_0x944c('0x2f')]);_0x22d321['filters']=_[_0x944c('0x32')](_0x22d321[_0x944c('0x2e')],_0x22d321[_0x944c('0x2f')]);_0x465600['attributes']=_['intersection'](_0x22d321[_0x944c('0x2e')],qs[_0x944c('0x34')](_0x55b035[_0x944c('0x2f')][_0x944c('0x34')]));_0x465600[_0x944c('0x33')]=_0x465600[_0x944c('0x33')][_0x944c('0x35')]?_0x465600[_0x944c('0x33')]:_0x22d321[_0x944c('0x2e')];_0x465600[_0x944c('0x4a')]=qs[_0x944c('0x37')](_0x55b035['query'][_0x944c('0x37')]);_0x465600[_0x944c('0x38')]=qs[_0x944c('0x31')](_[_0x944c('0x4b')](_0x55b035[_0x944c('0x2f')],_0x22d321['filters']));if(_0x55b035['query'][_0x944c('0x4c')]){_0x465600[_0x944c('0x38')]=_[_0x944c('0x3a')](_0x465600[_0x944c('0x38')],{'$or':_[_0x944c('0x29')](_0x465600[_0x944c('0x33')],function(_0x5804fb){var _0x1e98c5={};_0x1e98c5[_0x5804fb]={'$like':'%'+_0x55b035['query']['filter']+'%'};return _0x1e98c5;})});}_0x465600=_[_0x944c('0x3a')]({},_0x465600,_0x55b035[_0x944c('0x3b')]);return _0x2ce719[_0x944c('0x48')](_0x465600);}})[_0x944c('0x22')](function(_0x190c0e){if(_0x190c0e){_0x814a9=_0x190c0e[_0x944c('0x35')];if(!_0x55b035[_0x944c('0x2f')][_0x944c('0x4d')](_0x944c('0x36'))){_0x465600[_0x944c('0x1a')]=qs[_0x944c('0x1a')](_0x55b035[_0x944c('0x2f')][_0x944c('0x1a')]);_0x465600[_0x944c('0x19')]=qs['offset'](_0x55b035[_0x944c('0x2f')][_0x944c('0x19')]);}return _0x2ce719[_0x944c('0x48')](_0x465600);}})[_0x944c('0x22')](function(_0x55ba3c){if(_0x55ba3c){return _0x55ba3c?{'count':_0x814a9,'rows':_0x55ba3c}:null;}})[_0x944c('0x22')](respondWithResult(_0x34c757,null))[_0x944c('0x3e')](handleError(_0x34c757,null));};exports['addActions']=function(_0x3f508a,_0x775232,_0x1f85c1){return db[_0x944c('0x4e')]['find']({'where':{'id':_0x3f508a[_0x944c('0x3f')]['id']}})[_0x944c('0x22')](handleEntityNotFound(_0x775232,null))[_0x944c('0x22')](function(_0x1d2f0d){if(_0x1d2f0d){return _0x1d2f0d[_0x944c('0x4f')](_0x3f508a[_0x944c('0x41')][_0x944c('0x47')],_['omit'](_0x3f508a[_0x944c('0x41')],[_0x944c('0x47'),'id'])||{});}})['then'](respondWithResult(_0x775232,null))[_0x944c('0x3e')](handleError(_0x775232,null));};exports[_0x944c('0x50')]=function(_0x7066fc,_0x431572,_0x30715a){var _0x2e3127={};var _0x488f2f={};var _0x8ceb4c;var _0x3604a3;return db[_0x944c('0x2a')][_0x944c('0x49')]({'where':{'id':_0x7066fc[_0x944c('0x3f')]['id']}})[_0x944c('0x22')](handleEntityNotFound(_0x431572,null))[_0x944c('0x22')](function(_0xf1edd5){if(_0xf1edd5){_0x8ceb4c=_0xf1edd5;_0x488f2f[_0x944c('0x2e')]=_[_0x944c('0x30')](db[_0x944c('0x4e')][_0x944c('0x2b')]);_0x488f2f[_0x944c('0x2f')]=_[_0x944c('0x30')](_0x7066fc[_0x944c('0x2f')]);_0x488f2f[_0x944c('0x31')]=_[_0x944c('0x32')](_0x488f2f[_0x944c('0x2e')],_0x488f2f[_0x944c('0x2f')]);_0x2e3127[_0x944c('0x33')]=_['intersection'](_0x488f2f[_0x944c('0x2e')],qs[_0x944c('0x34')](_0x7066fc[_0x944c('0x2f')][_0x944c('0x34')]));_0x2e3127[_0x944c('0x33')]=_0x2e3127[_0x944c('0x33')][_0x944c('0x35')]?_0x2e3127[_0x944c('0x33')]:_0x488f2f[_0x944c('0x2e')];_0x2e3127[_0x944c('0x4a')]=qs[_0x944c('0x37')](_0x7066fc[_0x944c('0x2f')][_0x944c('0x37')]);_0x2e3127[_0x944c('0x38')]=qs[_0x944c('0x31')](_['pick'](_0x7066fc[_0x944c('0x2f')],_0x488f2f[_0x944c('0x31')]));if(_0x7066fc[_0x944c('0x2f')]['filter']){_0x2e3127['where']=_[_0x944c('0x3a')](_0x2e3127[_0x944c('0x38')],{'$or':_[_0x944c('0x29')](_0x2e3127[_0x944c('0x33')],function(_0x25e88a){var _0x1ce530={};_0x1ce530[_0x25e88a]={'$like':'%'+_0x7066fc['query'][_0x944c('0x4c')]+'%'};return _0x1ce530;})});}_0x2e3127=_[_0x944c('0x3a')]({},_0x2e3127,_0x7066fc[_0x944c('0x3b')]);return _0x8ceb4c[_0x944c('0x50')](_0x2e3127);}})[_0x944c('0x22')](function(_0x583844){if(_0x583844){_0x3604a3=_0x583844[_0x944c('0x35')];if(!_0x7066fc[_0x944c('0x2f')]['hasOwnProperty']('nolimit')){_0x2e3127[_0x944c('0x1a')]=qs['limit'](_0x7066fc['query'][_0x944c('0x1a')]);_0x2e3127['offset']=qs[_0x944c('0x19')](_0x7066fc[_0x944c('0x2f')]['offset']);}return _0x8ceb4c[_0x944c('0x50')](_0x2e3127);}})[_0x944c('0x22')](function(_0x28850e){if(_0x28850e){return _0x28850e?{'count':_0x3604a3,'rows':_0x28850e}:null;}})[_0x944c('0x22')](respondWithResult(_0x431572,null))['catch'](handleError(_0x431572,null));};