Built motion from commit (unavailable).|2.4.20
[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 _0xd661=['key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','include','rows','catch','show','params','options','find','create','body','Condition','addConditions','omit','ids','getConditions','hasOwnProperty','addActions','Action','getActions','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','save','then','destroy','error','name','index','map','Automation','rawAttributes','fieldName','type'];(function(_0x3dbb1e,_0x11ff5e){var _0x5a91ac=function(_0x223aec){while(--_0x223aec){_0x3dbb1e['push'](_0x3dbb1e['shift']());}};_0x5a91ac(++_0x11ff5e);}(_0xd661,0x19f));var _0x1d66=function(_0x2cfa6c,_0x8ff979){_0x2cfa6c=_0x2cfa6c-0x0;var _0x568f57=_0xd661[_0x2cfa6c];return _0x568f57;};'use strict';var pdf=require(_0x1d66('0x0'));var emlformat=require(_0x1d66('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x1d66('0x2'));var jsonpatch=require(_0x1d66('0x3'));var rp=require('request-promise');var moment=require(_0x1d66('0x4'));var BPromise=require(_0x1d66('0x5'));var Mustache=require(_0x1d66('0x6'));var util=require(_0x1d66('0x7'));var path=require(_0x1d66('0x8'));var sox=require(_0x1d66('0x9'));var csv=require(_0x1d66('0xa'));var ejs=require(_0x1d66('0xb'));var fs=require('fs');var _=require(_0x1d66('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1d66('0xd'));var toCsv=require(_0x1d66('0xa'));var querystring=require(_0x1d66('0xe'));var Papa=require('papaparse');var Redis=require(_0x1d66('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1d66('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1d66('0x11'))('api');var utils=require(_0x1d66('0x12'));var config=require(_0x1d66('0x13'));var db=require(_0x1d66('0x14'))['db'];function respondWithStatusCode(_0x186b01,_0x3397e8){_0x3397e8=_0x3397e8||0xcc;return function(_0x4aecf5){if(_0x4aecf5){return _0x186b01[_0x1d66('0x15')](_0x3397e8);}return _0x186b01[_0x1d66('0x16')](_0x3397e8)[_0x1d66('0x17')]();};}function respondWithResult(_0x5d0896,_0x1c559f){_0x1c559f=_0x1c559f||0xc8;return function(_0xb3b8e){if(_0xb3b8e){return _0x5d0896[_0x1d66('0x16')](_0x1c559f)[_0x1d66('0x18')](_0xb3b8e);}};}function respondWithFilteredResult(_0x42db41,_0x443c3f){return function(_0x26a21c){if(_0x26a21c){var _0x40e2d6=_0x26a21c[_0x1d66('0x19')],_0x1bdadc=_0x443c3f[_0x1d66('0x1a')],_0x3cdcb2=_0x443c3f[_0x1d66('0x1a')]+_0x443c3f[_0x1d66('0x1b')],_0x21bee0;if(_0x3cdcb2>=_0x40e2d6){_0x3cdcb2=_0x40e2d6;_0x21bee0=0xc8;}else{_0x21bee0=0xce;}_0x42db41[_0x1d66('0x16')](_0x21bee0);return _0x42db41[_0x1d66('0x1c')](_0x1d66('0x1d'),_0x1bdadc+'-'+_0x3cdcb2+'/'+_0x40e2d6)[_0x1d66('0x18')](_0x26a21c);}return null;};}function patchUpdates(_0x38edc3){return function(_0x1bc2e4){try{jsonpatch['apply'](_0x1bc2e4,_0x38edc3,!![]);}catch(_0x218caf){return BPromise['reject'](_0x218caf);}return _0x1bc2e4[_0x1d66('0x1e')]();};}function saveUpdates(_0xdf6e89,_0x3a2dae){return function(_0x40236a){if(_0x40236a){return _0x40236a['update'](_0xdf6e89)[_0x1d66('0x1f')](function(_0x121654){return _0x121654;});}return null;};}function removeEntity(_0x4ccc58,_0x476183){return function(_0x4c2a36){if(_0x4c2a36){return _0x4c2a36[_0x1d66('0x20')]()[_0x1d66('0x1f')](function(){_0x4ccc58[_0x1d66('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x452930,_0x5a0cb5){return function(_0x4404f5){if(!_0x4404f5){_0x452930['sendStatus'](0x194);}return _0x4404f5;};}function handleError(_0x4efcc5,_0x5878c7){_0x5878c7=_0x5878c7||0x1f4;return function(_0x41fd6b){logger[_0x1d66('0x21')](_0x41fd6b['stack']);if(_0x41fd6b[_0x1d66('0x22')]){delete _0x41fd6b[_0x1d66('0x22')];}_0x4efcc5['status'](_0x5878c7)['send'](_0x41fd6b);};}exports[_0x1d66('0x23')]=function(_0x5b7c24,_0x23cd2a){var _0x12cb79={},_0x29203a={},_0xd4843d={'count':0x0,'rows':[]};var _0x4d49d3=_[_0x1d66('0x24')](db[_0x1d66('0x25')][_0x1d66('0x26')],function(_0x222cca){return{'name':_0x222cca[_0x1d66('0x27')],'type':_0x222cca[_0x1d66('0x28')][_0x1d66('0x29')]};});_0x29203a['model']=_[_0x1d66('0x24')](_0x4d49d3,_0x1d66('0x22'));_0x29203a[_0x1d66('0x2a')]=_[_0x1d66('0x2b')](_0x5b7c24[_0x1d66('0x2a')]);_0x29203a[_0x1d66('0x2c')]=_[_0x1d66('0x2d')](_0x29203a[_0x1d66('0x2e')],_0x29203a['query']);_0x12cb79[_0x1d66('0x2f')]=_['intersection'](_0x29203a[_0x1d66('0x2e')],qs[_0x1d66('0x30')](_0x5b7c24[_0x1d66('0x2a')][_0x1d66('0x30')]));_0x12cb79[_0x1d66('0x2f')]=_0x12cb79[_0x1d66('0x2f')][_0x1d66('0x31')]?_0x12cb79[_0x1d66('0x2f')]:_0x29203a[_0x1d66('0x2e')];if(!_0x5b7c24[_0x1d66('0x2a')]['hasOwnProperty'](_0x1d66('0x32'))){_0x12cb79[_0x1d66('0x1b')]=qs[_0x1d66('0x1b')](_0x5b7c24[_0x1d66('0x2a')][_0x1d66('0x1b')]);_0x12cb79[_0x1d66('0x1a')]=qs['offset'](_0x5b7c24[_0x1d66('0x2a')]['offset']);}_0x12cb79[_0x1d66('0x33')]=qs[_0x1d66('0x34')](_0x5b7c24[_0x1d66('0x2a')]['sort']);_0x12cb79[_0x1d66('0x35')]=qs[_0x1d66('0x2c')](_[_0x1d66('0x36')](_0x5b7c24[_0x1d66('0x2a')],_0x29203a[_0x1d66('0x2c')]));if(_0x5b7c24['query'][_0x1d66('0x37')]){_0x12cb79[_0x1d66('0x35')]=_['merge'](_0x12cb79[_0x1d66('0x35')],{'$or':_[_0x1d66('0x24')](_0x4d49d3,function(_0x59cb80){if(_0x59cb80[_0x1d66('0x28')]!==_0x1d66('0x38')){var _0x9018e={};_0x9018e[_0x59cb80['name']]={'$like':'%'+_0x5b7c24['query'][_0x1d66('0x37')]+'%'};return _0x9018e;}})});}_0x12cb79=_[_0x1d66('0x39')]({},_0x12cb79,_0x5b7c24['options']);var _0x5e09c9={'where':_0x12cb79[_0x1d66('0x35')]};return db[_0x1d66('0x25')][_0x1d66('0x19')](_0x5e09c9)[_0x1d66('0x1f')](function(_0x33c6ad){_0xd4843d['count']=_0x33c6ad;if(_0x5b7c24[_0x1d66('0x2a')]['includeAll']){_0x12cb79[_0x1d66('0x3a')]=[{'all':!![]}];}return db[_0x1d66('0x25')]['findAll'](_0x12cb79);})[_0x1d66('0x1f')](function(_0x20229a){_0xd4843d[_0x1d66('0x3b')]=_0x20229a;return _0xd4843d;})[_0x1d66('0x1f')](respondWithFilteredResult(_0x23cd2a,_0x12cb79))[_0x1d66('0x3c')](handleError(_0x23cd2a,null));};exports[_0x1d66('0x3d')]=function(_0x167c2d,_0x276d50){var _0x506e9a={'raw':![],'where':{'id':_0x167c2d[_0x1d66('0x3e')]['id']}},_0x40a578={};_0x40a578[_0x1d66('0x2e')]=_[_0x1d66('0x2b')](db[_0x1d66('0x25')][_0x1d66('0x26')]);_0x40a578[_0x1d66('0x2a')]=_['keys'](_0x167c2d[_0x1d66('0x2a')]);_0x40a578[_0x1d66('0x2c')]=_[_0x1d66('0x2d')](_0x40a578[_0x1d66('0x2e')],_0x40a578['query']);_0x506e9a[_0x1d66('0x2f')]=_['intersection'](_0x40a578['model'],qs[_0x1d66('0x30')](_0x167c2d[_0x1d66('0x2a')][_0x1d66('0x30')]));_0x506e9a[_0x1d66('0x2f')]=_0x506e9a[_0x1d66('0x2f')][_0x1d66('0x31')]?_0x506e9a['attributes']:_0x40a578[_0x1d66('0x2e')];if(_0x167c2d[_0x1d66('0x2a')]['includeAll']){_0x506e9a[_0x1d66('0x3a')]=[{'all':!![]}];}_0x506e9a=_[_0x1d66('0x39')]({},_0x506e9a,_0x167c2d[_0x1d66('0x3f')]);return db['Automation'][_0x1d66('0x40')](_0x506e9a)[_0x1d66('0x1f')](handleEntityNotFound(_0x276d50,null))[_0x1d66('0x1f')](respondWithResult(_0x276d50,null))[_0x1d66('0x3c')](handleError(_0x276d50,null));};exports[_0x1d66('0x41')]=function(_0x57928a,_0x3589e0){return db['Automation']['create'](_0x57928a[_0x1d66('0x42')],{})[_0x1d66('0x1f')](respondWithResult(_0x3589e0,0xc9))[_0x1d66('0x3c')](handleError(_0x3589e0,null));};exports['update']=function(_0x2519ce,_0x161520){if(_0x2519ce[_0x1d66('0x42')]['id']){delete _0x2519ce[_0x1d66('0x42')]['id'];}return db[_0x1d66('0x25')][_0x1d66('0x40')]({'where':{'id':_0x2519ce[_0x1d66('0x3e')]['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x161520,null))['then'](saveUpdates(_0x2519ce['body'],null))[_0x1d66('0x1f')](respondWithResult(_0x161520,null))[_0x1d66('0x3c')](handleError(_0x161520,null));};exports['destroy']=function(_0x25f4a9,_0x4f5ee8){return db[_0x1d66('0x25')]['find']({'where':{'id':_0x25f4a9[_0x1d66('0x3e')]['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x4f5ee8,null))[_0x1d66('0x1f')](removeEntity(_0x4f5ee8,null))[_0x1d66('0x3c')](handleError(_0x4f5ee8,null));};exports['addConditions']=function(_0x408769,_0x4f4c4f,_0x124438){return db[_0x1d66('0x43')][_0x1d66('0x40')]({'where':{'id':_0x408769[_0x1d66('0x3e')]['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x4f4c4f,null))[_0x1d66('0x1f')](function(_0x2ab77f){if(_0x2ab77f){return _0x2ab77f[_0x1d66('0x44')](_0x408769[_0x1d66('0x42')]['ids'],_[_0x1d66('0x45')](_0x408769[_0x1d66('0x42')],[_0x1d66('0x46'),'id'])||{});}})[_0x1d66('0x1f')](respondWithResult(_0x4f4c4f,null))[_0x1d66('0x3c')](handleError(_0x4f4c4f,null));};exports[_0x1d66('0x47')]=function(_0x4919ff,_0x2c8d0a,_0xd54c00){var _0x4e16a0={};var _0x4e9f38={};var _0x55415a;var _0x5794bc;return db['Automation']['findOne']({'where':{'id':_0x4919ff[_0x1d66('0x3e')]['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x2c8d0a,null))[_0x1d66('0x1f')](function(_0x2e1e6c){if(_0x2e1e6c){_0x55415a=_0x2e1e6c;_0x4e9f38[_0x1d66('0x2e')]=_[_0x1d66('0x2b')](db[_0x1d66('0x43')]['rawAttributes']);_0x4e9f38[_0x1d66('0x2a')]=_[_0x1d66('0x2b')](_0x4919ff[_0x1d66('0x2a')]);_0x4e9f38[_0x1d66('0x2c')]=_[_0x1d66('0x2d')](_0x4e9f38[_0x1d66('0x2e')],_0x4e9f38['query']);_0x4e16a0[_0x1d66('0x2f')]=_['intersection'](_0x4e9f38[_0x1d66('0x2e')],qs['fields'](_0x4919ff[_0x1d66('0x2a')][_0x1d66('0x30')]));_0x4e16a0['attributes']=_0x4e16a0[_0x1d66('0x2f')]['length']?_0x4e16a0[_0x1d66('0x2f')]:_0x4e9f38[_0x1d66('0x2e')];_0x4e16a0[_0x1d66('0x33')]=qs[_0x1d66('0x34')](_0x4919ff[_0x1d66('0x2a')]['sort']);_0x4e16a0[_0x1d66('0x35')]=qs[_0x1d66('0x2c')](_[_0x1d66('0x36')](_0x4919ff['query'],_0x4e9f38[_0x1d66('0x2c')]));if(_0x4919ff[_0x1d66('0x2a')][_0x1d66('0x37')]){_0x4e16a0[_0x1d66('0x35')]=_[_0x1d66('0x39')](_0x4e16a0[_0x1d66('0x35')],{'$or':_[_0x1d66('0x24')](_0x4e16a0[_0x1d66('0x2f')],function(_0x26ff43){var _0xe046d={};_0xe046d[_0x26ff43]={'$like':'%'+_0x4919ff[_0x1d66('0x2a')][_0x1d66('0x37')]+'%'};return _0xe046d;})});}_0x4e16a0=_[_0x1d66('0x39')]({},_0x4e16a0,_0x4919ff[_0x1d66('0x3f')]);return _0x55415a['getConditions'](_0x4e16a0);}})[_0x1d66('0x1f')](function(_0x5c2a75){if(_0x5c2a75){_0x5794bc=_0x5c2a75['length'];if(!_0x4919ff['query'][_0x1d66('0x48')](_0x1d66('0x32'))){_0x4e16a0['limit']=qs[_0x1d66('0x1b')](_0x4919ff['query']['limit']);_0x4e16a0[_0x1d66('0x1a')]=qs[_0x1d66('0x1a')](_0x4919ff[_0x1d66('0x2a')]['offset']);}return _0x55415a[_0x1d66('0x47')](_0x4e16a0);}})[_0x1d66('0x1f')](function(_0x310df7){if(_0x310df7){return _0x310df7?{'count':_0x5794bc,'rows':_0x310df7}:null;}})[_0x1d66('0x1f')](respondWithResult(_0x2c8d0a,null))[_0x1d66('0x3c')](handleError(_0x2c8d0a,null));};exports[_0x1d66('0x49')]=function(_0x130fb6,_0x2691b0,_0x38705d){return db[_0x1d66('0x4a')][_0x1d66('0x40')]({'where':{'id':_0x130fb6[_0x1d66('0x3e')]['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x2691b0,null))[_0x1d66('0x1f')](function(_0x115229){if(_0x115229){return _0x115229[_0x1d66('0x49')](_0x130fb6['body'][_0x1d66('0x46')],_[_0x1d66('0x45')](_0x130fb6[_0x1d66('0x42')],[_0x1d66('0x46'),'id'])||{});}})[_0x1d66('0x1f')](respondWithResult(_0x2691b0,null))['catch'](handleError(_0x2691b0,null));};exports['getActions']=function(_0x21d86c,_0x57c822,_0xb5f6d4){var _0x19ebcc={};var _0x487ae4={};var _0x1174f;var _0x4cb785;return db[_0x1d66('0x25')]['findOne']({'where':{'id':_0x21d86c['params']['id']}})[_0x1d66('0x1f')](handleEntityNotFound(_0x57c822,null))[_0x1d66('0x1f')](function(_0x2b0886){if(_0x2b0886){_0x1174f=_0x2b0886;_0x487ae4[_0x1d66('0x2e')]=_[_0x1d66('0x2b')](db['Action'][_0x1d66('0x26')]);_0x487ae4[_0x1d66('0x2a')]=_[_0x1d66('0x2b')](_0x21d86c[_0x1d66('0x2a')]);_0x487ae4[_0x1d66('0x2c')]=_[_0x1d66('0x2d')](_0x487ae4[_0x1d66('0x2e')],_0x487ae4[_0x1d66('0x2a')]);_0x19ebcc['attributes']=_[_0x1d66('0x2d')](_0x487ae4[_0x1d66('0x2e')],qs[_0x1d66('0x30')](_0x21d86c[_0x1d66('0x2a')][_0x1d66('0x30')]));_0x19ebcc['attributes']=_0x19ebcc['attributes'][_0x1d66('0x31')]?_0x19ebcc['attributes']:_0x487ae4[_0x1d66('0x2e')];_0x19ebcc['order']=qs[_0x1d66('0x34')](_0x21d86c['query']['sort']);_0x19ebcc['where']=qs[_0x1d66('0x2c')](_[_0x1d66('0x36')](_0x21d86c[_0x1d66('0x2a')],_0x487ae4[_0x1d66('0x2c')]));if(_0x21d86c[_0x1d66('0x2a')][_0x1d66('0x37')]){_0x19ebcc[_0x1d66('0x35')]=_[_0x1d66('0x39')](_0x19ebcc[_0x1d66('0x35')],{'$or':_[_0x1d66('0x24')](_0x19ebcc[_0x1d66('0x2f')],function(_0x554f41){var _0x2eada5={};_0x2eada5[_0x554f41]={'$like':'%'+_0x21d86c[_0x1d66('0x2a')][_0x1d66('0x37')]+'%'};return _0x2eada5;})});}_0x19ebcc=_[_0x1d66('0x39')]({},_0x19ebcc,_0x21d86c[_0x1d66('0x3f')]);return _0x1174f[_0x1d66('0x4b')](_0x19ebcc);}})['then'](function(_0x1cc96f){if(_0x1cc96f){_0x4cb785=_0x1cc96f[_0x1d66('0x31')];if(!_0x21d86c['query'][_0x1d66('0x48')](_0x1d66('0x32'))){_0x19ebcc['limit']=qs[_0x1d66('0x1b')](_0x21d86c['query'][_0x1d66('0x1b')]);_0x19ebcc[_0x1d66('0x1a')]=qs[_0x1d66('0x1a')](_0x21d86c[_0x1d66('0x2a')][_0x1d66('0x1a')]);}return _0x1174f['getActions'](_0x19ebcc);}})['then'](function(_0x3fc0c5){if(_0x3fc0c5){return _0x3fc0c5?{'count':_0x4cb785,'rows':_0x3fc0c5}:null;}})[_0x1d66('0x1f')](respondWithResult(_0x57c822,null))['catch'](handleError(_0x57c822,null));};