Built motion from commit fe909640.|2.6.8
[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 _0x3395=['hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','Automation','findAll','rows','catch','keys','rawAttributes','options','find','create','body','update','params','Condition','addConditions','ids','omit','getConditions','findOne','order','addActions','Action','getActions','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','save','then','destroy','error','name','send','index','map','fieldName','type','key','model','query','intersection','fields','attributes','length'];(function(_0x4c89d9,_0x65a4c){var _0x2af1ef=function(_0x5f4ed0){while(--_0x5f4ed0){_0x4c89d9['push'](_0x4c89d9['shift']());}};_0x2af1ef(++_0x65a4c);}(_0x3395,0x1c4));var _0x5339=function(_0x1197c1,_0x149118){_0x1197c1=_0x1197c1-0x0;var _0xdfaa1f=_0x3395[_0x1197c1];return _0xdfaa1f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5339('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5339('0x1'));var moment=require(_0x5339('0x2'));var BPromise=require(_0x5339('0x3'));var Mustache=require(_0x5339('0x4'));var util=require(_0x5339('0x5'));var path=require(_0x5339('0x6'));var sox=require(_0x5339('0x7'));var csv=require(_0x5339('0x8'));var ejs=require(_0x5339('0x9'));var fs=require('fs');var fs_extra=require(_0x5339('0xa'));var _=require('lodash');var squel=require(_0x5339('0xb'));var crypto=require(_0x5339('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x5339('0xd'));var toCsv=require(_0x5339('0x8'));var querystring=require(_0x5339('0xe'));var Papa=require('papaparse');var Redis=require(_0x5339('0xf'));var authService=require(_0x5339('0x10'));var qs=require(_0x5339('0x11'));var as=require(_0x5339('0x12'));var hardwareService=require(_0x5339('0x13'));var logger=require('../../config/logger')(_0x5339('0x14'));var utils=require('../../config/utils');var config=require(_0x5339('0x15'));var licenseUtil=require(_0x5339('0x16'));var db=require(_0x5339('0x17'))['db'];function respondWithStatusCode(_0x4d91a2,_0xddc381){_0xddc381=_0xddc381||0xcc;return function(_0x30a572){if(_0x30a572){return _0x4d91a2[_0x5339('0x18')](_0xddc381);}return _0x4d91a2[_0x5339('0x19')](_0xddc381)[_0x5339('0x1a')]();};}function respondWithResult(_0x4558fd,_0x43610d){_0x43610d=_0x43610d||0xc8;return function(_0xa46c6b){if(_0xa46c6b){return _0x4558fd[_0x5339('0x19')](_0x43610d)[_0x5339('0x1b')](_0xa46c6b);}};}function respondWithFilteredResult(_0x5cd414,_0xf89312){return function(_0x3b4765){if(_0x3b4765){var _0x1e66e8=typeof _0xf89312[_0x5339('0x1c')]==='undefined'&&typeof _0xf89312[_0x5339('0x1d')]===_0x5339('0x1e');var _0x513723=_0x3b4765['count'];var _0x3c99dc=_0x1e66e8?0x0:_0xf89312[_0x5339('0x1c')];var _0x16ec6e=_0x1e66e8?_0x3b4765[_0x5339('0x1f')]:_0xf89312[_0x5339('0x1c')]+_0xf89312[_0x5339('0x1d')];var _0x3ccd01;if(_0x16ec6e>=_0x513723){_0x16ec6e=_0x513723;_0x3ccd01=0xc8;}else{_0x3ccd01=0xce;}_0x5cd414['status'](_0x3ccd01);return _0x5cd414['set'](_0x5339('0x20'),_0x3c99dc+'-'+_0x16ec6e+'/'+_0x513723)[_0x5339('0x1b')](_0x3b4765);}return null;};}function patchUpdates(_0x1edcbb){return function(_0x99c1dc){try{jsonpatch[_0x5339('0x21')](_0x99c1dc,_0x1edcbb,!![]);}catch(_0x4a3c34){return BPromise[_0x5339('0x22')](_0x4a3c34);}return _0x99c1dc[_0x5339('0x23')]();};}function saveUpdates(_0x2aa157,_0x118ad3){return function(_0x29d02d){if(_0x29d02d){return _0x29d02d['update'](_0x2aa157)[_0x5339('0x24')](function(_0x18c189){return _0x18c189;});}return null;};}function removeEntity(_0x14d1a6,_0x4f2868){return function(_0x176a6e){if(_0x176a6e){return _0x176a6e[_0x5339('0x25')]()[_0x5339('0x24')](function(){_0x14d1a6[_0x5339('0x19')](0xcc)[_0x5339('0x1a')]();});}};}function handleEntityNotFound(_0x423e,_0x56d3d5){return function(_0x21792c){if(!_0x21792c){_0x423e['sendStatus'](0x194);}return _0x21792c;};}function handleError(_0xa0b0e8,_0x12a8d7){_0x12a8d7=_0x12a8d7||0x1f4;return function(_0x44cce8){logger[_0x5339('0x26')](_0x44cce8['stack']);if(_0x44cce8[_0x5339('0x27')]){delete _0x44cce8[_0x5339('0x27')];}_0xa0b0e8[_0x5339('0x19')](_0x12a8d7)[_0x5339('0x28')](_0x44cce8);};}exports[_0x5339('0x29')]=function(_0x184f5c,_0x5ec9c4){var _0x3bd795={},_0x6921b6={},_0x39e74b={'count':0x0,'rows':[]};var _0x1abee6=_[_0x5339('0x2a')](db['Automation']['rawAttributes'],function(_0x459b3c){return{'name':_0x459b3c[_0x5339('0x2b')],'type':_0x459b3c[_0x5339('0x2c')][_0x5339('0x2d')]};});_0x6921b6[_0x5339('0x2e')]=_[_0x5339('0x2a')](_0x1abee6,'name');_0x6921b6['query']=_['keys'](_0x184f5c[_0x5339('0x2f')]);_0x6921b6['filters']=_[_0x5339('0x30')](_0x6921b6[_0x5339('0x2e')],_0x6921b6[_0x5339('0x2f')]);_0x3bd795['attributes']=_[_0x5339('0x30')](_0x6921b6['model'],qs[_0x5339('0x31')](_0x184f5c[_0x5339('0x2f')][_0x5339('0x31')]));_0x3bd795[_0x5339('0x32')]=_0x3bd795[_0x5339('0x32')][_0x5339('0x33')]?_0x3bd795[_0x5339('0x32')]:_0x6921b6['model'];if(!_0x184f5c['query'][_0x5339('0x34')](_0x5339('0x35'))){_0x3bd795['limit']=qs[_0x5339('0x1d')](_0x184f5c[_0x5339('0x2f')]['limit']);_0x3bd795[_0x5339('0x1c')]=qs['offset'](_0x184f5c['query'][_0x5339('0x1c')]);}_0x3bd795['order']=qs[_0x5339('0x36')](_0x184f5c['query'][_0x5339('0x36')]);_0x3bd795[_0x5339('0x37')]=qs[_0x5339('0x38')](_[_0x5339('0x39')](_0x184f5c[_0x5339('0x2f')],_0x6921b6[_0x5339('0x38')]),_0x1abee6);if(_0x184f5c['query'][_0x5339('0x3a')]){_0x3bd795[_0x5339('0x37')]=_[_0x5339('0x3b')](_0x3bd795[_0x5339('0x37')],{'$or':_[_0x5339('0x2a')](_0x1abee6,function(_0x4ede15){if(_0x4ede15[_0x5339('0x2c')]!==_0x5339('0x3c')){var _0x2bc535={};_0x2bc535[_0x4ede15[_0x5339('0x27')]]={'$like':'%'+_0x184f5c[_0x5339('0x2f')][_0x5339('0x3a')]+'%'};return _0x2bc535;}})});}_0x3bd795=_[_0x5339('0x3b')]({},_0x3bd795,_0x184f5c['options']);var _0xa2a4={'where':_0x3bd795[_0x5339('0x37')]};return db['Automation']['count'](_0xa2a4)['then'](function(_0x367427){_0x39e74b[_0x5339('0x1f')]=_0x367427;if(_0x184f5c[_0x5339('0x2f')][_0x5339('0x3d')]){_0x3bd795['include']=[{'all':!![]}];}return db[_0x5339('0x3e')][_0x5339('0x3f')](_0x3bd795);})[_0x5339('0x24')](function(_0x242fea){_0x39e74b[_0x5339('0x40')]=_0x242fea;return _0x39e74b;})[_0x5339('0x24')](respondWithFilteredResult(_0x5ec9c4,_0x3bd795))[_0x5339('0x41')](handleError(_0x5ec9c4,null));};exports['show']=function(_0x4e7c23,_0x53de8c){var _0x56d674={'raw':![],'where':{'id':_0x4e7c23['params']['id']}},_0x2e3ed8={};_0x2e3ed8[_0x5339('0x2e')]=_[_0x5339('0x42')](db[_0x5339('0x3e')][_0x5339('0x43')]);_0x2e3ed8[_0x5339('0x2f')]=_[_0x5339('0x42')](_0x4e7c23[_0x5339('0x2f')]);_0x2e3ed8[_0x5339('0x38')]=_[_0x5339('0x30')](_0x2e3ed8[_0x5339('0x2e')],_0x2e3ed8[_0x5339('0x2f')]);_0x56d674[_0x5339('0x32')]=_[_0x5339('0x30')](_0x2e3ed8[_0x5339('0x2e')],qs['fields'](_0x4e7c23['query']['fields']));_0x56d674[_0x5339('0x32')]=_0x56d674[_0x5339('0x32')][_0x5339('0x33')]?_0x56d674[_0x5339('0x32')]:_0x2e3ed8[_0x5339('0x2e')];if(_0x4e7c23['query'][_0x5339('0x3d')]){_0x56d674['include']=[{'all':!![]}];}_0x56d674=_[_0x5339('0x3b')]({},_0x56d674,_0x4e7c23[_0x5339('0x44')]);return db[_0x5339('0x3e')][_0x5339('0x45')](_0x56d674)['then'](handleEntityNotFound(_0x53de8c,null))[_0x5339('0x24')](respondWithResult(_0x53de8c,null))['catch'](handleError(_0x53de8c,null));};exports[_0x5339('0x46')]=function(_0x35fbf1,_0x1a1e8f){return db[_0x5339('0x3e')][_0x5339('0x46')](_0x35fbf1[_0x5339('0x47')],{})[_0x5339('0x24')](respondWithResult(_0x1a1e8f,0xc9))['catch'](handleError(_0x1a1e8f,null));};exports[_0x5339('0x48')]=function(_0x506b3c,_0x14f3d7){if(_0x506b3c[_0x5339('0x47')]['id']){delete _0x506b3c[_0x5339('0x47')]['id'];}return db[_0x5339('0x3e')]['find']({'where':{'id':_0x506b3c[_0x5339('0x49')]['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x14f3d7,null))[_0x5339('0x24')](saveUpdates(_0x506b3c['body'],null))[_0x5339('0x24')](respondWithResult(_0x14f3d7,null))['catch'](handleError(_0x14f3d7,null));};exports[_0x5339('0x25')]=function(_0x47081a,_0x331f40){return db['Automation'][_0x5339('0x45')]({'where':{'id':_0x47081a['params']['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x331f40,null))[_0x5339('0x24')](removeEntity(_0x331f40,null))['catch'](handleError(_0x331f40,null));};exports['addConditions']=function(_0x3bbab7,_0x468ad6,_0x46d947){return db[_0x5339('0x4a')][_0x5339('0x45')]({'where':{'id':_0x3bbab7[_0x5339('0x49')]['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x468ad6,null))[_0x5339('0x24')](function(_0x1bb9af){if(_0x1bb9af){return _0x1bb9af[_0x5339('0x4b')](_0x3bbab7[_0x5339('0x47')][_0x5339('0x4c')],_[_0x5339('0x4d')](_0x3bbab7[_0x5339('0x47')],[_0x5339('0x4c'),'id'])||{});}})[_0x5339('0x24')](respondWithResult(_0x468ad6,null))[_0x5339('0x41')](handleError(_0x468ad6,null));};exports[_0x5339('0x4e')]=function(_0x4637e4,_0x2f459d,_0x50e459){var _0x3c277c={};var _0x24e2ae={};var _0x3ea940;var _0x2ed4b8;return db[_0x5339('0x3e')][_0x5339('0x4f')]({'where':{'id':_0x4637e4[_0x5339('0x49')]['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x2f459d,null))[_0x5339('0x24')](function(_0x32fdb1){if(_0x32fdb1){_0x3ea940=_0x32fdb1;_0x24e2ae[_0x5339('0x2e')]=_[_0x5339('0x42')](db[_0x5339('0x4a')][_0x5339('0x43')]);_0x24e2ae['query']=_['keys'](_0x4637e4[_0x5339('0x2f')]);_0x24e2ae['filters']=_['intersection'](_0x24e2ae[_0x5339('0x2e')],_0x24e2ae[_0x5339('0x2f')]);_0x3c277c['attributes']=_['intersection'](_0x24e2ae[_0x5339('0x2e')],qs[_0x5339('0x31')](_0x4637e4[_0x5339('0x2f')][_0x5339('0x31')]));_0x3c277c['attributes']=_0x3c277c['attributes'][_0x5339('0x33')]?_0x3c277c[_0x5339('0x32')]:_0x24e2ae[_0x5339('0x2e')];_0x3c277c[_0x5339('0x50')]=qs[_0x5339('0x36')](_0x4637e4[_0x5339('0x2f')][_0x5339('0x36')]);_0x3c277c[_0x5339('0x37')]=qs[_0x5339('0x38')](_[_0x5339('0x39')](_0x4637e4[_0x5339('0x2f')],_0x24e2ae[_0x5339('0x38')]));if(_0x4637e4[_0x5339('0x2f')][_0x5339('0x3a')]){_0x3c277c['where']=_[_0x5339('0x3b')](_0x3c277c[_0x5339('0x37')],{'$or':_[_0x5339('0x2a')](_0x3c277c[_0x5339('0x32')],function(_0xab75f3){var _0x2cf085={};_0x2cf085[_0xab75f3]={'$like':'%'+_0x4637e4[_0x5339('0x2f')]['filter']+'%'};return _0x2cf085;})});}_0x3c277c=_[_0x5339('0x3b')]({},_0x3c277c,_0x4637e4['options']);return _0x3ea940[_0x5339('0x4e')](_0x3c277c);}})[_0x5339('0x24')](function(_0x585ff1){if(_0x585ff1){_0x2ed4b8=_0x585ff1[_0x5339('0x33')];if(!_0x4637e4[_0x5339('0x2f')][_0x5339('0x34')]('nolimit')){_0x3c277c[_0x5339('0x1d')]=qs[_0x5339('0x1d')](_0x4637e4[_0x5339('0x2f')][_0x5339('0x1d')]);_0x3c277c['offset']=qs[_0x5339('0x1c')](_0x4637e4['query'][_0x5339('0x1c')]);}return _0x3ea940['getConditions'](_0x3c277c);}})[_0x5339('0x24')](function(_0x423878){if(_0x423878){return _0x423878?{'count':_0x2ed4b8,'rows':_0x423878}:null;}})[_0x5339('0x24')](respondWithResult(_0x2f459d,null))[_0x5339('0x41')](handleError(_0x2f459d,null));};exports[_0x5339('0x51')]=function(_0x5460ea,_0x5a2f9e,_0x4b814f){return db[_0x5339('0x52')][_0x5339('0x45')]({'where':{'id':_0x5460ea[_0x5339('0x49')]['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x5a2f9e,null))['then'](function(_0x161a00){if(_0x161a00){return _0x161a00[_0x5339('0x51')](_0x5460ea['body'][_0x5339('0x4c')],_[_0x5339('0x4d')](_0x5460ea[_0x5339('0x47')],['ids','id'])||{});}})[_0x5339('0x24')](respondWithResult(_0x5a2f9e,null))[_0x5339('0x41')](handleError(_0x5a2f9e,null));};exports[_0x5339('0x53')]=function(_0xbdca9b,_0x428e72,_0x1c636a){var _0x355816={};var _0x46d536={};var _0x56006e;var _0x376eea;return db[_0x5339('0x3e')][_0x5339('0x4f')]({'where':{'id':_0xbdca9b[_0x5339('0x49')]['id']}})[_0x5339('0x24')](handleEntityNotFound(_0x428e72,null))['then'](function(_0xab36ae){if(_0xab36ae){_0x56006e=_0xab36ae;_0x46d536[_0x5339('0x2e')]=_[_0x5339('0x42')](db[_0x5339('0x52')]['rawAttributes']);_0x46d536[_0x5339('0x2f')]=_['keys'](_0xbdca9b[_0x5339('0x2f')]);_0x46d536[_0x5339('0x38')]=_['intersection'](_0x46d536[_0x5339('0x2e')],_0x46d536['query']);_0x355816[_0x5339('0x32')]=_[_0x5339('0x30')](_0x46d536[_0x5339('0x2e')],qs[_0x5339('0x31')](_0xbdca9b[_0x5339('0x2f')][_0x5339('0x31')]));_0x355816[_0x5339('0x32')]=_0x355816['attributes'][_0x5339('0x33')]?_0x355816[_0x5339('0x32')]:_0x46d536[_0x5339('0x2e')];_0x355816[_0x5339('0x50')]=qs[_0x5339('0x36')](_0xbdca9b[_0x5339('0x2f')]['sort']);_0x355816[_0x5339('0x37')]=qs['filters'](_[_0x5339('0x39')](_0xbdca9b[_0x5339('0x2f')],_0x46d536[_0x5339('0x38')]));if(_0xbdca9b[_0x5339('0x2f')][_0x5339('0x3a')]){_0x355816[_0x5339('0x37')]=_[_0x5339('0x3b')](_0x355816[_0x5339('0x37')],{'$or':_['map'](_0x355816[_0x5339('0x32')],function(_0x1c03fd){var _0x5dd9f8={};_0x5dd9f8[_0x1c03fd]={'$like':'%'+_0xbdca9b[_0x5339('0x2f')]['filter']+'%'};return _0x5dd9f8;})});}_0x355816=_['merge']({},_0x355816,_0xbdca9b[_0x5339('0x44')]);return _0x56006e[_0x5339('0x53')](_0x355816);}})[_0x5339('0x24')](function(_0x2665ac){if(_0x2665ac){_0x376eea=_0x2665ac['length'];if(!_0xbdca9b[_0x5339('0x2f')][_0x5339('0x34')](_0x5339('0x35'))){_0x355816['limit']=qs[_0x5339('0x1d')](_0xbdca9b[_0x5339('0x2f')]['limit']);_0x355816[_0x5339('0x1c')]=qs[_0x5339('0x1c')](_0xbdca9b[_0x5339('0x2f')]['offset']);}return _0x56006e[_0x5339('0x53')](_0x355816);}})[_0x5339('0x24')](function(_0x28b505){if(_0x28b505){return _0x28b505?{'count':_0x376eea,'rows':_0x28b505}:null;}})[_0x5339('0x24')](respondWithResult(_0x428e72,null))['catch'](handleError(_0x428e72,null));};