Built motion from commit e6806ed6.|2.6.0
[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 _0xc9e5=['Automation','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','count','includeAll','findAll','rows','catch','params','length','include','find','create','update','body','addConditions','Condition','ids','omit','getConditions','findOne','addActions','Action','getActions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','undefined','limit','offset','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map'];(function(_0x378d29,_0x428e00){var _0x50c498=function(_0x57dc69){while(--_0x57dc69){_0x378d29['push'](_0x378d29['shift']());}};_0x50c498(++_0x428e00);}(_0xc9e5,0xdb));var _0x5c9e=function(_0x360648,_0x2c6d70){_0x360648=_0x360648-0x0;var _0x54043e=_0xc9e5[_0x360648];return _0x54043e;};'use strict';var emlformat=require(_0x5c9e('0x0'));var rimraf=require(_0x5c9e('0x1'));var zipdir=require(_0x5c9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5c9e('0x3'));var moment=require(_0x5c9e('0x4'));var BPromise=require(_0x5c9e('0x5'));var Mustache=require(_0x5c9e('0x6'));var util=require(_0x5c9e('0x7'));var path=require(_0x5c9e('0x8'));var sox=require(_0x5c9e('0x9'));var csv=require(_0x5c9e('0xa'));var ejs=require(_0x5c9e('0xb'));var fs=require('fs');var fs_extra=require(_0x5c9e('0xc'));var _=require(_0x5c9e('0xd'));var squel=require(_0x5c9e('0xe'));var crypto=require('crypto');var jsforce=require(_0x5c9e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x5c9e('0xa'));var querystring=require(_0x5c9e('0x10'));var Papa=require(_0x5c9e('0x11'));var Redis=require('ioredis');var authService=require(_0x5c9e('0x12'));var qs=require(_0x5c9e('0x13'));var as=require(_0x5c9e('0x14'));var hardwareService=require(_0x5c9e('0x15'));var logger=require(_0x5c9e('0x16'))(_0x5c9e('0x17'));var utils=require(_0x5c9e('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x5c9e('0x19'));var db=require(_0x5c9e('0x1a'))['db'];function respondWithStatusCode(_0x8aa6fb,_0x3fd9e2){_0x3fd9e2=_0x3fd9e2||0xcc;return function(_0x44db77){if(_0x44db77){return _0x8aa6fb['sendStatus'](_0x3fd9e2);}return _0x8aa6fb['status'](_0x3fd9e2)[_0x5c9e('0x1b')]();};}function respondWithResult(_0xf4a127,_0x1691f5){_0x1691f5=_0x1691f5||0xc8;return function(_0x252804){if(_0x252804){return _0xf4a127[_0x5c9e('0x1c')](_0x1691f5)[_0x5c9e('0x1d')](_0x252804);}};}function respondWithFilteredResult(_0x428594,_0x203f72){return function(_0x107385){if(_0x107385){var _0x466c04=typeof _0x203f72['offset']===_0x5c9e('0x1e')&&typeof _0x203f72[_0x5c9e('0x1f')]===_0x5c9e('0x1e');var _0x176734=_0x107385['count'];var _0x1c1c2c=_0x466c04?0x0:_0x203f72[_0x5c9e('0x20')];var _0x270cbb=_0x466c04?_0x107385['count']:_0x203f72[_0x5c9e('0x20')]+_0x203f72[_0x5c9e('0x1f')];var _0x2e9fba;if(_0x270cbb>=_0x176734){_0x270cbb=_0x176734;_0x2e9fba=0xc8;}else{_0x2e9fba=0xce;}_0x428594[_0x5c9e('0x1c')](_0x2e9fba);return _0x428594['set']('Content-Range',_0x1c1c2c+'-'+_0x270cbb+'/'+_0x176734)[_0x5c9e('0x1d')](_0x107385);}return null;};}function patchUpdates(_0x226184){return function(_0x3237d4){try{jsonpatch[_0x5c9e('0x21')](_0x3237d4,_0x226184,!![]);}catch(_0x569c50){return BPromise[_0x5c9e('0x22')](_0x569c50);}return _0x3237d4[_0x5c9e('0x23')]();};}function saveUpdates(_0x390ad3,_0x59164a){return function(_0x33637a){if(_0x33637a){return _0x33637a['update'](_0x390ad3)[_0x5c9e('0x24')](function(_0x529d3e){return _0x529d3e;});}return null;};}function removeEntity(_0x49478b,_0x568a57){return function(_0x3e3085){if(_0x3e3085){return _0x3e3085[_0x5c9e('0x25')]()[_0x5c9e('0x24')](function(){_0x49478b[_0x5c9e('0x1c')](0xcc)[_0x5c9e('0x1b')]();});}};}function handleEntityNotFound(_0x40a6d0,_0x5ec585){return function(_0x5e14d3){if(!_0x5e14d3){_0x40a6d0[_0x5c9e('0x26')](0x194);}return _0x5e14d3;};}function handleError(_0x107446,_0x569352){_0x569352=_0x569352||0x1f4;return function(_0x59ff9d){logger[_0x5c9e('0x27')](_0x59ff9d[_0x5c9e('0x28')]);if(_0x59ff9d[_0x5c9e('0x29')]){delete _0x59ff9d[_0x5c9e('0x29')];}_0x107446[_0x5c9e('0x1c')](_0x569352)[_0x5c9e('0x2a')](_0x59ff9d);};}exports[_0x5c9e('0x2b')]=function(_0x109fc4,_0x40e715){var _0x293a39={},_0x5928a6={},_0x2c2a3f={'count':0x0,'rows':[]};var _0xe5b45=_[_0x5c9e('0x2c')](db[_0x5c9e('0x2d')][_0x5c9e('0x2e')],function(_0x496d1a){return{'name':_0x496d1a[_0x5c9e('0x2f')],'type':_0x496d1a[_0x5c9e('0x30')][_0x5c9e('0x31')]};});_0x5928a6[_0x5c9e('0x32')]=_[_0x5c9e('0x2c')](_0xe5b45,_0x5c9e('0x29'));_0x5928a6[_0x5c9e('0x33')]=_[_0x5c9e('0x34')](_0x109fc4[_0x5c9e('0x33')]);_0x5928a6['filters']=_[_0x5c9e('0x35')](_0x5928a6['model'],_0x5928a6[_0x5c9e('0x33')]);_0x293a39[_0x5c9e('0x36')]=_['intersection'](_0x5928a6[_0x5c9e('0x32')],qs[_0x5c9e('0x37')](_0x109fc4['query'][_0x5c9e('0x37')]));_0x293a39['attributes']=_0x293a39['attributes']['length']?_0x293a39['attributes']:_0x5928a6[_0x5c9e('0x32')];if(!_0x109fc4[_0x5c9e('0x33')][_0x5c9e('0x38')](_0x5c9e('0x39'))){_0x293a39[_0x5c9e('0x1f')]=qs[_0x5c9e('0x1f')](_0x109fc4['query'][_0x5c9e('0x1f')]);_0x293a39[_0x5c9e('0x20')]=qs[_0x5c9e('0x20')](_0x109fc4[_0x5c9e('0x33')][_0x5c9e('0x20')]);}_0x293a39[_0x5c9e('0x3a')]=qs['sort'](_0x109fc4[_0x5c9e('0x33')][_0x5c9e('0x3b')]);_0x293a39['where']=qs[_0x5c9e('0x3c')](_[_0x5c9e('0x3d')](_0x109fc4[_0x5c9e('0x33')],_0x5928a6['filters']),_0xe5b45);if(_0x109fc4[_0x5c9e('0x33')]['filter']){_0x293a39[_0x5c9e('0x3e')]=_[_0x5c9e('0x3f')](_0x293a39[_0x5c9e('0x3e')],{'$or':_[_0x5c9e('0x2c')](_0xe5b45,function(_0x2afb8d){if(_0x2afb8d[_0x5c9e('0x30')]!==_0x5c9e('0x40')){var _0x4a2140={};_0x4a2140[_0x2afb8d[_0x5c9e('0x29')]]={'$like':'%'+_0x109fc4[_0x5c9e('0x33')][_0x5c9e('0x41')]+'%'};return _0x4a2140;}})});}_0x293a39=_[_0x5c9e('0x3f')]({},_0x293a39,_0x109fc4[_0x5c9e('0x42')]);var _0x371350={'where':_0x293a39[_0x5c9e('0x3e')]};return db[_0x5c9e('0x2d')][_0x5c9e('0x43')](_0x371350)[_0x5c9e('0x24')](function(_0x3d1097){_0x2c2a3f[_0x5c9e('0x43')]=_0x3d1097;if(_0x109fc4[_0x5c9e('0x33')][_0x5c9e('0x44')]){_0x293a39['include']=[{'all':!![]}];}return db[_0x5c9e('0x2d')][_0x5c9e('0x45')](_0x293a39);})[_0x5c9e('0x24')](function(_0x22d254){_0x2c2a3f[_0x5c9e('0x46')]=_0x22d254;return _0x2c2a3f;})[_0x5c9e('0x24')](respondWithFilteredResult(_0x40e715,_0x293a39))[_0x5c9e('0x47')](handleError(_0x40e715,null));};exports['show']=function(_0x3eb9df,_0x3bf5e4){var _0x3892f3={'raw':![],'where':{'id':_0x3eb9df[_0x5c9e('0x48')]['id']}},_0x259b4c={};_0x259b4c[_0x5c9e('0x32')]=_[_0x5c9e('0x34')](db[_0x5c9e('0x2d')][_0x5c9e('0x2e')]);_0x259b4c[_0x5c9e('0x33')]=_[_0x5c9e('0x34')](_0x3eb9df[_0x5c9e('0x33')]);_0x259b4c[_0x5c9e('0x3c')]=_[_0x5c9e('0x35')](_0x259b4c['model'],_0x259b4c[_0x5c9e('0x33')]);_0x3892f3[_0x5c9e('0x36')]=_[_0x5c9e('0x35')](_0x259b4c[_0x5c9e('0x32')],qs[_0x5c9e('0x37')](_0x3eb9df[_0x5c9e('0x33')][_0x5c9e('0x37')]));_0x3892f3[_0x5c9e('0x36')]=_0x3892f3[_0x5c9e('0x36')][_0x5c9e('0x49')]?_0x3892f3[_0x5c9e('0x36')]:_0x259b4c[_0x5c9e('0x32')];if(_0x3eb9df['query']['includeAll']){_0x3892f3[_0x5c9e('0x4a')]=[{'all':!![]}];}_0x3892f3=_[_0x5c9e('0x3f')]({},_0x3892f3,_0x3eb9df[_0x5c9e('0x42')]);return db[_0x5c9e('0x2d')][_0x5c9e('0x4b')](_0x3892f3)[_0x5c9e('0x24')](handleEntityNotFound(_0x3bf5e4,null))[_0x5c9e('0x24')](respondWithResult(_0x3bf5e4,null))[_0x5c9e('0x47')](handleError(_0x3bf5e4,null));};exports[_0x5c9e('0x4c')]=function(_0x4d730c,_0x3c048c){return db[_0x5c9e('0x2d')]['create'](_0x4d730c['body'],{})[_0x5c9e('0x24')](respondWithResult(_0x3c048c,0xc9))[_0x5c9e('0x47')](handleError(_0x3c048c,null));};exports[_0x5c9e('0x4d')]=function(_0x2a3019,_0x378331){if(_0x2a3019[_0x5c9e('0x4e')]['id']){delete _0x2a3019[_0x5c9e('0x4e')]['id'];}return db[_0x5c9e('0x2d')][_0x5c9e('0x4b')]({'where':{'id':_0x2a3019[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x378331,null))[_0x5c9e('0x24')](saveUpdates(_0x2a3019[_0x5c9e('0x4e')],null))[_0x5c9e('0x24')](respondWithResult(_0x378331,null))[_0x5c9e('0x47')](handleError(_0x378331,null));};exports[_0x5c9e('0x25')]=function(_0x5bb16f,_0x42c173){return db[_0x5c9e('0x2d')]['find']({'where':{'id':_0x5bb16f[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x42c173,null))[_0x5c9e('0x24')](removeEntity(_0x42c173,null))[_0x5c9e('0x47')](handleError(_0x42c173,null));};exports[_0x5c9e('0x4f')]=function(_0x5e6c95,_0x22d947,_0x266977){return db[_0x5c9e('0x50')][_0x5c9e('0x4b')]({'where':{'id':_0x5e6c95[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x22d947,null))[_0x5c9e('0x24')](function(_0x4f78a8){if(_0x4f78a8){return _0x4f78a8[_0x5c9e('0x4f')](_0x5e6c95[_0x5c9e('0x4e')][_0x5c9e('0x51')],_[_0x5c9e('0x52')](_0x5e6c95['body'],[_0x5c9e('0x51'),'id'])||{});}})[_0x5c9e('0x24')](respondWithResult(_0x22d947,null))['catch'](handleError(_0x22d947,null));};exports[_0x5c9e('0x53')]=function(_0x3e337b,_0x60ac66,_0x574afe){var _0x58d0e4={};var _0x151cd9={};var _0x127083;var _0x455e6e;return db['Automation'][_0x5c9e('0x54')]({'where':{'id':_0x3e337b[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x60ac66,null))[_0x5c9e('0x24')](function(_0x5d0caa){if(_0x5d0caa){_0x127083=_0x5d0caa;_0x151cd9['model']=_[_0x5c9e('0x34')](db[_0x5c9e('0x50')][_0x5c9e('0x2e')]);_0x151cd9[_0x5c9e('0x33')]=_['keys'](_0x3e337b[_0x5c9e('0x33')]);_0x151cd9[_0x5c9e('0x3c')]=_['intersection'](_0x151cd9[_0x5c9e('0x32')],_0x151cd9[_0x5c9e('0x33')]);_0x58d0e4['attributes']=_[_0x5c9e('0x35')](_0x151cd9[_0x5c9e('0x32')],qs[_0x5c9e('0x37')](_0x3e337b[_0x5c9e('0x33')][_0x5c9e('0x37')]));_0x58d0e4[_0x5c9e('0x36')]=_0x58d0e4[_0x5c9e('0x36')]['length']?_0x58d0e4[_0x5c9e('0x36')]:_0x151cd9[_0x5c9e('0x32')];_0x58d0e4[_0x5c9e('0x3a')]=qs['sort'](_0x3e337b[_0x5c9e('0x33')][_0x5c9e('0x3b')]);_0x58d0e4[_0x5c9e('0x3e')]=qs[_0x5c9e('0x3c')](_['pick'](_0x3e337b[_0x5c9e('0x33')],_0x151cd9[_0x5c9e('0x3c')]));if(_0x3e337b[_0x5c9e('0x33')][_0x5c9e('0x41')]){_0x58d0e4['where']=_[_0x5c9e('0x3f')](_0x58d0e4['where'],{'$or':_[_0x5c9e('0x2c')](_0x58d0e4[_0x5c9e('0x36')],function(_0x27c9b5){var _0xf5fa7a={};_0xf5fa7a[_0x27c9b5]={'$like':'%'+_0x3e337b[_0x5c9e('0x33')][_0x5c9e('0x41')]+'%'};return _0xf5fa7a;})});}_0x58d0e4=_[_0x5c9e('0x3f')]({},_0x58d0e4,_0x3e337b['options']);return _0x127083['getConditions'](_0x58d0e4);}})[_0x5c9e('0x24')](function(_0x44b9ff){if(_0x44b9ff){_0x455e6e=_0x44b9ff['length'];if(!_0x3e337b[_0x5c9e('0x33')][_0x5c9e('0x38')]('nolimit')){_0x58d0e4['limit']=qs['limit'](_0x3e337b[_0x5c9e('0x33')]['limit']);_0x58d0e4[_0x5c9e('0x20')]=qs['offset'](_0x3e337b[_0x5c9e('0x33')]['offset']);}return _0x127083[_0x5c9e('0x53')](_0x58d0e4);}})[_0x5c9e('0x24')](function(_0x2623e7){if(_0x2623e7){return _0x2623e7?{'count':_0x455e6e,'rows':_0x2623e7}:null;}})[_0x5c9e('0x24')](respondWithResult(_0x60ac66,null))[_0x5c9e('0x47')](handleError(_0x60ac66,null));};exports[_0x5c9e('0x55')]=function(_0x14a643,_0x202550,_0x1e19d2){return db[_0x5c9e('0x56')][_0x5c9e('0x4b')]({'where':{'id':_0x14a643[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x202550,null))['then'](function(_0x233467){if(_0x233467){return _0x233467['addActions'](_0x14a643[_0x5c9e('0x4e')][_0x5c9e('0x51')],_[_0x5c9e('0x52')](_0x14a643[_0x5c9e('0x4e')],['ids','id'])||{});}})[_0x5c9e('0x24')](respondWithResult(_0x202550,null))[_0x5c9e('0x47')](handleError(_0x202550,null));};exports[_0x5c9e('0x57')]=function(_0x4a438c,_0x20ab35,_0x223116){var _0xde00df={};var _0x4200e3={};var _0x2e7a4e;var _0x50f8b1;return db['Automation']['findOne']({'where':{'id':_0x4a438c[_0x5c9e('0x48')]['id']}})[_0x5c9e('0x24')](handleEntityNotFound(_0x20ab35,null))['then'](function(_0x4c1acc){if(_0x4c1acc){_0x2e7a4e=_0x4c1acc;_0x4200e3[_0x5c9e('0x32')]=_[_0x5c9e('0x34')](db[_0x5c9e('0x56')][_0x5c9e('0x2e')]);_0x4200e3[_0x5c9e('0x33')]=_[_0x5c9e('0x34')](_0x4a438c[_0x5c9e('0x33')]);_0x4200e3['filters']=_['intersection'](_0x4200e3[_0x5c9e('0x32')],_0x4200e3[_0x5c9e('0x33')]);_0xde00df['attributes']=_[_0x5c9e('0x35')](_0x4200e3['model'],qs[_0x5c9e('0x37')](_0x4a438c['query'][_0x5c9e('0x37')]));_0xde00df[_0x5c9e('0x36')]=_0xde00df[_0x5c9e('0x36')][_0x5c9e('0x49')]?_0xde00df['attributes']:_0x4200e3[_0x5c9e('0x32')];_0xde00df[_0x5c9e('0x3a')]=qs['sort'](_0x4a438c[_0x5c9e('0x33')]['sort']);_0xde00df[_0x5c9e('0x3e')]=qs[_0x5c9e('0x3c')](_[_0x5c9e('0x3d')](_0x4a438c[_0x5c9e('0x33')],_0x4200e3[_0x5c9e('0x3c')]));if(_0x4a438c['query']['filter']){_0xde00df[_0x5c9e('0x3e')]=_['merge'](_0xde00df[_0x5c9e('0x3e')],{'$or':_[_0x5c9e('0x2c')](_0xde00df[_0x5c9e('0x36')],function(_0x2eb760){var _0x336544={};_0x336544[_0x2eb760]={'$like':'%'+_0x4a438c[_0x5c9e('0x33')][_0x5c9e('0x41')]+'%'};return _0x336544;})});}_0xde00df=_[_0x5c9e('0x3f')]({},_0xde00df,_0x4a438c[_0x5c9e('0x42')]);return _0x2e7a4e[_0x5c9e('0x57')](_0xde00df);}})[_0x5c9e('0x24')](function(_0x120729){if(_0x120729){_0x50f8b1=_0x120729[_0x5c9e('0x49')];if(!_0x4a438c['query'][_0x5c9e('0x38')]('nolimit')){_0xde00df[_0x5c9e('0x1f')]=qs[_0x5c9e('0x1f')](_0x4a438c['query'][_0x5c9e('0x1f')]);_0xde00df['offset']=qs['offset'](_0x4a438c['query']['offset']);}return _0x2e7a4e['getActions'](_0xde00df);}})[_0x5c9e('0x24')](function(_0x516a49){if(_0x516a49){return _0x516a49?{'count':_0x50f8b1,'rows':_0x516a49}:null;}})[_0x5c9e('0x24')](respondWithResult(_0x20ab35,null))[_0x5c9e('0x47')](handleError(_0x20ab35,null));};