Built motion from commit 97153652.|2.6.26
[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 _0xff41=['apply','reject','save','destroy','then','error','name','send','map','Automation','rawAttributes','fieldName','type','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','addConditions','getConditions','findOne','Condition','addActions','Action','omit','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','count','offset','limit'];(function(_0x45d3f0,_0x4be53f){var _0x314b79=function(_0x563d32){while(--_0x563d32){_0x45d3f0['push'](_0x45d3f0['shift']());}};_0x314b79(++_0x4be53f);}(_0xff41,0x12d));var _0x1ff4=function(_0x5dffaa,_0x2e2073){_0x5dffaa=_0x5dffaa-0x0;var _0x6b79f8=_0xff41[_0x5dffaa];return _0x6b79f8;};'use strict';var emlformat=require(_0x1ff4('0x0'));var rimraf=require(_0x1ff4('0x1'));var zipdir=require(_0x1ff4('0x2'));var jsonpatch=require(_0x1ff4('0x3'));var rp=require(_0x1ff4('0x4'));var moment=require(_0x1ff4('0x5'));var BPromise=require(_0x1ff4('0x6'));var Mustache=require('mustache');var util=require(_0x1ff4('0x7'));var path=require('path');var sox=require(_0x1ff4('0x8'));var csv=require(_0x1ff4('0x9'));var ejs=require(_0x1ff4('0xa'));var fs=require('fs');var fs_extra=require(_0x1ff4('0xb'));var _=require(_0x1ff4('0xc'));var squel=require(_0x1ff4('0xd'));var crypto=require(_0x1ff4('0xe'));var jsforce=require(_0x1ff4('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1ff4('0x9'));var querystring=require(_0x1ff4('0x10'));var Papa=require(_0x1ff4('0x11'));var Redis=require('ioredis');var authService=require(_0x1ff4('0x12'));var qs=require(_0x1ff4('0x13'));var as=require(_0x1ff4('0x14'));var hardwareService=require(_0x1ff4('0x15'));var logger=require('../../config/logger')(_0x1ff4('0x16'));var utils=require(_0x1ff4('0x17'));var config=require(_0x1ff4('0x18'));var licenseUtil=require(_0x1ff4('0x19'));var db=require(_0x1ff4('0x1a'))['db'];function respondWithStatusCode(_0xd7152f,_0x21ebe1){_0x21ebe1=_0x21ebe1||0xcc;return function(_0x49ebc2){if(_0x49ebc2){return _0xd7152f[_0x1ff4('0x1b')](_0x21ebe1);}return _0xd7152f['status'](_0x21ebe1)[_0x1ff4('0x1c')]();};}function respondWithResult(_0x3834b6,_0x40aebe){_0x40aebe=_0x40aebe||0xc8;return function(_0x303710){if(_0x303710){return _0x3834b6[_0x1ff4('0x1d')](_0x40aebe)[_0x1ff4('0x1e')](_0x303710);}};}function respondWithFilteredResult(_0x39fc4a,_0x1a157c){return function(_0x1d6c22){if(_0x1d6c22){var _0x1361e1=typeof _0x1a157c['offset']===_0x1ff4('0x1f')&&typeof _0x1a157c['limit']===_0x1ff4('0x1f');var _0x24ec8f=_0x1d6c22[_0x1ff4('0x20')];var _0x36a6e3=_0x1361e1?0x0:_0x1a157c[_0x1ff4('0x21')];var _0x5eb2da=_0x1361e1?_0x1d6c22[_0x1ff4('0x20')]:_0x1a157c[_0x1ff4('0x21')]+_0x1a157c[_0x1ff4('0x22')];var _0x19bbd4;if(_0x5eb2da>=_0x24ec8f){_0x5eb2da=_0x24ec8f;_0x19bbd4=0xc8;}else{_0x19bbd4=0xce;}_0x39fc4a['status'](_0x19bbd4);return _0x39fc4a['set']('Content-Range',_0x36a6e3+'-'+_0x5eb2da+'/'+_0x24ec8f)['json'](_0x1d6c22);}return null;};}function patchUpdates(_0x19c838){return function(_0x39795e){try{jsonpatch[_0x1ff4('0x23')](_0x39795e,_0x19c838,!![]);}catch(_0x469b30){return BPromise[_0x1ff4('0x24')](_0x469b30);}return _0x39795e[_0x1ff4('0x25')]();};}function saveUpdates(_0x146e80,_0x2df35a){return function(_0x1b56c9){if(_0x1b56c9){return _0x1b56c9['update'](_0x146e80)['then'](function(_0x4caf57){return _0x4caf57;});}return null;};}function removeEntity(_0x4a55b5,_0x501fdc){return function(_0x27e053){if(_0x27e053){return _0x27e053[_0x1ff4('0x26')]()[_0x1ff4('0x27')](function(){_0x4a55b5[_0x1ff4('0x1d')](0xcc)[_0x1ff4('0x1c')]();});}};}function handleEntityNotFound(_0x45e2de,_0x3de1c9){return function(_0x2d5605){if(!_0x2d5605){_0x45e2de['sendStatus'](0x194);}return _0x2d5605;};}function handleError(_0x396690,_0x141cc1){_0x141cc1=_0x141cc1||0x1f4;return function(_0x7fd279){logger[_0x1ff4('0x28')](_0x7fd279['stack']);if(_0x7fd279[_0x1ff4('0x29')]){delete _0x7fd279[_0x1ff4('0x29')];}_0x396690['status'](_0x141cc1)[_0x1ff4('0x2a')](_0x7fd279);};}exports['index']=function(_0x2495f6,_0x16a4e8){var _0x4c7305={},_0xb5331f={},_0x50faff={'count':0x0,'rows':[]};var _0x19113=_[_0x1ff4('0x2b')](db[_0x1ff4('0x2c')][_0x1ff4('0x2d')],function(_0x6bafce){return{'name':_0x6bafce[_0x1ff4('0x2e')],'type':_0x6bafce[_0x1ff4('0x2f')]['key']};});_0xb5331f[_0x1ff4('0x30')]=_[_0x1ff4('0x2b')](_0x19113,_0x1ff4('0x29'));_0xb5331f['query']=_[_0x1ff4('0x31')](_0x2495f6[_0x1ff4('0x32')]);_0xb5331f[_0x1ff4('0x33')]=_['intersection'](_0xb5331f[_0x1ff4('0x30')],_0xb5331f['query']);_0x4c7305['attributes']=_[_0x1ff4('0x34')](_0xb5331f[_0x1ff4('0x30')],qs[_0x1ff4('0x35')](_0x2495f6[_0x1ff4('0x32')][_0x1ff4('0x35')]));_0x4c7305['attributes']=_0x4c7305[_0x1ff4('0x36')]['length']?_0x4c7305['attributes']:_0xb5331f[_0x1ff4('0x30')];if(!_0x2495f6[_0x1ff4('0x32')][_0x1ff4('0x37')](_0x1ff4('0x38'))){_0x4c7305[_0x1ff4('0x22')]=qs[_0x1ff4('0x22')](_0x2495f6[_0x1ff4('0x32')][_0x1ff4('0x22')]);_0x4c7305[_0x1ff4('0x21')]=qs[_0x1ff4('0x21')](_0x2495f6['query']['offset']);}_0x4c7305[_0x1ff4('0x39')]=qs[_0x1ff4('0x3a')](_0x2495f6[_0x1ff4('0x32')]['sort']);_0x4c7305['where']=qs[_0x1ff4('0x33')](_[_0x1ff4('0x3b')](_0x2495f6['query'],_0xb5331f[_0x1ff4('0x33')]),_0x19113);if(_0x2495f6['query'][_0x1ff4('0x3c')]){_0x4c7305[_0x1ff4('0x3d')]=_[_0x1ff4('0x3e')](_0x4c7305['where'],{'$or':_[_0x1ff4('0x2b')](_0x19113,function(_0x435822){if(_0x435822['type']!==_0x1ff4('0x3f')){var _0x46ed66={};_0x46ed66[_0x435822[_0x1ff4('0x29')]]={'$like':'%'+_0x2495f6[_0x1ff4('0x32')][_0x1ff4('0x3c')]+'%'};return _0x46ed66;}})});}_0x4c7305=_['merge']({},_0x4c7305,_0x2495f6[_0x1ff4('0x40')]);var _0x23f970={'where':_0x4c7305[_0x1ff4('0x3d')]};return db[_0x1ff4('0x2c')]['count'](_0x23f970)['then'](function(_0x3d6283){_0x50faff['count']=_0x3d6283;if(_0x2495f6[_0x1ff4('0x32')][_0x1ff4('0x41')]){_0x4c7305[_0x1ff4('0x42')]=[{'all':!![]}];}return db[_0x1ff4('0x2c')][_0x1ff4('0x43')](_0x4c7305);})[_0x1ff4('0x27')](function(_0x3fe528){_0x50faff[_0x1ff4('0x44')]=_0x3fe528;return _0x50faff;})[_0x1ff4('0x27')](respondWithFilteredResult(_0x16a4e8,_0x4c7305))[_0x1ff4('0x45')](handleError(_0x16a4e8,null));};exports[_0x1ff4('0x46')]=function(_0x10ecc4,_0x32658d){var _0x29ca1a={'raw':![],'where':{'id':_0x10ecc4[_0x1ff4('0x47')]['id']}},_0x3abaf5={};_0x3abaf5[_0x1ff4('0x30')]=_['keys'](db[_0x1ff4('0x2c')][_0x1ff4('0x2d')]);_0x3abaf5[_0x1ff4('0x32')]=_['keys'](_0x10ecc4[_0x1ff4('0x32')]);_0x3abaf5['filters']=_['intersection'](_0x3abaf5[_0x1ff4('0x30')],_0x3abaf5['query']);_0x29ca1a['attributes']=_['intersection'](_0x3abaf5['model'],qs[_0x1ff4('0x35')](_0x10ecc4[_0x1ff4('0x32')]['fields']));_0x29ca1a[_0x1ff4('0x36')]=_0x29ca1a['attributes'][_0x1ff4('0x48')]?_0x29ca1a['attributes']:_0x3abaf5['model'];if(_0x10ecc4['query'][_0x1ff4('0x41')]){_0x29ca1a[_0x1ff4('0x42')]=[{'all':!![]}];}_0x29ca1a=_['merge']({},_0x29ca1a,_0x10ecc4[_0x1ff4('0x40')]);return db[_0x1ff4('0x2c')][_0x1ff4('0x49')](_0x29ca1a)[_0x1ff4('0x27')](handleEntityNotFound(_0x32658d,null))[_0x1ff4('0x27')](respondWithResult(_0x32658d,null))[_0x1ff4('0x45')](handleError(_0x32658d,null));};exports[_0x1ff4('0x4a')]=function(_0x59672c,_0x50f21e){return db[_0x1ff4('0x2c')][_0x1ff4('0x4a')](_0x59672c[_0x1ff4('0x4b')],{})[_0x1ff4('0x27')](respondWithResult(_0x50f21e,0xc9))[_0x1ff4('0x45')](handleError(_0x50f21e,null));};exports['update']=function(_0x312bf3,_0x162635){if(_0x312bf3[_0x1ff4('0x4b')]['id']){delete _0x312bf3[_0x1ff4('0x4b')]['id'];}return db[_0x1ff4('0x2c')][_0x1ff4('0x49')]({'where':{'id':_0x312bf3[_0x1ff4('0x47')]['id']}})[_0x1ff4('0x27')](handleEntityNotFound(_0x162635,null))[_0x1ff4('0x27')](saveUpdates(_0x312bf3[_0x1ff4('0x4b')],null))[_0x1ff4('0x27')](respondWithResult(_0x162635,null))[_0x1ff4('0x45')](handleError(_0x162635,null));};exports[_0x1ff4('0x26')]=function(_0x20dbde,_0x24fcf8){return db[_0x1ff4('0x2c')][_0x1ff4('0x49')]({'where':{'id':_0x20dbde[_0x1ff4('0x47')]['id']}})[_0x1ff4('0x27')](handleEntityNotFound(_0x24fcf8,null))[_0x1ff4('0x27')](removeEntity(_0x24fcf8,null))[_0x1ff4('0x45')](handleError(_0x24fcf8,null));};exports[_0x1ff4('0x4c')]=function(_0x2352b6,_0x2f2170,_0x5dfdd2){return db['Condition'][_0x1ff4('0x49')]({'where':{'id':_0x2352b6['params']['id']}})[_0x1ff4('0x27')](handleEntityNotFound(_0x2f2170,null))[_0x1ff4('0x27')](function(_0x51f5df){if(_0x51f5df){return _0x51f5df[_0x1ff4('0x4c')](_0x2352b6[_0x1ff4('0x4b')]['ids'],_['omit'](_0x2352b6[_0x1ff4('0x4b')],['ids','id'])||{});}})['then'](respondWithResult(_0x2f2170,null))[_0x1ff4('0x45')](handleError(_0x2f2170,null));};exports[_0x1ff4('0x4d')]=function(_0x33b43a,_0x707726,_0x1ba19b){var _0x2d244b={};var _0x373eb3={};var _0x380f26;var _0x50163c;return db[_0x1ff4('0x2c')][_0x1ff4('0x4e')]({'where':{'id':_0x33b43a[_0x1ff4('0x47')]['id']}})['then'](handleEntityNotFound(_0x707726,null))[_0x1ff4('0x27')](function(_0x4db03){if(_0x4db03){_0x380f26=_0x4db03;_0x373eb3[_0x1ff4('0x30')]=_[_0x1ff4('0x31')](db[_0x1ff4('0x4f')]['rawAttributes']);_0x373eb3[_0x1ff4('0x32')]=_[_0x1ff4('0x31')](_0x33b43a[_0x1ff4('0x32')]);_0x373eb3[_0x1ff4('0x33')]=_[_0x1ff4('0x34')](_0x373eb3[_0x1ff4('0x30')],_0x373eb3['query']);_0x2d244b['attributes']=_['intersection'](_0x373eb3[_0x1ff4('0x30')],qs[_0x1ff4('0x35')](_0x33b43a['query']['fields']));_0x2d244b['attributes']=_0x2d244b[_0x1ff4('0x36')]['length']?_0x2d244b[_0x1ff4('0x36')]:_0x373eb3[_0x1ff4('0x30')];_0x2d244b[_0x1ff4('0x39')]=qs['sort'](_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x3a')]);_0x2d244b[_0x1ff4('0x3d')]=qs['filters'](_['pick'](_0x33b43a[_0x1ff4('0x32')],_0x373eb3[_0x1ff4('0x33')]));if(_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x3c')]){_0x2d244b['where']=_[_0x1ff4('0x3e')](_0x2d244b['where'],{'$or':_[_0x1ff4('0x2b')](_0x2d244b['attributes'],function(_0x4a2625){var _0x460d4d={};_0x460d4d[_0x4a2625]={'$like':'%'+_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x3c')]+'%'};return _0x460d4d;})});}_0x2d244b=_[_0x1ff4('0x3e')]({},_0x2d244b,_0x33b43a[_0x1ff4('0x40')]);return _0x380f26[_0x1ff4('0x4d')](_0x2d244b);}})[_0x1ff4('0x27')](function(_0x5a39e4){if(_0x5a39e4){_0x50163c=_0x5a39e4[_0x1ff4('0x48')];if(!_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x37')](_0x1ff4('0x38'))){_0x2d244b[_0x1ff4('0x22')]=qs[_0x1ff4('0x22')](_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x22')]);_0x2d244b[_0x1ff4('0x21')]=qs['offset'](_0x33b43a[_0x1ff4('0x32')][_0x1ff4('0x21')]);}return _0x380f26[_0x1ff4('0x4d')](_0x2d244b);}})[_0x1ff4('0x27')](function(_0x1dce9){if(_0x1dce9){return _0x1dce9?{'count':_0x50163c,'rows':_0x1dce9}:null;}})[_0x1ff4('0x27')](respondWithResult(_0x707726,null))['catch'](handleError(_0x707726,null));};exports[_0x1ff4('0x50')]=function(_0x59b074,_0xb3d3f5,_0x473ee1){return db[_0x1ff4('0x51')][_0x1ff4('0x49')]({'where':{'id':_0x59b074['params']['id']}})[_0x1ff4('0x27')](handleEntityNotFound(_0xb3d3f5,null))[_0x1ff4('0x27')](function(_0x8fcc21){if(_0x8fcc21){return _0x8fcc21[_0x1ff4('0x50')](_0x59b074[_0x1ff4('0x4b')]['ids'],_[_0x1ff4('0x52')](_0x59b074[_0x1ff4('0x4b')],['ids','id'])||{});}})['then'](respondWithResult(_0xb3d3f5,null))[_0x1ff4('0x45')](handleError(_0xb3d3f5,null));};exports[_0x1ff4('0x53')]=function(_0x44ce4b,_0x54e2f5,_0x282582){var _0xdc6611={};var _0x2faa1e={};var _0x3357b1;var _0x38ff69;return db[_0x1ff4('0x2c')][_0x1ff4('0x4e')]({'where':{'id':_0x44ce4b[_0x1ff4('0x47')]['id']}})[_0x1ff4('0x27')](handleEntityNotFound(_0x54e2f5,null))[_0x1ff4('0x27')](function(_0x4eb744){if(_0x4eb744){_0x3357b1=_0x4eb744;_0x2faa1e['model']=_['keys'](db[_0x1ff4('0x51')][_0x1ff4('0x2d')]);_0x2faa1e[_0x1ff4('0x32')]=_['keys'](_0x44ce4b[_0x1ff4('0x32')]);_0x2faa1e[_0x1ff4('0x33')]=_[_0x1ff4('0x34')](_0x2faa1e[_0x1ff4('0x30')],_0x2faa1e[_0x1ff4('0x32')]);_0xdc6611[_0x1ff4('0x36')]=_[_0x1ff4('0x34')](_0x2faa1e[_0x1ff4('0x30')],qs[_0x1ff4('0x35')](_0x44ce4b['query'][_0x1ff4('0x35')]));_0xdc6611[_0x1ff4('0x36')]=_0xdc6611['attributes'][_0x1ff4('0x48')]?_0xdc6611[_0x1ff4('0x36')]:_0x2faa1e[_0x1ff4('0x30')];_0xdc6611['order']=qs[_0x1ff4('0x3a')](_0x44ce4b['query'][_0x1ff4('0x3a')]);_0xdc6611[_0x1ff4('0x3d')]=qs['filters'](_[_0x1ff4('0x3b')](_0x44ce4b[_0x1ff4('0x32')],_0x2faa1e[_0x1ff4('0x33')]));if(_0x44ce4b[_0x1ff4('0x32')][_0x1ff4('0x3c')]){_0xdc6611['where']=_['merge'](_0xdc6611['where'],{'$or':_[_0x1ff4('0x2b')](_0xdc6611[_0x1ff4('0x36')],function(_0x5f1935){var _0x5ffcbd={};_0x5ffcbd[_0x5f1935]={'$like':'%'+_0x44ce4b[_0x1ff4('0x32')]['filter']+'%'};return _0x5ffcbd;})});}_0xdc6611=_[_0x1ff4('0x3e')]({},_0xdc6611,_0x44ce4b[_0x1ff4('0x40')]);return _0x3357b1[_0x1ff4('0x53')](_0xdc6611);}})[_0x1ff4('0x27')](function(_0x1206a1){if(_0x1206a1){_0x38ff69=_0x1206a1[_0x1ff4('0x48')];if(!_0x44ce4b[_0x1ff4('0x32')][_0x1ff4('0x37')](_0x1ff4('0x38'))){_0xdc6611[_0x1ff4('0x22')]=qs[_0x1ff4('0x22')](_0x44ce4b[_0x1ff4('0x32')][_0x1ff4('0x22')]);_0xdc6611[_0x1ff4('0x21')]=qs[_0x1ff4('0x21')](_0x44ce4b[_0x1ff4('0x32')]['offset']);}return _0x3357b1['getActions'](_0xdc6611);}})[_0x1ff4('0x27')](function(_0x217910){if(_0x217910){return _0x217910?{'count':_0x38ff69,'rows':_0x217910}:null;}})[_0x1ff4('0x27')](respondWithResult(_0x54e2f5,null))[_0x1ff4('0x45')](handleError(_0x54e2f5,null));};