94b8c51053da85616d5a109f09199cb9ef75228d
[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 _0x59e6=['status','end','json','offset','undefined','limit','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','map','Automation','rawAttributes','fieldName','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','where','type','VIRTUAL','filter','options','count','findAll','rows','catch','show','params','include','merge','find','create','body','Condition','addConditions','omit','ids','findOne','order','getConditions','addActions','getActions','Action','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus'];(function(_0xea35d1,_0x302471){var _0x1d7a7c=function(_0x1bc101){while(--_0x1bc101){_0xea35d1['push'](_0xea35d1['shift']());}};_0x1d7a7c(++_0x302471);}(_0x59e6,0xea));var _0x659e=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x59e6[_0x1ac595];return _0x455fff;};'use strict';var emlformat=require(_0x659e('0x0'));var rimraf=require(_0x659e('0x1'));var zipdir=require(_0x659e('0x2'));var jsonpatch=require(_0x659e('0x3'));var rp=require(_0x659e('0x4'));var moment=require(_0x659e('0x5'));var BPromise=require(_0x659e('0x6'));var Mustache=require('mustache');var util=require(_0x659e('0x7'));var path=require('path');var sox=require(_0x659e('0x8'));var csv=require(_0x659e('0x9'));var ejs=require(_0x659e('0xa'));var fs=require('fs');var fs_extra=require(_0x659e('0xb'));var _=require(_0x659e('0xc'));var squel=require(_0x659e('0xd'));var crypto=require(_0x659e('0xe'));var jsforce=require(_0x659e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x659e('0x9'));var querystring=require(_0x659e('0x10'));var Papa=require(_0x659e('0x11'));var Redis=require(_0x659e('0x12'));var authService=require(_0x659e('0x13'));var qs=require(_0x659e('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x659e('0x15'));var logger=require('../../config/logger')(_0x659e('0x16'));var utils=require(_0x659e('0x17'));var config=require(_0x659e('0x18'));var licenseUtil=require(_0x659e('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2c6c6c,_0x584e94){_0x584e94=_0x584e94||0xcc;return function(_0x4f84c8){if(_0x4f84c8){return _0x2c6c6c[_0x659e('0x1a')](_0x584e94);}return _0x2c6c6c[_0x659e('0x1b')](_0x584e94)[_0x659e('0x1c')]();};}function respondWithResult(_0x100d76,_0x5aa51b){_0x5aa51b=_0x5aa51b||0xc8;return function(_0x3a4d1f){if(_0x3a4d1f){return _0x100d76[_0x659e('0x1b')](_0x5aa51b)[_0x659e('0x1d')](_0x3a4d1f);}};}function respondWithFilteredResult(_0x3775d3,_0x17bb05){return function(_0x564ee5){if(_0x564ee5){var _0x363e11=typeof _0x17bb05[_0x659e('0x1e')]===_0x659e('0x1f')&&typeof _0x17bb05[_0x659e('0x20')]==='undefined';var _0x42fbe8=_0x564ee5['count'];var _0x15a36b=_0x363e11?0x0:_0x17bb05['offset'];var _0x135392=_0x363e11?_0x564ee5['count']:_0x17bb05[_0x659e('0x1e')]+_0x17bb05[_0x659e('0x20')];var _0x23064a;if(_0x135392>=_0x42fbe8){_0x135392=_0x42fbe8;_0x23064a=0xc8;}else{_0x23064a=0xce;}_0x3775d3[_0x659e('0x1b')](_0x23064a);return _0x3775d3[_0x659e('0x21')](_0x659e('0x22'),_0x15a36b+'-'+_0x135392+'/'+_0x42fbe8)['json'](_0x564ee5);}return null;};}function patchUpdates(_0x179955){return function(_0x3bd0cc){try{jsonpatch[_0x659e('0x23')](_0x3bd0cc,_0x179955,!![]);}catch(_0x52e0c4){return BPromise['reject'](_0x52e0c4);}return _0x3bd0cc[_0x659e('0x24')]();};}function saveUpdates(_0xf180d0,_0xeda85e){return function(_0x4fe1d4){if(_0x4fe1d4){return _0x4fe1d4[_0x659e('0x25')](_0xf180d0)['then'](function(_0x45076f){return _0x45076f;});}return null;};}function removeEntity(_0x54995b,_0xaf8511){return function(_0x512962){if(_0x512962){return _0x512962[_0x659e('0x26')]()[_0x659e('0x27')](function(){_0x54995b[_0x659e('0x1b')](0xcc)[_0x659e('0x1c')]();});}};}function handleEntityNotFound(_0x2d43ce,_0xb42893){return function(_0x137fdd){if(!_0x137fdd){_0x2d43ce['sendStatus'](0x194);}return _0x137fdd;};}function handleError(_0x3ec86b,_0x219f9c){_0x219f9c=_0x219f9c||0x1f4;return function(_0x361279){logger[_0x659e('0x28')](_0x361279[_0x659e('0x29')]);if(_0x361279[_0x659e('0x2a')]){delete _0x361279[_0x659e('0x2a')];}_0x3ec86b['status'](_0x219f9c)[_0x659e('0x2b')](_0x361279);};}exports['index']=function(_0x208e18,_0x19b5d0){var _0x314778={},_0x2db182={},_0x2ad152={'count':0x0,'rows':[]};var _0x329acc=_[_0x659e('0x2c')](db[_0x659e('0x2d')][_0x659e('0x2e')],function(_0x56c10a){return{'name':_0x56c10a[_0x659e('0x2f')],'type':_0x56c10a['type'][_0x659e('0x30')]};});_0x2db182['model']=_['map'](_0x329acc,_0x659e('0x2a'));_0x2db182[_0x659e('0x31')]=_[_0x659e('0x32')](_0x208e18[_0x659e('0x31')]);_0x2db182[_0x659e('0x33')]=_['intersection'](_0x2db182[_0x659e('0x34')],_0x2db182['query']);_0x314778[_0x659e('0x35')]=_[_0x659e('0x36')](_0x2db182[_0x659e('0x34')],qs[_0x659e('0x37')](_0x208e18[_0x659e('0x31')][_0x659e('0x37')]));_0x314778[_0x659e('0x35')]=_0x314778[_0x659e('0x35')][_0x659e('0x38')]?_0x314778[_0x659e('0x35')]:_0x2db182[_0x659e('0x34')];if(!_0x208e18['query'][_0x659e('0x39')](_0x659e('0x3a'))){_0x314778['limit']=qs[_0x659e('0x20')](_0x208e18[_0x659e('0x31')]['limit']);_0x314778[_0x659e('0x1e')]=qs[_0x659e('0x1e')](_0x208e18['query']['offset']);}_0x314778['order']=qs[_0x659e('0x3b')](_0x208e18[_0x659e('0x31')][_0x659e('0x3b')]);_0x314778['where']=qs[_0x659e('0x33')](_[_0x659e('0x3c')](_0x208e18['query'],_0x2db182[_0x659e('0x33')]),_0x329acc);if(_0x208e18[_0x659e('0x31')]['filter']){_0x314778[_0x659e('0x3d')]=_['merge'](_0x314778[_0x659e('0x3d')],{'$or':_[_0x659e('0x2c')](_0x329acc,function(_0x5b3a00){if(_0x5b3a00[_0x659e('0x3e')]!==_0x659e('0x3f')){var _0x2ea6e9={};_0x2ea6e9[_0x5b3a00[_0x659e('0x2a')]]={'$like':'%'+_0x208e18[_0x659e('0x31')][_0x659e('0x40')]+'%'};return _0x2ea6e9;}})});}_0x314778=_['merge']({},_0x314778,_0x208e18[_0x659e('0x41')]);var _0xff54a3={'where':_0x314778['where']};return db['Automation'][_0x659e('0x42')](_0xff54a3)[_0x659e('0x27')](function(_0x4fcef0){_0x2ad152[_0x659e('0x42')]=_0x4fcef0;if(_0x208e18[_0x659e('0x31')]['includeAll']){_0x314778['include']=[{'all':!![]}];}return db[_0x659e('0x2d')][_0x659e('0x43')](_0x314778);})[_0x659e('0x27')](function(_0x16a5d3){_0x2ad152[_0x659e('0x44')]=_0x16a5d3;return _0x2ad152;})[_0x659e('0x27')](respondWithFilteredResult(_0x19b5d0,_0x314778))[_0x659e('0x45')](handleError(_0x19b5d0,null));};exports[_0x659e('0x46')]=function(_0x27860b,_0xa053c){var _0x24789f={'raw':![],'where':{'id':_0x27860b[_0x659e('0x47')]['id']}},_0x5caf47={};_0x5caf47[_0x659e('0x34')]=_['keys'](db['Automation'][_0x659e('0x2e')]);_0x5caf47[_0x659e('0x31')]=_[_0x659e('0x32')](_0x27860b[_0x659e('0x31')]);_0x5caf47[_0x659e('0x33')]=_[_0x659e('0x36')](_0x5caf47['model'],_0x5caf47['query']);_0x24789f[_0x659e('0x35')]=_['intersection'](_0x5caf47[_0x659e('0x34')],qs[_0x659e('0x37')](_0x27860b[_0x659e('0x31')]['fields']));_0x24789f['attributes']=_0x24789f[_0x659e('0x35')][_0x659e('0x38')]?_0x24789f[_0x659e('0x35')]:_0x5caf47[_0x659e('0x34')];if(_0x27860b[_0x659e('0x31')]['includeAll']){_0x24789f[_0x659e('0x48')]=[{'all':!![]}];}_0x24789f=_[_0x659e('0x49')]({},_0x24789f,_0x27860b[_0x659e('0x41')]);return db[_0x659e('0x2d')][_0x659e('0x4a')](_0x24789f)[_0x659e('0x27')](handleEntityNotFound(_0xa053c,null))[_0x659e('0x27')](respondWithResult(_0xa053c,null))[_0x659e('0x45')](handleError(_0xa053c,null));};exports['create']=function(_0x1a2d93,_0x38b093){return db['Automation'][_0x659e('0x4b')](_0x1a2d93[_0x659e('0x4c')],{})[_0x659e('0x27')](respondWithResult(_0x38b093,0xc9))[_0x659e('0x45')](handleError(_0x38b093,null));};exports[_0x659e('0x25')]=function(_0x2a9d44,_0x271391){if(_0x2a9d44[_0x659e('0x4c')]['id']){delete _0x2a9d44[_0x659e('0x4c')]['id'];}return db[_0x659e('0x2d')]['find']({'where':{'id':_0x2a9d44[_0x659e('0x47')]['id']}})[_0x659e('0x27')](handleEntityNotFound(_0x271391,null))[_0x659e('0x27')](saveUpdates(_0x2a9d44[_0x659e('0x4c')],null))['then'](respondWithResult(_0x271391,null))['catch'](handleError(_0x271391,null));};exports[_0x659e('0x26')]=function(_0x278603,_0x56b1c9){return db[_0x659e('0x2d')][_0x659e('0x4a')]({'where':{'id':_0x278603[_0x659e('0x47')]['id']}})[_0x659e('0x27')](handleEntityNotFound(_0x56b1c9,null))[_0x659e('0x27')](removeEntity(_0x56b1c9,null))[_0x659e('0x45')](handleError(_0x56b1c9,null));};exports['addConditions']=function(_0x561cd8,_0x138672,_0x352e30){return db[_0x659e('0x4d')][_0x659e('0x4a')]({'where':{'id':_0x561cd8[_0x659e('0x47')]['id']}})[_0x659e('0x27')](handleEntityNotFound(_0x138672,null))[_0x659e('0x27')](function(_0x5e06ef){if(_0x5e06ef){return _0x5e06ef[_0x659e('0x4e')](_0x561cd8[_0x659e('0x4c')]['ids'],_[_0x659e('0x4f')](_0x561cd8[_0x659e('0x4c')],[_0x659e('0x50'),'id'])||{});}})[_0x659e('0x27')](respondWithResult(_0x138672,null))[_0x659e('0x45')](handleError(_0x138672,null));};exports['getConditions']=function(_0x139f5c,_0x1e8633,_0x4d5aca){var _0x34bbe9={};var _0x41036d={};var _0x4f4c70;var _0x597848;return db[_0x659e('0x2d')][_0x659e('0x51')]({'where':{'id':_0x139f5c[_0x659e('0x47')]['id']}})['then'](handleEntityNotFound(_0x1e8633,null))[_0x659e('0x27')](function(_0x35a570){if(_0x35a570){_0x4f4c70=_0x35a570;_0x41036d['model']=_[_0x659e('0x32')](db[_0x659e('0x4d')][_0x659e('0x2e')]);_0x41036d[_0x659e('0x31')]=_[_0x659e('0x32')](_0x139f5c['query']);_0x41036d['filters']=_[_0x659e('0x36')](_0x41036d['model'],_0x41036d['query']);_0x34bbe9[_0x659e('0x35')]=_[_0x659e('0x36')](_0x41036d['model'],qs[_0x659e('0x37')](_0x139f5c[_0x659e('0x31')][_0x659e('0x37')]));_0x34bbe9[_0x659e('0x35')]=_0x34bbe9[_0x659e('0x35')][_0x659e('0x38')]?_0x34bbe9[_0x659e('0x35')]:_0x41036d['model'];_0x34bbe9[_0x659e('0x52')]=qs[_0x659e('0x3b')](_0x139f5c['query'][_0x659e('0x3b')]);_0x34bbe9[_0x659e('0x3d')]=qs[_0x659e('0x33')](_[_0x659e('0x3c')](_0x139f5c[_0x659e('0x31')],_0x41036d[_0x659e('0x33')]));if(_0x139f5c[_0x659e('0x31')][_0x659e('0x40')]){_0x34bbe9[_0x659e('0x3d')]=_['merge'](_0x34bbe9['where'],{'$or':_[_0x659e('0x2c')](_0x34bbe9[_0x659e('0x35')],function(_0x19a050){var _0x3e1025={};_0x3e1025[_0x19a050]={'$like':'%'+_0x139f5c[_0x659e('0x31')][_0x659e('0x40')]+'%'};return _0x3e1025;})});}_0x34bbe9=_['merge']({},_0x34bbe9,_0x139f5c[_0x659e('0x41')]);return _0x4f4c70[_0x659e('0x53')](_0x34bbe9);}})[_0x659e('0x27')](function(_0x58b133){if(_0x58b133){_0x597848=_0x58b133[_0x659e('0x38')];if(!_0x139f5c[_0x659e('0x31')]['hasOwnProperty']('nolimit')){_0x34bbe9[_0x659e('0x20')]=qs[_0x659e('0x20')](_0x139f5c[_0x659e('0x31')][_0x659e('0x20')]);_0x34bbe9[_0x659e('0x1e')]=qs[_0x659e('0x1e')](_0x139f5c[_0x659e('0x31')]['offset']);}return _0x4f4c70[_0x659e('0x53')](_0x34bbe9);}})[_0x659e('0x27')](function(_0x276df8){if(_0x276df8){return _0x276df8?{'count':_0x597848,'rows':_0x276df8}:null;}})['then'](respondWithResult(_0x1e8633,null))[_0x659e('0x45')](handleError(_0x1e8633,null));};exports[_0x659e('0x54')]=function(_0x99cef2,_0x3635a4,_0xa34faf){return db['Action'][_0x659e('0x4a')]({'where':{'id':_0x99cef2[_0x659e('0x47')]['id']}})[_0x659e('0x27')](handleEntityNotFound(_0x3635a4,null))[_0x659e('0x27')](function(_0x184270){if(_0x184270){return _0x184270[_0x659e('0x54')](_0x99cef2['body'][_0x659e('0x50')],_[_0x659e('0x4f')](_0x99cef2[_0x659e('0x4c')],[_0x659e('0x50'),'id'])||{});}})['then'](respondWithResult(_0x3635a4,null))[_0x659e('0x45')](handleError(_0x3635a4,null));};exports[_0x659e('0x55')]=function(_0x28cf91,_0x51cae7,_0x44d5a0){var _0x23017d={};var _0x53e632={};var _0x153b34;var _0xe1b80;return db['Automation'][_0x659e('0x51')]({'where':{'id':_0x28cf91[_0x659e('0x47')]['id']}})[_0x659e('0x27')](handleEntityNotFound(_0x51cae7,null))[_0x659e('0x27')](function(_0x2d9ce2){if(_0x2d9ce2){_0x153b34=_0x2d9ce2;_0x53e632[_0x659e('0x34')]=_[_0x659e('0x32')](db[_0x659e('0x56')][_0x659e('0x2e')]);_0x53e632[_0x659e('0x31')]=_[_0x659e('0x32')](_0x28cf91[_0x659e('0x31')]);_0x53e632[_0x659e('0x33')]=_[_0x659e('0x36')](_0x53e632[_0x659e('0x34')],_0x53e632[_0x659e('0x31')]);_0x23017d[_0x659e('0x35')]=_[_0x659e('0x36')](_0x53e632[_0x659e('0x34')],qs['fields'](_0x28cf91['query'][_0x659e('0x37')]));_0x23017d[_0x659e('0x35')]=_0x23017d[_0x659e('0x35')]['length']?_0x23017d[_0x659e('0x35')]:_0x53e632[_0x659e('0x34')];_0x23017d[_0x659e('0x52')]=qs[_0x659e('0x3b')](_0x28cf91[_0x659e('0x31')]['sort']);_0x23017d['where']=qs[_0x659e('0x33')](_[_0x659e('0x3c')](_0x28cf91[_0x659e('0x31')],_0x53e632[_0x659e('0x33')]));if(_0x28cf91[_0x659e('0x31')][_0x659e('0x40')]){_0x23017d[_0x659e('0x3d')]=_[_0x659e('0x49')](_0x23017d[_0x659e('0x3d')],{'$or':_[_0x659e('0x2c')](_0x23017d[_0x659e('0x35')],function(_0x9471b4){var _0x25841c={};_0x25841c[_0x9471b4]={'$like':'%'+_0x28cf91['query'][_0x659e('0x40')]+'%'};return _0x25841c;})});}_0x23017d=_['merge']({},_0x23017d,_0x28cf91[_0x659e('0x41')]);return _0x153b34[_0x659e('0x55')](_0x23017d);}})[_0x659e('0x27')](function(_0x538a27){if(_0x538a27){_0xe1b80=_0x538a27[_0x659e('0x38')];if(!_0x28cf91[_0x659e('0x31')][_0x659e('0x39')]('nolimit')){_0x23017d['limit']=qs[_0x659e('0x20')](_0x28cf91[_0x659e('0x31')][_0x659e('0x20')]);_0x23017d['offset']=qs[_0x659e('0x1e')](_0x28cf91['query'][_0x659e('0x1e')]);}return _0x153b34[_0x659e('0x55')](_0x23017d);}})[_0x659e('0x27')](function(_0xd34ca6){if(_0xd34ca6){return _0xd34ca6?{'count':_0xe1b80,'rows':_0xd34ca6}:null;}})[_0x659e('0x27')](respondWithResult(_0x51cae7,null))[_0x659e('0x45')](handleError(_0x51cae7,null));};