Built motion from commit (unavailable).|2.4.18
[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 _0x5120=['order','addActions','Action','omit','findOne','getActions','nolimit','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','set','apply','save','then','destroy','sendStatus','error','stack','map','Automation','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','merge','type','filter','options','includeAll','include','findAll','rows','show','params','find','create','body','catch','addConditions','Condition','ids','getConditions'];(function(_0x35dd31,_0x281166){var _0x71fa9f=function(_0x34bf33){while(--_0x34bf33){_0x35dd31['push'](_0x35dd31['shift']());}};_0x71fa9f(++_0x281166);}(_0x5120,0x1db));var _0x0512=function(_0x151334,_0x1e11ac){_0x151334=_0x151334-0x0;var _0x3d03da=_0x5120[_0x151334];return _0x3d03da;};'use strict';var pdf=require(_0x0512('0x0'));var emlformat=require(_0x0512('0x1'));var rimraf=require(_0x0512('0x2'));var zipdir=require(_0x0512('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0512('0x4'));var moment=require(_0x0512('0x5'));var BPromise=require(_0x0512('0x6'));var Mustache=require('mustache');var util=require(_0x0512('0x7'));var path=require(_0x0512('0x8'));var sox=require(_0x0512('0x9'));var csv=require(_0x0512('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0512('0xb'));var jsforce=require(_0x0512('0xc'));var deskjs=require(_0x0512('0xd'));var toCsv=require(_0x0512('0xa'));var querystring=require(_0x0512('0xe'));var Papa=require('papaparse');var Redis=require(_0x0512('0xf'));var authService=require(_0x0512('0x10'));var qs=require(_0x0512('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0512('0x12'));var utils=require(_0x0512('0x13'));var config=require(_0x0512('0x14'));var db=require(_0x0512('0x15'))['db'];function respondWithStatusCode(_0x5d4393,_0x497b44){_0x497b44=_0x497b44||0xcc;return function(_0xeda223){if(_0xeda223){return _0x5d4393['sendStatus'](_0x497b44);}return _0x5d4393[_0x0512('0x16')](_0x497b44)[_0x0512('0x17')]();};}function respondWithResult(_0x447a8f,_0x581873){_0x581873=_0x581873||0xc8;return function(_0x3424b1){if(_0x3424b1){return _0x447a8f[_0x0512('0x16')](_0x581873)[_0x0512('0x18')](_0x3424b1);}};}function respondWithFilteredResult(_0x1524f0,_0x19a172){return function(_0x503db2){if(_0x503db2){var _0x1addfe=_0x503db2[_0x0512('0x19')],_0x228784=_0x19a172[_0x0512('0x1a')],_0x3b9d1a=_0x19a172[_0x0512('0x1a')]+_0x19a172[_0x0512('0x1b')],_0x260ad5;if(_0x3b9d1a>=_0x1addfe){_0x3b9d1a=_0x1addfe;_0x260ad5=0xc8;}else{_0x260ad5=0xce;}_0x1524f0[_0x0512('0x16')](_0x260ad5);return _0x1524f0[_0x0512('0x1c')]('Content-Range',_0x228784+'-'+_0x3b9d1a+'/'+_0x1addfe)[_0x0512('0x18')](_0x503db2);}return null;};}function patchUpdates(_0x137958){return function(_0x35c0df){try{jsonpatch[_0x0512('0x1d')](_0x35c0df,_0x137958,!![]);}catch(_0x4c786c){return BPromise['reject'](_0x4c786c);}return _0x35c0df[_0x0512('0x1e')]();};}function saveUpdates(_0x485770,_0x36785f){return function(_0x2813cf){if(_0x2813cf){return _0x2813cf['update'](_0x485770)[_0x0512('0x1f')](function(_0x4e2573){return _0x4e2573;});}return null;};}function removeEntity(_0x596a7e,_0x414c48){return function(_0x5caa1b){if(_0x5caa1b){return _0x5caa1b[_0x0512('0x20')]()[_0x0512('0x1f')](function(){_0x596a7e[_0x0512('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x145971,_0x30daa4){return function(_0x5e64e2){if(!_0x5e64e2){_0x145971[_0x0512('0x21')](0x194);}return _0x5e64e2;};}function handleError(_0xb563ca,_0x2b39f2){_0x2b39f2=_0x2b39f2||0x1f4;return function(_0x23ea4b){logger[_0x0512('0x22')](_0x23ea4b[_0x0512('0x23')]);if(_0x23ea4b['name']){delete _0x23ea4b['name'];}_0xb563ca[_0x0512('0x16')](_0x2b39f2)['send'](_0x23ea4b);};}exports['index']=function(_0x42d4a3,_0x556288){var _0x35f967={},_0x563a35={},_0x542640={'count':0x0,'rows':[]};var _0x1a9e30=_[_0x0512('0x24')](db[_0x0512('0x25')][_0x0512('0x26')],function(_0xc6fa53){return{'name':_0xc6fa53[_0x0512('0x27')],'type':_0xc6fa53['type'][_0x0512('0x28')]};});_0x563a35[_0x0512('0x29')]=_['map'](_0x1a9e30,'name');_0x563a35[_0x0512('0x2a')]=_[_0x0512('0x2b')](_0x42d4a3[_0x0512('0x2a')]);_0x563a35['filters']=_[_0x0512('0x2c')](_0x563a35[_0x0512('0x29')],_0x563a35[_0x0512('0x2a')]);_0x35f967[_0x0512('0x2d')]=_[_0x0512('0x2c')](_0x563a35[_0x0512('0x29')],qs['fields'](_0x42d4a3['query'][_0x0512('0x2e')]));_0x35f967[_0x0512('0x2d')]=_0x35f967[_0x0512('0x2d')][_0x0512('0x2f')]?_0x35f967[_0x0512('0x2d')]:_0x563a35[_0x0512('0x29')];if(!_0x42d4a3['query'][_0x0512('0x30')]('nolimit')){_0x35f967[_0x0512('0x1b')]=qs[_0x0512('0x1b')](_0x42d4a3['query'][_0x0512('0x1b')]);_0x35f967['offset']=qs[_0x0512('0x1a')](_0x42d4a3[_0x0512('0x2a')][_0x0512('0x1a')]);}_0x35f967['order']=qs[_0x0512('0x31')](_0x42d4a3[_0x0512('0x2a')][_0x0512('0x31')]);_0x35f967[_0x0512('0x32')]=qs[_0x0512('0x33')](_[_0x0512('0x34')](_0x42d4a3[_0x0512('0x2a')],_0x563a35[_0x0512('0x33')]));if(_0x42d4a3[_0x0512('0x2a')]['filter']){_0x35f967[_0x0512('0x32')]=_[_0x0512('0x35')](_0x35f967[_0x0512('0x32')],{'$or':_[_0x0512('0x24')](_0x1a9e30,function(_0x4dfab0){if(_0x4dfab0[_0x0512('0x36')]!=='VIRTUAL'){var _0x3f70f0={};_0x3f70f0[_0x4dfab0['name']]={'$like':'%'+_0x42d4a3['query'][_0x0512('0x37')]+'%'};return _0x3f70f0;}})});}_0x35f967=_[_0x0512('0x35')]({},_0x35f967,_0x42d4a3[_0x0512('0x38')]);var _0x3293b6={'where':_0x35f967[_0x0512('0x32')]};return db[_0x0512('0x25')][_0x0512('0x19')](_0x3293b6)[_0x0512('0x1f')](function(_0x20299e){_0x542640[_0x0512('0x19')]=_0x20299e;if(_0x42d4a3['query'][_0x0512('0x39')]){_0x35f967[_0x0512('0x3a')]=[{'all':!![]}];}return db[_0x0512('0x25')][_0x0512('0x3b')](_0x35f967);})[_0x0512('0x1f')](function(_0x3c83ec){_0x542640[_0x0512('0x3c')]=_0x3c83ec;return _0x542640;})['then'](respondWithFilteredResult(_0x556288,_0x35f967))['catch'](handleError(_0x556288,null));};exports[_0x0512('0x3d')]=function(_0x34e778,_0x4d526b){var _0x1bafb2={'raw':![],'where':{'id':_0x34e778[_0x0512('0x3e')]['id']}},_0x3a6217={};_0x3a6217[_0x0512('0x29')]=_[_0x0512('0x2b')](db[_0x0512('0x25')][_0x0512('0x26')]);_0x3a6217['query']=_[_0x0512('0x2b')](_0x34e778[_0x0512('0x2a')]);_0x3a6217[_0x0512('0x33')]=_[_0x0512('0x2c')](_0x3a6217[_0x0512('0x29')],_0x3a6217[_0x0512('0x2a')]);_0x1bafb2[_0x0512('0x2d')]=_['intersection'](_0x3a6217[_0x0512('0x29')],qs[_0x0512('0x2e')](_0x34e778[_0x0512('0x2a')][_0x0512('0x2e')]));_0x1bafb2['attributes']=_0x1bafb2[_0x0512('0x2d')]['length']?_0x1bafb2[_0x0512('0x2d')]:_0x3a6217[_0x0512('0x29')];if(_0x34e778[_0x0512('0x2a')][_0x0512('0x39')]){_0x1bafb2[_0x0512('0x3a')]=[{'all':!![]}];}_0x1bafb2=_[_0x0512('0x35')]({},_0x1bafb2,_0x34e778['options']);return db[_0x0512('0x25')][_0x0512('0x3f')](_0x1bafb2)['then'](handleEntityNotFound(_0x4d526b,null))[_0x0512('0x1f')](respondWithResult(_0x4d526b,null))['catch'](handleError(_0x4d526b,null));};exports[_0x0512('0x40')]=function(_0x38e623,_0x3f4e77){return db[_0x0512('0x25')][_0x0512('0x40')](_0x38e623[_0x0512('0x41')],{})[_0x0512('0x1f')](respondWithResult(_0x3f4e77,0xc9))[_0x0512('0x42')](handleError(_0x3f4e77,null));};exports['update']=function(_0x22287a,_0xcc35bb){if(_0x22287a[_0x0512('0x41')]['id']){delete _0x22287a[_0x0512('0x41')]['id'];}return db['Automation']['find']({'where':{'id':_0x22287a[_0x0512('0x3e')]['id']}})[_0x0512('0x1f')](handleEntityNotFound(_0xcc35bb,null))[_0x0512('0x1f')](saveUpdates(_0x22287a['body'],null))['then'](respondWithResult(_0xcc35bb,null))[_0x0512('0x42')](handleError(_0xcc35bb,null));};exports['destroy']=function(_0x2ebf70,_0x22cd2b){return db['Automation'][_0x0512('0x3f')]({'where':{'id':_0x2ebf70[_0x0512('0x3e')]['id']}})[_0x0512('0x1f')](handleEntityNotFound(_0x22cd2b,null))['then'](removeEntity(_0x22cd2b,null))[_0x0512('0x42')](handleError(_0x22cd2b,null));};exports[_0x0512('0x43')]=function(_0x2b2419,_0x799454,_0x2f1e74){return db[_0x0512('0x44')]['find']({'where':{'id':_0x2b2419[_0x0512('0x3e')]['id']}})[_0x0512('0x1f')](handleEntityNotFound(_0x799454,null))['then'](function(_0xe0e515){if(_0xe0e515){return _0xe0e515[_0x0512('0x43')](_0x2b2419[_0x0512('0x41')]['ids'],_['omit'](_0x2b2419[_0x0512('0x41')],[_0x0512('0x45'),'id'])||{});}})[_0x0512('0x1f')](respondWithResult(_0x799454,null))[_0x0512('0x42')](handleError(_0x799454,null));};exports[_0x0512('0x46')]=function(_0x135873,_0x184ebd,_0x5667db){var _0x465296={};var _0x15b368={};var _0x512502;var _0x3784b6;return db[_0x0512('0x25')]['findOne']({'where':{'id':_0x135873[_0x0512('0x3e')]['id']}})['then'](handleEntityNotFound(_0x184ebd,null))[_0x0512('0x1f')](function(_0x36b54e){if(_0x36b54e){_0x512502=_0x36b54e;_0x15b368[_0x0512('0x29')]=_['keys'](db[_0x0512('0x44')][_0x0512('0x26')]);_0x15b368[_0x0512('0x2a')]=_[_0x0512('0x2b')](_0x135873[_0x0512('0x2a')]);_0x15b368[_0x0512('0x33')]=_[_0x0512('0x2c')](_0x15b368[_0x0512('0x29')],_0x15b368[_0x0512('0x2a')]);_0x465296[_0x0512('0x2d')]=_['intersection'](_0x15b368[_0x0512('0x29')],qs[_0x0512('0x2e')](_0x135873[_0x0512('0x2a')][_0x0512('0x2e')]));_0x465296['attributes']=_0x465296[_0x0512('0x2d')]['length']?_0x465296[_0x0512('0x2d')]:_0x15b368[_0x0512('0x29')];_0x465296[_0x0512('0x47')]=qs[_0x0512('0x31')](_0x135873[_0x0512('0x2a')][_0x0512('0x31')]);_0x465296[_0x0512('0x32')]=qs[_0x0512('0x33')](_[_0x0512('0x34')](_0x135873[_0x0512('0x2a')],_0x15b368['filters']));if(_0x135873[_0x0512('0x2a')][_0x0512('0x37')]){_0x465296[_0x0512('0x32')]=_[_0x0512('0x35')](_0x465296[_0x0512('0x32')],{'$or':_['map'](_0x465296['attributes'],function(_0x52fd80){var _0x1c221a={};_0x1c221a[_0x52fd80]={'$like':'%'+_0x135873[_0x0512('0x2a')][_0x0512('0x37')]+'%'};return _0x1c221a;})});}_0x465296=_['merge']({},_0x465296,_0x135873[_0x0512('0x38')]);return _0x512502['getConditions'](_0x465296);}})['then'](function(_0x487678){if(_0x487678){_0x3784b6=_0x487678[_0x0512('0x2f')];if(!_0x135873[_0x0512('0x2a')][_0x0512('0x30')]('nolimit')){_0x465296[_0x0512('0x1b')]=qs[_0x0512('0x1b')](_0x135873[_0x0512('0x2a')][_0x0512('0x1b')]);_0x465296['offset']=qs[_0x0512('0x1a')](_0x135873[_0x0512('0x2a')][_0x0512('0x1a')]);}return _0x512502['getConditions'](_0x465296);}})['then'](function(_0xa8f790){if(_0xa8f790){return _0xa8f790?{'count':_0x3784b6,'rows':_0xa8f790}:null;}})[_0x0512('0x1f')](respondWithResult(_0x184ebd,null))['catch'](handleError(_0x184ebd,null));};exports[_0x0512('0x48')]=function(_0x144c09,_0xdc24d2,_0x3e06dd){return db[_0x0512('0x49')]['find']({'where':{'id':_0x144c09['params']['id']}})['then'](handleEntityNotFound(_0xdc24d2,null))['then'](function(_0x46209a){if(_0x46209a){return _0x46209a[_0x0512('0x48')](_0x144c09[_0x0512('0x41')][_0x0512('0x45')],_[_0x0512('0x4a')](_0x144c09['body'],[_0x0512('0x45'),'id'])||{});}})['then'](respondWithResult(_0xdc24d2,null))[_0x0512('0x42')](handleError(_0xdc24d2,null));};exports['getActions']=function(_0x48d2fd,_0x267af8,_0x2dd227){var _0x35883a={};var _0x466ca4={};var _0x25d6bb;var _0x3b0d61;return db['Automation'][_0x0512('0x4b')]({'where':{'id':_0x48d2fd[_0x0512('0x3e')]['id']}})[_0x0512('0x1f')](handleEntityNotFound(_0x267af8,null))[_0x0512('0x1f')](function(_0x43d89e){if(_0x43d89e){_0x25d6bb=_0x43d89e;_0x466ca4[_0x0512('0x29')]=_['keys'](db[_0x0512('0x49')][_0x0512('0x26')]);_0x466ca4[_0x0512('0x2a')]=_[_0x0512('0x2b')](_0x48d2fd['query']);_0x466ca4[_0x0512('0x33')]=_['intersection'](_0x466ca4[_0x0512('0x29')],_0x466ca4[_0x0512('0x2a')]);_0x35883a['attributes']=_[_0x0512('0x2c')](_0x466ca4['model'],qs[_0x0512('0x2e')](_0x48d2fd[_0x0512('0x2a')][_0x0512('0x2e')]));_0x35883a['attributes']=_0x35883a[_0x0512('0x2d')][_0x0512('0x2f')]?_0x35883a['attributes']:_0x466ca4['model'];_0x35883a[_0x0512('0x47')]=qs[_0x0512('0x31')](_0x48d2fd[_0x0512('0x2a')][_0x0512('0x31')]);_0x35883a[_0x0512('0x32')]=qs[_0x0512('0x33')](_[_0x0512('0x34')](_0x48d2fd[_0x0512('0x2a')],_0x466ca4['filters']));if(_0x48d2fd[_0x0512('0x2a')][_0x0512('0x37')]){_0x35883a[_0x0512('0x32')]=_[_0x0512('0x35')](_0x35883a[_0x0512('0x32')],{'$or':_[_0x0512('0x24')](_0x35883a[_0x0512('0x2d')],function(_0x3a579f){var _0x5d81c4={};_0x5d81c4[_0x3a579f]={'$like':'%'+_0x48d2fd[_0x0512('0x2a')]['filter']+'%'};return _0x5d81c4;})});}_0x35883a=_['merge']({},_0x35883a,_0x48d2fd[_0x0512('0x38')]);return _0x25d6bb[_0x0512('0x4c')](_0x35883a);}})[_0x0512('0x1f')](function(_0x934a7c){if(_0x934a7c){_0x3b0d61=_0x934a7c[_0x0512('0x2f')];if(!_0x48d2fd[_0x0512('0x2a')][_0x0512('0x30')](_0x0512('0x4d'))){_0x35883a[_0x0512('0x1b')]=qs[_0x0512('0x1b')](_0x48d2fd['query']['limit']);_0x35883a[_0x0512('0x1a')]=qs[_0x0512('0x1a')](_0x48d2fd[_0x0512('0x2a')]['offset']);}return _0x25d6bb[_0x0512('0x4c')](_0x35883a);}})[_0x0512('0x1f')](function(_0x3024c1){if(_0x3024c1){return _0x3024c1?{'count':_0x3b0d61,'rows':_0x3024c1}:null;}})['then'](respondWithResult(_0x267af8,null))[_0x0512('0x42')](handleError(_0x267af8,null));};