Built motion from commit 14588770.|2.5.38
[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 _0x61d5=['bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','status','set','apply','reject','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','merge','type','filter','options','includeAll','include','Automation','catch','show','params','find','create','body','addConditions','ids','omit','findOne','getConditions','nolimit','addActions','Action','getActions','hasOwnProperty','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x3108d9,_0xf08d6){var _0x1455e6=function(_0xfd5906){while(--_0xfd5906){_0x3108d9['push'](_0x3108d9['shift']());}};_0x1455e6(++_0xf08d6);}(_0x61d5,0x1db));var _0x561d=function(_0x1d24eb,_0x12295b){_0x1d24eb=_0x1d24eb-0x0;var _0x1dc576=_0x61d5[_0x1d24eb];return _0x1dc576;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x561d('0x0'));var zipdir=require(_0x561d('0x1'));var jsonpatch=require(_0x561d('0x2'));var rp=require(_0x561d('0x3'));var moment=require(_0x561d('0x4'));var BPromise=require(_0x561d('0x5'));var Mustache=require(_0x561d('0x6'));var util=require(_0x561d('0x7'));var path=require('path');var sox=require(_0x561d('0x8'));var csv=require(_0x561d('0x9'));var ejs=require(_0x561d('0xa'));var fs=require('fs');var fs_extra=require(_0x561d('0xb'));var _=require('lodash');var squel=require(_0x561d('0xc'));var crypto=require(_0x561d('0xd'));var jsforce=require(_0x561d('0xe'));var deskjs=require(_0x561d('0xf'));var toCsv=require(_0x561d('0x9'));var querystring=require(_0x561d('0x10'));var Papa=require(_0x561d('0x11'));var Redis=require(_0x561d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x561d('0x13'));var as=require(_0x561d('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x561d('0x15'));var db=require(_0x561d('0x16'))['db'];function respondWithStatusCode(_0x45866d,_0x25fe5c){_0x25fe5c=_0x25fe5c||0xcc;return function(_0x55743a){if(_0x55743a){return _0x45866d[_0x561d('0x17')](_0x25fe5c);}return _0x45866d['status'](_0x25fe5c)[_0x561d('0x18')]();};}function respondWithResult(_0x4b1a7c,_0x23ced2){_0x23ced2=_0x23ced2||0xc8;return function(_0x46ed5d){if(_0x46ed5d){return _0x4b1a7c['status'](_0x23ced2)[_0x561d('0x19')](_0x46ed5d);}};}function respondWithFilteredResult(_0x2f5b28,_0x212993){return function(_0x2a4103){if(_0x2a4103){var _0x57e14e=typeof _0x212993[_0x561d('0x1a')]===_0x561d('0x1b')&&typeof _0x212993['limit']===_0x561d('0x1b');var _0x4b3c54=_0x2a4103['count'];var _0x5c7a3b=_0x57e14e?0x0:_0x212993[_0x561d('0x1a')];var _0x4e16d3=_0x57e14e?_0x2a4103[_0x561d('0x1c')]:_0x212993['offset']+_0x212993[_0x561d('0x1d')];var _0xd70572;if(_0x4e16d3>=_0x4b3c54){_0x4e16d3=_0x4b3c54;_0xd70572=0xc8;}else{_0xd70572=0xce;}_0x2f5b28[_0x561d('0x1e')](_0xd70572);return _0x2f5b28[_0x561d('0x1f')]('Content-Range',_0x5c7a3b+'-'+_0x4e16d3+'/'+_0x4b3c54)[_0x561d('0x19')](_0x2a4103);}return null;};}function patchUpdates(_0x2889cc){return function(_0x4cffa9){try{jsonpatch[_0x561d('0x20')](_0x4cffa9,_0x2889cc,!![]);}catch(_0x11e50f){return BPromise[_0x561d('0x21')](_0x11e50f);}return _0x4cffa9['save']();};}function saveUpdates(_0x20bd2e,_0x9879a7){return function(_0x22ec8b){if(_0x22ec8b){return _0x22ec8b[_0x561d('0x22')](_0x20bd2e)['then'](function(_0x2de1a8){return _0x2de1a8;});}return null;};}function removeEntity(_0x441c7c,_0x5e9dbf){return function(_0x346284){if(_0x346284){return _0x346284['destroy']()[_0x561d('0x23')](function(){_0x441c7c['status'](0xcc)[_0x561d('0x18')]();});}};}function handleEntityNotFound(_0x1984f8,_0x343428){return function(_0x2f2ca){if(!_0x2f2ca){_0x1984f8[_0x561d('0x17')](0x194);}return _0x2f2ca;};}function handleError(_0x255b50,_0x46cfa2){_0x46cfa2=_0x46cfa2||0x1f4;return function(_0x3b2e0f){logger[_0x561d('0x24')](_0x3b2e0f[_0x561d('0x25')]);if(_0x3b2e0f[_0x561d('0x26')]){delete _0x3b2e0f['name'];}_0x255b50[_0x561d('0x1e')](_0x46cfa2)[_0x561d('0x27')](_0x3b2e0f);};}exports[_0x561d('0x28')]=function(_0x24289c,_0x135b72){var _0x48b78b={},_0x926285={},_0x10b080={'count':0x0,'rows':[]};var _0x4fb6d6=_[_0x561d('0x29')](db['Automation'][_0x561d('0x2a')],function(_0x4d2e0a){return{'name':_0x4d2e0a[_0x561d('0x2b')],'type':_0x4d2e0a['type'][_0x561d('0x2c')]};});_0x926285[_0x561d('0x2d')]=_['map'](_0x4fb6d6,_0x561d('0x26'));_0x926285[_0x561d('0x2e')]=_[_0x561d('0x2f')](_0x24289c['query']);_0x926285[_0x561d('0x30')]=_[_0x561d('0x31')](_0x926285[_0x561d('0x2d')],_0x926285[_0x561d('0x2e')]);_0x48b78b[_0x561d('0x32')]=_['intersection'](_0x926285[_0x561d('0x2d')],qs[_0x561d('0x33')](_0x24289c['query'][_0x561d('0x33')]));_0x48b78b[_0x561d('0x32')]=_0x48b78b[_0x561d('0x32')][_0x561d('0x34')]?_0x48b78b[_0x561d('0x32')]:_0x926285[_0x561d('0x2d')];if(!_0x24289c[_0x561d('0x2e')]['hasOwnProperty']('nolimit')){_0x48b78b[_0x561d('0x1d')]=qs[_0x561d('0x1d')](_0x24289c['query'][_0x561d('0x1d')]);_0x48b78b[_0x561d('0x1a')]=qs[_0x561d('0x1a')](_0x24289c[_0x561d('0x2e')][_0x561d('0x1a')]);}_0x48b78b[_0x561d('0x35')]=qs['sort'](_0x24289c[_0x561d('0x2e')][_0x561d('0x36')]);_0x48b78b[_0x561d('0x37')]=qs['filters'](_[_0x561d('0x38')](_0x24289c[_0x561d('0x2e')],_0x926285[_0x561d('0x30')]),_0x4fb6d6);if(_0x24289c[_0x561d('0x2e')]['filter']){_0x48b78b['where']=_[_0x561d('0x39')](_0x48b78b[_0x561d('0x37')],{'$or':_['map'](_0x4fb6d6,function(_0x2f33e2){if(_0x2f33e2[_0x561d('0x3a')]!=='VIRTUAL'){var _0xa42e9c={};_0xa42e9c[_0x2f33e2[_0x561d('0x26')]]={'$like':'%'+_0x24289c[_0x561d('0x2e')][_0x561d('0x3b')]+'%'};return _0xa42e9c;}})});}_0x48b78b=_[_0x561d('0x39')]({},_0x48b78b,_0x24289c[_0x561d('0x3c')]);var _0x2f360d={'where':_0x48b78b['where']};return db['Automation'][_0x561d('0x1c')](_0x2f360d)[_0x561d('0x23')](function(_0x4c2d1e){_0x10b080[_0x561d('0x1c')]=_0x4c2d1e;if(_0x24289c[_0x561d('0x2e')][_0x561d('0x3d')]){_0x48b78b[_0x561d('0x3e')]=[{'all':!![]}];}return db[_0x561d('0x3f')]['findAll'](_0x48b78b);})[_0x561d('0x23')](function(_0x46236a){_0x10b080['rows']=_0x46236a;return _0x10b080;})[_0x561d('0x23')](respondWithFilteredResult(_0x135b72,_0x48b78b))[_0x561d('0x40')](handleError(_0x135b72,null));};exports[_0x561d('0x41')]=function(_0x14549f,_0xa92775){var _0x2d9e52={'raw':![],'where':{'id':_0x14549f[_0x561d('0x42')]['id']}},_0x2a96bc={};_0x2a96bc['model']=_[_0x561d('0x2f')](db[_0x561d('0x3f')]['rawAttributes']);_0x2a96bc[_0x561d('0x2e')]=_[_0x561d('0x2f')](_0x14549f[_0x561d('0x2e')]);_0x2a96bc[_0x561d('0x30')]=_[_0x561d('0x31')](_0x2a96bc[_0x561d('0x2d')],_0x2a96bc['query']);_0x2d9e52['attributes']=_[_0x561d('0x31')](_0x2a96bc[_0x561d('0x2d')],qs[_0x561d('0x33')](_0x14549f[_0x561d('0x2e')][_0x561d('0x33')]));_0x2d9e52[_0x561d('0x32')]=_0x2d9e52[_0x561d('0x32')][_0x561d('0x34')]?_0x2d9e52['attributes']:_0x2a96bc[_0x561d('0x2d')];if(_0x14549f[_0x561d('0x2e')]['includeAll']){_0x2d9e52[_0x561d('0x3e')]=[{'all':!![]}];}_0x2d9e52=_[_0x561d('0x39')]({},_0x2d9e52,_0x14549f[_0x561d('0x3c')]);return db[_0x561d('0x3f')][_0x561d('0x43')](_0x2d9e52)[_0x561d('0x23')](handleEntityNotFound(_0xa92775,null))[_0x561d('0x23')](respondWithResult(_0xa92775,null))[_0x561d('0x40')](handleError(_0xa92775,null));};exports['create']=function(_0x28abf2,_0x34cb05){return db['Automation'][_0x561d('0x44')](_0x28abf2[_0x561d('0x45')],{})['then'](respondWithResult(_0x34cb05,0xc9))[_0x561d('0x40')](handleError(_0x34cb05,null));};exports[_0x561d('0x22')]=function(_0x543ddd,_0x239c02){if(_0x543ddd[_0x561d('0x45')]['id']){delete _0x543ddd[_0x561d('0x45')]['id'];}return db[_0x561d('0x3f')][_0x561d('0x43')]({'where':{'id':_0x543ddd[_0x561d('0x42')]['id']}})['then'](handleEntityNotFound(_0x239c02,null))[_0x561d('0x23')](saveUpdates(_0x543ddd[_0x561d('0x45')],null))[_0x561d('0x23')](respondWithResult(_0x239c02,null))[_0x561d('0x40')](handleError(_0x239c02,null));};exports['destroy']=function(_0x1cd2dc,_0x50cf21){return db[_0x561d('0x3f')]['find']({'where':{'id':_0x1cd2dc[_0x561d('0x42')]['id']}})[_0x561d('0x23')](handleEntityNotFound(_0x50cf21,null))[_0x561d('0x23')](removeEntity(_0x50cf21,null))['catch'](handleError(_0x50cf21,null));};exports[_0x561d('0x46')]=function(_0x5b4add,_0x478304,_0x5585b6){return db['Condition']['find']({'where':{'id':_0x5b4add[_0x561d('0x42')]['id']}})[_0x561d('0x23')](handleEntityNotFound(_0x478304,null))[_0x561d('0x23')](function(_0x4b96a2){if(_0x4b96a2){return _0x4b96a2[_0x561d('0x46')](_0x5b4add[_0x561d('0x45')][_0x561d('0x47')],_[_0x561d('0x48')](_0x5b4add[_0x561d('0x45')],[_0x561d('0x47'),'id'])||{});}})['then'](respondWithResult(_0x478304,null))[_0x561d('0x40')](handleError(_0x478304,null));};exports['getConditions']=function(_0x2845b0,_0x91fe8d,_0x5c4303){var _0x4a8cd9={};var _0x49d477={};var _0x4c6c55;var _0xa55d4;return db[_0x561d('0x3f')][_0x561d('0x49')]({'where':{'id':_0x2845b0[_0x561d('0x42')]['id']}})['then'](handleEntityNotFound(_0x91fe8d,null))[_0x561d('0x23')](function(_0x2b52c3){if(_0x2b52c3){_0x4c6c55=_0x2b52c3;_0x49d477[_0x561d('0x2d')]=_[_0x561d('0x2f')](db['Condition'][_0x561d('0x2a')]);_0x49d477[_0x561d('0x2e')]=_['keys'](_0x2845b0[_0x561d('0x2e')]);_0x49d477['filters']=_['intersection'](_0x49d477['model'],_0x49d477[_0x561d('0x2e')]);_0x4a8cd9['attributes']=_[_0x561d('0x31')](_0x49d477[_0x561d('0x2d')],qs[_0x561d('0x33')](_0x2845b0[_0x561d('0x2e')][_0x561d('0x33')]));_0x4a8cd9[_0x561d('0x32')]=_0x4a8cd9[_0x561d('0x32')][_0x561d('0x34')]?_0x4a8cd9[_0x561d('0x32')]:_0x49d477[_0x561d('0x2d')];_0x4a8cd9[_0x561d('0x35')]=qs['sort'](_0x2845b0[_0x561d('0x2e')]['sort']);_0x4a8cd9['where']=qs[_0x561d('0x30')](_[_0x561d('0x38')](_0x2845b0[_0x561d('0x2e')],_0x49d477[_0x561d('0x30')]));if(_0x2845b0[_0x561d('0x2e')][_0x561d('0x3b')]){_0x4a8cd9['where']=_[_0x561d('0x39')](_0x4a8cd9[_0x561d('0x37')],{'$or':_['map'](_0x4a8cd9[_0x561d('0x32')],function(_0x4d1b6c){var _0x148bbb={};_0x148bbb[_0x4d1b6c]={'$like':'%'+_0x2845b0[_0x561d('0x2e')]['filter']+'%'};return _0x148bbb;})});}_0x4a8cd9=_[_0x561d('0x39')]({},_0x4a8cd9,_0x2845b0[_0x561d('0x3c')]);return _0x4c6c55[_0x561d('0x4a')](_0x4a8cd9);}})[_0x561d('0x23')](function(_0x417669){if(_0x417669){_0xa55d4=_0x417669[_0x561d('0x34')];if(!_0x2845b0['query']['hasOwnProperty'](_0x561d('0x4b'))){_0x4a8cd9[_0x561d('0x1d')]=qs['limit'](_0x2845b0['query']['limit']);_0x4a8cd9['offset']=qs['offset'](_0x2845b0[_0x561d('0x2e')]['offset']);}return _0x4c6c55[_0x561d('0x4a')](_0x4a8cd9);}})[_0x561d('0x23')](function(_0x332364){if(_0x332364){return _0x332364?{'count':_0xa55d4,'rows':_0x332364}:null;}})[_0x561d('0x23')](respondWithResult(_0x91fe8d,null))[_0x561d('0x40')](handleError(_0x91fe8d,null));};exports[_0x561d('0x4c')]=function(_0x358aab,_0x35dae3,_0x4f5c01){return db[_0x561d('0x4d')][_0x561d('0x43')]({'where':{'id':_0x358aab[_0x561d('0x42')]['id']}})[_0x561d('0x23')](handleEntityNotFound(_0x35dae3,null))[_0x561d('0x23')](function(_0xeb1d4f){if(_0xeb1d4f){return _0xeb1d4f['addActions'](_0x358aab['body'][_0x561d('0x47')],_['omit'](_0x358aab[_0x561d('0x45')],['ids','id'])||{});}})['then'](respondWithResult(_0x35dae3,null))[_0x561d('0x40')](handleError(_0x35dae3,null));};exports[_0x561d('0x4e')]=function(_0x25e56e,_0x40a700,_0x21d13d){var _0x50bd72={};var _0x7d92de={};var _0x1eb250;var _0x55cd77;return db['Automation'][_0x561d('0x49')]({'where':{'id':_0x25e56e[_0x561d('0x42')]['id']}})[_0x561d('0x23')](handleEntityNotFound(_0x40a700,null))[_0x561d('0x23')](function(_0x21ffb5){if(_0x21ffb5){_0x1eb250=_0x21ffb5;_0x7d92de[_0x561d('0x2d')]=_[_0x561d('0x2f')](db['Action']['rawAttributes']);_0x7d92de[_0x561d('0x2e')]=_[_0x561d('0x2f')](_0x25e56e[_0x561d('0x2e')]);_0x7d92de[_0x561d('0x30')]=_[_0x561d('0x31')](_0x7d92de['model'],_0x7d92de[_0x561d('0x2e')]);_0x50bd72[_0x561d('0x32')]=_[_0x561d('0x31')](_0x7d92de[_0x561d('0x2d')],qs[_0x561d('0x33')](_0x25e56e[_0x561d('0x2e')][_0x561d('0x33')]));_0x50bd72[_0x561d('0x32')]=_0x50bd72[_0x561d('0x32')]['length']?_0x50bd72['attributes']:_0x7d92de['model'];_0x50bd72[_0x561d('0x35')]=qs[_0x561d('0x36')](_0x25e56e[_0x561d('0x2e')][_0x561d('0x36')]);_0x50bd72[_0x561d('0x37')]=qs[_0x561d('0x30')](_[_0x561d('0x38')](_0x25e56e['query'],_0x7d92de[_0x561d('0x30')]));if(_0x25e56e[_0x561d('0x2e')][_0x561d('0x3b')]){_0x50bd72[_0x561d('0x37')]=_[_0x561d('0x39')](_0x50bd72[_0x561d('0x37')],{'$or':_[_0x561d('0x29')](_0x50bd72[_0x561d('0x32')],function(_0x1eeb64){var _0x3a31cf={};_0x3a31cf[_0x1eeb64]={'$like':'%'+_0x25e56e[_0x561d('0x2e')][_0x561d('0x3b')]+'%'};return _0x3a31cf;})});}_0x50bd72=_['merge']({},_0x50bd72,_0x25e56e[_0x561d('0x3c')]);return _0x1eb250[_0x561d('0x4e')](_0x50bd72);}})[_0x561d('0x23')](function(_0x5a2c97){if(_0x5a2c97){_0x55cd77=_0x5a2c97['length'];if(!_0x25e56e[_0x561d('0x2e')][_0x561d('0x4f')]('nolimit')){_0x50bd72[_0x561d('0x1d')]=qs[_0x561d('0x1d')](_0x25e56e[_0x561d('0x2e')]['limit']);_0x50bd72[_0x561d('0x1a')]=qs[_0x561d('0x1a')](_0x25e56e[_0x561d('0x2e')][_0x561d('0x1a')]);}return _0x1eb250[_0x561d('0x4e')](_0x50bd72);}})['then'](function(_0x1b6601){if(_0x1b6601){return _0x1b6601?{'count':_0x55cd77,'rows':_0x1b6601}:null;}})[_0x561d('0x23')](respondWithResult(_0x40a700,null))['catch'](handleError(_0x40a700,null));};