Built motion from commit d1eab355.|2.6.28
[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 _0x658c=['sort','hasOwnProperty','addActions','Action','omit','getActions','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','end','json','limit','count','offset','status','set','Content-Range','apply','reject','save','destroy','then','sendStatus','error','stack','name','map','Automation','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','nolimit','pick','filters','filter','where','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','options','find','create','body','addConditions','Condition','ids','getConditions','findOne','order'];(function(_0xcbff5,_0x50eb75){var _0x13a00a=function(_0x9173fa){while(--_0x9173fa){_0xcbff5['push'](_0xcbff5['shift']());}};_0x13a00a(++_0x50eb75);}(_0x658c,0x156));var _0xc658=function(_0xca351b,_0x5648e4){_0xca351b=_0xca351b-0x0;var _0x2197f2=_0x658c[_0xca351b];return _0x2197f2;};'use strict';var emlformat=require(_0xc658('0x0'));var rimraf=require(_0xc658('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xc658('0x2'));var BPromise=require(_0xc658('0x3'));var Mustache=require('mustache');var util=require(_0xc658('0x4'));var path=require(_0xc658('0x5'));var sox=require(_0xc658('0x6'));var csv=require(_0xc658('0x7'));var ejs=require(_0xc658('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc658('0x9'));var squel=require(_0xc658('0xa'));var crypto=require(_0xc658('0xb'));var jsforce=require(_0xc658('0xc'));var deskjs=require(_0xc658('0xd'));var toCsv=require(_0xc658('0x7'));var querystring=require(_0xc658('0xe'));var Papa=require(_0xc658('0xf'));var Redis=require(_0xc658('0x10'));var authService=require(_0xc658('0x11'));var qs=require(_0xc658('0x12'));var as=require(_0xc658('0x13'));var hardwareService=require(_0xc658('0x14'));var logger=require(_0xc658('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xc658('0x16'));var licenseUtil=require(_0xc658('0x17'));var db=require(_0xc658('0x18'))['db'];function respondWithStatusCode(_0x57ad78,_0x47a117){_0x47a117=_0x47a117||0xcc;return function(_0x56cf65){if(_0x56cf65){return _0x57ad78['sendStatus'](_0x47a117);}return _0x57ad78['status'](_0x47a117)[_0xc658('0x19')]();};}function respondWithResult(_0xd6bd2f,_0x43de26){_0x43de26=_0x43de26||0xc8;return function(_0x42b4d4){if(_0x42b4d4){return _0xd6bd2f['status'](_0x43de26)[_0xc658('0x1a')](_0x42b4d4);}};}function respondWithFilteredResult(_0xb8fa4d,_0x5bf887){return function(_0x274f5a){if(_0x274f5a){var _0x2ba384=typeof _0x5bf887['offset']==='undefined'&&typeof _0x5bf887[_0xc658('0x1b')]==='undefined';var _0x396aab=_0x274f5a[_0xc658('0x1c')];var _0x56f9b6=_0x2ba384?0x0:_0x5bf887[_0xc658('0x1d')];var _0x1184bc=_0x2ba384?_0x274f5a[_0xc658('0x1c')]:_0x5bf887['offset']+_0x5bf887['limit'];var _0xaf1c89;if(_0x1184bc>=_0x396aab){_0x1184bc=_0x396aab;_0xaf1c89=0xc8;}else{_0xaf1c89=0xce;}_0xb8fa4d[_0xc658('0x1e')](_0xaf1c89);return _0xb8fa4d[_0xc658('0x1f')](_0xc658('0x20'),_0x56f9b6+'-'+_0x1184bc+'/'+_0x396aab)[_0xc658('0x1a')](_0x274f5a);}return null;};}function patchUpdates(_0x5c20c7){return function(_0xfb2e34){try{jsonpatch[_0xc658('0x21')](_0xfb2e34,_0x5c20c7,!![]);}catch(_0x46f422){return BPromise[_0xc658('0x22')](_0x46f422);}return _0xfb2e34[_0xc658('0x23')]();};}function saveUpdates(_0xa17741,_0x204f9a){return function(_0x3a588a){if(_0x3a588a){return _0x3a588a['update'](_0xa17741)['then'](function(_0x3b51fe){return _0x3b51fe;});}return null;};}function removeEntity(_0x517fd2,_0x17b035){return function(_0x4d29dd){if(_0x4d29dd){return _0x4d29dd[_0xc658('0x24')]()[_0xc658('0x25')](function(){_0x517fd2['status'](0xcc)[_0xc658('0x19')]();});}};}function handleEntityNotFound(_0x1e611b,_0x1c0b18){return function(_0x30f250){if(!_0x30f250){_0x1e611b[_0xc658('0x26')](0x194);}return _0x30f250;};}function handleError(_0x5809ff,_0x580320){_0x580320=_0x580320||0x1f4;return function(_0x42e3fc){logger[_0xc658('0x27')](_0x42e3fc[_0xc658('0x28')]);if(_0x42e3fc[_0xc658('0x29')]){delete _0x42e3fc[_0xc658('0x29')];}_0x5809ff[_0xc658('0x1e')](_0x580320)['send'](_0x42e3fc);};}exports['index']=function(_0x50c836,_0x38592e){var _0x4bc56d={},_0x45c98e={},_0x557a8c={'count':0x0,'rows':[]};var _0x1892ec=_[_0xc658('0x2a')](db[_0xc658('0x2b')][_0xc658('0x2c')],function(_0x54c126){return{'name':_0x54c126[_0xc658('0x2d')],'type':_0x54c126[_0xc658('0x2e')][_0xc658('0x2f')]};});_0x45c98e[_0xc658('0x30')]=_['map'](_0x1892ec,'name');_0x45c98e[_0xc658('0x31')]=_[_0xc658('0x32')](_0x50c836[_0xc658('0x31')]);_0x45c98e['filters']=_['intersection'](_0x45c98e['model'],_0x45c98e[_0xc658('0x31')]);_0x4bc56d[_0xc658('0x33')]=_[_0xc658('0x34')](_0x45c98e['model'],qs[_0xc658('0x35')](_0x50c836[_0xc658('0x31')][_0xc658('0x35')]));_0x4bc56d[_0xc658('0x33')]=_0x4bc56d['attributes'][_0xc658('0x36')]?_0x4bc56d['attributes']:_0x45c98e[_0xc658('0x30')];if(!_0x50c836[_0xc658('0x31')]['hasOwnProperty'](_0xc658('0x37'))){_0x4bc56d['limit']=qs[_0xc658('0x1b')](_0x50c836[_0xc658('0x31')][_0xc658('0x1b')]);_0x4bc56d[_0xc658('0x1d')]=qs[_0xc658('0x1d')](_0x50c836[_0xc658('0x31')]['offset']);}_0x4bc56d['order']=qs['sort'](_0x50c836['query']['sort']);_0x4bc56d['where']=qs['filters'](_[_0xc658('0x38')](_0x50c836[_0xc658('0x31')],_0x45c98e[_0xc658('0x39')]),_0x1892ec);if(_0x50c836[_0xc658('0x31')][_0xc658('0x3a')]){_0x4bc56d[_0xc658('0x3b')]=_[_0xc658('0x3c')](_0x4bc56d[_0xc658('0x3b')],{'$or':_[_0xc658('0x2a')](_0x1892ec,function(_0x523b26){if(_0x523b26[_0xc658('0x2e')]!==_0xc658('0x3d')){var _0x43856b={};_0x43856b[_0x523b26[_0xc658('0x29')]]={'$like':'%'+_0x50c836['query'][_0xc658('0x3a')]+'%'};return _0x43856b;}})});}_0x4bc56d=_[_0xc658('0x3c')]({},_0x4bc56d,_0x50c836['options']);var _0x4382f8={'where':_0x4bc56d[_0xc658('0x3b')]};return db['Automation']['count'](_0x4382f8)[_0xc658('0x25')](function(_0x112760){_0x557a8c['count']=_0x112760;if(_0x50c836['query'][_0xc658('0x3e')]){_0x4bc56d[_0xc658('0x3f')]=[{'all':!![]}];}return db[_0xc658('0x2b')][_0xc658('0x40')](_0x4bc56d);})[_0xc658('0x25')](function(_0x282aa5){_0x557a8c['rows']=_0x282aa5;return _0x557a8c;})['then'](respondWithFilteredResult(_0x38592e,_0x4bc56d))[_0xc658('0x41')](handleError(_0x38592e,null));};exports[_0xc658('0x42')]=function(_0xf9f365,_0x231ba2){var _0x446db2={'raw':![],'where':{'id':_0xf9f365[_0xc658('0x43')]['id']}},_0x349c7e={};_0x349c7e[_0xc658('0x30')]=_[_0xc658('0x32')](db[_0xc658('0x2b')][_0xc658('0x2c')]);_0x349c7e['query']=_['keys'](_0xf9f365[_0xc658('0x31')]);_0x349c7e[_0xc658('0x39')]=_['intersection'](_0x349c7e[_0xc658('0x30')],_0x349c7e[_0xc658('0x31')]);_0x446db2[_0xc658('0x33')]=_[_0xc658('0x34')](_0x349c7e[_0xc658('0x30')],qs['fields'](_0xf9f365[_0xc658('0x31')]['fields']));_0x446db2[_0xc658('0x33')]=_0x446db2[_0xc658('0x33')][_0xc658('0x36')]?_0x446db2[_0xc658('0x33')]:_0x349c7e[_0xc658('0x30')];if(_0xf9f365[_0xc658('0x31')][_0xc658('0x3e')]){_0x446db2[_0xc658('0x3f')]=[{'all':!![]}];}_0x446db2=_[_0xc658('0x3c')]({},_0x446db2,_0xf9f365[_0xc658('0x44')]);return db[_0xc658('0x2b')][_0xc658('0x45')](_0x446db2)[_0xc658('0x25')](handleEntityNotFound(_0x231ba2,null))[_0xc658('0x25')](respondWithResult(_0x231ba2,null))['catch'](handleError(_0x231ba2,null));};exports['create']=function(_0x56aa37,_0x2493c3){return db[_0xc658('0x2b')][_0xc658('0x46')](_0x56aa37[_0xc658('0x47')],{})['then'](respondWithResult(_0x2493c3,0xc9))['catch'](handleError(_0x2493c3,null));};exports['update']=function(_0x54e202,_0x1acd45){if(_0x54e202[_0xc658('0x47')]['id']){delete _0x54e202[_0xc658('0x47')]['id'];}return db['Automation'][_0xc658('0x45')]({'where':{'id':_0x54e202['params']['id']}})[_0xc658('0x25')](handleEntityNotFound(_0x1acd45,null))[_0xc658('0x25')](saveUpdates(_0x54e202[_0xc658('0x47')],null))[_0xc658('0x25')](respondWithResult(_0x1acd45,null))[_0xc658('0x41')](handleError(_0x1acd45,null));};exports['destroy']=function(_0x39f594,_0x41f635){return db[_0xc658('0x2b')][_0xc658('0x45')]({'where':{'id':_0x39f594['params']['id']}})[_0xc658('0x25')](handleEntityNotFound(_0x41f635,null))[_0xc658('0x25')](removeEntity(_0x41f635,null))[_0xc658('0x41')](handleError(_0x41f635,null));};exports[_0xc658('0x48')]=function(_0x668a48,_0x53a67d,_0x1a6798){return db[_0xc658('0x49')][_0xc658('0x45')]({'where':{'id':_0x668a48[_0xc658('0x43')]['id']}})[_0xc658('0x25')](handleEntityNotFound(_0x53a67d,null))['then'](function(_0x553f17){if(_0x553f17){return _0x553f17[_0xc658('0x48')](_0x668a48[_0xc658('0x47')][_0xc658('0x4a')],_['omit'](_0x668a48[_0xc658('0x47')],[_0xc658('0x4a'),'id'])||{});}})[_0xc658('0x25')](respondWithResult(_0x53a67d,null))[_0xc658('0x41')](handleError(_0x53a67d,null));};exports[_0xc658('0x4b')]=function(_0x33ed8e,_0x25ad7c,_0x458b54){var _0x24478a={};var _0x279556={};var _0x16ac98;var _0x1fe56d;return db[_0xc658('0x2b')][_0xc658('0x4c')]({'where':{'id':_0x33ed8e[_0xc658('0x43')]['id']}})['then'](handleEntityNotFound(_0x25ad7c,null))[_0xc658('0x25')](function(_0x2a0887){if(_0x2a0887){_0x16ac98=_0x2a0887;_0x279556[_0xc658('0x30')]=_[_0xc658('0x32')](db['Condition'][_0xc658('0x2c')]);_0x279556[_0xc658('0x31')]=_['keys'](_0x33ed8e['query']);_0x279556[_0xc658('0x39')]=_[_0xc658('0x34')](_0x279556[_0xc658('0x30')],_0x279556['query']);_0x24478a[_0xc658('0x33')]=_[_0xc658('0x34')](_0x279556[_0xc658('0x30')],qs[_0xc658('0x35')](_0x33ed8e[_0xc658('0x31')][_0xc658('0x35')]));_0x24478a['attributes']=_0x24478a['attributes'][_0xc658('0x36')]?_0x24478a[_0xc658('0x33')]:_0x279556[_0xc658('0x30')];_0x24478a[_0xc658('0x4d')]=qs[_0xc658('0x4e')](_0x33ed8e[_0xc658('0x31')][_0xc658('0x4e')]);_0x24478a[_0xc658('0x3b')]=qs[_0xc658('0x39')](_[_0xc658('0x38')](_0x33ed8e['query'],_0x279556[_0xc658('0x39')]));if(_0x33ed8e[_0xc658('0x31')][_0xc658('0x3a')]){_0x24478a[_0xc658('0x3b')]=_[_0xc658('0x3c')](_0x24478a[_0xc658('0x3b')],{'$or':_['map'](_0x24478a[_0xc658('0x33')],function(_0x4324b4){var _0x2ab095={};_0x2ab095[_0x4324b4]={'$like':'%'+_0x33ed8e[_0xc658('0x31')][_0xc658('0x3a')]+'%'};return _0x2ab095;})});}_0x24478a=_[_0xc658('0x3c')]({},_0x24478a,_0x33ed8e[_0xc658('0x44')]);return _0x16ac98[_0xc658('0x4b')](_0x24478a);}})[_0xc658('0x25')](function(_0x246f59){if(_0x246f59){_0x1fe56d=_0x246f59[_0xc658('0x36')];if(!_0x33ed8e[_0xc658('0x31')][_0xc658('0x4f')](_0xc658('0x37'))){_0x24478a[_0xc658('0x1b')]=qs[_0xc658('0x1b')](_0x33ed8e[_0xc658('0x31')][_0xc658('0x1b')]);_0x24478a[_0xc658('0x1d')]=qs[_0xc658('0x1d')](_0x33ed8e[_0xc658('0x31')][_0xc658('0x1d')]);}return _0x16ac98[_0xc658('0x4b')](_0x24478a);}})['then'](function(_0x48d64b){if(_0x48d64b){return _0x48d64b?{'count':_0x1fe56d,'rows':_0x48d64b}:null;}})[_0xc658('0x25')](respondWithResult(_0x25ad7c,null))[_0xc658('0x41')](handleError(_0x25ad7c,null));};exports[_0xc658('0x50')]=function(_0x5d4736,_0x3bd289,_0x292251){return db[_0xc658('0x51')][_0xc658('0x45')]({'where':{'id':_0x5d4736[_0xc658('0x43')]['id']}})[_0xc658('0x25')](handleEntityNotFound(_0x3bd289,null))['then'](function(_0x2e7c9b){if(_0x2e7c9b){return _0x2e7c9b[_0xc658('0x50')](_0x5d4736[_0xc658('0x47')]['ids'],_[_0xc658('0x52')](_0x5d4736[_0xc658('0x47')],['ids','id'])||{});}})[_0xc658('0x25')](respondWithResult(_0x3bd289,null))[_0xc658('0x41')](handleError(_0x3bd289,null));};exports[_0xc658('0x53')]=function(_0x303464,_0x4e6d5b,_0x16d1fd){var _0x302662={};var _0x46adbf={};var _0x2b044c;var _0x12dd82;return db[_0xc658('0x2b')][_0xc658('0x4c')]({'where':{'id':_0x303464[_0xc658('0x43')]['id']}})[_0xc658('0x25')](handleEntityNotFound(_0x4e6d5b,null))['then'](function(_0x67fad3){if(_0x67fad3){_0x2b044c=_0x67fad3;_0x46adbf['model']=_['keys'](db['Action']['rawAttributes']);_0x46adbf[_0xc658('0x31')]=_['keys'](_0x303464[_0xc658('0x31')]);_0x46adbf[_0xc658('0x39')]=_[_0xc658('0x34')](_0x46adbf[_0xc658('0x30')],_0x46adbf['query']);_0x302662[_0xc658('0x33')]=_[_0xc658('0x34')](_0x46adbf[_0xc658('0x30')],qs[_0xc658('0x35')](_0x303464[_0xc658('0x31')][_0xc658('0x35')]));_0x302662[_0xc658('0x33')]=_0x302662['attributes'][_0xc658('0x36')]?_0x302662[_0xc658('0x33')]:_0x46adbf['model'];_0x302662[_0xc658('0x4d')]=qs[_0xc658('0x4e')](_0x303464[_0xc658('0x31')][_0xc658('0x4e')]);_0x302662['where']=qs[_0xc658('0x39')](_[_0xc658('0x38')](_0x303464[_0xc658('0x31')],_0x46adbf[_0xc658('0x39')]));if(_0x303464['query'][_0xc658('0x3a')]){_0x302662[_0xc658('0x3b')]=_[_0xc658('0x3c')](_0x302662[_0xc658('0x3b')],{'$or':_['map'](_0x302662[_0xc658('0x33')],function(_0x58b1fd){var _0x2b1b5a={};_0x2b1b5a[_0x58b1fd]={'$like':'%'+_0x303464['query'][_0xc658('0x3a')]+'%'};return _0x2b1b5a;})});}_0x302662=_['merge']({},_0x302662,_0x303464[_0xc658('0x44')]);return _0x2b044c[_0xc658('0x53')](_0x302662);}})[_0xc658('0x25')](function(_0x5d8d99){if(_0x5d8d99){_0x12dd82=_0x5d8d99['length'];if(!_0x303464[_0xc658('0x31')]['hasOwnProperty'](_0xc658('0x37'))){_0x302662[_0xc658('0x1b')]=qs[_0xc658('0x1b')](_0x303464['query'][_0xc658('0x1b')]);_0x302662[_0xc658('0x1d')]=qs['offset'](_0x303464[_0xc658('0x31')][_0xc658('0x1d')]);}return _0x2b044c[_0xc658('0x53')](_0x302662);}})['then'](function(_0x2ffcbb){if(_0x2ffcbb){return _0x2ffcbb?{'count':_0x12dd82,'rows':_0x2ffcbb}:null;}})[_0xc658('0x25')](respondWithResult(_0x4e6d5b,null))[_0xc658('0x41')](handleError(_0x4e6d5b,null));};