Built motion from commit a61a4a20.|2.5.46
[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 _0xc756=['map','Automation','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','include','rows','catch','show','params','rawAttributes','length','includeAll','options','find','create','body','Condition','ids','omit','getConditions','findOne','pick','addActions','getActions','Action','zip-dir','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','status','set','Content-Range','apply','reject','update','then','destroy','error','name','index'];(function(_0x3fc735,_0x537fe4){var _0x9309bd=function(_0xdfa29e){while(--_0xdfa29e){_0x3fc735['push'](_0x3fc735['shift']());}};_0x9309bd(++_0x537fe4);}(_0xc756,0x171));var _0x6c75=function(_0x113922,_0x150314){_0x113922=_0x113922-0x0;var _0x1fcc67=_0xc756[_0x113922];return _0x1fcc67;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6c75('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6c75('0x1'));var moment=require(_0x6c75('0x2'));var BPromise=require(_0x6c75('0x3'));var Mustache=require(_0x6c75('0x4'));var util=require('util');var path=require(_0x6c75('0x5'));var sox=require('sox');var csv=require(_0x6c75('0x6'));var ejs=require(_0x6c75('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6c75('0x8'));var squel=require(_0x6c75('0x9'));var crypto=require(_0x6c75('0xa'));var jsforce=require(_0x6c75('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x6c75('0x6'));var querystring=require(_0x6c75('0xc'));var Papa=require(_0x6c75('0xd'));var Redis=require(_0x6c75('0xe'));var authService=require(_0x6c75('0xf'));var qs=require(_0x6c75('0x10'));var as=require(_0x6c75('0x11'));var hardwareService=require(_0x6c75('0x12'));var logger=require('../../config/logger')(_0x6c75('0x13'));var utils=require(_0x6c75('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x6c75('0x15'));var db=require(_0x6c75('0x16'))['db'];function respondWithStatusCode(_0x1f4a78,_0x5e0267){_0x5e0267=_0x5e0267||0xcc;return function(_0x1fdbae){if(_0x1fdbae){return _0x1f4a78[_0x6c75('0x17')](_0x5e0267);}return _0x1f4a78['status'](_0x5e0267)[_0x6c75('0x18')]();};}function respondWithResult(_0x4b24c2,_0x3451cc){_0x3451cc=_0x3451cc||0xc8;return function(_0x5b19c6){if(_0x5b19c6){return _0x4b24c2['status'](_0x3451cc)[_0x6c75('0x19')](_0x5b19c6);}};}function respondWithFilteredResult(_0x2a86c2,_0x188fd1){return function(_0x40f73e){if(_0x40f73e){var _0x5c47e3=typeof _0x188fd1[_0x6c75('0x1a')]===_0x6c75('0x1b')&&typeof _0x188fd1['limit']===_0x6c75('0x1b');var _0x9b11a1=_0x40f73e['count'];var _0x10748e=_0x5c47e3?0x0:_0x188fd1[_0x6c75('0x1a')];var _0x29cbc0=_0x5c47e3?_0x40f73e[_0x6c75('0x1c')]:_0x188fd1['offset']+_0x188fd1[_0x6c75('0x1d')];var _0x23da38;if(_0x29cbc0>=_0x9b11a1){_0x29cbc0=_0x9b11a1;_0x23da38=0xc8;}else{_0x23da38=0xce;}_0x2a86c2[_0x6c75('0x1e')](_0x23da38);return _0x2a86c2[_0x6c75('0x1f')](_0x6c75('0x20'),_0x10748e+'-'+_0x29cbc0+'/'+_0x9b11a1)[_0x6c75('0x19')](_0x40f73e);}return null;};}function patchUpdates(_0x7f0daf){return function(_0x3ffcfd){try{jsonpatch[_0x6c75('0x21')](_0x3ffcfd,_0x7f0daf,!![]);}catch(_0xa0f845){return BPromise[_0x6c75('0x22')](_0xa0f845);}return _0x3ffcfd['save']();};}function saveUpdates(_0x339b49,_0x4a2e4a){return function(_0x2691cf){if(_0x2691cf){return _0x2691cf[_0x6c75('0x23')](_0x339b49)[_0x6c75('0x24')](function(_0xce5231){return _0xce5231;});}return null;};}function removeEntity(_0x43ea4b,_0x4803af){return function(_0x3043f0){if(_0x3043f0){return _0x3043f0[_0x6c75('0x25')]()[_0x6c75('0x24')](function(){_0x43ea4b[_0x6c75('0x1e')](0xcc)[_0x6c75('0x18')]();});}};}function handleEntityNotFound(_0x302d65,_0x4374bd){return function(_0x27ac36){if(!_0x27ac36){_0x302d65[_0x6c75('0x17')](0x194);}return _0x27ac36;};}function handleError(_0x3d35ad,_0xada644){_0xada644=_0xada644||0x1f4;return function(_0x1e2b13){logger[_0x6c75('0x26')](_0x1e2b13['stack']);if(_0x1e2b13[_0x6c75('0x27')]){delete _0x1e2b13[_0x6c75('0x27')];}_0x3d35ad[_0x6c75('0x1e')](_0xada644)['send'](_0x1e2b13);};}exports[_0x6c75('0x28')]=function(_0x10e5ec,_0x49229a){var _0xa95584={},_0x550683={},_0xaef834={'count':0x0,'rows':[]};var _0x12391c=_[_0x6c75('0x29')](db[_0x6c75('0x2a')]['rawAttributes'],function(_0x38bdc6){return{'name':_0x38bdc6[_0x6c75('0x2b')],'type':_0x38bdc6[_0x6c75('0x2c')][_0x6c75('0x2d')]};});_0x550683[_0x6c75('0x2e')]=_['map'](_0x12391c,_0x6c75('0x27'));_0x550683[_0x6c75('0x2f')]=_[_0x6c75('0x30')](_0x10e5ec[_0x6c75('0x2f')]);_0x550683[_0x6c75('0x31')]=_[_0x6c75('0x32')](_0x550683['model'],_0x550683[_0x6c75('0x2f')]);_0xa95584['attributes']=_['intersection'](_0x550683[_0x6c75('0x2e')],qs[_0x6c75('0x33')](_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x33')]));_0xa95584[_0x6c75('0x34')]=_0xa95584['attributes']['length']?_0xa95584[_0x6c75('0x34')]:_0x550683[_0x6c75('0x2e')];if(!_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x35')](_0x6c75('0x36'))){_0xa95584[_0x6c75('0x1d')]=qs[_0x6c75('0x1d')](_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x1d')]);_0xa95584['offset']=qs['offset'](_0x10e5ec[_0x6c75('0x2f')]['offset']);}_0xa95584[_0x6c75('0x37')]=qs['sort'](_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x38')]);_0xa95584['where']=qs['filters'](_['pick'](_0x10e5ec[_0x6c75('0x2f')],_0x550683[_0x6c75('0x31')]),_0x12391c);if(_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x39')]){_0xa95584[_0x6c75('0x3a')]=_[_0x6c75('0x3b')](_0xa95584[_0x6c75('0x3a')],{'$or':_[_0x6c75('0x29')](_0x12391c,function(_0x228b3d){if(_0x228b3d[_0x6c75('0x2c')]!==_0x6c75('0x3c')){var _0x2f5272={};_0x2f5272[_0x228b3d[_0x6c75('0x27')]]={'$like':'%'+_0x10e5ec[_0x6c75('0x2f')][_0x6c75('0x39')]+'%'};return _0x2f5272;}})});}_0xa95584=_[_0x6c75('0x3b')]({},_0xa95584,_0x10e5ec['options']);var _0x36215d={'where':_0xa95584[_0x6c75('0x3a')]};return db[_0x6c75('0x2a')][_0x6c75('0x1c')](_0x36215d)['then'](function(_0x31dcf5){_0xaef834[_0x6c75('0x1c')]=_0x31dcf5;if(_0x10e5ec[_0x6c75('0x2f')]['includeAll']){_0xa95584[_0x6c75('0x3d')]=[{'all':!![]}];}return db[_0x6c75('0x2a')]['findAll'](_0xa95584);})[_0x6c75('0x24')](function(_0x9f6c6f){_0xaef834[_0x6c75('0x3e')]=_0x9f6c6f;return _0xaef834;})[_0x6c75('0x24')](respondWithFilteredResult(_0x49229a,_0xa95584))[_0x6c75('0x3f')](handleError(_0x49229a,null));};exports[_0x6c75('0x40')]=function(_0x1859b6,_0x461fd4){var _0x1a4a88={'raw':![],'where':{'id':_0x1859b6[_0x6c75('0x41')]['id']}},_0x2cf2bf={};_0x2cf2bf[_0x6c75('0x2e')]=_['keys'](db[_0x6c75('0x2a')][_0x6c75('0x42')]);_0x2cf2bf[_0x6c75('0x2f')]=_[_0x6c75('0x30')](_0x1859b6['query']);_0x2cf2bf[_0x6c75('0x31')]=_['intersection'](_0x2cf2bf[_0x6c75('0x2e')],_0x2cf2bf[_0x6c75('0x2f')]);_0x1a4a88[_0x6c75('0x34')]=_[_0x6c75('0x32')](_0x2cf2bf['model'],qs[_0x6c75('0x33')](_0x1859b6[_0x6c75('0x2f')]['fields']));_0x1a4a88['attributes']=_0x1a4a88[_0x6c75('0x34')][_0x6c75('0x43')]?_0x1a4a88[_0x6c75('0x34')]:_0x2cf2bf[_0x6c75('0x2e')];if(_0x1859b6[_0x6c75('0x2f')][_0x6c75('0x44')]){_0x1a4a88[_0x6c75('0x3d')]=[{'all':!![]}];}_0x1a4a88=_[_0x6c75('0x3b')]({},_0x1a4a88,_0x1859b6[_0x6c75('0x45')]);return db[_0x6c75('0x2a')][_0x6c75('0x46')](_0x1a4a88)[_0x6c75('0x24')](handleEntityNotFound(_0x461fd4,null))[_0x6c75('0x24')](respondWithResult(_0x461fd4,null))[_0x6c75('0x3f')](handleError(_0x461fd4,null));};exports[_0x6c75('0x47')]=function(_0x5d48ab,_0xa9b15f){return db[_0x6c75('0x2a')][_0x6c75('0x47')](_0x5d48ab[_0x6c75('0x48')],{})[_0x6c75('0x24')](respondWithResult(_0xa9b15f,0xc9))[_0x6c75('0x3f')](handleError(_0xa9b15f,null));};exports[_0x6c75('0x23')]=function(_0x2b0fbf,_0x576a2b){if(_0x2b0fbf['body']['id']){delete _0x2b0fbf[_0x6c75('0x48')]['id'];}return db[_0x6c75('0x2a')]['find']({'where':{'id':_0x2b0fbf['params']['id']}})['then'](handleEntityNotFound(_0x576a2b,null))[_0x6c75('0x24')](saveUpdates(_0x2b0fbf[_0x6c75('0x48')],null))[_0x6c75('0x24')](respondWithResult(_0x576a2b,null))[_0x6c75('0x3f')](handleError(_0x576a2b,null));};exports[_0x6c75('0x25')]=function(_0x207a1a,_0x446f76){return db[_0x6c75('0x2a')][_0x6c75('0x46')]({'where':{'id':_0x207a1a['params']['id']}})['then'](handleEntityNotFound(_0x446f76,null))[_0x6c75('0x24')](removeEntity(_0x446f76,null))[_0x6c75('0x3f')](handleError(_0x446f76,null));};exports['addConditions']=function(_0x5cc82d,_0x1c307b,_0x54fab5){return db[_0x6c75('0x49')][_0x6c75('0x46')]({'where':{'id':_0x5cc82d[_0x6c75('0x41')]['id']}})[_0x6c75('0x24')](handleEntityNotFound(_0x1c307b,null))[_0x6c75('0x24')](function(_0x244b45){if(_0x244b45){return _0x244b45['addConditions'](_0x5cc82d['body'][_0x6c75('0x4a')],_[_0x6c75('0x4b')](_0x5cc82d[_0x6c75('0x48')],[_0x6c75('0x4a'),'id'])||{});}})[_0x6c75('0x24')](respondWithResult(_0x1c307b,null))[_0x6c75('0x3f')](handleError(_0x1c307b,null));};exports[_0x6c75('0x4c')]=function(_0x216e6d,_0x40b115,_0x3a095b){var _0x5247f2={};var _0x141897={};var _0x3a9a6e;var _0x53303e;return db[_0x6c75('0x2a')][_0x6c75('0x4d')]({'where':{'id':_0x216e6d[_0x6c75('0x41')]['id']}})[_0x6c75('0x24')](handleEntityNotFound(_0x40b115,null))['then'](function(_0x4fa61a){if(_0x4fa61a){_0x3a9a6e=_0x4fa61a;_0x141897[_0x6c75('0x2e')]=_['keys'](db[_0x6c75('0x49')]['rawAttributes']);_0x141897['query']=_['keys'](_0x216e6d[_0x6c75('0x2f')]);_0x141897['filters']=_['intersection'](_0x141897[_0x6c75('0x2e')],_0x141897[_0x6c75('0x2f')]);_0x5247f2[_0x6c75('0x34')]=_[_0x6c75('0x32')](_0x141897[_0x6c75('0x2e')],qs[_0x6c75('0x33')](_0x216e6d[_0x6c75('0x2f')]['fields']));_0x5247f2[_0x6c75('0x34')]=_0x5247f2[_0x6c75('0x34')][_0x6c75('0x43')]?_0x5247f2[_0x6c75('0x34')]:_0x141897['model'];_0x5247f2[_0x6c75('0x37')]=qs[_0x6c75('0x38')](_0x216e6d[_0x6c75('0x2f')][_0x6c75('0x38')]);_0x5247f2[_0x6c75('0x3a')]=qs[_0x6c75('0x31')](_[_0x6c75('0x4e')](_0x216e6d[_0x6c75('0x2f')],_0x141897[_0x6c75('0x31')]));if(_0x216e6d[_0x6c75('0x2f')][_0x6c75('0x39')]){_0x5247f2[_0x6c75('0x3a')]=_[_0x6c75('0x3b')](_0x5247f2['where'],{'$or':_[_0x6c75('0x29')](_0x5247f2[_0x6c75('0x34')],function(_0x474027){var _0x2750aa={};_0x2750aa[_0x474027]={'$like':'%'+_0x216e6d[_0x6c75('0x2f')][_0x6c75('0x39')]+'%'};return _0x2750aa;})});}_0x5247f2=_[_0x6c75('0x3b')]({},_0x5247f2,_0x216e6d['options']);return _0x3a9a6e['getConditions'](_0x5247f2);}})[_0x6c75('0x24')](function(_0x5d4770){if(_0x5d4770){_0x53303e=_0x5d4770[_0x6c75('0x43')];if(!_0x216e6d['query'][_0x6c75('0x35')]('nolimit')){_0x5247f2['limit']=qs[_0x6c75('0x1d')](_0x216e6d[_0x6c75('0x2f')][_0x6c75('0x1d')]);_0x5247f2[_0x6c75('0x1a')]=qs[_0x6c75('0x1a')](_0x216e6d[_0x6c75('0x2f')][_0x6c75('0x1a')]);}return _0x3a9a6e[_0x6c75('0x4c')](_0x5247f2);}})[_0x6c75('0x24')](function(_0x229847){if(_0x229847){return _0x229847?{'count':_0x53303e,'rows':_0x229847}:null;}})[_0x6c75('0x24')](respondWithResult(_0x40b115,null))[_0x6c75('0x3f')](handleError(_0x40b115,null));};exports[_0x6c75('0x4f')]=function(_0x5a9eac,_0x38e83a,_0x16f723){return db['Action'][_0x6c75('0x46')]({'where':{'id':_0x5a9eac[_0x6c75('0x41')]['id']}})[_0x6c75('0x24')](handleEntityNotFound(_0x38e83a,null))['then'](function(_0x4f07b0){if(_0x4f07b0){return _0x4f07b0['addActions'](_0x5a9eac[_0x6c75('0x48')][_0x6c75('0x4a')],_[_0x6c75('0x4b')](_0x5a9eac[_0x6c75('0x48')],[_0x6c75('0x4a'),'id'])||{});}})[_0x6c75('0x24')](respondWithResult(_0x38e83a,null))[_0x6c75('0x3f')](handleError(_0x38e83a,null));};exports[_0x6c75('0x50')]=function(_0x38b139,_0x30367c,_0x8430da){var _0x49aeca={};var _0xe92d7={};var _0x102a17;var _0x1d66be;return db[_0x6c75('0x2a')][_0x6c75('0x4d')]({'where':{'id':_0x38b139[_0x6c75('0x41')]['id']}})[_0x6c75('0x24')](handleEntityNotFound(_0x30367c,null))[_0x6c75('0x24')](function(_0x2fa088){if(_0x2fa088){_0x102a17=_0x2fa088;_0xe92d7['model']=_[_0x6c75('0x30')](db[_0x6c75('0x51')][_0x6c75('0x42')]);_0xe92d7[_0x6c75('0x2f')]=_[_0x6c75('0x30')](_0x38b139['query']);_0xe92d7[_0x6c75('0x31')]=_[_0x6c75('0x32')](_0xe92d7[_0x6c75('0x2e')],_0xe92d7[_0x6c75('0x2f')]);_0x49aeca[_0x6c75('0x34')]=_[_0x6c75('0x32')](_0xe92d7[_0x6c75('0x2e')],qs[_0x6c75('0x33')](_0x38b139[_0x6c75('0x2f')][_0x6c75('0x33')]));_0x49aeca[_0x6c75('0x34')]=_0x49aeca[_0x6c75('0x34')][_0x6c75('0x43')]?_0x49aeca[_0x6c75('0x34')]:_0xe92d7[_0x6c75('0x2e')];_0x49aeca['order']=qs[_0x6c75('0x38')](_0x38b139[_0x6c75('0x2f')][_0x6c75('0x38')]);_0x49aeca[_0x6c75('0x3a')]=qs[_0x6c75('0x31')](_[_0x6c75('0x4e')](_0x38b139['query'],_0xe92d7['filters']));if(_0x38b139[_0x6c75('0x2f')][_0x6c75('0x39')]){_0x49aeca[_0x6c75('0x3a')]=_[_0x6c75('0x3b')](_0x49aeca['where'],{'$or':_[_0x6c75('0x29')](_0x49aeca['attributes'],function(_0x1902f6){var _0x42250b={};_0x42250b[_0x1902f6]={'$like':'%'+_0x38b139[_0x6c75('0x2f')][_0x6c75('0x39')]+'%'};return _0x42250b;})});}_0x49aeca=_['merge']({},_0x49aeca,_0x38b139['options']);return _0x102a17[_0x6c75('0x50')](_0x49aeca);}})[_0x6c75('0x24')](function(_0x16cbcc){if(_0x16cbcc){_0x1d66be=_0x16cbcc[_0x6c75('0x43')];if(!_0x38b139['query'][_0x6c75('0x35')]('nolimit')){_0x49aeca[_0x6c75('0x1d')]=qs[_0x6c75('0x1d')](_0x38b139[_0x6c75('0x2f')][_0x6c75('0x1d')]);_0x49aeca['offset']=qs[_0x6c75('0x1a')](_0x38b139[_0x6c75('0x2f')][_0x6c75('0x1a')]);}return _0x102a17[_0x6c75('0x50')](_0x49aeca);}})['then'](function(_0x5b76b7){if(_0x5b76b7){return _0x5b76b7?{'count':_0x1d66be,'rows':_0x5b76b7}:null;}})[_0x6c75('0x24')](respondWithResult(_0x30367c,null))[_0x6c75('0x3f')](handleError(_0x30367c,null));};