Built motion from commit dc14b02d.|2.6.27
[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 _0x744f=['findAll','rows','catch','show','params','find','create','body','addConditions','Condition','omit','ids','getConditions','order','nolimit','addActions','getActions','findOne','Action','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','index','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','sort','pick','where','merge','map','filter','options','Automation','include'];(function(_0x2dc79e,_0xcde3dd){var _0x1679a0=function(_0x1363c8){while(--_0x1363c8){_0x2dc79e['push'](_0x2dc79e['shift']());}};_0x1679a0(++_0xcde3dd);}(_0x744f,0x1e7));var _0xf744=function(_0x192937,_0x445940){_0x192937=_0x192937-0x0;var _0x289d0d=_0x744f[_0x192937];return _0x289d0d;};'use strict';var emlformat=require(_0xf744('0x0'));var rimraf=require(_0xf744('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf744('0x2'));var rp=require(_0xf744('0x3'));var moment=require(_0xf744('0x4'));var BPromise=require(_0xf744('0x5'));var Mustache=require('mustache');var util=require(_0xf744('0x6'));var path=require(_0xf744('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf744('0x8'));var _=require(_0xf744('0x9'));var squel=require(_0xf744('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf744('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf744('0xc'));var Redis=require(_0xf744('0xd'));var authService=require(_0xf744('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xf744('0xf'));var hardwareService=require(_0xf744('0x10'));var logger=require(_0xf744('0x11'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xf744('0x12'));var db=require(_0xf744('0x13'))['db'];function respondWithStatusCode(_0x3dc899,_0x33877c){_0x33877c=_0x33877c||0xcc;return function(_0x1913c4){if(_0x1913c4){return _0x3dc899['sendStatus'](_0x33877c);}return _0x3dc899[_0xf744('0x14')](_0x33877c)[_0xf744('0x15')]();};}function respondWithResult(_0x1b5e1c,_0x546cd8){_0x546cd8=_0x546cd8||0xc8;return function(_0x1dadce){if(_0x1dadce){return _0x1b5e1c[_0xf744('0x14')](_0x546cd8)[_0xf744('0x16')](_0x1dadce);}};}function respondWithFilteredResult(_0xf00208,_0x3c3b47){return function(_0x4a0c38){if(_0x4a0c38){var _0x2bd560=typeof _0x3c3b47[_0xf744('0x17')]==='undefined'&&typeof _0x3c3b47[_0xf744('0x18')]==='undefined';var _0x202f88=_0x4a0c38[_0xf744('0x19')];var _0x3ab722=_0x2bd560?0x0:_0x3c3b47[_0xf744('0x17')];var _0x55914=_0x2bd560?_0x4a0c38[_0xf744('0x19')]:_0x3c3b47[_0xf744('0x17')]+_0x3c3b47['limit'];var _0x244ab8;if(_0x55914>=_0x202f88){_0x55914=_0x202f88;_0x244ab8=0xc8;}else{_0x244ab8=0xce;}_0xf00208[_0xf744('0x14')](_0x244ab8);return _0xf00208[_0xf744('0x1a')](_0xf744('0x1b'),_0x3ab722+'-'+_0x55914+'/'+_0x202f88)['json'](_0x4a0c38);}return null;};}function patchUpdates(_0x35c7f1){return function(_0x14a07b){try{jsonpatch[_0xf744('0x1c')](_0x14a07b,_0x35c7f1,!![]);}catch(_0x249ef9){return BPromise[_0xf744('0x1d')](_0x249ef9);}return _0x14a07b[_0xf744('0x1e')]();};}function saveUpdates(_0x40b907,_0x46b888){return function(_0x4bdce8){if(_0x4bdce8){return _0x4bdce8[_0xf744('0x1f')](_0x40b907)[_0xf744('0x20')](function(_0x1bc6db){return _0x1bc6db;});}return null;};}function removeEntity(_0x4e560b,_0x145e7b){return function(_0x4e195a){if(_0x4e195a){return _0x4e195a[_0xf744('0x21')]()[_0xf744('0x20')](function(){_0x4e560b['status'](0xcc)[_0xf744('0x15')]();});}};}function handleEntityNotFound(_0x4e8c04,_0x3d84f6){return function(_0x42c192){if(!_0x42c192){_0x4e8c04['sendStatus'](0x194);}return _0x42c192;};}function handleError(_0x5127a1,_0x4f32b7){_0x4f32b7=_0x4f32b7||0x1f4;return function(_0x2bf37d){logger['error'](_0x2bf37d[_0xf744('0x22')]);if(_0x2bf37d[_0xf744('0x23')]){delete _0x2bf37d[_0xf744('0x23')];}_0x5127a1['status'](_0x4f32b7)['send'](_0x2bf37d);};}exports[_0xf744('0x24')]=function(_0x2f76c6,_0x3da644){var _0x32c01a={},_0x480479={},_0x46ddb0={'count':0x0,'rows':[]};var _0xd63676=_['map'](db['Automation'][_0xf744('0x25')],function(_0x5bbbbf){return{'name':_0x5bbbbf[_0xf744('0x26')],'type':_0x5bbbbf[_0xf744('0x27')][_0xf744('0x28')]};});_0x480479[_0xf744('0x29')]=_['map'](_0xd63676,_0xf744('0x23'));_0x480479['query']=_[_0xf744('0x2a')](_0x2f76c6[_0xf744('0x2b')]);_0x480479[_0xf744('0x2c')]=_['intersection'](_0x480479['model'],_0x480479[_0xf744('0x2b')]);_0x32c01a[_0xf744('0x2d')]=_[_0xf744('0x2e')](_0x480479[_0xf744('0x29')],qs[_0xf744('0x2f')](_0x2f76c6[_0xf744('0x2b')][_0xf744('0x2f')]));_0x32c01a[_0xf744('0x2d')]=_0x32c01a[_0xf744('0x2d')][_0xf744('0x30')]?_0x32c01a[_0xf744('0x2d')]:_0x480479['model'];if(!_0x2f76c6[_0xf744('0x2b')][_0xf744('0x31')]('nolimit')){_0x32c01a['limit']=qs[_0xf744('0x18')](_0x2f76c6[_0xf744('0x2b')]['limit']);_0x32c01a[_0xf744('0x17')]=qs[_0xf744('0x17')](_0x2f76c6[_0xf744('0x2b')][_0xf744('0x17')]);}_0x32c01a['order']=qs[_0xf744('0x32')](_0x2f76c6['query']['sort']);_0x32c01a['where']=qs[_0xf744('0x2c')](_[_0xf744('0x33')](_0x2f76c6[_0xf744('0x2b')],_0x480479['filters']),_0xd63676);if(_0x2f76c6[_0xf744('0x2b')]['filter']){_0x32c01a[_0xf744('0x34')]=_[_0xf744('0x35')](_0x32c01a[_0xf744('0x34')],{'$or':_[_0xf744('0x36')](_0xd63676,function(_0x189f15){if(_0x189f15[_0xf744('0x27')]!=='VIRTUAL'){var _0x407d73={};_0x407d73[_0x189f15[_0xf744('0x23')]]={'$like':'%'+_0x2f76c6['query'][_0xf744('0x37')]+'%'};return _0x407d73;}})});}_0x32c01a=_['merge']({},_0x32c01a,_0x2f76c6[_0xf744('0x38')]);var _0x46f277={'where':_0x32c01a[_0xf744('0x34')]};return db[_0xf744('0x39')][_0xf744('0x19')](_0x46f277)[_0xf744('0x20')](function(_0x841c0e){_0x46ddb0[_0xf744('0x19')]=_0x841c0e;if(_0x2f76c6[_0xf744('0x2b')]['includeAll']){_0x32c01a[_0xf744('0x3a')]=[{'all':!![]}];}return db['Automation'][_0xf744('0x3b')](_0x32c01a);})[_0xf744('0x20')](function(_0x7692f2){_0x46ddb0[_0xf744('0x3c')]=_0x7692f2;return _0x46ddb0;})[_0xf744('0x20')](respondWithFilteredResult(_0x3da644,_0x32c01a))[_0xf744('0x3d')](handleError(_0x3da644,null));};exports[_0xf744('0x3e')]=function(_0x219ddf,_0x123d35){var _0xa89e27={'raw':![],'where':{'id':_0x219ddf[_0xf744('0x3f')]['id']}},_0x2d076d={};_0x2d076d[_0xf744('0x29')]=_[_0xf744('0x2a')](db[_0xf744('0x39')][_0xf744('0x25')]);_0x2d076d[_0xf744('0x2b')]=_['keys'](_0x219ddf[_0xf744('0x2b')]);_0x2d076d[_0xf744('0x2c')]=_[_0xf744('0x2e')](_0x2d076d[_0xf744('0x29')],_0x2d076d[_0xf744('0x2b')]);_0xa89e27['attributes']=_[_0xf744('0x2e')](_0x2d076d['model'],qs[_0xf744('0x2f')](_0x219ddf[_0xf744('0x2b')]['fields']));_0xa89e27[_0xf744('0x2d')]=_0xa89e27[_0xf744('0x2d')][_0xf744('0x30')]?_0xa89e27['attributes']:_0x2d076d[_0xf744('0x29')];if(_0x219ddf[_0xf744('0x2b')]['includeAll']){_0xa89e27[_0xf744('0x3a')]=[{'all':!![]}];}_0xa89e27=_[_0xf744('0x35')]({},_0xa89e27,_0x219ddf[_0xf744('0x38')]);return db[_0xf744('0x39')][_0xf744('0x40')](_0xa89e27)[_0xf744('0x20')](handleEntityNotFound(_0x123d35,null))[_0xf744('0x20')](respondWithResult(_0x123d35,null))[_0xf744('0x3d')](handleError(_0x123d35,null));};exports['create']=function(_0x44ecd7,_0x243b5b){return db[_0xf744('0x39')][_0xf744('0x41')](_0x44ecd7[_0xf744('0x42')],{})[_0xf744('0x20')](respondWithResult(_0x243b5b,0xc9))[_0xf744('0x3d')](handleError(_0x243b5b,null));};exports[_0xf744('0x1f')]=function(_0x47f1df,_0xb263ef){if(_0x47f1df[_0xf744('0x42')]['id']){delete _0x47f1df['body']['id'];}return db[_0xf744('0x39')]['find']({'where':{'id':_0x47f1df[_0xf744('0x3f')]['id']}})[_0xf744('0x20')](handleEntityNotFound(_0xb263ef,null))['then'](saveUpdates(_0x47f1df['body'],null))[_0xf744('0x20')](respondWithResult(_0xb263ef,null))[_0xf744('0x3d')](handleError(_0xb263ef,null));};exports[_0xf744('0x21')]=function(_0x5198f1,_0x4da51c){return db[_0xf744('0x39')][_0xf744('0x40')]({'where':{'id':_0x5198f1[_0xf744('0x3f')]['id']}})[_0xf744('0x20')](handleEntityNotFound(_0x4da51c,null))[_0xf744('0x20')](removeEntity(_0x4da51c,null))[_0xf744('0x3d')](handleError(_0x4da51c,null));};exports[_0xf744('0x43')]=function(_0x225161,_0x37f881,_0xec9ece){return db[_0xf744('0x44')]['find']({'where':{'id':_0x225161[_0xf744('0x3f')]['id']}})[_0xf744('0x20')](handleEntityNotFound(_0x37f881,null))[_0xf744('0x20')](function(_0x524bcd){if(_0x524bcd){return _0x524bcd[_0xf744('0x43')](_0x225161[_0xf744('0x42')]['ids'],_[_0xf744('0x45')](_0x225161[_0xf744('0x42')],[_0xf744('0x46'),'id'])||{});}})['then'](respondWithResult(_0x37f881,null))[_0xf744('0x3d')](handleError(_0x37f881,null));};exports[_0xf744('0x47')]=function(_0x2e1bf7,_0x4d3721,_0x4a1bab){var _0x5a15c6={};var _0x403467={};var _0x5aae4d;var _0x2bcf2c;return db[_0xf744('0x39')]['findOne']({'where':{'id':_0x2e1bf7[_0xf744('0x3f')]['id']}})[_0xf744('0x20')](handleEntityNotFound(_0x4d3721,null))[_0xf744('0x20')](function(_0x18d59f){if(_0x18d59f){_0x5aae4d=_0x18d59f;_0x403467[_0xf744('0x29')]=_['keys'](db[_0xf744('0x44')][_0xf744('0x25')]);_0x403467['query']=_[_0xf744('0x2a')](_0x2e1bf7[_0xf744('0x2b')]);_0x403467[_0xf744('0x2c')]=_[_0xf744('0x2e')](_0x403467[_0xf744('0x29')],_0x403467[_0xf744('0x2b')]);_0x5a15c6[_0xf744('0x2d')]=_['intersection'](_0x403467[_0xf744('0x29')],qs['fields'](_0x2e1bf7[_0xf744('0x2b')]['fields']));_0x5a15c6[_0xf744('0x2d')]=_0x5a15c6[_0xf744('0x2d')][_0xf744('0x30')]?_0x5a15c6[_0xf744('0x2d')]:_0x403467[_0xf744('0x29')];_0x5a15c6[_0xf744('0x48')]=qs[_0xf744('0x32')](_0x2e1bf7['query'][_0xf744('0x32')]);_0x5a15c6[_0xf744('0x34')]=qs[_0xf744('0x2c')](_[_0xf744('0x33')](_0x2e1bf7[_0xf744('0x2b')],_0x403467[_0xf744('0x2c')]));if(_0x2e1bf7['query']['filter']){_0x5a15c6[_0xf744('0x34')]=_[_0xf744('0x35')](_0x5a15c6[_0xf744('0x34')],{'$or':_[_0xf744('0x36')](_0x5a15c6[_0xf744('0x2d')],function(_0x529815){var _0x1cb35c={};_0x1cb35c[_0x529815]={'$like':'%'+_0x2e1bf7[_0xf744('0x2b')][_0xf744('0x37')]+'%'};return _0x1cb35c;})});}_0x5a15c6=_[_0xf744('0x35')]({},_0x5a15c6,_0x2e1bf7[_0xf744('0x38')]);return _0x5aae4d[_0xf744('0x47')](_0x5a15c6);}})[_0xf744('0x20')](function(_0x55aebe){if(_0x55aebe){_0x2bcf2c=_0x55aebe[_0xf744('0x30')];if(!_0x2e1bf7[_0xf744('0x2b')][_0xf744('0x31')](_0xf744('0x49'))){_0x5a15c6[_0xf744('0x18')]=qs['limit'](_0x2e1bf7[_0xf744('0x2b')][_0xf744('0x18')]);_0x5a15c6[_0xf744('0x17')]=qs[_0xf744('0x17')](_0x2e1bf7[_0xf744('0x2b')]['offset']);}return _0x5aae4d[_0xf744('0x47')](_0x5a15c6);}})[_0xf744('0x20')](function(_0x26b6da){if(_0x26b6da){return _0x26b6da?{'count':_0x2bcf2c,'rows':_0x26b6da}:null;}})['then'](respondWithResult(_0x4d3721,null))[_0xf744('0x3d')](handleError(_0x4d3721,null));};exports[_0xf744('0x4a')]=function(_0x369af0,_0x401cb2,_0x4a4e0b){return db['Action'][_0xf744('0x40')]({'where':{'id':_0x369af0[_0xf744('0x3f')]['id']}})['then'](handleEntityNotFound(_0x401cb2,null))['then'](function(_0x2e3e16){if(_0x2e3e16){return _0x2e3e16[_0xf744('0x4a')](_0x369af0[_0xf744('0x42')][_0xf744('0x46')],_[_0xf744('0x45')](_0x369af0[_0xf744('0x42')],['ids','id'])||{});}})[_0xf744('0x20')](respondWithResult(_0x401cb2,null))[_0xf744('0x3d')](handleError(_0x401cb2,null));};exports[_0xf744('0x4b')]=function(_0x58bc2d,_0x3bc2a0,_0x25a338){var _0x456079={};var _0x58a2db={};var _0x43369d;var _0xba7f3e;return db[_0xf744('0x39')][_0xf744('0x4c')]({'where':{'id':_0x58bc2d['params']['id']}})[_0xf744('0x20')](handleEntityNotFound(_0x3bc2a0,null))[_0xf744('0x20')](function(_0x508447){if(_0x508447){_0x43369d=_0x508447;_0x58a2db['model']=_[_0xf744('0x2a')](db[_0xf744('0x4d')]['rawAttributes']);_0x58a2db[_0xf744('0x2b')]=_['keys'](_0x58bc2d[_0xf744('0x2b')]);_0x58a2db[_0xf744('0x2c')]=_[_0xf744('0x2e')](_0x58a2db[_0xf744('0x29')],_0x58a2db[_0xf744('0x2b')]);_0x456079[_0xf744('0x2d')]=_[_0xf744('0x2e')](_0x58a2db[_0xf744('0x29')],qs[_0xf744('0x2f')](_0x58bc2d['query'][_0xf744('0x2f')]));_0x456079['attributes']=_0x456079[_0xf744('0x2d')][_0xf744('0x30')]?_0x456079[_0xf744('0x2d')]:_0x58a2db[_0xf744('0x29')];_0x456079[_0xf744('0x48')]=qs[_0xf744('0x32')](_0x58bc2d[_0xf744('0x2b')][_0xf744('0x32')]);_0x456079[_0xf744('0x34')]=qs['filters'](_['pick'](_0x58bc2d['query'],_0x58a2db[_0xf744('0x2c')]));if(_0x58bc2d['query'][_0xf744('0x37')]){_0x456079[_0xf744('0x34')]=_[_0xf744('0x35')](_0x456079[_0xf744('0x34')],{'$or':_['map'](_0x456079[_0xf744('0x2d')],function(_0x9b4747){var _0x13cf9b={};_0x13cf9b[_0x9b4747]={'$like':'%'+_0x58bc2d[_0xf744('0x2b')][_0xf744('0x37')]+'%'};return _0x13cf9b;})});}_0x456079=_[_0xf744('0x35')]({},_0x456079,_0x58bc2d[_0xf744('0x38')]);return _0x43369d[_0xf744('0x4b')](_0x456079);}})[_0xf744('0x20')](function(_0x44164d){if(_0x44164d){_0xba7f3e=_0x44164d[_0xf744('0x30')];if(!_0x58bc2d[_0xf744('0x2b')][_0xf744('0x31')](_0xf744('0x49'))){_0x456079['limit']=qs[_0xf744('0x18')](_0x58bc2d[_0xf744('0x2b')][_0xf744('0x18')]);_0x456079[_0xf744('0x17')]=qs[_0xf744('0x17')](_0x58bc2d[_0xf744('0x2b')][_0xf744('0x17')]);}return _0x43369d[_0xf744('0x4b')](_0x456079);}})['then'](function(_0x4dd8fe){if(_0x4dd8fe){return _0x4dd8fe?{'count':_0xba7f3e,'rows':_0x4dd8fe}:null;}})[_0xf744('0x20')](respondWithResult(_0x3bc2a0,null))['catch'](handleError(_0x3bc2a0,null));};