Built motion from commit 911eb874.|2.6.31
[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 _0x7f7a=['query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where','filter','merge','VIRTUAL','options','includeAll','include','rows','params','keys','find','catch','create','body','addConditions','ids','omit','findOne','Condition','sort','pick','getConditions','addActions','Action','getActions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','then','error','stack','name','send','index','map','Automation','rawAttributes','fieldName','type','key'];(function(_0x5ecc63,_0x110d0d){var _0x56e65f=function(_0x138202){while(--_0x138202){_0x5ecc63['push'](_0x5ecc63['shift']());}};_0x56e65f(++_0x110d0d);}(_0x7f7a,0x1d1));var _0xa7f7=function(_0x54b982,_0x18e213){_0x54b982=_0x54b982-0x0;var _0x400b0e=_0x7f7a[_0x54b982];return _0x400b0e;};'use strict';var emlformat=require(_0xa7f7('0x0'));var rimraf=require(_0xa7f7('0x1'));var zipdir=require(_0xa7f7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa7f7('0x3'));var moment=require(_0xa7f7('0x4'));var BPromise=require(_0xa7f7('0x5'));var Mustache=require(_0xa7f7('0x6'));var util=require(_0xa7f7('0x7'));var path=require(_0xa7f7('0x8'));var sox=require('sox');var csv=require(_0xa7f7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa7f7('0xa'));var _=require('lodash');var squel=require(_0xa7f7('0xb'));var crypto=require(_0xa7f7('0xc'));var jsforce=require(_0xa7f7('0xd'));var deskjs=require(_0xa7f7('0xe'));var toCsv=require(_0xa7f7('0x9'));var querystring=require('querystring');var Papa=require(_0xa7f7('0xf'));var Redis=require(_0xa7f7('0x10'));var authService=require(_0xa7f7('0x11'));var qs=require(_0xa7f7('0x12'));var as=require(_0xa7f7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa7f7('0x14'))(_0xa7f7('0x15'));var utils=require(_0xa7f7('0x16'));var config=require(_0xa7f7('0x17'));var licenseUtil=require(_0xa7f7('0x18'));var db=require(_0xa7f7('0x19'))['db'];function respondWithStatusCode(_0xcfc8a5,_0x2c32ef){_0x2c32ef=_0x2c32ef||0xcc;return function(_0x330cc4){if(_0x330cc4){return _0xcfc8a5[_0xa7f7('0x1a')](_0x2c32ef);}return _0xcfc8a5['status'](_0x2c32ef)[_0xa7f7('0x1b')]();};}function respondWithResult(_0x34ef55,_0x278d4d){_0x278d4d=_0x278d4d||0xc8;return function(_0x29e9da){if(_0x29e9da){return _0x34ef55[_0xa7f7('0x1c')](_0x278d4d)[_0xa7f7('0x1d')](_0x29e9da);}};}function respondWithFilteredResult(_0x50552b,_0x57575c){return function(_0x5f518a){if(_0x5f518a){var _0x429337=typeof _0x57575c[_0xa7f7('0x1e')]===_0xa7f7('0x1f')&&typeof _0x57575c[_0xa7f7('0x20')]===_0xa7f7('0x1f');var _0x3367ab=_0x5f518a[_0xa7f7('0x21')];var _0x3a2c0f=_0x429337?0x0:_0x57575c['offset'];var _0x1383de=_0x429337?_0x5f518a[_0xa7f7('0x21')]:_0x57575c['offset']+_0x57575c[_0xa7f7('0x20')];var _0x463052;if(_0x1383de>=_0x3367ab){_0x1383de=_0x3367ab;_0x463052=0xc8;}else{_0x463052=0xce;}_0x50552b[_0xa7f7('0x1c')](_0x463052);return _0x50552b[_0xa7f7('0x22')](_0xa7f7('0x23'),_0x3a2c0f+'-'+_0x1383de+'/'+_0x3367ab)[_0xa7f7('0x1d')](_0x5f518a);}return null;};}function patchUpdates(_0x33c594){return function(_0x492ec6){try{jsonpatch[_0xa7f7('0x24')](_0x492ec6,_0x33c594,!![]);}catch(_0x24a450){return BPromise['reject'](_0x24a450);}return _0x492ec6[_0xa7f7('0x25')]();};}function saveUpdates(_0x376bc3,_0x350e9d){return function(_0x4bbfd6){if(_0x4bbfd6){return _0x4bbfd6['update'](_0x376bc3)['then'](function(_0x4953c6){return _0x4953c6;});}return null;};}function removeEntity(_0xe795e6,_0xd8b470){return function(_0x26b900){if(_0x26b900){return _0x26b900[_0xa7f7('0x26')]()[_0xa7f7('0x27')](function(){_0xe795e6['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c1187,_0x29d5a5){return function(_0x2b65e0){if(!_0x2b65e0){_0x3c1187[_0xa7f7('0x1a')](0x194);}return _0x2b65e0;};}function handleError(_0x510cfa,_0x42df34){_0x42df34=_0x42df34||0x1f4;return function(_0xf807e7){logger[_0xa7f7('0x28')](_0xf807e7[_0xa7f7('0x29')]);if(_0xf807e7['name']){delete _0xf807e7[_0xa7f7('0x2a')];}_0x510cfa[_0xa7f7('0x1c')](_0x42df34)[_0xa7f7('0x2b')](_0xf807e7);};}exports[_0xa7f7('0x2c')]=function(_0xd895b,_0x4ed6fa){var _0x297907={},_0x39e614={},_0x1c81af={'count':0x0,'rows':[]};var _0x330430=_[_0xa7f7('0x2d')](db[_0xa7f7('0x2e')][_0xa7f7('0x2f')],function(_0x7bd8de){return{'name':_0x7bd8de[_0xa7f7('0x30')],'type':_0x7bd8de[_0xa7f7('0x31')][_0xa7f7('0x32')]};});_0x39e614['model']=_[_0xa7f7('0x2d')](_0x330430,_0xa7f7('0x2a'));_0x39e614[_0xa7f7('0x33')]=_['keys'](_0xd895b['query']);_0x39e614[_0xa7f7('0x34')]=_['intersection'](_0x39e614[_0xa7f7('0x35')],_0x39e614['query']);_0x297907[_0xa7f7('0x36')]=_[_0xa7f7('0x37')](_0x39e614[_0xa7f7('0x35')],qs[_0xa7f7('0x38')](_0xd895b['query'][_0xa7f7('0x38')]));_0x297907[_0xa7f7('0x36')]=_0x297907[_0xa7f7('0x36')][_0xa7f7('0x39')]?_0x297907['attributes']:_0x39e614['model'];if(!_0xd895b['query'][_0xa7f7('0x3a')](_0xa7f7('0x3b'))){_0x297907[_0xa7f7('0x20')]=qs[_0xa7f7('0x20')](_0xd895b['query']['limit']);_0x297907[_0xa7f7('0x1e')]=qs[_0xa7f7('0x1e')](_0xd895b[_0xa7f7('0x33')]['offset']);}_0x297907[_0xa7f7('0x3c')]=qs['sort'](_0xd895b[_0xa7f7('0x33')]['sort']);_0x297907[_0xa7f7('0x3d')]=qs['filters'](_['pick'](_0xd895b[_0xa7f7('0x33')],_0x39e614[_0xa7f7('0x34')]),_0x330430);if(_0xd895b[_0xa7f7('0x33')][_0xa7f7('0x3e')]){_0x297907[_0xa7f7('0x3d')]=_[_0xa7f7('0x3f')](_0x297907[_0xa7f7('0x3d')],{'$or':_[_0xa7f7('0x2d')](_0x330430,function(_0x157940){if(_0x157940['type']!==_0xa7f7('0x40')){var _0x192be9={};_0x192be9[_0x157940['name']]={'$like':'%'+_0xd895b[_0xa7f7('0x33')][_0xa7f7('0x3e')]+'%'};return _0x192be9;}})});}_0x297907=_[_0xa7f7('0x3f')]({},_0x297907,_0xd895b[_0xa7f7('0x41')]);var _0x5188d0={'where':_0x297907['where']};return db[_0xa7f7('0x2e')][_0xa7f7('0x21')](_0x5188d0)[_0xa7f7('0x27')](function(_0x435ea9){_0x1c81af['count']=_0x435ea9;if(_0xd895b['query'][_0xa7f7('0x42')]){_0x297907[_0xa7f7('0x43')]=[{'all':!![]}];}return db[_0xa7f7('0x2e')]['findAll'](_0x297907);})[_0xa7f7('0x27')](function(_0x1f69ca){_0x1c81af[_0xa7f7('0x44')]=_0x1f69ca;return _0x1c81af;})['then'](respondWithFilteredResult(_0x4ed6fa,_0x297907))['catch'](handleError(_0x4ed6fa,null));};exports['show']=function(_0x36abaf,_0x5d02b6){var _0x10b83c={'raw':![],'where':{'id':_0x36abaf[_0xa7f7('0x45')]['id']}},_0x763b66={};_0x763b66[_0xa7f7('0x35')]=_[_0xa7f7('0x46')](db[_0xa7f7('0x2e')][_0xa7f7('0x2f')]);_0x763b66[_0xa7f7('0x33')]=_[_0xa7f7('0x46')](_0x36abaf['query']);_0x763b66['filters']=_[_0xa7f7('0x37')](_0x763b66[_0xa7f7('0x35')],_0x763b66[_0xa7f7('0x33')]);_0x10b83c[_0xa7f7('0x36')]=_[_0xa7f7('0x37')](_0x763b66[_0xa7f7('0x35')],qs['fields'](_0x36abaf[_0xa7f7('0x33')][_0xa7f7('0x38')]));_0x10b83c[_0xa7f7('0x36')]=_0x10b83c[_0xa7f7('0x36')][_0xa7f7('0x39')]?_0x10b83c[_0xa7f7('0x36')]:_0x763b66[_0xa7f7('0x35')];if(_0x36abaf[_0xa7f7('0x33')][_0xa7f7('0x42')]){_0x10b83c[_0xa7f7('0x43')]=[{'all':!![]}];}_0x10b83c=_['merge']({},_0x10b83c,_0x36abaf[_0xa7f7('0x41')]);return db[_0xa7f7('0x2e')][_0xa7f7('0x47')](_0x10b83c)['then'](handleEntityNotFound(_0x5d02b6,null))[_0xa7f7('0x27')](respondWithResult(_0x5d02b6,null))[_0xa7f7('0x48')](handleError(_0x5d02b6,null));};exports[_0xa7f7('0x49')]=function(_0x5d1689,_0x54d1c1){return db[_0xa7f7('0x2e')]['create'](_0x5d1689[_0xa7f7('0x4a')],{})[_0xa7f7('0x27')](respondWithResult(_0x54d1c1,0xc9))[_0xa7f7('0x48')](handleError(_0x54d1c1,null));};exports['update']=function(_0x518845,_0x37b0f5){if(_0x518845['body']['id']){delete _0x518845[_0xa7f7('0x4a')]['id'];}return db[_0xa7f7('0x2e')][_0xa7f7('0x47')]({'where':{'id':_0x518845[_0xa7f7('0x45')]['id']}})[_0xa7f7('0x27')](handleEntityNotFound(_0x37b0f5,null))[_0xa7f7('0x27')](saveUpdates(_0x518845[_0xa7f7('0x4a')],null))[_0xa7f7('0x27')](respondWithResult(_0x37b0f5,null))[_0xa7f7('0x48')](handleError(_0x37b0f5,null));};exports[_0xa7f7('0x26')]=function(_0x11c9ba,_0x2b13d9){return db[_0xa7f7('0x2e')][_0xa7f7('0x47')]({'where':{'id':_0x11c9ba[_0xa7f7('0x45')]['id']}})['then'](handleEntityNotFound(_0x2b13d9,null))[_0xa7f7('0x27')](removeEntity(_0x2b13d9,null))['catch'](handleError(_0x2b13d9,null));};exports[_0xa7f7('0x4b')]=function(_0x49a9e3,_0x5673fb,_0x2cf530){return db['Condition'][_0xa7f7('0x47')]({'where':{'id':_0x49a9e3[_0xa7f7('0x45')]['id']}})[_0xa7f7('0x27')](handleEntityNotFound(_0x5673fb,null))[_0xa7f7('0x27')](function(_0xd2c8b0){if(_0xd2c8b0){return _0xd2c8b0['addConditions'](_0x49a9e3['body'][_0xa7f7('0x4c')],_[_0xa7f7('0x4d')](_0x49a9e3[_0xa7f7('0x4a')],[_0xa7f7('0x4c'),'id'])||{});}})[_0xa7f7('0x27')](respondWithResult(_0x5673fb,null))[_0xa7f7('0x48')](handleError(_0x5673fb,null));};exports['getConditions']=function(_0x2c78a6,_0x5184d1,_0xd4ca4e){var _0xf3a5c={};var _0x343f49={};var _0x51463d;var _0x5a09ee;return db[_0xa7f7('0x2e')][_0xa7f7('0x4e')]({'where':{'id':_0x2c78a6[_0xa7f7('0x45')]['id']}})[_0xa7f7('0x27')](handleEntityNotFound(_0x5184d1,null))[_0xa7f7('0x27')](function(_0xcd55e1){if(_0xcd55e1){_0x51463d=_0xcd55e1;_0x343f49[_0xa7f7('0x35')]=_['keys'](db[_0xa7f7('0x4f')]['rawAttributes']);_0x343f49[_0xa7f7('0x33')]=_[_0xa7f7('0x46')](_0x2c78a6['query']);_0x343f49['filters']=_[_0xa7f7('0x37')](_0x343f49[_0xa7f7('0x35')],_0x343f49[_0xa7f7('0x33')]);_0xf3a5c[_0xa7f7('0x36')]=_[_0xa7f7('0x37')](_0x343f49[_0xa7f7('0x35')],qs[_0xa7f7('0x38')](_0x2c78a6[_0xa7f7('0x33')]['fields']));_0xf3a5c['attributes']=_0xf3a5c['attributes']['length']?_0xf3a5c[_0xa7f7('0x36')]:_0x343f49[_0xa7f7('0x35')];_0xf3a5c['order']=qs[_0xa7f7('0x50')](_0x2c78a6[_0xa7f7('0x33')][_0xa7f7('0x50')]);_0xf3a5c['where']=qs[_0xa7f7('0x34')](_[_0xa7f7('0x51')](_0x2c78a6[_0xa7f7('0x33')],_0x343f49[_0xa7f7('0x34')]));if(_0x2c78a6['query']['filter']){_0xf3a5c[_0xa7f7('0x3d')]=_[_0xa7f7('0x3f')](_0xf3a5c[_0xa7f7('0x3d')],{'$or':_[_0xa7f7('0x2d')](_0xf3a5c['attributes'],function(_0x575c99){var _0x4211f3={};_0x4211f3[_0x575c99]={'$like':'%'+_0x2c78a6[_0xa7f7('0x33')]['filter']+'%'};return _0x4211f3;})});}_0xf3a5c=_[_0xa7f7('0x3f')]({},_0xf3a5c,_0x2c78a6['options']);return _0x51463d[_0xa7f7('0x52')](_0xf3a5c);}})[_0xa7f7('0x27')](function(_0x543134){if(_0x543134){_0x5a09ee=_0x543134[_0xa7f7('0x39')];if(!_0x2c78a6[_0xa7f7('0x33')][_0xa7f7('0x3a')]('nolimit')){_0xf3a5c[_0xa7f7('0x20')]=qs[_0xa7f7('0x20')](_0x2c78a6[_0xa7f7('0x33')][_0xa7f7('0x20')]);_0xf3a5c['offset']=qs[_0xa7f7('0x1e')](_0x2c78a6[_0xa7f7('0x33')][_0xa7f7('0x1e')]);}return _0x51463d[_0xa7f7('0x52')](_0xf3a5c);}})[_0xa7f7('0x27')](function(_0xf3a488){if(_0xf3a488){return _0xf3a488?{'count':_0x5a09ee,'rows':_0xf3a488}:null;}})[_0xa7f7('0x27')](respondWithResult(_0x5184d1,null))[_0xa7f7('0x48')](handleError(_0x5184d1,null));};exports[_0xa7f7('0x53')]=function(_0x52020a,_0x1a28e7,_0x4eeea4){return db[_0xa7f7('0x54')][_0xa7f7('0x47')]({'where':{'id':_0x52020a[_0xa7f7('0x45')]['id']}})[_0xa7f7('0x27')](handleEntityNotFound(_0x1a28e7,null))['then'](function(_0x4eb08f){if(_0x4eb08f){return _0x4eb08f['addActions'](_0x52020a[_0xa7f7('0x4a')][_0xa7f7('0x4c')],_[_0xa7f7('0x4d')](_0x52020a['body'],[_0xa7f7('0x4c'),'id'])||{});}})[_0xa7f7('0x27')](respondWithResult(_0x1a28e7,null))[_0xa7f7('0x48')](handleError(_0x1a28e7,null));};exports[_0xa7f7('0x55')]=function(_0x48d0f6,_0x385952,_0x433dd3){var _0x317d93={};var _0x4a6112={};var _0xa4326f;var _0x3ba6ee;return db[_0xa7f7('0x2e')][_0xa7f7('0x4e')]({'where':{'id':_0x48d0f6[_0xa7f7('0x45')]['id']}})[_0xa7f7('0x27')](handleEntityNotFound(_0x385952,null))[_0xa7f7('0x27')](function(_0x4d5f40){if(_0x4d5f40){_0xa4326f=_0x4d5f40;_0x4a6112[_0xa7f7('0x35')]=_['keys'](db['Action'][_0xa7f7('0x2f')]);_0x4a6112[_0xa7f7('0x33')]=_['keys'](_0x48d0f6[_0xa7f7('0x33')]);_0x4a6112['filters']=_['intersection'](_0x4a6112[_0xa7f7('0x35')],_0x4a6112[_0xa7f7('0x33')]);_0x317d93[_0xa7f7('0x36')]=_[_0xa7f7('0x37')](_0x4a6112['model'],qs[_0xa7f7('0x38')](_0x48d0f6[_0xa7f7('0x33')]['fields']));_0x317d93[_0xa7f7('0x36')]=_0x317d93[_0xa7f7('0x36')][_0xa7f7('0x39')]?_0x317d93['attributes']:_0x4a6112['model'];_0x317d93[_0xa7f7('0x3c')]=qs['sort'](_0x48d0f6['query'][_0xa7f7('0x50')]);_0x317d93['where']=qs['filters'](_['pick'](_0x48d0f6['query'],_0x4a6112[_0xa7f7('0x34')]));if(_0x48d0f6[_0xa7f7('0x33')][_0xa7f7('0x3e')]){_0x317d93['where']=_[_0xa7f7('0x3f')](_0x317d93[_0xa7f7('0x3d')],{'$or':_[_0xa7f7('0x2d')](_0x317d93[_0xa7f7('0x36')],function(_0x1bbf58){var _0x3ea3a6={};_0x3ea3a6[_0x1bbf58]={'$like':'%'+_0x48d0f6['query']['filter']+'%'};return _0x3ea3a6;})});}_0x317d93=_[_0xa7f7('0x3f')]({},_0x317d93,_0x48d0f6[_0xa7f7('0x41')]);return _0xa4326f[_0xa7f7('0x55')](_0x317d93);}})[_0xa7f7('0x27')](function(_0x37d24e){if(_0x37d24e){_0x3ba6ee=_0x37d24e['length'];if(!_0x48d0f6['query'][_0xa7f7('0x3a')]('nolimit')){_0x317d93[_0xa7f7('0x20')]=qs['limit'](_0x48d0f6[_0xa7f7('0x33')]['limit']);_0x317d93['offset']=qs[_0xa7f7('0x1e')](_0x48d0f6['query']['offset']);}return _0xa4326f[_0xa7f7('0x55')](_0x317d93);}})[_0xa7f7('0x27')](function(_0x486639){if(_0x486639){return _0x486639?{'count':_0x3ba6ee,'rows':_0x486639}:null;}})['then'](respondWithResult(_0x385952,null))[_0xa7f7('0x48')](handleError(_0x385952,null));};