8370c41b0430da5556f2e2edceffd653ea8f4116
[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 _0xdc1d=['create','body','Condition','addConditions','ids','hasOwnProperty','getConditions','Action','addActions','findOne','getActions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','end','error','name','send','index','map','Automation','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','params','include','find','catch'];(function(_0x5ddda9,_0x58d5db){var _0x4eae03=function(_0x986882){while(--_0x986882){_0x5ddda9['push'](_0x5ddda9['shift']());}};_0x4eae03(++_0x58d5db);}(_0xdc1d,0x1b9));var _0xddc1=function(_0x2543dc,_0x34aa05){_0x2543dc=_0x2543dc-0x0;var _0x3153f7=_0xdc1d[_0x2543dc];return _0x3153f7;};'use strict';var emlformat=require(_0xddc1('0x0'));var rimraf=require(_0xddc1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xddc1('0x2'));var rp=require(_0xddc1('0x3'));var moment=require('moment');var BPromise=require(_0xddc1('0x4'));var Mustache=require(_0xddc1('0x5'));var util=require(_0xddc1('0x6'));var path=require(_0xddc1('0x7'));var sox=require(_0xddc1('0x8'));var csv=require('to-csv');var ejs=require(_0xddc1('0x9'));var fs=require('fs');var fs_extra=require(_0xddc1('0xa'));var _=require('lodash');var squel=require(_0xddc1('0xb'));var crypto=require(_0xddc1('0xc'));var jsforce=require(_0xddc1('0xd'));var deskjs=require(_0xddc1('0xe'));var toCsv=require(_0xddc1('0xf'));var querystring=require(_0xddc1('0x10'));var Papa=require(_0xddc1('0x11'));var Redis=require(_0xddc1('0x12'));var authService=require(_0xddc1('0x13'));var qs=require(_0xddc1('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xddc1('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0xddc1('0x16'));var config=require(_0xddc1('0x17'));var licenseUtil=require(_0xddc1('0x18'));var db=require(_0xddc1('0x19'))['db'];function respondWithStatusCode(_0x57d177,_0x124a93){_0x124a93=_0x124a93||0xcc;return function(_0x1043d3){if(_0x1043d3){return _0x57d177[_0xddc1('0x1a')](_0x124a93);}return _0x57d177['status'](_0x124a93)['end']();};}function respondWithResult(_0x2178de,_0x47a6c9){_0x47a6c9=_0x47a6c9||0xc8;return function(_0x54dd10){if(_0x54dd10){return _0x2178de[_0xddc1('0x1b')](_0x47a6c9)['json'](_0x54dd10);}};}function respondWithFilteredResult(_0x4b581e,_0x1aa914){return function(_0x517b34){if(_0x517b34){var _0x15ffe8=typeof _0x1aa914[_0xddc1('0x1c')]===_0xddc1('0x1d')&&typeof _0x1aa914[_0xddc1('0x1e')]===_0xddc1('0x1d');var _0x4ad967=_0x517b34[_0xddc1('0x1f')];var _0x176c5e=_0x15ffe8?0x0:_0x1aa914[_0xddc1('0x1c')];var _0x1f4b93=_0x15ffe8?_0x517b34[_0xddc1('0x1f')]:_0x1aa914[_0xddc1('0x1c')]+_0x1aa914[_0xddc1('0x1e')];var _0x1c2e51;if(_0x1f4b93>=_0x4ad967){_0x1f4b93=_0x4ad967;_0x1c2e51=0xc8;}else{_0x1c2e51=0xce;}_0x4b581e['status'](_0x1c2e51);return _0x4b581e[_0xddc1('0x20')](_0xddc1('0x21'),_0x176c5e+'-'+_0x1f4b93+'/'+_0x4ad967)[_0xddc1('0x22')](_0x517b34);}return null;};}function patchUpdates(_0x485a06){return function(_0x3a5210){try{jsonpatch[_0xddc1('0x23')](_0x3a5210,_0x485a06,!![]);}catch(_0x2522ef){return BPromise[_0xddc1('0x24')](_0x2522ef);}return _0x3a5210[_0xddc1('0x25')]();};}function saveUpdates(_0x3ddd8a,_0x4b7339){return function(_0x26ab22){if(_0x26ab22){return _0x26ab22[_0xddc1('0x26')](_0x3ddd8a)[_0xddc1('0x27')](function(_0x2e6eaf){return _0x2e6eaf;});}return null;};}function removeEntity(_0x1c9feb,_0x4cf66f){return function(_0x34da30){if(_0x34da30){return _0x34da30[_0xddc1('0x28')]()[_0xddc1('0x27')](function(){_0x1c9feb[_0xddc1('0x1b')](0xcc)[_0xddc1('0x29')]();});}};}function handleEntityNotFound(_0x3824e3,_0x232700){return function(_0x271ff3){if(!_0x271ff3){_0x3824e3[_0xddc1('0x1a')](0x194);}return _0x271ff3;};}function handleError(_0x333bf9,_0x3f6ee2){_0x3f6ee2=_0x3f6ee2||0x1f4;return function(_0x1fcb1b){logger[_0xddc1('0x2a')](_0x1fcb1b['stack']);if(_0x1fcb1b['name']){delete _0x1fcb1b[_0xddc1('0x2b')];}_0x333bf9['status'](_0x3f6ee2)[_0xddc1('0x2c')](_0x1fcb1b);};}exports[_0xddc1('0x2d')]=function(_0x111b25,_0x24a0f5){var _0x3bac83={},_0x2f3f00={},_0x1bbf11={'count':0x0,'rows':[]};var _0x5bc9a4=_[_0xddc1('0x2e')](db[_0xddc1('0x2f')][_0xddc1('0x30')],function(_0x4c19ef){return{'name':_0x4c19ef[_0xddc1('0x31')],'type':_0x4c19ef[_0xddc1('0x32')]['key']};});_0x2f3f00[_0xddc1('0x33')]=_[_0xddc1('0x2e')](_0x5bc9a4,_0xddc1('0x2b'));_0x2f3f00[_0xddc1('0x34')]=_[_0xddc1('0x35')](_0x111b25[_0xddc1('0x34')]);_0x2f3f00[_0xddc1('0x36')]=_['intersection'](_0x2f3f00[_0xddc1('0x33')],_0x2f3f00[_0xddc1('0x34')]);_0x3bac83[_0xddc1('0x37')]=_[_0xddc1('0x38')](_0x2f3f00[_0xddc1('0x33')],qs[_0xddc1('0x39')](_0x111b25['query'][_0xddc1('0x39')]));_0x3bac83[_0xddc1('0x37')]=_0x3bac83[_0xddc1('0x37')][_0xddc1('0x3a')]?_0x3bac83[_0xddc1('0x37')]:_0x2f3f00[_0xddc1('0x33')];if(!_0x111b25[_0xddc1('0x34')]['hasOwnProperty'](_0xddc1('0x3b'))){_0x3bac83['limit']=qs[_0xddc1('0x1e')](_0x111b25['query'][_0xddc1('0x1e')]);_0x3bac83[_0xddc1('0x1c')]=qs[_0xddc1('0x1c')](_0x111b25[_0xddc1('0x34')][_0xddc1('0x1c')]);}_0x3bac83[_0xddc1('0x3c')]=qs['sort'](_0x111b25[_0xddc1('0x34')][_0xddc1('0x3d')]);_0x3bac83['where']=qs[_0xddc1('0x36')](_[_0xddc1('0x3e')](_0x111b25[_0xddc1('0x34')],_0x2f3f00['filters']),_0x5bc9a4);if(_0x111b25[_0xddc1('0x34')][_0xddc1('0x3f')]){_0x3bac83[_0xddc1('0x40')]=_[_0xddc1('0x41')](_0x3bac83[_0xddc1('0x40')],{'$or':_[_0xddc1('0x2e')](_0x5bc9a4,function(_0x165909){if(_0x165909['type']!==_0xddc1('0x42')){var _0x47776d={};_0x47776d[_0x165909['name']]={'$like':'%'+_0x111b25[_0xddc1('0x34')][_0xddc1('0x3f')]+'%'};return _0x47776d;}})});}_0x3bac83=_[_0xddc1('0x41')]({},_0x3bac83,_0x111b25[_0xddc1('0x43')]);var _0x5ed189={'where':_0x3bac83[_0xddc1('0x40')]};return db[_0xddc1('0x2f')]['count'](_0x5ed189)[_0xddc1('0x27')](function(_0x196f9f){_0x1bbf11[_0xddc1('0x1f')]=_0x196f9f;if(_0x111b25[_0xddc1('0x34')][_0xddc1('0x44')]){_0x3bac83['include']=[{'all':!![]}];}return db['Automation'][_0xddc1('0x45')](_0x3bac83);})['then'](function(_0x344b80){_0x1bbf11[_0xddc1('0x46')]=_0x344b80;return _0x1bbf11;})['then'](respondWithFilteredResult(_0x24a0f5,_0x3bac83))['catch'](handleError(_0x24a0f5,null));};exports['show']=function(_0x532ea1,_0x34d16e){var _0x432984={'raw':![],'where':{'id':_0x532ea1[_0xddc1('0x47')]['id']}},_0x1885a4={};_0x1885a4[_0xddc1('0x33')]=_[_0xddc1('0x35')](db[_0xddc1('0x2f')][_0xddc1('0x30')]);_0x1885a4[_0xddc1('0x34')]=_[_0xddc1('0x35')](_0x532ea1['query']);_0x1885a4[_0xddc1('0x36')]=_[_0xddc1('0x38')](_0x1885a4[_0xddc1('0x33')],_0x1885a4[_0xddc1('0x34')]);_0x432984[_0xddc1('0x37')]=_['intersection'](_0x1885a4['model'],qs[_0xddc1('0x39')](_0x532ea1[_0xddc1('0x34')][_0xddc1('0x39')]));_0x432984['attributes']=_0x432984['attributes'][_0xddc1('0x3a')]?_0x432984['attributes']:_0x1885a4[_0xddc1('0x33')];if(_0x532ea1['query'][_0xddc1('0x44')]){_0x432984[_0xddc1('0x48')]=[{'all':!![]}];}_0x432984=_[_0xddc1('0x41')]({},_0x432984,_0x532ea1['options']);return db[_0xddc1('0x2f')][_0xddc1('0x49')](_0x432984)[_0xddc1('0x27')](handleEntityNotFound(_0x34d16e,null))['then'](respondWithResult(_0x34d16e,null))[_0xddc1('0x4a')](handleError(_0x34d16e,null));};exports['create']=function(_0x16fe54,_0x452b8e){return db[_0xddc1('0x2f')][_0xddc1('0x4b')](_0x16fe54['body'],{})[_0xddc1('0x27')](respondWithResult(_0x452b8e,0xc9))[_0xddc1('0x4a')](handleError(_0x452b8e,null));};exports['update']=function(_0x32021b,_0x37be70){if(_0x32021b[_0xddc1('0x4c')]['id']){delete _0x32021b[_0xddc1('0x4c')]['id'];}return db[_0xddc1('0x2f')][_0xddc1('0x49')]({'where':{'id':_0x32021b['params']['id']}})['then'](handleEntityNotFound(_0x37be70,null))[_0xddc1('0x27')](saveUpdates(_0x32021b[_0xddc1('0x4c')],null))['then'](respondWithResult(_0x37be70,null))['catch'](handleError(_0x37be70,null));};exports[_0xddc1('0x28')]=function(_0x411bbb,_0x32d27e){return db[_0xddc1('0x2f')]['find']({'where':{'id':_0x411bbb[_0xddc1('0x47')]['id']}})[_0xddc1('0x27')](handleEntityNotFound(_0x32d27e,null))['then'](removeEntity(_0x32d27e,null))[_0xddc1('0x4a')](handleError(_0x32d27e,null));};exports['addConditions']=function(_0x1ea632,_0x526c6,_0x47ef8d){return db[_0xddc1('0x4d')][_0xddc1('0x49')]({'where':{'id':_0x1ea632[_0xddc1('0x47')]['id']}})[_0xddc1('0x27')](handleEntityNotFound(_0x526c6,null))[_0xddc1('0x27')](function(_0x27cc19){if(_0x27cc19){return _0x27cc19[_0xddc1('0x4e')](_0x1ea632[_0xddc1('0x4c')][_0xddc1('0x4f')],_['omit'](_0x1ea632[_0xddc1('0x4c')],['ids','id'])||{});}})[_0xddc1('0x27')](respondWithResult(_0x526c6,null))[_0xddc1('0x4a')](handleError(_0x526c6,null));};exports['getConditions']=function(_0x1f624d,_0x4cde22,_0x3df9da){var _0x7f10cd={};var _0x500b13={};var _0x456df8;var _0xbf87a;return db[_0xddc1('0x2f')]['findOne']({'where':{'id':_0x1f624d[_0xddc1('0x47')]['id']}})[_0xddc1('0x27')](handleEntityNotFound(_0x4cde22,null))[_0xddc1('0x27')](function(_0x299b66){if(_0x299b66){_0x456df8=_0x299b66;_0x500b13[_0xddc1('0x33')]=_[_0xddc1('0x35')](db[_0xddc1('0x4d')][_0xddc1('0x30')]);_0x500b13[_0xddc1('0x34')]=_['keys'](_0x1f624d[_0xddc1('0x34')]);_0x500b13[_0xddc1('0x36')]=_[_0xddc1('0x38')](_0x500b13[_0xddc1('0x33')],_0x500b13[_0xddc1('0x34')]);_0x7f10cd[_0xddc1('0x37')]=_[_0xddc1('0x38')](_0x500b13[_0xddc1('0x33')],qs['fields'](_0x1f624d['query'][_0xddc1('0x39')]));_0x7f10cd[_0xddc1('0x37')]=_0x7f10cd[_0xddc1('0x37')][_0xddc1('0x3a')]?_0x7f10cd[_0xddc1('0x37')]:_0x500b13[_0xddc1('0x33')];_0x7f10cd[_0xddc1('0x3c')]=qs[_0xddc1('0x3d')](_0x1f624d['query']['sort']);_0x7f10cd[_0xddc1('0x40')]=qs[_0xddc1('0x36')](_[_0xddc1('0x3e')](_0x1f624d['query'],_0x500b13['filters']));if(_0x1f624d[_0xddc1('0x34')][_0xddc1('0x3f')]){_0x7f10cd[_0xddc1('0x40')]=_[_0xddc1('0x41')](_0x7f10cd[_0xddc1('0x40')],{'$or':_[_0xddc1('0x2e')](_0x7f10cd['attributes'],function(_0x1a3c9e){var _0x55efdc={};_0x55efdc[_0x1a3c9e]={'$like':'%'+_0x1f624d[_0xddc1('0x34')]['filter']+'%'};return _0x55efdc;})});}_0x7f10cd=_['merge']({},_0x7f10cd,_0x1f624d[_0xddc1('0x43')]);return _0x456df8['getConditions'](_0x7f10cd);}})[_0xddc1('0x27')](function(_0x422f47){if(_0x422f47){_0xbf87a=_0x422f47[_0xddc1('0x3a')];if(!_0x1f624d['query'][_0xddc1('0x50')](_0xddc1('0x3b'))){_0x7f10cd['limit']=qs['limit'](_0x1f624d[_0xddc1('0x34')]['limit']);_0x7f10cd[_0xddc1('0x1c')]=qs[_0xddc1('0x1c')](_0x1f624d[_0xddc1('0x34')]['offset']);}return _0x456df8[_0xddc1('0x51')](_0x7f10cd);}})[_0xddc1('0x27')](function(_0x345961){if(_0x345961){return _0x345961?{'count':_0xbf87a,'rows':_0x345961}:null;}})[_0xddc1('0x27')](respondWithResult(_0x4cde22,null))[_0xddc1('0x4a')](handleError(_0x4cde22,null));};exports['addActions']=function(_0xfd41b5,_0x31e4d6,_0x4b9962){return db[_0xddc1('0x52')]['find']({'where':{'id':_0xfd41b5[_0xddc1('0x47')]['id']}})['then'](handleEntityNotFound(_0x31e4d6,null))['then'](function(_0x120f47){if(_0x120f47){return _0x120f47[_0xddc1('0x53')](_0xfd41b5[_0xddc1('0x4c')]['ids'],_['omit'](_0xfd41b5[_0xddc1('0x4c')],[_0xddc1('0x4f'),'id'])||{});}})[_0xddc1('0x27')](respondWithResult(_0x31e4d6,null))['catch'](handleError(_0x31e4d6,null));};exports['getActions']=function(_0xd6c0f1,_0x327af8,_0x46a7ef){var _0x117381={};var _0x4ec60a={};var _0x33fd8d;var _0x4b3346;return db[_0xddc1('0x2f')][_0xddc1('0x54')]({'where':{'id':_0xd6c0f1['params']['id']}})['then'](handleEntityNotFound(_0x327af8,null))[_0xddc1('0x27')](function(_0x392c15){if(_0x392c15){_0x33fd8d=_0x392c15;_0x4ec60a['model']=_[_0xddc1('0x35')](db[_0xddc1('0x52')]['rawAttributes']);_0x4ec60a[_0xddc1('0x34')]=_[_0xddc1('0x35')](_0xd6c0f1[_0xddc1('0x34')]);_0x4ec60a[_0xddc1('0x36')]=_['intersection'](_0x4ec60a[_0xddc1('0x33')],_0x4ec60a['query']);_0x117381[_0xddc1('0x37')]=_['intersection'](_0x4ec60a['model'],qs['fields'](_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x39')]));_0x117381[_0xddc1('0x37')]=_0x117381['attributes'][_0xddc1('0x3a')]?_0x117381[_0xddc1('0x37')]:_0x4ec60a[_0xddc1('0x33')];_0x117381[_0xddc1('0x3c')]=qs[_0xddc1('0x3d')](_0xd6c0f1['query']['sort']);_0x117381[_0xddc1('0x40')]=qs['filters'](_[_0xddc1('0x3e')](_0xd6c0f1['query'],_0x4ec60a[_0xddc1('0x36')]));if(_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x3f')]){_0x117381[_0xddc1('0x40')]=_[_0xddc1('0x41')](_0x117381[_0xddc1('0x40')],{'$or':_['map'](_0x117381[_0xddc1('0x37')],function(_0x11c102){var _0x215891={};_0x215891[_0x11c102]={'$like':'%'+_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x3f')]+'%'};return _0x215891;})});}_0x117381=_[_0xddc1('0x41')]({},_0x117381,_0xd6c0f1[_0xddc1('0x43')]);return _0x33fd8d['getActions'](_0x117381);}})['then'](function(_0x20113c){if(_0x20113c){_0x4b3346=_0x20113c[_0xddc1('0x3a')];if(!_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x50')](_0xddc1('0x3b'))){_0x117381['limit']=qs[_0xddc1('0x1e')](_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x1e')]);_0x117381[_0xddc1('0x1c')]=qs['offset'](_0xd6c0f1[_0xddc1('0x34')][_0xddc1('0x1c')]);}return _0x33fd8d[_0xddc1('0x55')](_0x117381);}})[_0xddc1('0x27')](function(_0x1aa9d3){if(_0x1aa9d3){return _0x1aa9d3?{'count':_0x4b3346,'rows':_0x1aa9d3}:null;}})[_0xddc1('0x27')](respondWithResult(_0x327af8,null))['catch'](handleError(_0x327af8,null));};