Built motion from commit (unavailable).|2.4.3
[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 _0x512b=['find','create','body','destroy','addConditions','Condition','ids','omit','findOne','filters','order','getConditions','addActions','getActions','Action','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','set','apply','save','update','then','end','error','stack','name','send','index','Automation','rawAttributes','model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','pick','filter','where','merge','map','key','VIRTUAL','field','include','findAll','rows','catch','show','params','length','includeAll','options'];(function(_0x4aa1f6,_0x16495f){var _0x4abc07=function(_0x2ab497){while(--_0x2ab497){_0x4aa1f6['push'](_0x4aa1f6['shift']());}};_0x4abc07(++_0x16495f);}(_0x512b,0x15b));var _0xb512=function(_0x967100,_0x55f89a){_0x967100=_0x967100-0x0;var _0xe140e2=_0x512b[_0x967100];return _0xe140e2;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xb512('0x0'));var rimraf=require(_0xb512('0x1'));var zipdir=require(_0xb512('0x2'));var jsonpatch=require(_0xb512('0x3'));var rp=require(_0xb512('0x4'));var moment=require(_0xb512('0x5'));var BPromise=require(_0xb512('0x6'));var Mustache=require(_0xb512('0x7'));var util=require(_0xb512('0x8'));var path=require('path');var sox=require(_0xb512('0x9'));var csv=require(_0xb512('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb512('0xb'));var squel=require('squel');var crypto=require(_0xb512('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb512('0xd'));var toCsv=require('to-csv');var querystring=require(_0xb512('0xe'));var Papa=require('papaparse');var Redis=require(_0xb512('0xf'));var authService=require(_0xb512('0x10'));var qs=require(_0xb512('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb512('0x12'))(_0xb512('0x13'));var utils=require(_0xb512('0x14'));var config=require(_0xb512('0x15'));var db=require(_0xb512('0x16'))['db'];function respondWithStatusCode(_0x37ac4b,_0xb4805c){_0xb4805c=_0xb4805c||0xcc;return function(_0x38b36a){if(_0x38b36a){return _0x37ac4b[_0xb512('0x17')](_0xb4805c);}return _0x37ac4b[_0xb512('0x18')](_0xb4805c)['end']();};}function respondWithResult(_0x52f27c,_0x490d62){_0x490d62=_0x490d62||0xc8;return function(_0x2f9de4){if(_0x2f9de4){return _0x52f27c[_0xb512('0x18')](_0x490d62)[_0xb512('0x19')](_0x2f9de4);}};}function respondWithFilteredResult(_0x1aef5b,_0x4f559b){return function(_0x35a237){if(_0x35a237){var _0x110c67=_0x35a237[_0xb512('0x1a')],_0x56f6b4=_0x4f559b[_0xb512('0x1b')],_0x2e5704=_0x4f559b[_0xb512('0x1b')]+_0x4f559b['limit'],_0x1b8991;if(_0x2e5704>=_0x110c67){_0x2e5704=_0x110c67;_0x1b8991=0xc8;}else{_0x1b8991=0xce;}_0x1aef5b['status'](_0x1b8991);return _0x1aef5b[_0xb512('0x1c')]('Content-Range',_0x56f6b4+'-'+_0x2e5704+'/'+_0x110c67)[_0xb512('0x19')](_0x35a237);}return null;};}function patchUpdates(_0x49b894){return function(_0x43f011){try{jsonpatch[_0xb512('0x1d')](_0x43f011,_0x49b894,!![]);}catch(_0x4df28d){return BPromise['reject'](_0x4df28d);}return _0x43f011[_0xb512('0x1e')]();};}function saveUpdates(_0x53ff3a,_0x19f007){return function(_0x19bddd){if(_0x19bddd){return _0x19bddd[_0xb512('0x1f')](_0x53ff3a)['then'](function(_0x2cafbc){return _0x2cafbc;});}return null;};}function removeEntity(_0x5c2616,_0x2747f3){return function(_0x225e39){if(_0x225e39){return _0x225e39['destroy']()[_0xb512('0x20')](function(){_0x5c2616[_0xb512('0x18')](0xcc)[_0xb512('0x21')]();});}};}function handleEntityNotFound(_0x5315ab,_0x17e92a){return function(_0x144fc9){if(!_0x144fc9){_0x5315ab['sendStatus'](0x194);}return _0x144fc9;};}function handleError(_0x5390c7,_0x575f4d){_0x575f4d=_0x575f4d||0x1f4;return function(_0x1998cd){logger[_0xb512('0x22')](_0x1998cd[_0xb512('0x23')]);if(_0x1998cd[_0xb512('0x24')]){delete _0x1998cd[_0xb512('0x24')];}_0x5390c7[_0xb512('0x18')](_0x575f4d)[_0xb512('0x25')](_0x1998cd);};}exports[_0xb512('0x26')]=function(_0x572de4,_0x158e86){var _0x8d84c0={},_0x48fdb9={},_0x310cbf={'count':0x0,'rows':[]};var _0xc12697=db[_0xb512('0x27')][_0xb512('0x28')];_0x48fdb9[_0xb512('0x29')]=_[_0xb512('0x2a')](_0xc12697);_0x48fdb9['query']=_[_0xb512('0x2a')](_0x572de4[_0xb512('0x2b')]);_0x48fdb9['filters']=_[_0xb512('0x2c')](_0x48fdb9[_0xb512('0x29')],_0x48fdb9[_0xb512('0x2b')]);_0x8d84c0[_0xb512('0x2d')]=_['intersection'](_0x48fdb9[_0xb512('0x29')],qs['fields'](_0x572de4[_0xb512('0x2b')][_0xb512('0x2e')]));_0x8d84c0[_0xb512('0x2d')]=_0x8d84c0[_0xb512('0x2d')]['length']?_0x8d84c0['attributes']:_0x48fdb9[_0xb512('0x29')];if(!_0x572de4[_0xb512('0x2b')][_0xb512('0x2f')](_0xb512('0x30'))){_0x8d84c0['limit']=qs[_0xb512('0x31')](_0x572de4[_0xb512('0x2b')][_0xb512('0x31')]);_0x8d84c0['offset']=qs['offset'](_0x572de4['query']['offset']);}_0x8d84c0['order']=qs[_0xb512('0x32')](_0x572de4[_0xb512('0x2b')][_0xb512('0x32')]);_0x8d84c0['where']=qs['filters'](_[_0xb512('0x33')](_0x572de4[_0xb512('0x2b')],_0x48fdb9['filters']));if(_0x572de4[_0xb512('0x2b')][_0xb512('0x34')]){_0x8d84c0[_0xb512('0x35')]=_[_0xb512('0x36')](_0x8d84c0[_0xb512('0x35')],{'$or':_[_0xb512('0x37')](_0xc12697,function(_0xbe780b){if(_0xbe780b['type'][_0xb512('0x38')]!==_0xb512('0x39')){var _0x236367={};_0x236367[_0xbe780b[_0xb512('0x3a')]]={'$like':'%'+_0x572de4[_0xb512('0x2b')][_0xb512('0x34')]+'%'};return _0x236367;}})});}_0x8d84c0=_[_0xb512('0x36')]({},_0x8d84c0,_0x572de4['options']);var _0x41f9ee={'where':_0x8d84c0['where']};return db[_0xb512('0x27')]['count'](_0x41f9ee)[_0xb512('0x20')](function(_0x31ee86){_0x310cbf[_0xb512('0x1a')]=_0x31ee86;if(_0x572de4[_0xb512('0x2b')]['includeAll']){_0x8d84c0[_0xb512('0x3b')]=[{'all':!![]}];}return db[_0xb512('0x27')][_0xb512('0x3c')](_0x8d84c0);})[_0xb512('0x20')](function(_0x43646c){_0x310cbf[_0xb512('0x3d')]=_0x43646c;return _0x310cbf;})[_0xb512('0x20')](respondWithFilteredResult(_0x158e86,_0x8d84c0))[_0xb512('0x3e')](handleError(_0x158e86,null));};exports[_0xb512('0x3f')]=function(_0x563ce0,_0x2f6b1c){var _0x436016={'raw':![],'where':{'id':_0x563ce0[_0xb512('0x40')]['id']}},_0x29fb6c={};_0x29fb6c[_0xb512('0x29')]=_[_0xb512('0x2a')](db[_0xb512('0x27')][_0xb512('0x28')]);_0x29fb6c['query']=_[_0xb512('0x2a')](_0x563ce0[_0xb512('0x2b')]);_0x29fb6c['filters']=_[_0xb512('0x2c')](_0x29fb6c[_0xb512('0x29')],_0x29fb6c[_0xb512('0x2b')]);_0x436016[_0xb512('0x2d')]=_[_0xb512('0x2c')](_0x29fb6c[_0xb512('0x29')],qs[_0xb512('0x2e')](_0x563ce0[_0xb512('0x2b')][_0xb512('0x2e')]));_0x436016['attributes']=_0x436016[_0xb512('0x2d')][_0xb512('0x41')]?_0x436016['attributes']:_0x29fb6c[_0xb512('0x29')];if(_0x563ce0[_0xb512('0x2b')][_0xb512('0x42')]){_0x436016[_0xb512('0x3b')]=[{'all':!![]}];}_0x436016=_[_0xb512('0x36')]({},_0x436016,_0x563ce0[_0xb512('0x43')]);return db[_0xb512('0x27')][_0xb512('0x44')](_0x436016)['then'](handleEntityNotFound(_0x2f6b1c,null))[_0xb512('0x20')](respondWithResult(_0x2f6b1c,null))[_0xb512('0x3e')](handleError(_0x2f6b1c,null));};exports[_0xb512('0x45')]=function(_0x21da37,_0x17487d){return db[_0xb512('0x27')][_0xb512('0x45')](_0x21da37[_0xb512('0x46')],{})[_0xb512('0x20')](respondWithResult(_0x17487d,0xc9))[_0xb512('0x3e')](handleError(_0x17487d,null));};exports[_0xb512('0x1f')]=function(_0x5e23fc,_0x41c0c2){if(_0x5e23fc['body']['id']){delete _0x5e23fc[_0xb512('0x46')]['id'];}return db['Automation'][_0xb512('0x44')]({'where':{'id':_0x5e23fc[_0xb512('0x40')]['id']}})[_0xb512('0x20')](handleEntityNotFound(_0x41c0c2,null))[_0xb512('0x20')](saveUpdates(_0x5e23fc[_0xb512('0x46')],null))[_0xb512('0x20')](respondWithResult(_0x41c0c2,null))[_0xb512('0x3e')](handleError(_0x41c0c2,null));};exports[_0xb512('0x47')]=function(_0x596436,_0x597487){return db[_0xb512('0x27')]['find']({'where':{'id':_0x596436[_0xb512('0x40')]['id']}})[_0xb512('0x20')](handleEntityNotFound(_0x597487,null))['then'](removeEntity(_0x597487,null))['catch'](handleError(_0x597487,null));};exports[_0xb512('0x48')]=function(_0x3a01c2,_0xf057fc,_0x438769){return db[_0xb512('0x49')]['find']({'where':{'id':_0x3a01c2[_0xb512('0x40')]['id']}})[_0xb512('0x20')](handleEntityNotFound(_0xf057fc,null))[_0xb512('0x20')](function(_0x2eb12c){if(_0x2eb12c){return _0x2eb12c['addConditions'](_0x3a01c2[_0xb512('0x46')][_0xb512('0x4a')],_[_0xb512('0x4b')](_0x3a01c2[_0xb512('0x46')],[_0xb512('0x4a'),'id'])||{});}})[_0xb512('0x20')](respondWithResult(_0xf057fc,null))[_0xb512('0x3e')](handleError(_0xf057fc,null));};exports['getConditions']=function(_0x4de4d1,_0x29e0d9,_0x6b8215){var _0xf746d7={};var _0x55675f={};var _0x233962;var _0x3693d8;return db[_0xb512('0x27')][_0xb512('0x4c')]({'where':{'id':_0x4de4d1[_0xb512('0x40')]['id']}})['then'](handleEntityNotFound(_0x29e0d9,null))[_0xb512('0x20')](function(_0x7af381){if(_0x7af381){_0x233962=_0x7af381;_0x55675f[_0xb512('0x29')]=_['keys'](db[_0xb512('0x49')][_0xb512('0x28')]);_0x55675f[_0xb512('0x2b')]=_['keys'](_0x4de4d1[_0xb512('0x2b')]);_0x55675f[_0xb512('0x4d')]=_[_0xb512('0x2c')](_0x55675f[_0xb512('0x29')],_0x55675f[_0xb512('0x2b')]);_0xf746d7[_0xb512('0x2d')]=_['intersection'](_0x55675f[_0xb512('0x29')],qs['fields'](_0x4de4d1[_0xb512('0x2b')]['fields']));_0xf746d7['attributes']=_0xf746d7[_0xb512('0x2d')][_0xb512('0x41')]?_0xf746d7[_0xb512('0x2d')]:_0x55675f[_0xb512('0x29')];_0xf746d7[_0xb512('0x4e')]=qs[_0xb512('0x32')](_0x4de4d1[_0xb512('0x2b')]['sort']);_0xf746d7['where']=qs[_0xb512('0x4d')](_['pick'](_0x4de4d1[_0xb512('0x2b')],_0x55675f[_0xb512('0x4d')]));if(_0x4de4d1[_0xb512('0x2b')]['filter']){_0xf746d7[_0xb512('0x35')]=_[_0xb512('0x36')](_0xf746d7[_0xb512('0x35')],{'$or':_[_0xb512('0x37')](_0xf746d7['attributes'],function(_0x578c85){var _0x458e4e={};_0x458e4e[_0x578c85]={'$like':'%'+_0x4de4d1['query'][_0xb512('0x34')]+'%'};return _0x458e4e;})});}_0xf746d7=_[_0xb512('0x36')]({},_0xf746d7,_0x4de4d1['options']);return _0x233962[_0xb512('0x4f')](_0xf746d7);}})[_0xb512('0x20')](function(_0x1feb1d){if(_0x1feb1d){_0x3693d8=_0x1feb1d[_0xb512('0x41')];if(!_0x4de4d1[_0xb512('0x2b')][_0xb512('0x2f')](_0xb512('0x30'))){_0xf746d7[_0xb512('0x31')]=qs[_0xb512('0x31')](_0x4de4d1['query'][_0xb512('0x31')]);_0xf746d7[_0xb512('0x1b')]=qs['offset'](_0x4de4d1[_0xb512('0x2b')]['offset']);}return _0x233962[_0xb512('0x4f')](_0xf746d7);}})[_0xb512('0x20')](function(_0x5d7c54){if(_0x5d7c54){return _0x5d7c54?{'count':_0x3693d8,'rows':_0x5d7c54}:null;}})[_0xb512('0x20')](respondWithResult(_0x29e0d9,null))['catch'](handleError(_0x29e0d9,null));};exports[_0xb512('0x50')]=function(_0x1498cf,_0x538197,_0x445e9e){return db['Action'][_0xb512('0x44')]({'where':{'id':_0x1498cf['params']['id']}})[_0xb512('0x20')](handleEntityNotFound(_0x538197,null))['then'](function(_0x261869){if(_0x261869){return _0x261869['addActions'](_0x1498cf[_0xb512('0x46')]['ids'],_[_0xb512('0x4b')](_0x1498cf[_0xb512('0x46')],['ids','id'])||{});}})[_0xb512('0x20')](respondWithResult(_0x538197,null))[_0xb512('0x3e')](handleError(_0x538197,null));};exports[_0xb512('0x51')]=function(_0x3ac191,_0x47fd25,_0x3c6e4f){var _0x458628={};var _0x2af387={};var _0x1c9e46;var _0xc8f898;return db[_0xb512('0x27')][_0xb512('0x4c')]({'where':{'id':_0x3ac191['params']['id']}})[_0xb512('0x20')](handleEntityNotFound(_0x47fd25,null))[_0xb512('0x20')](function(_0x238747){if(_0x238747){_0x1c9e46=_0x238747;_0x2af387[_0xb512('0x29')]=_['keys'](db[_0xb512('0x52')]['rawAttributes']);_0x2af387[_0xb512('0x2b')]=_[_0xb512('0x2a')](_0x3ac191[_0xb512('0x2b')]);_0x2af387['filters']=_[_0xb512('0x2c')](_0x2af387[_0xb512('0x29')],_0x2af387[_0xb512('0x2b')]);_0x458628[_0xb512('0x2d')]=_[_0xb512('0x2c')](_0x2af387[_0xb512('0x29')],qs[_0xb512('0x2e')](_0x3ac191[_0xb512('0x2b')][_0xb512('0x2e')]));_0x458628[_0xb512('0x2d')]=_0x458628[_0xb512('0x2d')]['length']?_0x458628[_0xb512('0x2d')]:_0x2af387[_0xb512('0x29')];_0x458628['order']=qs[_0xb512('0x32')](_0x3ac191[_0xb512('0x2b')][_0xb512('0x32')]);_0x458628[_0xb512('0x35')]=qs[_0xb512('0x4d')](_[_0xb512('0x33')](_0x3ac191[_0xb512('0x2b')],_0x2af387[_0xb512('0x4d')]));if(_0x3ac191[_0xb512('0x2b')][_0xb512('0x34')]){_0x458628[_0xb512('0x35')]=_[_0xb512('0x36')](_0x458628[_0xb512('0x35')],{'$or':_['map'](_0x458628[_0xb512('0x2d')],function(_0x4ede3c){var _0x2c4a67={};_0x2c4a67[_0x4ede3c]={'$like':'%'+_0x3ac191[_0xb512('0x2b')]['filter']+'%'};return _0x2c4a67;})});}_0x458628=_['merge']({},_0x458628,_0x3ac191[_0xb512('0x43')]);return _0x1c9e46[_0xb512('0x51')](_0x458628);}})[_0xb512('0x20')](function(_0xe377c4){if(_0xe377c4){_0xc8f898=_0xe377c4[_0xb512('0x41')];if(!_0x3ac191['query'][_0xb512('0x2f')]('nolimit')){_0x458628['limit']=qs['limit'](_0x3ac191[_0xb512('0x2b')]['limit']);_0x458628[_0xb512('0x1b')]=qs[_0xb512('0x1b')](_0x3ac191[_0xb512('0x2b')][_0xb512('0x1b')]);}return _0x1c9e46[_0xb512('0x51')](_0x458628);}})[_0xb512('0x20')](function(_0x1bc759){if(_0x1bc759){return _0x1bc759?{'count':_0xc8f898,'rows':_0x1bc759}:null;}})[_0xb512('0x20')](respondWithResult(_0x47fd25,null))[_0xb512('0x3e')](handleError(_0x47fd25,null));};