012e9fd1f3476482181c8d4b64eb2fe3ddad69f3
[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 _0x8695=['apply','reject','update','then','destroy','error','stack','name','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','pick','filter','where','merge','VIRTUAL','options','Automation','include','findAll','rows','catch','show','params','length','includeAll','create','body','find','addConditions','ids','omit','getConditions','findOne','Condition','sort','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','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','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x4b6830,_0x2bf6fb){var _0x239e4a=function(_0x364735){while(--_0x364735){_0x4b6830['push'](_0x4b6830['shift']());}};_0x239e4a(++_0x2bf6fb);}(_0x8695,0x18d));var _0x5869=function(_0xcec130,_0x3a542b){_0xcec130=_0xcec130-0x0;var _0x211ad9=_0x8695[_0xcec130];return _0x211ad9;};'use strict';var emlformat=require(_0x5869('0x0'));var rimraf=require(_0x5869('0x1'));var zipdir=require(_0x5869('0x2'));var jsonpatch=require(_0x5869('0x3'));var rp=require('request-promise');var moment=require(_0x5869('0x4'));var BPromise=require(_0x5869('0x5'));var Mustache=require('mustache');var util=require(_0x5869('0x6'));var path=require(_0x5869('0x7'));var sox=require(_0x5869('0x8'));var csv=require('to-csv');var ejs=require(_0x5869('0x9'));var fs=require('fs');var fs_extra=require(_0x5869('0xa'));var _=require(_0x5869('0xb'));var squel=require(_0x5869('0xc'));var crypto=require(_0x5869('0xd'));var jsforce=require(_0x5869('0xe'));var deskjs=require(_0x5869('0xf'));var toCsv=require(_0x5869('0x10'));var querystring=require(_0x5869('0x11'));var Papa=require(_0x5869('0x12'));var Redis=require(_0x5869('0x13'));var authService=require(_0x5869('0x14'));var qs=require(_0x5869('0x15'));var as=require(_0x5869('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5869('0x17'))('api');var utils=require(_0x5869('0x18'));var config=require(_0x5869('0x19'));var licenseUtil=require(_0x5869('0x1a'));var db=require(_0x5869('0x1b'))['db'];function respondWithStatusCode(_0x41b548,_0x472a8d){_0x472a8d=_0x472a8d||0xcc;return function(_0x3ae80d){if(_0x3ae80d){return _0x41b548[_0x5869('0x1c')](_0x472a8d);}return _0x41b548[_0x5869('0x1d')](_0x472a8d)[_0x5869('0x1e')]();};}function respondWithResult(_0x5a3f65,_0x5b3edc){_0x5b3edc=_0x5b3edc||0xc8;return function(_0x179a4f){if(_0x179a4f){return _0x5a3f65[_0x5869('0x1d')](_0x5b3edc)[_0x5869('0x1f')](_0x179a4f);}};}function respondWithFilteredResult(_0x3abe52,_0x576f29){return function(_0x1faab2){if(_0x1faab2){var _0x18159e=typeof _0x576f29[_0x5869('0x20')]===_0x5869('0x21')&&typeof _0x576f29[_0x5869('0x22')]===_0x5869('0x21');var _0x6a06d5=_0x1faab2[_0x5869('0x23')];var _0x55da4f=_0x18159e?0x0:_0x576f29[_0x5869('0x20')];var _0x24d3b2=_0x18159e?_0x1faab2[_0x5869('0x23')]:_0x576f29[_0x5869('0x20')]+_0x576f29[_0x5869('0x22')];var _0x5e4e04;if(_0x24d3b2>=_0x6a06d5){_0x24d3b2=_0x6a06d5;_0x5e4e04=0xc8;}else{_0x5e4e04=0xce;}_0x3abe52['status'](_0x5e4e04);return _0x3abe52[_0x5869('0x24')](_0x5869('0x25'),_0x55da4f+'-'+_0x24d3b2+'/'+_0x6a06d5)[_0x5869('0x1f')](_0x1faab2);}return null;};}function patchUpdates(_0xccc87d){return function(_0x347e0d){try{jsonpatch[_0x5869('0x26')](_0x347e0d,_0xccc87d,!![]);}catch(_0x1fda18){return BPromise[_0x5869('0x27')](_0x1fda18);}return _0x347e0d['save']();};}function saveUpdates(_0x4873cc,_0x37b1c4){return function(_0x1bb588){if(_0x1bb588){return _0x1bb588[_0x5869('0x28')](_0x4873cc)[_0x5869('0x29')](function(_0x5e179b){return _0x5e179b;});}return null;};}function removeEntity(_0x245ae7,_0x44d0a2){return function(_0x9ccf62){if(_0x9ccf62){return _0x9ccf62[_0x5869('0x2a')]()['then'](function(){_0x245ae7[_0x5869('0x1d')](0xcc)[_0x5869('0x1e')]();});}};}function handleEntityNotFound(_0x16e7f7,_0x2e19c4){return function(_0x3020a4){if(!_0x3020a4){_0x16e7f7[_0x5869('0x1c')](0x194);}return _0x3020a4;};}function handleError(_0x571190,_0x1b9e26){_0x1b9e26=_0x1b9e26||0x1f4;return function(_0x478f85){logger[_0x5869('0x2b')](_0x478f85[_0x5869('0x2c')]);if(_0x478f85[_0x5869('0x2d')]){delete _0x478f85['name'];}_0x571190[_0x5869('0x1d')](_0x1b9e26)['send'](_0x478f85);};}exports['index']=function(_0x3d8865,_0x242b07){var _0x22b246={},_0x56cce6={},_0x3a8dc7={'count':0x0,'rows':[]};var _0x4690bc=_[_0x5869('0x2e')](db['Automation'][_0x5869('0x2f')],function(_0xaaa4fb){return{'name':_0xaaa4fb['fieldName'],'type':_0xaaa4fb[_0x5869('0x30')]['key']};});_0x56cce6[_0x5869('0x31')]=_[_0x5869('0x2e')](_0x4690bc,'name');_0x56cce6[_0x5869('0x32')]=_[_0x5869('0x33')](_0x3d8865['query']);_0x56cce6[_0x5869('0x34')]=_[_0x5869('0x35')](_0x56cce6[_0x5869('0x31')],_0x56cce6[_0x5869('0x32')]);_0x22b246[_0x5869('0x36')]=_[_0x5869('0x35')](_0x56cce6['model'],qs['fields'](_0x3d8865['query'][_0x5869('0x37')]));_0x22b246[_0x5869('0x36')]=_0x22b246[_0x5869('0x36')]['length']?_0x22b246[_0x5869('0x36')]:_0x56cce6[_0x5869('0x31')];if(!_0x3d8865[_0x5869('0x32')][_0x5869('0x38')](_0x5869('0x39'))){_0x22b246[_0x5869('0x22')]=qs['limit'](_0x3d8865['query'][_0x5869('0x22')]);_0x22b246[_0x5869('0x20')]=qs[_0x5869('0x20')](_0x3d8865[_0x5869('0x32')][_0x5869('0x20')]);}_0x22b246[_0x5869('0x3a')]=qs['sort'](_0x3d8865['query']['sort']);_0x22b246['where']=qs['filters'](_[_0x5869('0x3b')](_0x3d8865[_0x5869('0x32')],_0x56cce6[_0x5869('0x34')]),_0x4690bc);if(_0x3d8865[_0x5869('0x32')][_0x5869('0x3c')]){_0x22b246[_0x5869('0x3d')]=_[_0x5869('0x3e')](_0x22b246[_0x5869('0x3d')],{'$or':_[_0x5869('0x2e')](_0x4690bc,function(_0x2a2594){if(_0x2a2594['type']!==_0x5869('0x3f')){var _0x3f3461={};_0x3f3461[_0x2a2594[_0x5869('0x2d')]]={'$like':'%'+_0x3d8865[_0x5869('0x32')][_0x5869('0x3c')]+'%'};return _0x3f3461;}})});}_0x22b246=_['merge']({},_0x22b246,_0x3d8865[_0x5869('0x40')]);var _0x5d7bd5={'where':_0x22b246['where']};return db[_0x5869('0x41')]['count'](_0x5d7bd5)['then'](function(_0x29c9a3){_0x3a8dc7[_0x5869('0x23')]=_0x29c9a3;if(_0x3d8865[_0x5869('0x32')]['includeAll']){_0x22b246[_0x5869('0x42')]=[{'all':!![]}];}return db[_0x5869('0x41')][_0x5869('0x43')](_0x22b246);})['then'](function(_0x84735f){_0x3a8dc7[_0x5869('0x44')]=_0x84735f;return _0x3a8dc7;})[_0x5869('0x29')](respondWithFilteredResult(_0x242b07,_0x22b246))[_0x5869('0x45')](handleError(_0x242b07,null));};exports[_0x5869('0x46')]=function(_0x5ca928,_0x53dc85){var _0x269cef={'raw':![],'where':{'id':_0x5ca928[_0x5869('0x47')]['id']}},_0x2ee3d5={};_0x2ee3d5[_0x5869('0x31')]=_[_0x5869('0x33')](db[_0x5869('0x41')][_0x5869('0x2f')]);_0x2ee3d5[_0x5869('0x32')]=_[_0x5869('0x33')](_0x5ca928[_0x5869('0x32')]);_0x2ee3d5[_0x5869('0x34')]=_[_0x5869('0x35')](_0x2ee3d5[_0x5869('0x31')],_0x2ee3d5[_0x5869('0x32')]);_0x269cef[_0x5869('0x36')]=_[_0x5869('0x35')](_0x2ee3d5[_0x5869('0x31')],qs[_0x5869('0x37')](_0x5ca928['query'][_0x5869('0x37')]));_0x269cef['attributes']=_0x269cef['attributes'][_0x5869('0x48')]?_0x269cef[_0x5869('0x36')]:_0x2ee3d5[_0x5869('0x31')];if(_0x5ca928[_0x5869('0x32')][_0x5869('0x49')]){_0x269cef[_0x5869('0x42')]=[{'all':!![]}];}_0x269cef=_[_0x5869('0x3e')]({},_0x269cef,_0x5ca928['options']);return db['Automation']['find'](_0x269cef)[_0x5869('0x29')](handleEntityNotFound(_0x53dc85,null))[_0x5869('0x29')](respondWithResult(_0x53dc85,null))[_0x5869('0x45')](handleError(_0x53dc85,null));};exports[_0x5869('0x4a')]=function(_0x118072,_0xd6702a){return db[_0x5869('0x41')][_0x5869('0x4a')](_0x118072['body'],{})[_0x5869('0x29')](respondWithResult(_0xd6702a,0xc9))['catch'](handleError(_0xd6702a,null));};exports[_0x5869('0x28')]=function(_0x271613,_0x37d53f){if(_0x271613['body']['id']){delete _0x271613[_0x5869('0x4b')]['id'];}return db[_0x5869('0x41')][_0x5869('0x4c')]({'where':{'id':_0x271613[_0x5869('0x47')]['id']}})[_0x5869('0x29')](handleEntityNotFound(_0x37d53f,null))[_0x5869('0x29')](saveUpdates(_0x271613[_0x5869('0x4b')],null))['then'](respondWithResult(_0x37d53f,null))['catch'](handleError(_0x37d53f,null));};exports['destroy']=function(_0x3f6db1,_0x39f59b){return db[_0x5869('0x41')]['find']({'where':{'id':_0x3f6db1[_0x5869('0x47')]['id']}})[_0x5869('0x29')](handleEntityNotFound(_0x39f59b,null))[_0x5869('0x29')](removeEntity(_0x39f59b,null))['catch'](handleError(_0x39f59b,null));};exports[_0x5869('0x4d')]=function(_0x37258d,_0x5d0c64,_0x2d656e){return db['Condition'][_0x5869('0x4c')]({'where':{'id':_0x37258d[_0x5869('0x47')]['id']}})[_0x5869('0x29')](handleEntityNotFound(_0x5d0c64,null))['then'](function(_0x53c2c6){if(_0x53c2c6){return _0x53c2c6['addConditions'](_0x37258d[_0x5869('0x4b')][_0x5869('0x4e')],_[_0x5869('0x4f')](_0x37258d['body'],[_0x5869('0x4e'),'id'])||{});}})['then'](respondWithResult(_0x5d0c64,null))[_0x5869('0x45')](handleError(_0x5d0c64,null));};exports[_0x5869('0x50')]=function(_0x84d524,_0x562165,_0x5bcc05){var _0x2dff4d={};var _0x82ff1e={};var _0x5e4346;var _0xc041b4;return db[_0x5869('0x41')][_0x5869('0x51')]({'where':{'id':_0x84d524[_0x5869('0x47')]['id']}})[_0x5869('0x29')](handleEntityNotFound(_0x562165,null))[_0x5869('0x29')](function(_0x3ed69a){if(_0x3ed69a){_0x5e4346=_0x3ed69a;_0x82ff1e[_0x5869('0x31')]=_[_0x5869('0x33')](db[_0x5869('0x52')][_0x5869('0x2f')]);_0x82ff1e[_0x5869('0x32')]=_['keys'](_0x84d524[_0x5869('0x32')]);_0x82ff1e['filters']=_[_0x5869('0x35')](_0x82ff1e[_0x5869('0x31')],_0x82ff1e[_0x5869('0x32')]);_0x2dff4d[_0x5869('0x36')]=_['intersection'](_0x82ff1e[_0x5869('0x31')],qs[_0x5869('0x37')](_0x84d524[_0x5869('0x32')][_0x5869('0x37')]));_0x2dff4d['attributes']=_0x2dff4d[_0x5869('0x36')][_0x5869('0x48')]?_0x2dff4d[_0x5869('0x36')]:_0x82ff1e[_0x5869('0x31')];_0x2dff4d['order']=qs[_0x5869('0x53')](_0x84d524[_0x5869('0x32')]['sort']);_0x2dff4d['where']=qs[_0x5869('0x34')](_[_0x5869('0x3b')](_0x84d524['query'],_0x82ff1e['filters']));if(_0x84d524[_0x5869('0x32')][_0x5869('0x3c')]){_0x2dff4d[_0x5869('0x3d')]=_['merge'](_0x2dff4d[_0x5869('0x3d')],{'$or':_['map'](_0x2dff4d[_0x5869('0x36')],function(_0xc08252){var _0x452092={};_0x452092[_0xc08252]={'$like':'%'+_0x84d524[_0x5869('0x32')]['filter']+'%'};return _0x452092;})});}_0x2dff4d=_[_0x5869('0x3e')]({},_0x2dff4d,_0x84d524[_0x5869('0x40')]);return _0x5e4346['getConditions'](_0x2dff4d);}})[_0x5869('0x29')](function(_0x14f27d){if(_0x14f27d){_0xc041b4=_0x14f27d[_0x5869('0x48')];if(!_0x84d524[_0x5869('0x32')]['hasOwnProperty'](_0x5869('0x39'))){_0x2dff4d[_0x5869('0x22')]=qs[_0x5869('0x22')](_0x84d524[_0x5869('0x32')][_0x5869('0x22')]);_0x2dff4d[_0x5869('0x20')]=qs[_0x5869('0x20')](_0x84d524[_0x5869('0x32')][_0x5869('0x20')]);}return _0x5e4346['getConditions'](_0x2dff4d);}})[_0x5869('0x29')](function(_0x4cfb0e){if(_0x4cfb0e){return _0x4cfb0e?{'count':_0xc041b4,'rows':_0x4cfb0e}:null;}})[_0x5869('0x29')](respondWithResult(_0x562165,null))[_0x5869('0x45')](handleError(_0x562165,null));};exports[_0x5869('0x54')]=function(_0x51473d,_0x1ce991,_0x3eeb70){return db[_0x5869('0x55')]['find']({'where':{'id':_0x51473d[_0x5869('0x47')]['id']}})[_0x5869('0x29')](handleEntityNotFound(_0x1ce991,null))[_0x5869('0x29')](function(_0xe391f8){if(_0xe391f8){return _0xe391f8[_0x5869('0x54')](_0x51473d[_0x5869('0x4b')][_0x5869('0x4e')],_[_0x5869('0x4f')](_0x51473d['body'],[_0x5869('0x4e'),'id'])||{});}})[_0x5869('0x29')](respondWithResult(_0x1ce991,null))[_0x5869('0x45')](handleError(_0x1ce991,null));};exports[_0x5869('0x56')]=function(_0x13b3e4,_0x44f397,_0x39bd28){var _0x1d6b2d={};var _0x48c779={};var _0x545d41;var _0x4b599f;return db['Automation'][_0x5869('0x51')]({'where':{'id':_0x13b3e4['params']['id']}})['then'](handleEntityNotFound(_0x44f397,null))[_0x5869('0x29')](function(_0x244498){if(_0x244498){_0x545d41=_0x244498;_0x48c779[_0x5869('0x31')]=_[_0x5869('0x33')](db[_0x5869('0x55')][_0x5869('0x2f')]);_0x48c779[_0x5869('0x32')]=_['keys'](_0x13b3e4[_0x5869('0x32')]);_0x48c779[_0x5869('0x34')]=_[_0x5869('0x35')](_0x48c779[_0x5869('0x31')],_0x48c779[_0x5869('0x32')]);_0x1d6b2d[_0x5869('0x36')]=_[_0x5869('0x35')](_0x48c779['model'],qs[_0x5869('0x37')](_0x13b3e4['query'][_0x5869('0x37')]));_0x1d6b2d[_0x5869('0x36')]=_0x1d6b2d['attributes'][_0x5869('0x48')]?_0x1d6b2d[_0x5869('0x36')]:_0x48c779[_0x5869('0x31')];_0x1d6b2d['order']=qs[_0x5869('0x53')](_0x13b3e4[_0x5869('0x32')][_0x5869('0x53')]);_0x1d6b2d[_0x5869('0x3d')]=qs[_0x5869('0x34')](_[_0x5869('0x3b')](_0x13b3e4[_0x5869('0x32')],_0x48c779['filters']));if(_0x13b3e4[_0x5869('0x32')][_0x5869('0x3c')]){_0x1d6b2d['where']=_[_0x5869('0x3e')](_0x1d6b2d[_0x5869('0x3d')],{'$or':_[_0x5869('0x2e')](_0x1d6b2d[_0x5869('0x36')],function(_0x9c4170){var _0x242f07={};_0x242f07[_0x9c4170]={'$like':'%'+_0x13b3e4['query'][_0x5869('0x3c')]+'%'};return _0x242f07;})});}_0x1d6b2d=_[_0x5869('0x3e')]({},_0x1d6b2d,_0x13b3e4['options']);return _0x545d41[_0x5869('0x56')](_0x1d6b2d);}})[_0x5869('0x29')](function(_0x55c02e){if(_0x55c02e){_0x4b599f=_0x55c02e[_0x5869('0x48')];if(!_0x13b3e4[_0x5869('0x32')][_0x5869('0x38')](_0x5869('0x39'))){_0x1d6b2d[_0x5869('0x22')]=qs[_0x5869('0x22')](_0x13b3e4[_0x5869('0x32')][_0x5869('0x22')]);_0x1d6b2d[_0x5869('0x20')]=qs[_0x5869('0x20')](_0x13b3e4[_0x5869('0x32')][_0x5869('0x20')]);}return _0x545d41[_0x5869('0x56')](_0x1d6b2d);}})[_0x5869('0x29')](function(_0x2461ae){if(_0x2461ae){return _0x2461ae?{'count':_0x4b599f,'rows':_0x2461ae}:null;}})[_0x5869('0x29')](respondWithResult(_0x44f397,null))[_0x5869('0x45')](handleError(_0x44f397,null));};