Built motion from commit (unavailable).|2.4.17
[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 _0xc698=['desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','count','offset','set','Content-Range','json','apply','save','update','then','destroy','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','Automation','includeAll','findAll','rows','catch','show','params','intersection','include','options','create','body','find','addConditions','Condition','ids','getConditions','order','addActions','Action','omit','getActions','findOne','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','lodash','squel','crypto'];(function(_0x2ba908,_0x545b8a){var _0x1d0e08=function(_0x52b519){while(--_0x52b519){_0x2ba908['push'](_0x2ba908['shift']());}};_0x1d0e08(++_0x545b8a);}(_0xc698,0x19f));var _0x8c69=function(_0x3f5dca,_0x59472b){_0x3f5dca=_0x3f5dca-0x0;var _0x5b833a=_0xc698[_0x3f5dca];return _0x5b833a;};'use strict';var pdf=require(_0x8c69('0x0'));var emlformat=require(_0x8c69('0x1'));var rimraf=require(_0x8c69('0x2'));var zipdir=require(_0x8c69('0x3'));var jsonpatch=require(_0x8c69('0x4'));var rp=require(_0x8c69('0x5'));var moment=require(_0x8c69('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x8c69('0x7'));var util=require(_0x8c69('0x8'));var path=require(_0x8c69('0x9'));var sox=require(_0x8c69('0xa'));var csv=require('to-csv');var ejs=require(_0x8c69('0xb'));var fs=require('fs');var _=require(_0x8c69('0xc'));var squel=require(_0x8c69('0xd'));var crypto=require(_0x8c69('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x8c69('0xf'));var toCsv=require(_0x8c69('0x10'));var querystring=require(_0x8c69('0x11'));var Papa=require(_0x8c69('0x12'));var Redis=require(_0x8c69('0x13'));var authService=require(_0x8c69('0x14'));var qs=require(_0x8c69('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8c69('0x16'));var logger=require(_0x8c69('0x17'))(_0x8c69('0x18'));var utils=require(_0x8c69('0x19'));var config=require('../../config/environment');var db=require(_0x8c69('0x1a'))['db'];function respondWithStatusCode(_0x15f2ea,_0x4809a5){_0x4809a5=_0x4809a5||0xcc;return function(_0x43418a){if(_0x43418a){return _0x15f2ea[_0x8c69('0x1b')](_0x4809a5);}return _0x15f2ea['status'](_0x4809a5)[_0x8c69('0x1c')]();};}function respondWithResult(_0x8b3612,_0x2b502a){_0x2b502a=_0x2b502a||0xc8;return function(_0x528a24){if(_0x528a24){return _0x8b3612[_0x8c69('0x1d')](_0x2b502a)['json'](_0x528a24);}};}function respondWithFilteredResult(_0x2c7842,_0x54cf51){return function(_0x18343d){if(_0x18343d){var _0x138dc2=_0x18343d[_0x8c69('0x1e')],_0x5de23d=_0x54cf51[_0x8c69('0x1f')],_0xb9e9a6=_0x54cf51['offset']+_0x54cf51['limit'],_0x1cbb80;if(_0xb9e9a6>=_0x138dc2){_0xb9e9a6=_0x138dc2;_0x1cbb80=0xc8;}else{_0x1cbb80=0xce;}_0x2c7842[_0x8c69('0x1d')](_0x1cbb80);return _0x2c7842[_0x8c69('0x20')](_0x8c69('0x21'),_0x5de23d+'-'+_0xb9e9a6+'/'+_0x138dc2)[_0x8c69('0x22')](_0x18343d);}return null;};}function patchUpdates(_0x5c7d17){return function(_0x298df7){try{jsonpatch[_0x8c69('0x23')](_0x298df7,_0x5c7d17,!![]);}catch(_0xb29bd8){return BPromise['reject'](_0xb29bd8);}return _0x298df7[_0x8c69('0x24')]();};}function saveUpdates(_0x25cc18,_0x1ed13c){return function(_0x558404){if(_0x558404){return _0x558404[_0x8c69('0x25')](_0x25cc18)[_0x8c69('0x26')](function(_0x58fd73){return _0x58fd73;});}return null;};}function removeEntity(_0x410453,_0x12fc7c){return function(_0x37dc76){if(_0x37dc76){return _0x37dc76[_0x8c69('0x27')]()[_0x8c69('0x26')](function(){_0x410453[_0x8c69('0x1d')](0xcc)[_0x8c69('0x1c')]();});}};}function handleEntityNotFound(_0x138cbf,_0x25892a){return function(_0x292f90){if(!_0x292f90){_0x138cbf[_0x8c69('0x1b')](0x194);}return _0x292f90;};}function handleError(_0x4f7331,_0x32039a){_0x32039a=_0x32039a||0x1f4;return function(_0x3f0820){logger['error'](_0x3f0820['stack']);if(_0x3f0820[_0x8c69('0x28')]){delete _0x3f0820[_0x8c69('0x28')];}_0x4f7331['status'](_0x32039a)['send'](_0x3f0820);};}exports[_0x8c69('0x29')]=function(_0x255b22,_0x2bea31){var _0x536e21={},_0x2bd3f9={},_0x32d059={'count':0x0,'rows':[]};var _0x3656b8=_[_0x8c69('0x2a')](db['Automation'][_0x8c69('0x2b')],function(_0x1143ab){return{'name':_0x1143ab[_0x8c69('0x2c')],'type':_0x1143ab[_0x8c69('0x2d')][_0x8c69('0x2e')]};});_0x2bd3f9[_0x8c69('0x2f')]=_[_0x8c69('0x2a')](_0x3656b8,'name');_0x2bd3f9[_0x8c69('0x30')]=_[_0x8c69('0x31')](_0x255b22[_0x8c69('0x30')]);_0x2bd3f9[_0x8c69('0x32')]=_['intersection'](_0x2bd3f9[_0x8c69('0x2f')],_0x2bd3f9[_0x8c69('0x30')]);_0x536e21[_0x8c69('0x33')]=_['intersection'](_0x2bd3f9[_0x8c69('0x2f')],qs[_0x8c69('0x34')](_0x255b22[_0x8c69('0x30')][_0x8c69('0x34')]));_0x536e21[_0x8c69('0x33')]=_0x536e21[_0x8c69('0x33')][_0x8c69('0x35')]?_0x536e21[_0x8c69('0x33')]:_0x2bd3f9['model'];if(!_0x255b22[_0x8c69('0x30')][_0x8c69('0x36')](_0x8c69('0x37'))){_0x536e21[_0x8c69('0x38')]=qs[_0x8c69('0x38')](_0x255b22[_0x8c69('0x30')][_0x8c69('0x38')]);_0x536e21['offset']=qs[_0x8c69('0x1f')](_0x255b22[_0x8c69('0x30')][_0x8c69('0x1f')]);}_0x536e21['order']=qs['sort'](_0x255b22[_0x8c69('0x30')][_0x8c69('0x39')]);_0x536e21[_0x8c69('0x3a')]=qs['filters'](_[_0x8c69('0x3b')](_0x255b22[_0x8c69('0x30')],_0x2bd3f9[_0x8c69('0x32')]));if(_0x255b22[_0x8c69('0x30')][_0x8c69('0x3c')]){_0x536e21[_0x8c69('0x3a')]=_[_0x8c69('0x3d')](_0x536e21['where'],{'$or':_[_0x8c69('0x2a')](_0x3656b8,function(_0x5d539e){if(_0x5d539e[_0x8c69('0x2d')]!==_0x8c69('0x3e')){var _0x2d2440={};_0x2d2440[_0x5d539e['name']]={'$like':'%'+_0x255b22[_0x8c69('0x30')][_0x8c69('0x3c')]+'%'};return _0x2d2440;}})});}_0x536e21=_[_0x8c69('0x3d')]({},_0x536e21,_0x255b22['options']);var _0x4aa8f1={'where':_0x536e21[_0x8c69('0x3a')]};return db[_0x8c69('0x3f')][_0x8c69('0x1e')](_0x4aa8f1)[_0x8c69('0x26')](function(_0x58c2c4){_0x32d059[_0x8c69('0x1e')]=_0x58c2c4;if(_0x255b22[_0x8c69('0x30')][_0x8c69('0x40')]){_0x536e21['include']=[{'all':!![]}];}return db['Automation'][_0x8c69('0x41')](_0x536e21);})[_0x8c69('0x26')](function(_0x5aee14){_0x32d059[_0x8c69('0x42')]=_0x5aee14;return _0x32d059;})['then'](respondWithFilteredResult(_0x2bea31,_0x536e21))[_0x8c69('0x43')](handleError(_0x2bea31,null));};exports[_0x8c69('0x44')]=function(_0x3bd8d8,_0x50b88f){var _0x17b95d={'raw':![],'where':{'id':_0x3bd8d8[_0x8c69('0x45')]['id']}},_0x24e497={};_0x24e497[_0x8c69('0x2f')]=_[_0x8c69('0x31')](db['Automation'][_0x8c69('0x2b')]);_0x24e497[_0x8c69('0x30')]=_[_0x8c69('0x31')](_0x3bd8d8[_0x8c69('0x30')]);_0x24e497['filters']=_[_0x8c69('0x46')](_0x24e497[_0x8c69('0x2f')],_0x24e497['query']);_0x17b95d[_0x8c69('0x33')]=_[_0x8c69('0x46')](_0x24e497['model'],qs[_0x8c69('0x34')](_0x3bd8d8[_0x8c69('0x30')][_0x8c69('0x34')]));_0x17b95d[_0x8c69('0x33')]=_0x17b95d[_0x8c69('0x33')][_0x8c69('0x35')]?_0x17b95d[_0x8c69('0x33')]:_0x24e497[_0x8c69('0x2f')];if(_0x3bd8d8[_0x8c69('0x30')][_0x8c69('0x40')]){_0x17b95d[_0x8c69('0x47')]=[{'all':!![]}];}_0x17b95d=_[_0x8c69('0x3d')]({},_0x17b95d,_0x3bd8d8[_0x8c69('0x48')]);return db[_0x8c69('0x3f')]['find'](_0x17b95d)[_0x8c69('0x26')](handleEntityNotFound(_0x50b88f,null))['then'](respondWithResult(_0x50b88f,null))[_0x8c69('0x43')](handleError(_0x50b88f,null));};exports[_0x8c69('0x49')]=function(_0x832a81,_0x590268){return db[_0x8c69('0x3f')]['create'](_0x832a81[_0x8c69('0x4a')],{})['then'](respondWithResult(_0x590268,0xc9))['catch'](handleError(_0x590268,null));};exports[_0x8c69('0x25')]=function(_0x3fa49d,_0x59c1a2){if(_0x3fa49d['body']['id']){delete _0x3fa49d[_0x8c69('0x4a')]['id'];}return db[_0x8c69('0x3f')][_0x8c69('0x4b')]({'where':{'id':_0x3fa49d[_0x8c69('0x45')]['id']}})[_0x8c69('0x26')](handleEntityNotFound(_0x59c1a2,null))[_0x8c69('0x26')](saveUpdates(_0x3fa49d[_0x8c69('0x4a')],null))[_0x8c69('0x26')](respondWithResult(_0x59c1a2,null))[_0x8c69('0x43')](handleError(_0x59c1a2,null));};exports['destroy']=function(_0x2f9ddf,_0x3cb502){return db['Automation'][_0x8c69('0x4b')]({'where':{'id':_0x2f9ddf['params']['id']}})[_0x8c69('0x26')](handleEntityNotFound(_0x3cb502,null))[_0x8c69('0x26')](removeEntity(_0x3cb502,null))[_0x8c69('0x43')](handleError(_0x3cb502,null));};exports[_0x8c69('0x4c')]=function(_0xf0ba16,_0x2306b6,_0x30d0cf){return db[_0x8c69('0x4d')][_0x8c69('0x4b')]({'where':{'id':_0xf0ba16[_0x8c69('0x45')]['id']}})[_0x8c69('0x26')](handleEntityNotFound(_0x2306b6,null))[_0x8c69('0x26')](function(_0x93a39a){if(_0x93a39a){return _0x93a39a[_0x8c69('0x4c')](_0xf0ba16[_0x8c69('0x4a')][_0x8c69('0x4e')],_['omit'](_0xf0ba16['body'],[_0x8c69('0x4e'),'id'])||{});}})[_0x8c69('0x26')](respondWithResult(_0x2306b6,null))[_0x8c69('0x43')](handleError(_0x2306b6,null));};exports[_0x8c69('0x4f')]=function(_0x1c737f,_0x1cedf2,_0x3e37b5){var _0x15b606={};var _0x4068f2={};var _0x1dd9d1;var _0x4e111b;return db[_0x8c69('0x3f')]['findOne']({'where':{'id':_0x1c737f[_0x8c69('0x45')]['id']}})[_0x8c69('0x26')](handleEntityNotFound(_0x1cedf2,null))[_0x8c69('0x26')](function(_0x3710b4){if(_0x3710b4){_0x1dd9d1=_0x3710b4;_0x4068f2['model']=_['keys'](db[_0x8c69('0x4d')]['rawAttributes']);_0x4068f2[_0x8c69('0x30')]=_[_0x8c69('0x31')](_0x1c737f[_0x8c69('0x30')]);_0x4068f2[_0x8c69('0x32')]=_[_0x8c69('0x46')](_0x4068f2[_0x8c69('0x2f')],_0x4068f2[_0x8c69('0x30')]);_0x15b606[_0x8c69('0x33')]=_[_0x8c69('0x46')](_0x4068f2[_0x8c69('0x2f')],qs['fields'](_0x1c737f[_0x8c69('0x30')][_0x8c69('0x34')]));_0x15b606[_0x8c69('0x33')]=_0x15b606[_0x8c69('0x33')][_0x8c69('0x35')]?_0x15b606[_0x8c69('0x33')]:_0x4068f2['model'];_0x15b606[_0x8c69('0x50')]=qs[_0x8c69('0x39')](_0x1c737f['query'][_0x8c69('0x39')]);_0x15b606[_0x8c69('0x3a')]=qs[_0x8c69('0x32')](_['pick'](_0x1c737f[_0x8c69('0x30')],_0x4068f2[_0x8c69('0x32')]));if(_0x1c737f['query'][_0x8c69('0x3c')]){_0x15b606[_0x8c69('0x3a')]=_[_0x8c69('0x3d')](_0x15b606[_0x8c69('0x3a')],{'$or':_['map'](_0x15b606[_0x8c69('0x33')],function(_0x57e383){var _0x2950f7={};_0x2950f7[_0x57e383]={'$like':'%'+_0x1c737f['query'][_0x8c69('0x3c')]+'%'};return _0x2950f7;})});}_0x15b606=_['merge']({},_0x15b606,_0x1c737f['options']);return _0x1dd9d1['getConditions'](_0x15b606);}})[_0x8c69('0x26')](function(_0x3f7af3){if(_0x3f7af3){_0x4e111b=_0x3f7af3[_0x8c69('0x35')];if(!_0x1c737f[_0x8c69('0x30')]['hasOwnProperty'](_0x8c69('0x37'))){_0x15b606[_0x8c69('0x38')]=qs['limit'](_0x1c737f['query'][_0x8c69('0x38')]);_0x15b606['offset']=qs[_0x8c69('0x1f')](_0x1c737f[_0x8c69('0x30')][_0x8c69('0x1f')]);}return _0x1dd9d1[_0x8c69('0x4f')](_0x15b606);}})[_0x8c69('0x26')](function(_0x254816){if(_0x254816){return _0x254816?{'count':_0x4e111b,'rows':_0x254816}:null;}})[_0x8c69('0x26')](respondWithResult(_0x1cedf2,null))[_0x8c69('0x43')](handleError(_0x1cedf2,null));};exports[_0x8c69('0x51')]=function(_0x4f3834,_0x14bbae,_0x1e5b3d){return db[_0x8c69('0x52')][_0x8c69('0x4b')]({'where':{'id':_0x4f3834['params']['id']}})[_0x8c69('0x26')](handleEntityNotFound(_0x14bbae,null))[_0x8c69('0x26')](function(_0x52edc7){if(_0x52edc7){return _0x52edc7[_0x8c69('0x51')](_0x4f3834[_0x8c69('0x4a')][_0x8c69('0x4e')],_[_0x8c69('0x53')](_0x4f3834[_0x8c69('0x4a')],[_0x8c69('0x4e'),'id'])||{});}})[_0x8c69('0x26')](respondWithResult(_0x14bbae,null))['catch'](handleError(_0x14bbae,null));};exports[_0x8c69('0x54')]=function(_0x9f7919,_0x22af3e,_0x4e8cf0){var _0x2fe4ee={};var _0x161011={};var _0xc815d;var _0x36af8b;return db['Automation'][_0x8c69('0x55')]({'where':{'id':_0x9f7919[_0x8c69('0x45')]['id']}})['then'](handleEntityNotFound(_0x22af3e,null))[_0x8c69('0x26')](function(_0x4bb2ac){if(_0x4bb2ac){_0xc815d=_0x4bb2ac;_0x161011[_0x8c69('0x2f')]=_[_0x8c69('0x31')](db[_0x8c69('0x52')][_0x8c69('0x2b')]);_0x161011[_0x8c69('0x30')]=_['keys'](_0x9f7919[_0x8c69('0x30')]);_0x161011[_0x8c69('0x32')]=_[_0x8c69('0x46')](_0x161011['model'],_0x161011[_0x8c69('0x30')]);_0x2fe4ee[_0x8c69('0x33')]=_[_0x8c69('0x46')](_0x161011[_0x8c69('0x2f')],qs[_0x8c69('0x34')](_0x9f7919[_0x8c69('0x30')][_0x8c69('0x34')]));_0x2fe4ee[_0x8c69('0x33')]=_0x2fe4ee[_0x8c69('0x33')][_0x8c69('0x35')]?_0x2fe4ee['attributes']:_0x161011[_0x8c69('0x2f')];_0x2fe4ee[_0x8c69('0x50')]=qs[_0x8c69('0x39')](_0x9f7919['query'][_0x8c69('0x39')]);_0x2fe4ee['where']=qs['filters'](_[_0x8c69('0x3b')](_0x9f7919[_0x8c69('0x30')],_0x161011[_0x8c69('0x32')]));if(_0x9f7919['query'][_0x8c69('0x3c')]){_0x2fe4ee[_0x8c69('0x3a')]=_[_0x8c69('0x3d')](_0x2fe4ee[_0x8c69('0x3a')],{'$or':_['map'](_0x2fe4ee['attributes'],function(_0x4e0999){var _0x47a71f={};_0x47a71f[_0x4e0999]={'$like':'%'+_0x9f7919[_0x8c69('0x30')][_0x8c69('0x3c')]+'%'};return _0x47a71f;})});}_0x2fe4ee=_['merge']({},_0x2fe4ee,_0x9f7919[_0x8c69('0x48')]);return _0xc815d['getActions'](_0x2fe4ee);}})[_0x8c69('0x26')](function(_0x1d2022){if(_0x1d2022){_0x36af8b=_0x1d2022['length'];if(!_0x9f7919[_0x8c69('0x30')][_0x8c69('0x36')](_0x8c69('0x37'))){_0x2fe4ee[_0x8c69('0x38')]=qs[_0x8c69('0x38')](_0x9f7919[_0x8c69('0x30')]['limit']);_0x2fe4ee[_0x8c69('0x1f')]=qs[_0x8c69('0x1f')](_0x9f7919['query'][_0x8c69('0x1f')]);}return _0xc815d[_0x8c69('0x54')](_0x2fe4ee);}})[_0x8c69('0x26')](function(_0x524401){if(_0x524401){return _0x524401?{'count':_0x36af8b,'rows':_0x524401}:null;}})[_0x8c69('0x26')](respondWithResult(_0x22af3e,null))[_0x8c69('0x43')](handleError(_0x22af3e,null));};