Built motion from commit c738b9ac.|2.6.25
[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 _0x5262=['../../config/logger','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','destroy','then','error','stack','name','index','map','Automation','type','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','merge','VIRTUAL','options','count','include','findAll','rows','catch','show','params','rawAttributes','keys','create','body','find','addConditions','omit','ids','getConditions','Condition','order','Action','addActions','getActions','findOne','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0xadf939,_0x482184){var _0x232c43=function(_0x26c854){while(--_0x26c854){_0xadf939['push'](_0xadf939['shift']());}};_0x232c43(++_0x482184);}(_0x5262,0x90));var _0x2526=function(_0x66b6fc,_0x53d699){_0x66b6fc=_0x66b6fc-0x0;var _0xec117d=_0x5262[_0x66b6fc];return _0xec117d;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2526('0x0'));var jsonpatch=require(_0x2526('0x1'));var rp=require(_0x2526('0x2'));var moment=require(_0x2526('0x3'));var BPromise=require(_0x2526('0x4'));var Mustache=require(_0x2526('0x5'));var util=require(_0x2526('0x6'));var path=require(_0x2526('0x7'));var sox=require(_0x2526('0x8'));var csv=require(_0x2526('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2526('0xa'));var _=require(_0x2526('0xb'));var squel=require('squel');var crypto=require(_0x2526('0xc'));var jsforce=require(_0x2526('0xd'));var deskjs=require(_0x2526('0xe'));var toCsv=require(_0x2526('0x9'));var querystring=require(_0x2526('0xf'));var Papa=require(_0x2526('0x10'));var Redis=require(_0x2526('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2526('0x12'));var hardwareService=require(_0x2526('0x13'));var logger=require(_0x2526('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2526('0x15'))['db'];function respondWithStatusCode(_0x3f3e8b,_0x29b96b){_0x29b96b=_0x29b96b||0xcc;return function(_0x1f596e){if(_0x1f596e){return _0x3f3e8b[_0x2526('0x16')](_0x29b96b);}return _0x3f3e8b['status'](_0x29b96b)[_0x2526('0x17')]();};}function respondWithResult(_0x5978ec,_0x313d73){_0x313d73=_0x313d73||0xc8;return function(_0x275c1d){if(_0x275c1d){return _0x5978ec[_0x2526('0x18')](_0x313d73)[_0x2526('0x19')](_0x275c1d);}};}function respondWithFilteredResult(_0x11eb92,_0x535816){return function(_0x38a2fe){if(_0x38a2fe){var _0x526693=typeof _0x535816[_0x2526('0x1a')]===_0x2526('0x1b')&&typeof _0x535816['limit']==='undefined';var _0x2ff929=_0x38a2fe['count'];var _0x57d312=_0x526693?0x0:_0x535816[_0x2526('0x1a')];var _0x15f2ad=_0x526693?_0x38a2fe['count']:_0x535816[_0x2526('0x1a')]+_0x535816[_0x2526('0x1c')];var _0x5091af;if(_0x15f2ad>=_0x2ff929){_0x15f2ad=_0x2ff929;_0x5091af=0xc8;}else{_0x5091af=0xce;}_0x11eb92[_0x2526('0x18')](_0x5091af);return _0x11eb92[_0x2526('0x1d')](_0x2526('0x1e'),_0x57d312+'-'+_0x15f2ad+'/'+_0x2ff929)[_0x2526('0x19')](_0x38a2fe);}return null;};}function patchUpdates(_0x4d8ac4){return function(_0x252867){try{jsonpatch[_0x2526('0x1f')](_0x252867,_0x4d8ac4,!![]);}catch(_0x372279){return BPromise[_0x2526('0x20')](_0x372279);}return _0x252867[_0x2526('0x21')]();};}function saveUpdates(_0x8aaa91,_0x281de1){return function(_0x2839d5){if(_0x2839d5){return _0x2839d5['update'](_0x8aaa91)['then'](function(_0x5bf480){return _0x5bf480;});}return null;};}function removeEntity(_0x5378b6,_0x2b570b){return function(_0x335012){if(_0x335012){return _0x335012[_0x2526('0x22')]()[_0x2526('0x23')](function(){_0x5378b6[_0x2526('0x18')](0xcc)[_0x2526('0x17')]();});}};}function handleEntityNotFound(_0x53831c,_0x355fda){return function(_0x36f7f0){if(!_0x36f7f0){_0x53831c['sendStatus'](0x194);}return _0x36f7f0;};}function handleError(_0x3c163f,_0x5afb85){_0x5afb85=_0x5afb85||0x1f4;return function(_0x527b4d){logger[_0x2526('0x24')](_0x527b4d[_0x2526('0x25')]);if(_0x527b4d[_0x2526('0x26')]){delete _0x527b4d[_0x2526('0x26')];}_0x3c163f['status'](_0x5afb85)['send'](_0x527b4d);};}exports[_0x2526('0x27')]=function(_0x2eb4d9,_0x5177cf){var _0x2af91d={},_0xd154dc={},_0x5aa9b2={'count':0x0,'rows':[]};var _0x37f29c=_[_0x2526('0x28')](db[_0x2526('0x29')]['rawAttributes'],function(_0x6c9e90){return{'name':_0x6c9e90['fieldName'],'type':_0x6c9e90[_0x2526('0x2a')][_0x2526('0x2b')]};});_0xd154dc['model']=_[_0x2526('0x28')](_0x37f29c,_0x2526('0x26'));_0xd154dc[_0x2526('0x2c')]=_['keys'](_0x2eb4d9[_0x2526('0x2c')]);_0xd154dc['filters']=_[_0x2526('0x2d')](_0xd154dc[_0x2526('0x2e')],_0xd154dc[_0x2526('0x2c')]);_0x2af91d[_0x2526('0x2f')]=_['intersection'](_0xd154dc['model'],qs[_0x2526('0x30')](_0x2eb4d9[_0x2526('0x2c')]['fields']));_0x2af91d[_0x2526('0x2f')]=_0x2af91d[_0x2526('0x2f')][_0x2526('0x31')]?_0x2af91d[_0x2526('0x2f')]:_0xd154dc['model'];if(!_0x2eb4d9[_0x2526('0x2c')][_0x2526('0x32')](_0x2526('0x33'))){_0x2af91d[_0x2526('0x1c')]=qs[_0x2526('0x1c')](_0x2eb4d9[_0x2526('0x2c')]['limit']);_0x2af91d[_0x2526('0x1a')]=qs[_0x2526('0x1a')](_0x2eb4d9[_0x2526('0x2c')][_0x2526('0x1a')]);}_0x2af91d['order']=qs[_0x2526('0x34')](_0x2eb4d9['query']['sort']);_0x2af91d[_0x2526('0x35')]=qs['filters'](_[_0x2526('0x36')](_0x2eb4d9['query'],_0xd154dc[_0x2526('0x37')]),_0x37f29c);if(_0x2eb4d9[_0x2526('0x2c')][_0x2526('0x38')]){_0x2af91d[_0x2526('0x35')]=_[_0x2526('0x39')](_0x2af91d[_0x2526('0x35')],{'$or':_[_0x2526('0x28')](_0x37f29c,function(_0x191ace){if(_0x191ace[_0x2526('0x2a')]!==_0x2526('0x3a')){var _0x984980={};_0x984980[_0x191ace['name']]={'$like':'%'+_0x2eb4d9[_0x2526('0x2c')][_0x2526('0x38')]+'%'};return _0x984980;}})});}_0x2af91d=_[_0x2526('0x39')]({},_0x2af91d,_0x2eb4d9[_0x2526('0x3b')]);var _0x27cf41={'where':_0x2af91d[_0x2526('0x35')]};return db['Automation'][_0x2526('0x3c')](_0x27cf41)[_0x2526('0x23')](function(_0x56ca2f){_0x5aa9b2[_0x2526('0x3c')]=_0x56ca2f;if(_0x2eb4d9['query']['includeAll']){_0x2af91d[_0x2526('0x3d')]=[{'all':!![]}];}return db[_0x2526('0x29')][_0x2526('0x3e')](_0x2af91d);})[_0x2526('0x23')](function(_0x253a92){_0x5aa9b2[_0x2526('0x3f')]=_0x253a92;return _0x5aa9b2;})['then'](respondWithFilteredResult(_0x5177cf,_0x2af91d))[_0x2526('0x40')](handleError(_0x5177cf,null));};exports[_0x2526('0x41')]=function(_0x56a927,_0x15651e){var _0x5f327a={'raw':![],'where':{'id':_0x56a927[_0x2526('0x42')]['id']}},_0x156e03={};_0x156e03[_0x2526('0x2e')]=_['keys'](db['Automation'][_0x2526('0x43')]);_0x156e03[_0x2526('0x2c')]=_[_0x2526('0x44')](_0x56a927[_0x2526('0x2c')]);_0x156e03[_0x2526('0x37')]=_['intersection'](_0x156e03[_0x2526('0x2e')],_0x156e03[_0x2526('0x2c')]);_0x5f327a[_0x2526('0x2f')]=_['intersection'](_0x156e03['model'],qs[_0x2526('0x30')](_0x56a927[_0x2526('0x2c')][_0x2526('0x30')]));_0x5f327a[_0x2526('0x2f')]=_0x5f327a[_0x2526('0x2f')][_0x2526('0x31')]?_0x5f327a[_0x2526('0x2f')]:_0x156e03[_0x2526('0x2e')];if(_0x56a927['query']['includeAll']){_0x5f327a['include']=[{'all':!![]}];}_0x5f327a=_['merge']({},_0x5f327a,_0x56a927[_0x2526('0x3b')]);return db[_0x2526('0x29')]['find'](_0x5f327a)[_0x2526('0x23')](handleEntityNotFound(_0x15651e,null))[_0x2526('0x23')](respondWithResult(_0x15651e,null))[_0x2526('0x40')](handleError(_0x15651e,null));};exports[_0x2526('0x45')]=function(_0x4c2e97,_0x36420e){return db[_0x2526('0x29')][_0x2526('0x45')](_0x4c2e97[_0x2526('0x46')],{})[_0x2526('0x23')](respondWithResult(_0x36420e,0xc9))[_0x2526('0x40')](handleError(_0x36420e,null));};exports['update']=function(_0x4170f6,_0x25e616){if(_0x4170f6['body']['id']){delete _0x4170f6['body']['id'];}return db[_0x2526('0x29')][_0x2526('0x47')]({'where':{'id':_0x4170f6[_0x2526('0x42')]['id']}})[_0x2526('0x23')](handleEntityNotFound(_0x25e616,null))['then'](saveUpdates(_0x4170f6[_0x2526('0x46')],null))[_0x2526('0x23')](respondWithResult(_0x25e616,null))['catch'](handleError(_0x25e616,null));};exports['destroy']=function(_0x123ec8,_0x2dd703){return db['Automation']['find']({'where':{'id':_0x123ec8[_0x2526('0x42')]['id']}})[_0x2526('0x23')](handleEntityNotFound(_0x2dd703,null))[_0x2526('0x23')](removeEntity(_0x2dd703,null))[_0x2526('0x40')](handleError(_0x2dd703,null));};exports[_0x2526('0x48')]=function(_0x3214d6,_0x207370,_0x3818f7){return db['Condition'][_0x2526('0x47')]({'where':{'id':_0x3214d6[_0x2526('0x42')]['id']}})[_0x2526('0x23')](handleEntityNotFound(_0x207370,null))[_0x2526('0x23')](function(_0xa2f0a3){if(_0xa2f0a3){return _0xa2f0a3[_0x2526('0x48')](_0x3214d6[_0x2526('0x46')]['ids'],_[_0x2526('0x49')](_0x3214d6[_0x2526('0x46')],[_0x2526('0x4a'),'id'])||{});}})[_0x2526('0x23')](respondWithResult(_0x207370,null))[_0x2526('0x40')](handleError(_0x207370,null));};exports[_0x2526('0x4b')]=function(_0x51b7fc,_0x55fd31,_0x2f9334){var _0x5e91a4={};var _0x22e193={};var _0x455512;var _0x2847ab;return db[_0x2526('0x29')]['findOne']({'where':{'id':_0x51b7fc['params']['id']}})['then'](handleEntityNotFound(_0x55fd31,null))['then'](function(_0x2e6f2b){if(_0x2e6f2b){_0x455512=_0x2e6f2b;_0x22e193[_0x2526('0x2e')]=_[_0x2526('0x44')](db[_0x2526('0x4c')][_0x2526('0x43')]);_0x22e193[_0x2526('0x2c')]=_[_0x2526('0x44')](_0x51b7fc[_0x2526('0x2c')]);_0x22e193[_0x2526('0x37')]=_[_0x2526('0x2d')](_0x22e193[_0x2526('0x2e')],_0x22e193[_0x2526('0x2c')]);_0x5e91a4[_0x2526('0x2f')]=_[_0x2526('0x2d')](_0x22e193[_0x2526('0x2e')],qs[_0x2526('0x30')](_0x51b7fc[_0x2526('0x2c')][_0x2526('0x30')]));_0x5e91a4[_0x2526('0x2f')]=_0x5e91a4[_0x2526('0x2f')][_0x2526('0x31')]?_0x5e91a4[_0x2526('0x2f')]:_0x22e193['model'];_0x5e91a4[_0x2526('0x4d')]=qs[_0x2526('0x34')](_0x51b7fc[_0x2526('0x2c')][_0x2526('0x34')]);_0x5e91a4['where']=qs[_0x2526('0x37')](_[_0x2526('0x36')](_0x51b7fc[_0x2526('0x2c')],_0x22e193['filters']));if(_0x51b7fc['query'][_0x2526('0x38')]){_0x5e91a4[_0x2526('0x35')]=_['merge'](_0x5e91a4[_0x2526('0x35')],{'$or':_[_0x2526('0x28')](_0x5e91a4['attributes'],function(_0x177869){var _0x58c9db={};_0x58c9db[_0x177869]={'$like':'%'+_0x51b7fc[_0x2526('0x2c')][_0x2526('0x38')]+'%'};return _0x58c9db;})});}_0x5e91a4=_[_0x2526('0x39')]({},_0x5e91a4,_0x51b7fc['options']);return _0x455512['getConditions'](_0x5e91a4);}})[_0x2526('0x23')](function(_0x4edc5d){if(_0x4edc5d){_0x2847ab=_0x4edc5d['length'];if(!_0x51b7fc['query'][_0x2526('0x32')](_0x2526('0x33'))){_0x5e91a4['limit']=qs['limit'](_0x51b7fc['query'][_0x2526('0x1c')]);_0x5e91a4['offset']=qs[_0x2526('0x1a')](_0x51b7fc[_0x2526('0x2c')]['offset']);}return _0x455512[_0x2526('0x4b')](_0x5e91a4);}})['then'](function(_0x169ab8){if(_0x169ab8){return _0x169ab8?{'count':_0x2847ab,'rows':_0x169ab8}:null;}})[_0x2526('0x23')](respondWithResult(_0x55fd31,null))[_0x2526('0x40')](handleError(_0x55fd31,null));};exports['addActions']=function(_0x14dbbb,_0x2afd48,_0x49e2c0){return db[_0x2526('0x4e')][_0x2526('0x47')]({'where':{'id':_0x14dbbb['params']['id']}})[_0x2526('0x23')](handleEntityNotFound(_0x2afd48,null))[_0x2526('0x23')](function(_0x1c3481){if(_0x1c3481){return _0x1c3481[_0x2526('0x4f')](_0x14dbbb[_0x2526('0x46')][_0x2526('0x4a')],_[_0x2526('0x49')](_0x14dbbb['body'],['ids','id'])||{});}})[_0x2526('0x23')](respondWithResult(_0x2afd48,null))['catch'](handleError(_0x2afd48,null));};exports[_0x2526('0x50')]=function(_0x569075,_0x332c61,_0x4e2b31){var _0x17cb16={};var _0x1b84f3={};var _0x76f6bf;var _0x1976bd;return db[_0x2526('0x29')][_0x2526('0x51')]({'where':{'id':_0x569075[_0x2526('0x42')]['id']}})[_0x2526('0x23')](handleEntityNotFound(_0x332c61,null))['then'](function(_0x3ac2dc){if(_0x3ac2dc){_0x76f6bf=_0x3ac2dc;_0x1b84f3['model']=_['keys'](db[_0x2526('0x4e')][_0x2526('0x43')]);_0x1b84f3[_0x2526('0x2c')]=_[_0x2526('0x44')](_0x569075[_0x2526('0x2c')]);_0x1b84f3[_0x2526('0x37')]=_[_0x2526('0x2d')](_0x1b84f3[_0x2526('0x2e')],_0x1b84f3[_0x2526('0x2c')]);_0x17cb16[_0x2526('0x2f')]=_[_0x2526('0x2d')](_0x1b84f3[_0x2526('0x2e')],qs[_0x2526('0x30')](_0x569075[_0x2526('0x2c')][_0x2526('0x30')]));_0x17cb16[_0x2526('0x2f')]=_0x17cb16[_0x2526('0x2f')][_0x2526('0x31')]?_0x17cb16[_0x2526('0x2f')]:_0x1b84f3[_0x2526('0x2e')];_0x17cb16['order']=qs['sort'](_0x569075['query'][_0x2526('0x34')]);_0x17cb16['where']=qs[_0x2526('0x37')](_['pick'](_0x569075[_0x2526('0x2c')],_0x1b84f3[_0x2526('0x37')]));if(_0x569075[_0x2526('0x2c')]['filter']){_0x17cb16['where']=_['merge'](_0x17cb16[_0x2526('0x35')],{'$or':_['map'](_0x17cb16[_0x2526('0x2f')],function(_0x3f52b5){var _0x3c79d5={};_0x3c79d5[_0x3f52b5]={'$like':'%'+_0x569075[_0x2526('0x2c')][_0x2526('0x38')]+'%'};return _0x3c79d5;})});}_0x17cb16=_[_0x2526('0x39')]({},_0x17cb16,_0x569075[_0x2526('0x3b')]);return _0x76f6bf[_0x2526('0x50')](_0x17cb16);}})[_0x2526('0x23')](function(_0x72e26f){if(_0x72e26f){_0x1976bd=_0x72e26f[_0x2526('0x31')];if(!_0x569075[_0x2526('0x2c')][_0x2526('0x32')](_0x2526('0x33'))){_0x17cb16[_0x2526('0x1c')]=qs[_0x2526('0x1c')](_0x569075[_0x2526('0x2c')][_0x2526('0x1c')]);_0x17cb16[_0x2526('0x1a')]=qs[_0x2526('0x1a')](_0x569075['query']['offset']);}return _0x76f6bf['getActions'](_0x17cb16);}})[_0x2526('0x23')](function(_0x3e72d2){if(_0x3e72d2){return _0x3e72d2?{'count':_0x1976bd,'rows':_0x3e72d2}:null;}})[_0x2526('0x23')](respondWithResult(_0x332c61,null))['catch'](handleError(_0x332c61,null));};