Built motion from commit 953226e6.|2.6.32
[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 _0x7c81=['path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','Automation','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','body','Condition','addConditions','ids','omit','findOne','filter','getConditions','addActions','getActions','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0x7c81,0xa6));var _0x17c8=function(_0x888385,_0x9cdc66){_0x888385=_0x888385-0x0;var _0x22d5c2=_0x7c81[_0x888385];return _0x22d5c2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x17c8('0x0'));var zipdir=require(_0x17c8('0x1'));var jsonpatch=require(_0x17c8('0x2'));var rp=require('request-promise');var moment=require(_0x17c8('0x3'));var BPromise=require(_0x17c8('0x4'));var Mustache=require(_0x17c8('0x5'));var util=require('util');var path=require(_0x17c8('0x6'));var sox=require(_0x17c8('0x7'));var csv=require('to-csv');var ejs=require(_0x17c8('0x8'));var fs=require('fs');var fs_extra=require(_0x17c8('0x9'));var _=require(_0x17c8('0xa'));var squel=require(_0x17c8('0xb'));var crypto=require(_0x17c8('0xc'));var jsforce=require(_0x17c8('0xd'));var deskjs=require(_0x17c8('0xe'));var toCsv=require('to-csv');var querystring=require(_0x17c8('0xf'));var Papa=require(_0x17c8('0x10'));var Redis=require(_0x17c8('0x11'));var authService=require(_0x17c8('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x17c8('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x17c8('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x17c8('0x15'));var licenseUtil=require(_0x17c8('0x16'));var db=require(_0x17c8('0x17'))['db'];function respondWithStatusCode(_0x4f87fa,_0x4e16c){_0x4e16c=_0x4e16c||0xcc;return function(_0x21a8ee){if(_0x21a8ee){return _0x4f87fa[_0x17c8('0x18')](_0x4e16c);}return _0x4f87fa[_0x17c8('0x19')](_0x4e16c)[_0x17c8('0x1a')]();};}function respondWithResult(_0x2bbf82,_0x38c38d){_0x38c38d=_0x38c38d||0xc8;return function(_0x5a4bd5){if(_0x5a4bd5){return _0x2bbf82[_0x17c8('0x19')](_0x38c38d)[_0x17c8('0x1b')](_0x5a4bd5);}};}function respondWithFilteredResult(_0x58b9ef,_0x39b618){return function(_0x1b9cc2){if(_0x1b9cc2){var _0x229a98=typeof _0x39b618['offset']===_0x17c8('0x1c')&&typeof _0x39b618[_0x17c8('0x1d')]===_0x17c8('0x1c');var _0x392f98=_0x1b9cc2[_0x17c8('0x1e')];var _0x4f3283=_0x229a98?0x0:_0x39b618[_0x17c8('0x1f')];var _0x45d73b=_0x229a98?_0x1b9cc2[_0x17c8('0x1e')]:_0x39b618['offset']+_0x39b618[_0x17c8('0x1d')];var _0x72625d;if(_0x45d73b>=_0x392f98){_0x45d73b=_0x392f98;_0x72625d=0xc8;}else{_0x72625d=0xce;}_0x58b9ef[_0x17c8('0x19')](_0x72625d);return _0x58b9ef[_0x17c8('0x20')](_0x17c8('0x21'),_0x4f3283+'-'+_0x45d73b+'/'+_0x392f98)['json'](_0x1b9cc2);}return null;};}function patchUpdates(_0x4df3bb){return function(_0x5ca128){try{jsonpatch[_0x17c8('0x22')](_0x5ca128,_0x4df3bb,!![]);}catch(_0x456f07){return BPromise[_0x17c8('0x23')](_0x456f07);}return _0x5ca128[_0x17c8('0x24')]();};}function saveUpdates(_0x430dd3,_0x4860ce){return function(_0x2fd4df){if(_0x2fd4df){return _0x2fd4df[_0x17c8('0x25')](_0x430dd3)[_0x17c8('0x26')](function(_0x278224){return _0x278224;});}return null;};}function removeEntity(_0x451737,_0x42243b){return function(_0x32b7ae){if(_0x32b7ae){return _0x32b7ae[_0x17c8('0x27')]()['then'](function(){_0x451737[_0x17c8('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x30cbc2,_0x4e1e9b){return function(_0x1fae3b){if(!_0x1fae3b){_0x30cbc2[_0x17c8('0x18')](0x194);}return _0x1fae3b;};}function handleError(_0x3d9026,_0x1d89d5){_0x1d89d5=_0x1d89d5||0x1f4;return function(_0x447329){logger[_0x17c8('0x28')](_0x447329[_0x17c8('0x29')]);if(_0x447329[_0x17c8('0x2a')]){delete _0x447329[_0x17c8('0x2a')];}_0x3d9026[_0x17c8('0x19')](_0x1d89d5)[_0x17c8('0x2b')](_0x447329);};}exports[_0x17c8('0x2c')]=function(_0x4a5f16,_0x41d99b){var _0x2c1629={},_0x22f74d={},_0x56795e={'count':0x0,'rows':[]};var _0x48f085=_['map'](db[_0x17c8('0x2d')][_0x17c8('0x2e')],function(_0x14e9cd){return{'name':_0x14e9cd[_0x17c8('0x2f')],'type':_0x14e9cd[_0x17c8('0x30')][_0x17c8('0x31')]};});_0x22f74d[_0x17c8('0x32')]=_[_0x17c8('0x33')](_0x48f085,_0x17c8('0x2a'));_0x22f74d[_0x17c8('0x34')]=_[_0x17c8('0x35')](_0x4a5f16[_0x17c8('0x34')]);_0x22f74d[_0x17c8('0x36')]=_[_0x17c8('0x37')](_0x22f74d['model'],_0x22f74d[_0x17c8('0x34')]);_0x2c1629[_0x17c8('0x38')]=_[_0x17c8('0x37')](_0x22f74d['model'],qs[_0x17c8('0x39')](_0x4a5f16['query'][_0x17c8('0x39')]));_0x2c1629[_0x17c8('0x38')]=_0x2c1629[_0x17c8('0x38')][_0x17c8('0x3a')]?_0x2c1629[_0x17c8('0x38')]:_0x22f74d[_0x17c8('0x32')];if(!_0x4a5f16[_0x17c8('0x34')][_0x17c8('0x3b')](_0x17c8('0x3c'))){_0x2c1629[_0x17c8('0x1d')]=qs[_0x17c8('0x1d')](_0x4a5f16[_0x17c8('0x34')][_0x17c8('0x1d')]);_0x2c1629[_0x17c8('0x1f')]=qs['offset'](_0x4a5f16[_0x17c8('0x34')][_0x17c8('0x1f')]);}_0x2c1629[_0x17c8('0x3d')]=qs['sort'](_0x4a5f16[_0x17c8('0x34')][_0x17c8('0x3e')]);_0x2c1629['where']=qs['filters'](_[_0x17c8('0x3f')](_0x4a5f16['query'],_0x22f74d['filters']),_0x48f085);if(_0x4a5f16[_0x17c8('0x34')]['filter']){_0x2c1629[_0x17c8('0x40')]=_[_0x17c8('0x41')](_0x2c1629['where'],{'$or':_[_0x17c8('0x33')](_0x48f085,function(_0x16c559){if(_0x16c559[_0x17c8('0x30')]!==_0x17c8('0x42')){var _0x5ccbcd={};_0x5ccbcd[_0x16c559[_0x17c8('0x2a')]]={'$like':'%'+_0x4a5f16[_0x17c8('0x34')]['filter']+'%'};return _0x5ccbcd;}})});}_0x2c1629=_[_0x17c8('0x41')]({},_0x2c1629,_0x4a5f16[_0x17c8('0x43')]);var _0x39d795={'where':_0x2c1629[_0x17c8('0x40')]};return db['Automation'][_0x17c8('0x1e')](_0x39d795)[_0x17c8('0x26')](function(_0x54e95a){_0x56795e['count']=_0x54e95a;if(_0x4a5f16[_0x17c8('0x34')][_0x17c8('0x44')]){_0x2c1629[_0x17c8('0x45')]=[{'all':!![]}];}return db[_0x17c8('0x2d')][_0x17c8('0x46')](_0x2c1629);})['then'](function(_0x43f3b8){_0x56795e[_0x17c8('0x47')]=_0x43f3b8;return _0x56795e;})[_0x17c8('0x26')](respondWithFilteredResult(_0x41d99b,_0x2c1629))[_0x17c8('0x48')](handleError(_0x41d99b,null));};exports[_0x17c8('0x49')]=function(_0x1c655c,_0x1f0348){var _0x256de1={'raw':![],'where':{'id':_0x1c655c[_0x17c8('0x4a')]['id']}},_0x4e4de7={};_0x4e4de7[_0x17c8('0x32')]=_[_0x17c8('0x35')](db[_0x17c8('0x2d')][_0x17c8('0x2e')]);_0x4e4de7[_0x17c8('0x34')]=_['keys'](_0x1c655c[_0x17c8('0x34')]);_0x4e4de7['filters']=_['intersection'](_0x4e4de7['model'],_0x4e4de7[_0x17c8('0x34')]);_0x256de1[_0x17c8('0x38')]=_[_0x17c8('0x37')](_0x4e4de7[_0x17c8('0x32')],qs['fields'](_0x1c655c[_0x17c8('0x34')][_0x17c8('0x39')]));_0x256de1[_0x17c8('0x38')]=_0x256de1[_0x17c8('0x38')][_0x17c8('0x3a')]?_0x256de1['attributes']:_0x4e4de7[_0x17c8('0x32')];if(_0x1c655c[_0x17c8('0x34')][_0x17c8('0x44')]){_0x256de1[_0x17c8('0x45')]=[{'all':!![]}];}_0x256de1=_[_0x17c8('0x41')]({},_0x256de1,_0x1c655c[_0x17c8('0x43')]);return db[_0x17c8('0x2d')][_0x17c8('0x4b')](_0x256de1)[_0x17c8('0x26')](handleEntityNotFound(_0x1f0348,null))['then'](respondWithResult(_0x1f0348,null))[_0x17c8('0x48')](handleError(_0x1f0348,null));};exports['create']=function(_0x11cfbc,_0x58121c){return db[_0x17c8('0x2d')]['create'](_0x11cfbc[_0x17c8('0x4c')],{})['then'](respondWithResult(_0x58121c,0xc9))[_0x17c8('0x48')](handleError(_0x58121c,null));};exports[_0x17c8('0x25')]=function(_0x2c09ca,_0x301e44){if(_0x2c09ca['body']['id']){delete _0x2c09ca[_0x17c8('0x4c')]['id'];}return db['Automation'][_0x17c8('0x4b')]({'where':{'id':_0x2c09ca[_0x17c8('0x4a')]['id']}})[_0x17c8('0x26')](handleEntityNotFound(_0x301e44,null))[_0x17c8('0x26')](saveUpdates(_0x2c09ca[_0x17c8('0x4c')],null))[_0x17c8('0x26')](respondWithResult(_0x301e44,null))[_0x17c8('0x48')](handleError(_0x301e44,null));};exports[_0x17c8('0x27')]=function(_0x3faa44,_0x50da9c){return db[_0x17c8('0x2d')]['find']({'where':{'id':_0x3faa44[_0x17c8('0x4a')]['id']}})[_0x17c8('0x26')](handleEntityNotFound(_0x50da9c,null))[_0x17c8('0x26')](removeEntity(_0x50da9c,null))[_0x17c8('0x48')](handleError(_0x50da9c,null));};exports['addConditions']=function(_0x556b3e,_0xf161cc,_0x4b239b){return db[_0x17c8('0x4d')]['find']({'where':{'id':_0x556b3e[_0x17c8('0x4a')]['id']}})['then'](handleEntityNotFound(_0xf161cc,null))[_0x17c8('0x26')](function(_0xd73a06){if(_0xd73a06){return _0xd73a06[_0x17c8('0x4e')](_0x556b3e[_0x17c8('0x4c')][_0x17c8('0x4f')],_[_0x17c8('0x50')](_0x556b3e['body'],[_0x17c8('0x4f'),'id'])||{});}})[_0x17c8('0x26')](respondWithResult(_0xf161cc,null))[_0x17c8('0x48')](handleError(_0xf161cc,null));};exports['getConditions']=function(_0x517e87,_0x4d1217,_0x1d41dd){var _0x19ec05={};var _0x28a1d8={};var _0xb97308;var _0x344448;return db[_0x17c8('0x2d')][_0x17c8('0x51')]({'where':{'id':_0x517e87['params']['id']}})['then'](handleEntityNotFound(_0x4d1217,null))[_0x17c8('0x26')](function(_0x4e1554){if(_0x4e1554){_0xb97308=_0x4e1554;_0x28a1d8[_0x17c8('0x32')]=_[_0x17c8('0x35')](db['Condition']['rawAttributes']);_0x28a1d8[_0x17c8('0x34')]=_['keys'](_0x517e87[_0x17c8('0x34')]);_0x28a1d8[_0x17c8('0x36')]=_[_0x17c8('0x37')](_0x28a1d8[_0x17c8('0x32')],_0x28a1d8[_0x17c8('0x34')]);_0x19ec05[_0x17c8('0x38')]=_[_0x17c8('0x37')](_0x28a1d8[_0x17c8('0x32')],qs[_0x17c8('0x39')](_0x517e87[_0x17c8('0x34')][_0x17c8('0x39')]));_0x19ec05[_0x17c8('0x38')]=_0x19ec05[_0x17c8('0x38')][_0x17c8('0x3a')]?_0x19ec05['attributes']:_0x28a1d8['model'];_0x19ec05[_0x17c8('0x3d')]=qs[_0x17c8('0x3e')](_0x517e87[_0x17c8('0x34')]['sort']);_0x19ec05[_0x17c8('0x40')]=qs['filters'](_['pick'](_0x517e87['query'],_0x28a1d8[_0x17c8('0x36')]));if(_0x517e87[_0x17c8('0x34')][_0x17c8('0x52')]){_0x19ec05[_0x17c8('0x40')]=_[_0x17c8('0x41')](_0x19ec05[_0x17c8('0x40')],{'$or':_[_0x17c8('0x33')](_0x19ec05[_0x17c8('0x38')],function(_0x5d8024){var _0x3204e6={};_0x3204e6[_0x5d8024]={'$like':'%'+_0x517e87[_0x17c8('0x34')][_0x17c8('0x52')]+'%'};return _0x3204e6;})});}_0x19ec05=_[_0x17c8('0x41')]({},_0x19ec05,_0x517e87[_0x17c8('0x43')]);return _0xb97308['getConditions'](_0x19ec05);}})['then'](function(_0x3b5f5c){if(_0x3b5f5c){_0x344448=_0x3b5f5c[_0x17c8('0x3a')];if(!_0x517e87[_0x17c8('0x34')][_0x17c8('0x3b')](_0x17c8('0x3c'))){_0x19ec05[_0x17c8('0x1d')]=qs[_0x17c8('0x1d')](_0x517e87[_0x17c8('0x34')][_0x17c8('0x1d')]);_0x19ec05[_0x17c8('0x1f')]=qs[_0x17c8('0x1f')](_0x517e87['query'][_0x17c8('0x1f')]);}return _0xb97308[_0x17c8('0x53')](_0x19ec05);}})['then'](function(_0x3c7c0a){if(_0x3c7c0a){return _0x3c7c0a?{'count':_0x344448,'rows':_0x3c7c0a}:null;}})[_0x17c8('0x26')](respondWithResult(_0x4d1217,null))['catch'](handleError(_0x4d1217,null));};exports[_0x17c8('0x54')]=function(_0x2008e4,_0x876059,_0x2adc81){return db['Action'][_0x17c8('0x4b')]({'where':{'id':_0x2008e4[_0x17c8('0x4a')]['id']}})[_0x17c8('0x26')](handleEntityNotFound(_0x876059,null))[_0x17c8('0x26')](function(_0x4609b9){if(_0x4609b9){return _0x4609b9[_0x17c8('0x54')](_0x2008e4[_0x17c8('0x4c')][_0x17c8('0x4f')],_[_0x17c8('0x50')](_0x2008e4[_0x17c8('0x4c')],['ids','id'])||{});}})['then'](respondWithResult(_0x876059,null))[_0x17c8('0x48')](handleError(_0x876059,null));};exports['getActions']=function(_0x2f4233,_0x18532c,_0x396b6a){var _0x2d893c={};var _0x1e8cbc={};var _0x3ea04e;var _0x54cbf7;return db[_0x17c8('0x2d')][_0x17c8('0x51')]({'where':{'id':_0x2f4233[_0x17c8('0x4a')]['id']}})['then'](handleEntityNotFound(_0x18532c,null))[_0x17c8('0x26')](function(_0x89e5fc){if(_0x89e5fc){_0x3ea04e=_0x89e5fc;_0x1e8cbc[_0x17c8('0x32')]=_['keys'](db['Action'][_0x17c8('0x2e')]);_0x1e8cbc[_0x17c8('0x34')]=_[_0x17c8('0x35')](_0x2f4233[_0x17c8('0x34')]);_0x1e8cbc['filters']=_['intersection'](_0x1e8cbc[_0x17c8('0x32')],_0x1e8cbc['query']);_0x2d893c[_0x17c8('0x38')]=_['intersection'](_0x1e8cbc['model'],qs[_0x17c8('0x39')](_0x2f4233[_0x17c8('0x34')][_0x17c8('0x39')]));_0x2d893c[_0x17c8('0x38')]=_0x2d893c['attributes'][_0x17c8('0x3a')]?_0x2d893c['attributes']:_0x1e8cbc['model'];_0x2d893c[_0x17c8('0x3d')]=qs['sort'](_0x2f4233[_0x17c8('0x34')][_0x17c8('0x3e')]);_0x2d893c[_0x17c8('0x40')]=qs[_0x17c8('0x36')](_[_0x17c8('0x3f')](_0x2f4233[_0x17c8('0x34')],_0x1e8cbc[_0x17c8('0x36')]));if(_0x2f4233[_0x17c8('0x34')]['filter']){_0x2d893c['where']=_[_0x17c8('0x41')](_0x2d893c[_0x17c8('0x40')],{'$or':_[_0x17c8('0x33')](_0x2d893c[_0x17c8('0x38')],function(_0x4baa5b){var _0x26dcf2={};_0x26dcf2[_0x4baa5b]={'$like':'%'+_0x2f4233[_0x17c8('0x34')][_0x17c8('0x52')]+'%'};return _0x26dcf2;})});}_0x2d893c=_[_0x17c8('0x41')]({},_0x2d893c,_0x2f4233[_0x17c8('0x43')]);return _0x3ea04e[_0x17c8('0x55')](_0x2d893c);}})[_0x17c8('0x26')](function(_0x40bbd3){if(_0x40bbd3){_0x54cbf7=_0x40bbd3[_0x17c8('0x3a')];if(!_0x2f4233[_0x17c8('0x34')]['hasOwnProperty'](_0x17c8('0x3c'))){_0x2d893c[_0x17c8('0x1d')]=qs[_0x17c8('0x1d')](_0x2f4233[_0x17c8('0x34')][_0x17c8('0x1d')]);_0x2d893c[_0x17c8('0x1f')]=qs[_0x17c8('0x1f')](_0x2f4233[_0x17c8('0x34')][_0x17c8('0x1f')]);}return _0x3ea04e[_0x17c8('0x55')](_0x2d893c);}})['then'](function(_0x44c35a){if(_0x44c35a){return _0x44c35a?{'count':_0x54cbf7,'rows':_0x44c35a}:null;}})['then'](respondWithResult(_0x18532c,null))['catch'](handleError(_0x18532c,null));};