Built motion from commit (unavailable).|2.5.3
[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 _0x9f91=['then','destroy','error','stack','name','send','index','map','Automation','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','show','params','find','create','update','body','catch','addConditions','getConditions','findOne','rawAttributes','nolimit','addActions','Action','getActions','html-pdf','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','limit','set','Content-Range','reject','save'];(function(_0x585756,_0x3d9a9b){var _0xb89469=function(_0x4821b1){while(--_0x4821b1){_0x585756['push'](_0x585756['shift']());}};_0xb89469(++_0x3d9a9b);}(_0x9f91,0xce));var _0x19f9=function(_0x5a3cf0,_0x160a68){_0x5a3cf0=_0x5a3cf0-0x0;var _0x5a64ee=_0x9f91[_0x5a3cf0];return _0x5a64ee;};'use strict';var pdf=require(_0x19f9('0x0'));var emlformat=require(_0x19f9('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x19f9('0x2'));var rp=require(_0x19f9('0x3'));var moment=require('moment');var BPromise=require(_0x19f9('0x4'));var Mustache=require(_0x19f9('0x5'));var util=require(_0x19f9('0x6'));var path=require(_0x19f9('0x7'));var sox=require(_0x19f9('0x8'));var csv=require(_0x19f9('0x9'));var ejs=require(_0x19f9('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x19f9('0xb'));var crypto=require(_0x19f9('0xc'));var jsforce=require(_0x19f9('0xd'));var deskjs=require(_0x19f9('0xe'));var toCsv=require(_0x19f9('0x9'));var querystring=require(_0x19f9('0xf'));var Papa=require(_0x19f9('0x10'));var Redis=require('ioredis');var authService=require(_0x19f9('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x19f9('0x12'));var hardwareService=require(_0x19f9('0x13'));var logger=require(_0x19f9('0x14'))(_0x19f9('0x15'));var utils=require(_0x19f9('0x16'));var config=require('../../config/environment');var db=require(_0x19f9('0x17'))['db'];function respondWithStatusCode(_0x4a4145,_0x41789d){_0x41789d=_0x41789d||0xcc;return function(_0x3d7c7a){if(_0x3d7c7a){return _0x4a4145[_0x19f9('0x18')](_0x41789d);}return _0x4a4145['status'](_0x41789d)[_0x19f9('0x19')]();};}function respondWithResult(_0x23fb1b,_0xa8c9b0){_0xa8c9b0=_0xa8c9b0||0xc8;return function(_0x2fdbfb){if(_0x2fdbfb){return _0x23fb1b[_0x19f9('0x1a')](_0xa8c9b0)[_0x19f9('0x1b')](_0x2fdbfb);}};}function respondWithFilteredResult(_0x4b30ea,_0x54580d){return function(_0x12b73e){if(_0x12b73e){var _0x146c1b=_0x12b73e['count'],_0x3d0b3f=_0x54580d[_0x19f9('0x1c')],_0x119bd2=_0x54580d[_0x19f9('0x1c')]+_0x54580d[_0x19f9('0x1d')],_0x455871;if(_0x119bd2>=_0x146c1b){_0x119bd2=_0x146c1b;_0x455871=0xc8;}else{_0x455871=0xce;}_0x4b30ea[_0x19f9('0x1a')](_0x455871);return _0x4b30ea[_0x19f9('0x1e')](_0x19f9('0x1f'),_0x3d0b3f+'-'+_0x119bd2+'/'+_0x146c1b)[_0x19f9('0x1b')](_0x12b73e);}return null;};}function patchUpdates(_0xc3ee1a){return function(_0x53c553){try{jsonpatch['apply'](_0x53c553,_0xc3ee1a,!![]);}catch(_0x3f146c){return BPromise[_0x19f9('0x20')](_0x3f146c);}return _0x53c553[_0x19f9('0x21')]();};}function saveUpdates(_0x1eae40,_0xd38fa7){return function(_0x3c0b81){if(_0x3c0b81){return _0x3c0b81['update'](_0x1eae40)[_0x19f9('0x22')](function(_0x49a70c){return _0x49a70c;});}return null;};}function removeEntity(_0x1080c9,_0x3dbc1a){return function(_0x4bec17){if(_0x4bec17){return _0x4bec17[_0x19f9('0x23')]()['then'](function(){_0x1080c9[_0x19f9('0x1a')](0xcc)[_0x19f9('0x19')]();});}};}function handleEntityNotFound(_0x477022,_0x1b8a5e){return function(_0x3388d4){if(!_0x3388d4){_0x477022[_0x19f9('0x18')](0x194);}return _0x3388d4;};}function handleError(_0xb9b52a,_0x51e80d){_0x51e80d=_0x51e80d||0x1f4;return function(_0x3a24bf){logger[_0x19f9('0x24')](_0x3a24bf[_0x19f9('0x25')]);if(_0x3a24bf['name']){delete _0x3a24bf[_0x19f9('0x26')];}_0xb9b52a[_0x19f9('0x1a')](_0x51e80d)[_0x19f9('0x27')](_0x3a24bf);};}exports[_0x19f9('0x28')]=function(_0x3c7c5f,_0x28656a){var _0x573370={},_0x41036b={},_0x3bcf05={'count':0x0,'rows':[]};var _0x256518=_[_0x19f9('0x29')](db[_0x19f9('0x2a')]['rawAttributes'],function(_0x4c0299){return{'name':_0x4c0299[_0x19f9('0x2b')],'type':_0x4c0299['type'][_0x19f9('0x2c')]};});_0x41036b[_0x19f9('0x2d')]=_[_0x19f9('0x29')](_0x256518,'name');_0x41036b[_0x19f9('0x2e')]=_[_0x19f9('0x2f')](_0x3c7c5f[_0x19f9('0x2e')]);_0x41036b[_0x19f9('0x30')]=_[_0x19f9('0x31')](_0x41036b[_0x19f9('0x2d')],_0x41036b['query']);_0x573370[_0x19f9('0x32')]=_[_0x19f9('0x31')](_0x41036b['model'],qs[_0x19f9('0x33')](_0x3c7c5f[_0x19f9('0x2e')][_0x19f9('0x33')]));_0x573370['attributes']=_0x573370[_0x19f9('0x32')][_0x19f9('0x34')]?_0x573370[_0x19f9('0x32')]:_0x41036b['model'];if(!_0x3c7c5f['query'][_0x19f9('0x35')]('nolimit')){_0x573370[_0x19f9('0x1d')]=qs[_0x19f9('0x1d')](_0x3c7c5f['query']['limit']);_0x573370['offset']=qs[_0x19f9('0x1c')](_0x3c7c5f[_0x19f9('0x2e')][_0x19f9('0x1c')]);}_0x573370[_0x19f9('0x36')]=qs[_0x19f9('0x37')](_0x3c7c5f[_0x19f9('0x2e')]['sort']);_0x573370[_0x19f9('0x38')]=qs[_0x19f9('0x30')](_[_0x19f9('0x39')](_0x3c7c5f[_0x19f9('0x2e')],_0x41036b['filters']),_0x256518);if(_0x3c7c5f[_0x19f9('0x2e')][_0x19f9('0x3a')]){_0x573370['where']=_[_0x19f9('0x3b')](_0x573370[_0x19f9('0x38')],{'$or':_[_0x19f9('0x29')](_0x256518,function(_0x18a760){if(_0x18a760[_0x19f9('0x3c')]!=='VIRTUAL'){var _0x193993={};_0x193993[_0x18a760[_0x19f9('0x26')]]={'$like':'%'+_0x3c7c5f[_0x19f9('0x2e')][_0x19f9('0x3a')]+'%'};return _0x193993;}})});}_0x573370=_[_0x19f9('0x3b')]({},_0x573370,_0x3c7c5f[_0x19f9('0x3d')]);var _0x7754ce={'where':_0x573370[_0x19f9('0x38')]};return db[_0x19f9('0x2a')]['count'](_0x7754ce)[_0x19f9('0x22')](function(_0x5e9916){_0x3bcf05['count']=_0x5e9916;if(_0x3c7c5f[_0x19f9('0x2e')][_0x19f9('0x3e')]){_0x573370[_0x19f9('0x3f')]=[{'all':!![]}];}return db['Automation'][_0x19f9('0x40')](_0x573370);})[_0x19f9('0x22')](function(_0x4018ed){_0x3bcf05['rows']=_0x4018ed;return _0x3bcf05;})[_0x19f9('0x22')](respondWithFilteredResult(_0x28656a,_0x573370))['catch'](handleError(_0x28656a,null));};exports[_0x19f9('0x41')]=function(_0xba9988,_0x5b1665){var _0x2067d0={'raw':![],'where':{'id':_0xba9988[_0x19f9('0x42')]['id']}},_0x150528={};_0x150528[_0x19f9('0x2d')]=_[_0x19f9('0x2f')](db[_0x19f9('0x2a')]['rawAttributes']);_0x150528[_0x19f9('0x2e')]=_[_0x19f9('0x2f')](_0xba9988[_0x19f9('0x2e')]);_0x150528['filters']=_[_0x19f9('0x31')](_0x150528[_0x19f9('0x2d')],_0x150528[_0x19f9('0x2e')]);_0x2067d0['attributes']=_[_0x19f9('0x31')](_0x150528['model'],qs[_0x19f9('0x33')](_0xba9988[_0x19f9('0x2e')][_0x19f9('0x33')]));_0x2067d0[_0x19f9('0x32')]=_0x2067d0[_0x19f9('0x32')][_0x19f9('0x34')]?_0x2067d0[_0x19f9('0x32')]:_0x150528[_0x19f9('0x2d')];if(_0xba9988[_0x19f9('0x2e')][_0x19f9('0x3e')]){_0x2067d0[_0x19f9('0x3f')]=[{'all':!![]}];}_0x2067d0=_[_0x19f9('0x3b')]({},_0x2067d0,_0xba9988['options']);return db[_0x19f9('0x2a')][_0x19f9('0x43')](_0x2067d0)[_0x19f9('0x22')](handleEntityNotFound(_0x5b1665,null))[_0x19f9('0x22')](respondWithResult(_0x5b1665,null))['catch'](handleError(_0x5b1665,null));};exports[_0x19f9('0x44')]=function(_0x1cda36,_0x1c199a){return db[_0x19f9('0x2a')]['create'](_0x1cda36['body'],{})[_0x19f9('0x22')](respondWithResult(_0x1c199a,0xc9))['catch'](handleError(_0x1c199a,null));};exports[_0x19f9('0x45')]=function(_0x2ad1b4,_0x14e931){if(_0x2ad1b4[_0x19f9('0x46')]['id']){delete _0x2ad1b4['body']['id'];}return db[_0x19f9('0x2a')][_0x19f9('0x43')]({'where':{'id':_0x2ad1b4[_0x19f9('0x42')]['id']}})[_0x19f9('0x22')](handleEntityNotFound(_0x14e931,null))[_0x19f9('0x22')](saveUpdates(_0x2ad1b4['body'],null))[_0x19f9('0x22')](respondWithResult(_0x14e931,null))[_0x19f9('0x47')](handleError(_0x14e931,null));};exports['destroy']=function(_0x15487d,_0x2579dd){return db[_0x19f9('0x2a')]['find']({'where':{'id':_0x15487d[_0x19f9('0x42')]['id']}})['then'](handleEntityNotFound(_0x2579dd,null))[_0x19f9('0x22')](removeEntity(_0x2579dd,null))['catch'](handleError(_0x2579dd,null));};exports[_0x19f9('0x48')]=function(_0xacfbe2,_0xd4b987,_0x4bb389){return db['Condition'][_0x19f9('0x43')]({'where':{'id':_0xacfbe2[_0x19f9('0x42')]['id']}})[_0x19f9('0x22')](handleEntityNotFound(_0xd4b987,null))[_0x19f9('0x22')](function(_0x4475ea){if(_0x4475ea){return _0x4475ea['addConditions'](_0xacfbe2[_0x19f9('0x46')]['ids'],_['omit'](_0xacfbe2[_0x19f9('0x46')],['ids','id'])||{});}})['then'](respondWithResult(_0xd4b987,null))[_0x19f9('0x47')](handleError(_0xd4b987,null));};exports[_0x19f9('0x49')]=function(_0x3f834b,_0x271880,_0x39972d){var _0x51303b={};var _0x3fccc7={};var _0x5d090c;var _0x552b80;return db['Automation'][_0x19f9('0x4a')]({'where':{'id':_0x3f834b['params']['id']}})[_0x19f9('0x22')](handleEntityNotFound(_0x271880,null))[_0x19f9('0x22')](function(_0x40ee62){if(_0x40ee62){_0x5d090c=_0x40ee62;_0x3fccc7[_0x19f9('0x2d')]=_[_0x19f9('0x2f')](db['Condition'][_0x19f9('0x4b')]);_0x3fccc7['query']=_[_0x19f9('0x2f')](_0x3f834b[_0x19f9('0x2e')]);_0x3fccc7[_0x19f9('0x30')]=_[_0x19f9('0x31')](_0x3fccc7[_0x19f9('0x2d')],_0x3fccc7[_0x19f9('0x2e')]);_0x51303b[_0x19f9('0x32')]=_[_0x19f9('0x31')](_0x3fccc7[_0x19f9('0x2d')],qs['fields'](_0x3f834b['query'][_0x19f9('0x33')]));_0x51303b['attributes']=_0x51303b['attributes'][_0x19f9('0x34')]?_0x51303b['attributes']:_0x3fccc7[_0x19f9('0x2d')];_0x51303b[_0x19f9('0x36')]=qs[_0x19f9('0x37')](_0x3f834b[_0x19f9('0x2e')][_0x19f9('0x37')]);_0x51303b[_0x19f9('0x38')]=qs[_0x19f9('0x30')](_[_0x19f9('0x39')](_0x3f834b[_0x19f9('0x2e')],_0x3fccc7['filters']));if(_0x3f834b[_0x19f9('0x2e')][_0x19f9('0x3a')]){_0x51303b[_0x19f9('0x38')]=_[_0x19f9('0x3b')](_0x51303b[_0x19f9('0x38')],{'$or':_[_0x19f9('0x29')](_0x51303b[_0x19f9('0x32')],function(_0x124409){var _0xc064af={};_0xc064af[_0x124409]={'$like':'%'+_0x3f834b['query'][_0x19f9('0x3a')]+'%'};return _0xc064af;})});}_0x51303b=_[_0x19f9('0x3b')]({},_0x51303b,_0x3f834b[_0x19f9('0x3d')]);return _0x5d090c[_0x19f9('0x49')](_0x51303b);}})[_0x19f9('0x22')](function(_0x10d75a){if(_0x10d75a){_0x552b80=_0x10d75a[_0x19f9('0x34')];if(!_0x3f834b[_0x19f9('0x2e')][_0x19f9('0x35')](_0x19f9('0x4c'))){_0x51303b[_0x19f9('0x1d')]=qs[_0x19f9('0x1d')](_0x3f834b[_0x19f9('0x2e')]['limit']);_0x51303b[_0x19f9('0x1c')]=qs[_0x19f9('0x1c')](_0x3f834b[_0x19f9('0x2e')]['offset']);}return _0x5d090c[_0x19f9('0x49')](_0x51303b);}})[_0x19f9('0x22')](function(_0x161766){if(_0x161766){return _0x161766?{'count':_0x552b80,'rows':_0x161766}:null;}})['then'](respondWithResult(_0x271880,null))[_0x19f9('0x47')](handleError(_0x271880,null));};exports[_0x19f9('0x4d')]=function(_0x5b778a,_0x21172c,_0x45376c){return db[_0x19f9('0x4e')]['find']({'where':{'id':_0x5b778a['params']['id']}})[_0x19f9('0x22')](handleEntityNotFound(_0x21172c,null))[_0x19f9('0x22')](function(_0x4786d6){if(_0x4786d6){return _0x4786d6[_0x19f9('0x4d')](_0x5b778a[_0x19f9('0x46')]['ids'],_['omit'](_0x5b778a[_0x19f9('0x46')],['ids','id'])||{});}})['then'](respondWithResult(_0x21172c,null))['catch'](handleError(_0x21172c,null));};exports['getActions']=function(_0x3f8b43,_0x2a5e2d,_0x4ee15c){var _0x38ccc4={};var _0x5bb692={};var _0x4a852e;var _0x3c1e63;return db[_0x19f9('0x2a')][_0x19f9('0x4a')]({'where':{'id':_0x3f8b43[_0x19f9('0x42')]['id']}})[_0x19f9('0x22')](handleEntityNotFound(_0x2a5e2d,null))[_0x19f9('0x22')](function(_0x52b70e){if(_0x52b70e){_0x4a852e=_0x52b70e;_0x5bb692['model']=_['keys'](db[_0x19f9('0x4e')]['rawAttributes']);_0x5bb692[_0x19f9('0x2e')]=_[_0x19f9('0x2f')](_0x3f8b43['query']);_0x5bb692[_0x19f9('0x30')]=_[_0x19f9('0x31')](_0x5bb692[_0x19f9('0x2d')],_0x5bb692[_0x19f9('0x2e')]);_0x38ccc4[_0x19f9('0x32')]=_['intersection'](_0x5bb692['model'],qs[_0x19f9('0x33')](_0x3f8b43[_0x19f9('0x2e')][_0x19f9('0x33')]));_0x38ccc4[_0x19f9('0x32')]=_0x38ccc4[_0x19f9('0x32')]['length']?_0x38ccc4[_0x19f9('0x32')]:_0x5bb692[_0x19f9('0x2d')];_0x38ccc4[_0x19f9('0x36')]=qs['sort'](_0x3f8b43[_0x19f9('0x2e')][_0x19f9('0x37')]);_0x38ccc4[_0x19f9('0x38')]=qs[_0x19f9('0x30')](_[_0x19f9('0x39')](_0x3f8b43['query'],_0x5bb692[_0x19f9('0x30')]));if(_0x3f8b43[_0x19f9('0x2e')]['filter']){_0x38ccc4[_0x19f9('0x38')]=_['merge'](_0x38ccc4[_0x19f9('0x38')],{'$or':_['map'](_0x38ccc4['attributes'],function(_0x53f80c){var _0x1578bc={};_0x1578bc[_0x53f80c]={'$like':'%'+_0x3f8b43[_0x19f9('0x2e')][_0x19f9('0x3a')]+'%'};return _0x1578bc;})});}_0x38ccc4=_[_0x19f9('0x3b')]({},_0x38ccc4,_0x3f8b43[_0x19f9('0x3d')]);return _0x4a852e[_0x19f9('0x4f')](_0x38ccc4);}})[_0x19f9('0x22')](function(_0x5c51c6){if(_0x5c51c6){_0x3c1e63=_0x5c51c6[_0x19f9('0x34')];if(!_0x3f8b43[_0x19f9('0x2e')]['hasOwnProperty'](_0x19f9('0x4c'))){_0x38ccc4[_0x19f9('0x1d')]=qs[_0x19f9('0x1d')](_0x3f8b43[_0x19f9('0x2e')][_0x19f9('0x1d')]);_0x38ccc4[_0x19f9('0x1c')]=qs[_0x19f9('0x1c')](_0x3f8b43[_0x19f9('0x2e')]['offset']);}return _0x4a852e[_0x19f9('0x4f')](_0x38ccc4);}})[_0x19f9('0x22')](function(_0x344072){if(_0x344072){return _0x344072?{'count':_0x3c1e63,'rows':_0x344072}:null;}})[_0x19f9('0x22')](respondWithResult(_0x2a5e2d,null))[_0x19f9('0x47')](handleError(_0x2a5e2d,null));};