d0038d81abae49876c03643f036fd6694c710064
[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 _0x78e9=['order','getActions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','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/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','stack','name','send','map','rawAttributes','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','merge','VIRTUAL','Automation','includeAll','include','catch','show','params','options','find','create','body','addConditions','Condition','ids','omit','getConditions','findOne','filter','nolimit','addActions'];(function(_0x2cbc47,_0x2daf86){var _0x2b429e=function(_0x2e5582){while(--_0x2e5582){_0x2cbc47['push'](_0x2cbc47['shift']());}};_0x2b429e(++_0x2daf86);}(_0x78e9,0x19c));var _0x978e=function(_0x383643,_0x9202f8){_0x383643=_0x383643-0x0;var _0xdb0467=_0x78e9[_0x383643];return _0xdb0467;};'use strict';var emlformat=require(_0x978e('0x0'));var rimraf=require(_0x978e('0x1'));var zipdir=require(_0x978e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x978e('0x3'));var moment=require(_0x978e('0x4'));var BPromise=require(_0x978e('0x5'));var Mustache=require(_0x978e('0x6'));var util=require(_0x978e('0x7'));var path=require('path');var sox=require(_0x978e('0x8'));var csv=require('to-csv');var ejs=require(_0x978e('0x9'));var fs=require('fs');var fs_extra=require(_0x978e('0xa'));var _=require(_0x978e('0xb'));var squel=require(_0x978e('0xc'));var crypto=require(_0x978e('0xd'));var jsforce=require(_0x978e('0xe'));var deskjs=require(_0x978e('0xf'));var toCsv=require(_0x978e('0x10'));var querystring=require(_0x978e('0x11'));var Papa=require(_0x978e('0x12'));var Redis=require(_0x978e('0x13'));var authService=require(_0x978e('0x14'));var qs=require(_0x978e('0x15'));var as=require(_0x978e('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x978e('0x17'))('api');var utils=require(_0x978e('0x18'));var config=require(_0x978e('0x19'));var licenseUtil=require(_0x978e('0x1a'));var db=require(_0x978e('0x1b'))['db'];function respondWithStatusCode(_0x176f42,_0x43fd42){_0x43fd42=_0x43fd42||0xcc;return function(_0xc349c7){if(_0xc349c7){return _0x176f42['sendStatus'](_0x43fd42);}return _0x176f42[_0x978e('0x1c')](_0x43fd42)[_0x978e('0x1d')]();};}function respondWithResult(_0x365f32,_0x2dc69f){_0x2dc69f=_0x2dc69f||0xc8;return function(_0x403b5b){if(_0x403b5b){return _0x365f32[_0x978e('0x1c')](_0x2dc69f)[_0x978e('0x1e')](_0x403b5b);}};}function respondWithFilteredResult(_0x3cab67,_0x104e5f){return function(_0x569c52){if(_0x569c52){var _0x28f20d=typeof _0x104e5f[_0x978e('0x1f')]===_0x978e('0x20')&&typeof _0x104e5f[_0x978e('0x21')]===_0x978e('0x20');var _0x26cebc=_0x569c52['count'];var _0x339fca=_0x28f20d?0x0:_0x104e5f['offset'];var _0x43f14a=_0x28f20d?_0x569c52[_0x978e('0x22')]:_0x104e5f['offset']+_0x104e5f[_0x978e('0x21')];var _0x413907;if(_0x43f14a>=_0x26cebc){_0x43f14a=_0x26cebc;_0x413907=0xc8;}else{_0x413907=0xce;}_0x3cab67[_0x978e('0x1c')](_0x413907);return _0x3cab67[_0x978e('0x23')]('Content-Range',_0x339fca+'-'+_0x43f14a+'/'+_0x26cebc)[_0x978e('0x1e')](_0x569c52);}return null;};}function patchUpdates(_0x3816b2){return function(_0x491a70){try{jsonpatch[_0x978e('0x24')](_0x491a70,_0x3816b2,!![]);}catch(_0x194613){return BPromise[_0x978e('0x25')](_0x194613);}return _0x491a70[_0x978e('0x26')]();};}function saveUpdates(_0x2d966c,_0x45520c){return function(_0x3b6c02){if(_0x3b6c02){return _0x3b6c02[_0x978e('0x27')](_0x2d966c)['then'](function(_0x53afce){return _0x53afce;});}return null;};}function removeEntity(_0x3a40fc,_0x6a7432){return function(_0x31b60f){if(_0x31b60f){return _0x31b60f['destroy']()[_0x978e('0x28')](function(){_0x3a40fc[_0x978e('0x1c')](0xcc)[_0x978e('0x1d')]();});}};}function handleEntityNotFound(_0x2cda5a,_0x5e6fe4){return function(_0x4cf5b0){if(!_0x4cf5b0){_0x2cda5a['sendStatus'](0x194);}return _0x4cf5b0;};}function handleError(_0x4a3550,_0x1bb55c){_0x1bb55c=_0x1bb55c||0x1f4;return function(_0x11c021){logger['error'](_0x11c021[_0x978e('0x29')]);if(_0x11c021[_0x978e('0x2a')]){delete _0x11c021['name'];}_0x4a3550['status'](_0x1bb55c)[_0x978e('0x2b')](_0x11c021);};}exports['index']=function(_0x3438c4,_0x495018){var _0x2e655={},_0x4971f3={},_0x356529={'count':0x0,'rows':[]};var _0x1ba755=_[_0x978e('0x2c')](db['Automation'][_0x978e('0x2d')],function(_0x284ca0){return{'name':_0x284ca0['fieldName'],'type':_0x284ca0['type'][_0x978e('0x2e')]};});_0x4971f3[_0x978e('0x2f')]=_[_0x978e('0x2c')](_0x1ba755,_0x978e('0x2a'));_0x4971f3['query']=_[_0x978e('0x30')](_0x3438c4[_0x978e('0x31')]);_0x4971f3['filters']=_[_0x978e('0x32')](_0x4971f3[_0x978e('0x2f')],_0x4971f3[_0x978e('0x31')]);_0x2e655[_0x978e('0x33')]=_[_0x978e('0x32')](_0x4971f3[_0x978e('0x2f')],qs[_0x978e('0x34')](_0x3438c4[_0x978e('0x31')][_0x978e('0x34')]));_0x2e655[_0x978e('0x33')]=_0x2e655['attributes'][_0x978e('0x35')]?_0x2e655[_0x978e('0x33')]:_0x4971f3[_0x978e('0x2f')];if(!_0x3438c4['query'][_0x978e('0x36')]('nolimit')){_0x2e655[_0x978e('0x21')]=qs['limit'](_0x3438c4['query'][_0x978e('0x21')]);_0x2e655['offset']=qs[_0x978e('0x1f')](_0x3438c4[_0x978e('0x31')][_0x978e('0x1f')]);}_0x2e655['order']=qs[_0x978e('0x37')](_0x3438c4[_0x978e('0x31')]['sort']);_0x2e655[_0x978e('0x38')]=qs[_0x978e('0x39')](_[_0x978e('0x3a')](_0x3438c4[_0x978e('0x31')],_0x4971f3[_0x978e('0x39')]),_0x1ba755);if(_0x3438c4[_0x978e('0x31')]['filter']){_0x2e655['where']=_[_0x978e('0x3b')](_0x2e655[_0x978e('0x38')],{'$or':_[_0x978e('0x2c')](_0x1ba755,function(_0x2d3da6){if(_0x2d3da6['type']!==_0x978e('0x3c')){var _0x42c721={};_0x42c721[_0x2d3da6[_0x978e('0x2a')]]={'$like':'%'+_0x3438c4[_0x978e('0x31')]['filter']+'%'};return _0x42c721;}})});}_0x2e655=_[_0x978e('0x3b')]({},_0x2e655,_0x3438c4['options']);var _0x45e56a={'where':_0x2e655['where']};return db[_0x978e('0x3d')][_0x978e('0x22')](_0x45e56a)[_0x978e('0x28')](function(_0x160052){_0x356529[_0x978e('0x22')]=_0x160052;if(_0x3438c4[_0x978e('0x31')][_0x978e('0x3e')]){_0x2e655[_0x978e('0x3f')]=[{'all':!![]}];}return db['Automation']['findAll'](_0x2e655);})[_0x978e('0x28')](function(_0x1909db){_0x356529['rows']=_0x1909db;return _0x356529;})[_0x978e('0x28')](respondWithFilteredResult(_0x495018,_0x2e655))[_0x978e('0x40')](handleError(_0x495018,null));};exports[_0x978e('0x41')]=function(_0x5364f7,_0x14fd49){var _0x1001a3={'raw':![],'where':{'id':_0x5364f7[_0x978e('0x42')]['id']}},_0x4259fd={};_0x4259fd[_0x978e('0x2f')]=_[_0x978e('0x30')](db['Automation'][_0x978e('0x2d')]);_0x4259fd['query']=_[_0x978e('0x30')](_0x5364f7[_0x978e('0x31')]);_0x4259fd[_0x978e('0x39')]=_[_0x978e('0x32')](_0x4259fd['model'],_0x4259fd[_0x978e('0x31')]);_0x1001a3[_0x978e('0x33')]=_[_0x978e('0x32')](_0x4259fd['model'],qs[_0x978e('0x34')](_0x5364f7[_0x978e('0x31')][_0x978e('0x34')]));_0x1001a3['attributes']=_0x1001a3[_0x978e('0x33')][_0x978e('0x35')]?_0x1001a3[_0x978e('0x33')]:_0x4259fd[_0x978e('0x2f')];if(_0x5364f7[_0x978e('0x31')][_0x978e('0x3e')]){_0x1001a3[_0x978e('0x3f')]=[{'all':!![]}];}_0x1001a3=_[_0x978e('0x3b')]({},_0x1001a3,_0x5364f7[_0x978e('0x43')]);return db[_0x978e('0x3d')][_0x978e('0x44')](_0x1001a3)[_0x978e('0x28')](handleEntityNotFound(_0x14fd49,null))['then'](respondWithResult(_0x14fd49,null))[_0x978e('0x40')](handleError(_0x14fd49,null));};exports[_0x978e('0x45')]=function(_0x4d3555,_0xc8623e){return db[_0x978e('0x3d')][_0x978e('0x45')](_0x4d3555[_0x978e('0x46')],{})[_0x978e('0x28')](respondWithResult(_0xc8623e,0xc9))[_0x978e('0x40')](handleError(_0xc8623e,null));};exports[_0x978e('0x27')]=function(_0x28e918,_0x4706ab){if(_0x28e918[_0x978e('0x46')]['id']){delete _0x28e918[_0x978e('0x46')]['id'];}return db[_0x978e('0x3d')]['find']({'where':{'id':_0x28e918[_0x978e('0x42')]['id']}})[_0x978e('0x28')](handleEntityNotFound(_0x4706ab,null))['then'](saveUpdates(_0x28e918[_0x978e('0x46')],null))[_0x978e('0x28')](respondWithResult(_0x4706ab,null))[_0x978e('0x40')](handleError(_0x4706ab,null));};exports['destroy']=function(_0x3c6732,_0x4bf823){return db['Automation']['find']({'where':{'id':_0x3c6732[_0x978e('0x42')]['id']}})['then'](handleEntityNotFound(_0x4bf823,null))[_0x978e('0x28')](removeEntity(_0x4bf823,null))[_0x978e('0x40')](handleError(_0x4bf823,null));};exports[_0x978e('0x47')]=function(_0x2f1fb6,_0x259370,_0x3d29f0){return db[_0x978e('0x48')][_0x978e('0x44')]({'where':{'id':_0x2f1fb6[_0x978e('0x42')]['id']}})[_0x978e('0x28')](handleEntityNotFound(_0x259370,null))[_0x978e('0x28')](function(_0x1fe633){if(_0x1fe633){return _0x1fe633[_0x978e('0x47')](_0x2f1fb6['body'][_0x978e('0x49')],_[_0x978e('0x4a')](_0x2f1fb6['body'],[_0x978e('0x49'),'id'])||{});}})['then'](respondWithResult(_0x259370,null))[_0x978e('0x40')](handleError(_0x259370,null));};exports[_0x978e('0x4b')]=function(_0x3f1d67,_0x298ae8,_0x105aa8){var _0x2ff7db={};var _0x57dd9f={};var _0x5ad6ba;var _0x4e6706;return db[_0x978e('0x3d')][_0x978e('0x4c')]({'where':{'id':_0x3f1d67[_0x978e('0x42')]['id']}})[_0x978e('0x28')](handleEntityNotFound(_0x298ae8,null))[_0x978e('0x28')](function(_0x32e509){if(_0x32e509){_0x5ad6ba=_0x32e509;_0x57dd9f[_0x978e('0x2f')]=_[_0x978e('0x30')](db[_0x978e('0x48')][_0x978e('0x2d')]);_0x57dd9f[_0x978e('0x31')]=_[_0x978e('0x30')](_0x3f1d67['query']);_0x57dd9f[_0x978e('0x39')]=_[_0x978e('0x32')](_0x57dd9f[_0x978e('0x2f')],_0x57dd9f[_0x978e('0x31')]);_0x2ff7db[_0x978e('0x33')]=_[_0x978e('0x32')](_0x57dd9f[_0x978e('0x2f')],qs[_0x978e('0x34')](_0x3f1d67[_0x978e('0x31')][_0x978e('0x34')]));_0x2ff7db[_0x978e('0x33')]=_0x2ff7db['attributes'][_0x978e('0x35')]?_0x2ff7db['attributes']:_0x57dd9f[_0x978e('0x2f')];_0x2ff7db['order']=qs[_0x978e('0x37')](_0x3f1d67[_0x978e('0x31')][_0x978e('0x37')]);_0x2ff7db[_0x978e('0x38')]=qs[_0x978e('0x39')](_['pick'](_0x3f1d67[_0x978e('0x31')],_0x57dd9f[_0x978e('0x39')]));if(_0x3f1d67[_0x978e('0x31')][_0x978e('0x4d')]){_0x2ff7db[_0x978e('0x38')]=_[_0x978e('0x3b')](_0x2ff7db['where'],{'$or':_[_0x978e('0x2c')](_0x2ff7db[_0x978e('0x33')],function(_0xef707f){var _0x74a7ed={};_0x74a7ed[_0xef707f]={'$like':'%'+_0x3f1d67[_0x978e('0x31')][_0x978e('0x4d')]+'%'};return _0x74a7ed;})});}_0x2ff7db=_[_0x978e('0x3b')]({},_0x2ff7db,_0x3f1d67[_0x978e('0x43')]);return _0x5ad6ba[_0x978e('0x4b')](_0x2ff7db);}})[_0x978e('0x28')](function(_0xe996eb){if(_0xe996eb){_0x4e6706=_0xe996eb['length'];if(!_0x3f1d67['query'][_0x978e('0x36')](_0x978e('0x4e'))){_0x2ff7db['limit']=qs[_0x978e('0x21')](_0x3f1d67[_0x978e('0x31')][_0x978e('0x21')]);_0x2ff7db[_0x978e('0x1f')]=qs[_0x978e('0x1f')](_0x3f1d67[_0x978e('0x31')][_0x978e('0x1f')]);}return _0x5ad6ba[_0x978e('0x4b')](_0x2ff7db);}})[_0x978e('0x28')](function(_0x2f0bb3){if(_0x2f0bb3){return _0x2f0bb3?{'count':_0x4e6706,'rows':_0x2f0bb3}:null;}})[_0x978e('0x28')](respondWithResult(_0x298ae8,null))[_0x978e('0x40')](handleError(_0x298ae8,null));};exports[_0x978e('0x4f')]=function(_0xefbe2b,_0x2d50ec,_0x58d312){return db['Action'][_0x978e('0x44')]({'where':{'id':_0xefbe2b['params']['id']}})[_0x978e('0x28')](handleEntityNotFound(_0x2d50ec,null))['then'](function(_0xe0cee){if(_0xe0cee){return _0xe0cee['addActions'](_0xefbe2b[_0x978e('0x46')][_0x978e('0x49')],_[_0x978e('0x4a')](_0xefbe2b['body'],[_0x978e('0x49'),'id'])||{});}})[_0x978e('0x28')](respondWithResult(_0x2d50ec,null))[_0x978e('0x40')](handleError(_0x2d50ec,null));};exports['getActions']=function(_0x5425f5,_0x3d0142,_0x586d64){var _0x190ab5={};var _0xff704e={};var _0x2f6478;var _0x1d6ec4;return db[_0x978e('0x3d')][_0x978e('0x4c')]({'where':{'id':_0x5425f5[_0x978e('0x42')]['id']}})[_0x978e('0x28')](handleEntityNotFound(_0x3d0142,null))[_0x978e('0x28')](function(_0x2c536f){if(_0x2c536f){_0x2f6478=_0x2c536f;_0xff704e['model']=_[_0x978e('0x30')](db['Action'][_0x978e('0x2d')]);_0xff704e[_0x978e('0x31')]=_[_0x978e('0x30')](_0x5425f5[_0x978e('0x31')]);_0xff704e['filters']=_[_0x978e('0x32')](_0xff704e[_0x978e('0x2f')],_0xff704e[_0x978e('0x31')]);_0x190ab5[_0x978e('0x33')]=_[_0x978e('0x32')](_0xff704e[_0x978e('0x2f')],qs[_0x978e('0x34')](_0x5425f5[_0x978e('0x31')]['fields']));_0x190ab5['attributes']=_0x190ab5[_0x978e('0x33')]['length']?_0x190ab5[_0x978e('0x33')]:_0xff704e[_0x978e('0x2f')];_0x190ab5[_0x978e('0x50')]=qs[_0x978e('0x37')](_0x5425f5[_0x978e('0x31')][_0x978e('0x37')]);_0x190ab5[_0x978e('0x38')]=qs['filters'](_[_0x978e('0x3a')](_0x5425f5[_0x978e('0x31')],_0xff704e[_0x978e('0x39')]));if(_0x5425f5[_0x978e('0x31')]['filter']){_0x190ab5['where']=_[_0x978e('0x3b')](_0x190ab5[_0x978e('0x38')],{'$or':_['map'](_0x190ab5[_0x978e('0x33')],function(_0x5c735b){var _0x18c4ff={};_0x18c4ff[_0x5c735b]={'$like':'%'+_0x5425f5[_0x978e('0x31')]['filter']+'%'};return _0x18c4ff;})});}_0x190ab5=_[_0x978e('0x3b')]({},_0x190ab5,_0x5425f5['options']);return _0x2f6478[_0x978e('0x51')](_0x190ab5);}})['then'](function(_0xea937){if(_0xea937){_0x1d6ec4=_0xea937[_0x978e('0x35')];if(!_0x5425f5[_0x978e('0x31')]['hasOwnProperty'](_0x978e('0x4e'))){_0x190ab5[_0x978e('0x21')]=qs['limit'](_0x5425f5[_0x978e('0x31')][_0x978e('0x21')]);_0x190ab5[_0x978e('0x1f')]=qs[_0x978e('0x1f')](_0x5425f5[_0x978e('0x31')]['offset']);}return _0x2f6478[_0x978e('0x51')](_0x190ab5);}})[_0x978e('0x28')](function(_0x45e4f9){if(_0x45e4f9){return _0x45e4f9?{'count':_0x1d6ec4,'rows':_0x45e4f9}:null;}})[_0x978e('0x28')](respondWithResult(_0x3d0142,null))[_0x978e('0x40')](handleError(_0x3d0142,null));};